FemProcess
The GeMA Fem Process Plugin
gmpFemAssemblerAdder.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4 ** All rights reserved.
5 **
6 ** This file is part of the "GeMA" software. It's use should respect
7 ** the terms in the license agreement that can be found together
8 ** with this source code.
9 ** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10 ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11 ** A PARTICULAR PURPOSE.
12 **
13 ************************************************************************/
14 
26 #ifndef _GEMA_PLUGIN_FEM_ASSEMBLER_ADDER_H_
27 #define _GEMA_PLUGIN_FEM_ASSEMBLER_ADDER_H_
28 
29 #include "gmpFemProcessConfig.h"
30 
31 class GmpFemMatrixSet;
32 class GmpFemVectorSet;
33 class GmDofMap;
36 class GmpFemLocker;
37 
38 
43 {
44 public:
57  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
58  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker) = 0;
59 };
60 
65 {
66 public:
79  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
80  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker) = 0;
81 };
82 
83 
84 //------------------------------------------------------------------------------------------------------------
85 //
86 // Matrix & vector assemblers in "Matching" mode
87 //
88 //------------------------------------------------------------------------------------------------------------
89 
92 {
93 public:
96 
97  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
98  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker);
99 
100 private:
102 };
103 
106 {
107 public:
110  : _matSet(matSet), _vecSet(vecSet), _fixedValues(fixedValues) {}
111 
112  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
113  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker);
114 
115 private:
119 };
120 
123 {
124 public:
127 
128  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
129  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker);
130 
131 private:
133 };
134 
137 {
138 public:
141 
142  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
143  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker);
144 
145 private:
147 };
148 
149 
150 //------------------------------------------------------------------------------------------------------------
151 //
152 // Matrix & vector assemblers in "Single" mode
153 //
154 //------------------------------------------------------------------------------------------------------------
155 
158 {
159 public:
162 
163  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
164  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker);
165 
166 private:
169 };
170 
173 {
174 public:
177  const QVector<double>& fixedValues, const QVector<double>& oldFixedValues)
178  : _matSet(matSet), _vecSet(vecSet), _fixedValues(fixedValues), _oldFixedValues(oldFixedValues) {}
179 
180  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
181  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker);
182 
183 private:
188 };
189 
192 {
193 public:
196 
197  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
198  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker);
199 
200 private:
202 };
203 
206 {
207 public:
210 
211  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
212  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker);
213 
214 private:
216 };
217 
218 
219 //------------------------------------------------------------------------------------------------------------
220 //
221 // Matrix & vector assemblers for "Debug" mode (for filling debug matrices and vectors)
222 //
223 //------------------------------------------------------------------------------------------------------------
224 
227 {
228 public:
231 
232  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
233  const GmpFemAssemblerMatrixCombiner* combiner, GmpFemLocker* locker);
234 
235 private:
237 };
238 
241 {
242 public:
245 
246  virtual void addData(int n, const int* indexMap, const GmDofMap* dofMap,
247  const GmpFemAssemblerVectorCombiner* combiner, GmpFemLocker* locker);
248 
249 private:
251 };
252 
253 
254 #endif
255 
Assembler adder for adding matrices in "matching mode", WITH boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:105
Assembler adder for adding vectors in "single mode", WITHOUT boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:191
GmpFemAssemblerSingleMatrixAdderWithReduction(GmpFemMatrixSet *matSet, GmpFemVectorSet *vecSet, const QVector< double > &fixedValues, const QVector< double > &oldFixedValues)
Constructor.
Definition: gmpFemAssemblerAdder.h:176
const QVector< double > & _fixedValues
A reference for the assembler vector storing fixed dof values.
Definition: gmpFemAssemblerAdder.h:186
Assembler adder for adding to special debug vectors in "single debug mode", with or without boundary ...
Definition: gmpFemAssemblerAdder.h:240
Assembler adder for adding vectors in "matching mode", WITHOUT boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:122
GmpFemVectorSet * _vecSet
The vector set providing local vectors and the target global vectors.
Definition: gmpFemAssemblerAdder.h:250
GmpFemVectorSet * _vecSet
The vector set providing the target global vectors for dof transposition.
Definition: gmpFemAssemblerAdder.h:117
GmpFemMatrixSet * _matSet
The matrix set providing local matrices and the target global matrices.
Definition: gmpFemAssemblerAdder.h:116
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)=0
Virtual function responsible for assembling data from an element's local vectors to the target global...
GmpFemAssemblerMatchingVectorAdderWithReduction(GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:140
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)
Adder function for adding matrices in "single mode", WITH boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:505
GmpFemMatrixSet * _matSet
The matrix set providing local matrices and the target global matrix.
Definition: gmpFemAssemblerAdder.h:167
GmpFemAssemblerDebugVectorAdder(GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:244
A convenience class that builds a GmVectorSet with the types given by GmpFemVectorTypes and also asso...
Definition: gmpFemVectorSet.h:47
Assembler adder for adding matrices in "single mode", WITH boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:172
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)
Adder function for adding vectors in "single mode", WITHOUT boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:693
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)
Adder function for adding matrices in "single mode", WITHOUT boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:374
GmpFemAssemblerSingleVectorAdderNoReduction(GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:195
A convenience class that builds a GmMatrixSet with the types given by GmpFemMatrixTypes and also asso...
Definition: gmpFemMatrixSet.h:56
GmpFemVectorSet * _vecSet
The vector set providing the target global vector for dof transposition.
Definition: gmpFemAssemblerAdder.h:185
GmpFemVectorSet * _vecSet
The vector set providing the global vector to which local matrix contributions will be added,...
Definition: gmpFemAssemblerAdder.h:168
Basic interface for defining the rules used to combine information from multiple matrices into a sing...
Definition: gmpFemAssemblerCombiner.h:33
GmpFemAssemblerMatchingVectorAdderNoReduction(GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:126
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)
Adder function for adding vectors in "single debug" to the special debug vectors, with or without bou...
Definition: gmpFemAssemblerAdder.cpp:896
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)
Adder function for adding vectors in "matching mode", WITHOUT boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:279
GmpFemVectorSet * _vecSet
The vector set providing local vectors and the target global vector.
Definition: gmpFemAssemblerAdder.h:201
Interface for an object responsible for assemblying local matrices into global matrices....
Definition: gmpFemAssemblerAdder.h:42
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)
Adder function for adding matrices in "matching mode", WITHOUT boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:88
GmpFemAssemblerSingleMatrixAdderNoReduction(GmpFemMatrixSet *matSet, GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:161
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)
Adder function for adding vectors in "matching mode", WITH boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:319
A lock manager to be used by GmpFemAssemblerMatrixAdder and GmpFemAssemblerVectorAdder objects when w...
Definition: gmpFemLocker.h:38
const QVector< double > & _fixedValues
A reference for the assembler vector storing fixed dof values.
Definition: gmpFemAssemblerAdder.h:118
GmpFemVectorSet * _vecSet
The vector set providing local vectors and the target global vectors.
Definition: gmpFemAssemblerAdder.h:132
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)
Adder function for adding matrices in "matching mode", WITH boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:171
GmpFemVectorSet * _vecSet
The vector set providing local vectors and the target global vectors.
Definition: gmpFemAssemblerAdder.h:146
GmpFemMatrixSet * _matSet
The matrix set providing local matrices and the target global matrix.
Definition: gmpFemAssemblerAdder.h:184
Basic interface for defining the rules used to combine information from multiple vectors into a singl...
Definition: gmpFemAssemblerCombiner.h:102
const QVector< double > & _oldFixedValues
A reference for the assembler vector storing old fixed dof values.
Definition: gmpFemAssemblerAdder.h:187
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)=0
Virtual function responsible for assembling data from an element's local matrices to the target globa...
Assembler adder for adding to special debug matrices in "single debug mode", with or without boundary...
Definition: gmpFemAssemblerAdder.h:226
GmpFemAssemblerDebugMatrixAdder(GmpFemMatrixSet *matSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:230
Assembler adder for adding matrices in "matching mode", WITHOUT boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:91
GmpFemMatrixSet * _matSet
The matrix set providing local matrices and the target global matrices.
Definition: gmpFemAssemblerAdder.h:236
GmpFemAssemblerMatchingMatrixAdderWithReduction(GmpFemMatrixSet *matSet, GmpFemVectorSet *vecSet, const QVector< double > &fixedValues)
Constructor.
Definition: gmpFemAssemblerAdder.h:109
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerMatrixCombiner *combiner, GmpFemLocker *locker)
Adder function for adding matrices in "single debug" to the special debug matrices,...
Definition: gmpFemAssemblerAdder.cpp:806
Assembler adder for adding matrices in "single mode", WITHOUT boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:157
virtual void addData(int n, const int *indexMap, const GmDofMap *dofMap, const GmpFemAssemblerVectorCombiner *combiner, GmpFemLocker *locker)
Adder function for adding vectors in "single mode", WITH boundary condition reduction....
Definition: gmpFemAssemblerAdder.cpp:738
Assembler adder for adding vectors in "matching mode", WITH boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:136
GmpFemVectorSet * _vecSet
The vector set providing local vectors and the target global vector.
Definition: gmpFemAssemblerAdder.h:215
GmpFemMatrixSet * _matSet
The matrix set providing local matrices and the target global matrices.
Definition: gmpFemAssemblerAdder.h:101
Assembler adder for adding vectors in "single mode", WITH boundary condition reduction.
Definition: gmpFemAssemblerAdder.h:205
Declaration of usefull configuration definitions for the plugin library.
Interface for an object responsible for assemblying local vectors into global vectors....
Definition: gmpFemAssemblerAdder.h:64
GmpFemAssemblerMatchingMatrixAdderNoReduction(GmpFemMatrixSet *matSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:95
GmpFemAssemblerSingleVectorAdderWithReduction(GmpFemVectorSet *vecSet)
Constructor.
Definition: gmpFemAssemblerAdder.h:209