VMTK
vtkvmtkFEAssembler.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: VMTK
4  Module: $RCSfile: vtkvmtkFEAssembler.h,v $
5  Language: C++
6 
7  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
8  See LICENSE file for details.
9 
10  Portions of this code are covered under the VTK copyright.
11  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
12  for details.
13 
14  This software is distributed WITHOUT ANY WARRANTY; without even
15  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16  PURPOSE. See the above copyright notices for more information.
17 
18 =========================================================================*/
28 #ifndef __vtkvmtkFEAssembler_h
29 #define __vtkvmtkFEAssembler_h
30 
31 #include "vtkObject.h"
32 #include "vtkPolyData.h"
33 #include "vtkvmtkSparseMatrix.h"
34 #include "vtkvmtkDoubleVector.h"
35 #include "vtkvmtkWin32Header.h"
36 
37 class VTK_VMTK_DIFFERENTIAL_GEOMETRY_EXPORT vtkvmtkFEAssembler : public vtkObject
38 {
39 public:
40 
41  vtkTypeMacro(vtkvmtkFEAssembler,vtkObject);
42 
43  vtkSetObjectMacro(DataSet,vtkDataSet);
44  vtkGetObjectMacro(DataSet,vtkDataSet);
45 
46  vtkSetObjectMacro(Matrix,vtkvmtkSparseMatrix);
47  vtkGetObjectMacro(Matrix,vtkvmtkSparseMatrix);
48 
49  vtkSetObjectMacro(RHSVector,vtkvmtkDoubleVector);
50  vtkGetObjectMacro(RHSVector,vtkvmtkDoubleVector);
51 
52  vtkSetObjectMacro(SolutionVector,vtkvmtkDoubleVector);
53  vtkGetObjectMacro(SolutionVector,vtkvmtkDoubleVector);
54 
55  vtkGetMacro(NumberOfVariables,int);
56 
57  vtkSetMacro(QuadratureOrder,int);
58  vtkGetMacro(QuadratureOrder,int);
59 
60  virtual void Build() = 0;
61 
62  void DeepCopy(vtkvmtkFEAssembler *src);
63  void ShallowCopy(vtkvmtkFEAssembler *src);
64 
65 protected:
68 
69  void Initialize(int numberOfVariables);
70 
71  vtkDataSet* DataSet;
75 
78 
79 private:
80  vtkvmtkFEAssembler(const vtkvmtkFEAssembler&); // Not implemented.
81  void operator=(const vtkvmtkFEAssembler&); // Not implemented.
82 };
83 
84 #endif
Base class for vectors utilized in finite-element and other PDE evaluations.
Class for constructing sparse matrices from a dataset and performing basic mathematical operations on...
vtkvmtkDoubleVector * SolutionVector
Base class on which to build to build specific finite element routines.
vtkvmtkDoubleVector * RHSVector
vtkvmtkSparseMatrix * Matrix