C++ main module for emicrom Package  1.0
EMM_DisplacementFVM_SSGROperator.h
Go to the documentation of this file.
1 #ifndef EMM_DisplacementFVM_SSGROperator_H
2 #define EMM_DisplacementFVM_SSGROperator_H
3 
5 
45 
47  // ATTRIBUTES
48 
49 
50 private:
51 
52 
53 
54 public:
55 
56 
57  // ASSOCIATION
58 
59 private:
60 
61 
62 
63 
64 protected:
65 
66  // METHODS
67 
68  // CONSTRUCTORS
69 
73 
74  // DESTRUCTORS
75 
78  virtual ~EMM_DisplacementFVM_SSGROperator(void);
79 
80 
81 public:
82 
83 
84  //SET Methods
85  //============
131  virtual void computeGradUAtFace(const tBoolean& withConstraints,
132  const tReal *h,
133  const tUInteger& xCell,const tUInteger& yCell,const tUInteger& zCell,
134  const tUCInt& f,
135  const tUIndex& nextCell,
136  const tUInteger& Px,const tUInteger& Py,const tUInteger& Pz,
137  const tBoolean *periodicity,
138  const CORE_UIndexMorseArray& neighborsIndices,
139  const tDimension& dim,
140  const tReal * Ucells,
141  const tReal* Ui,
142  const tLimitCondition* lc,const tBoolean& incU0, const tReal* U0,
143  tReal gradU[9]) const {
144  //get the values of U on all points
145  const tReal *Upoints=null;
146  tUIndex n;
147  getUVertexInterpolation().getValues(n,Upoints);
148 
150  h,
151  xCell,yCell,zCell,f,nextCell,
152  Px,Py,Pz,
153  periodicity,
154  dim,Ucells,Ui,
155  lc,Upoints,
156  gradU);
157  }
158 
159 protected:
160 
200  virtual void computeGradAlmostNullUAtFace(const tReal *h,
201  const tUInteger& xCell,const tUInteger& yCell,const tUInteger& zCell,
202  const tUCInt& f,
203  const tUIndex& nextCell,
204  const tUInteger& Px,const tUInteger& Py,const tUInteger& Pz,
205  const tBoolean* periodicity,
206  const CORE_UIndexMorseArray& neighborsIndices,
207  const tLimitCondition* lc,
208  const tDimension& dim,
209  const tReal* Ui,
210  tReal gradU[9]) const {
211 
212  computeGradAlmostNullUAtFaceByStokesIntegration(h,xCell,yCell,zCell,f,nextCell,
213  Px,Py,Pz,
214  periodicity,neighborsIndices,lc,dim,Ui,gradU);
215  }
216 
217 
218 private:
219 
220  //computing grad U at face reconstruction
221  //=======================================
222 
262  void computeGradUAtFaceByStokesIntegration(const tBoolean& withConstraints,
263  const tReal *h,
264  const tUInteger& xCell,const tUInteger& yCell,const tUInteger& zCell,
265  const tUCInt& f,
266  const tUIndex& nextCell,
267  const tUInteger& nPx,const tUInteger& nPy,const tUInteger& nPz,
268  const tBoolean *periodicity,
269  const tDimension& dim,
270  const tReal * Ucells,
271  const tReal* Ui,
272  const tLimitCondition* lc,
273  const tReal *Upoints,
274  tReal gradU[9]) const;
275 
276 
277 
318  const tUInteger& xCell,
319  const tUInteger& yCell,
320  const tUInteger& zCell,
321  const tUCInt& f,
322  const tUIndex& nextCell,
323  const tUInteger& Px,const tUInteger& Py,const tUInteger& Pz,
324  const tBoolean* periodicity,
325  const CORE_UIndexMorseArray& neighbors,
326  const tLimitCondition* lc,
327  const tDimension& dim,
328  const tReal* Ui,
329  tReal gradU[9]) const;
330 
331 
332 
333 
334 
335  //STRING representation
336  //=======================
337 
340  virtual tString toString() const {
342  return ret;
343  }
344 
345 
346 
347 };
348 
349 #endif
350 
virtual tString toString() const
turn the class into string
Definition: EMM_DisplacementFVMOperator.h:721
#define tLimitCondition
Definition: EMM_Types.h:19
#define tUInteger
Definition: types.h:91
DEFINE_SPTR(EMM_DisplacementFVM_SSGROperator)
void computeGradAlmostNullUAtFaceByStokesIntegration(const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighbors, const tLimitCondition *lc, const tDimension &dim, const tReal *Ui, tReal gradU[9]) const
compute the gradient U on face by using the Stokes integration when U is almost null everywhere excep...
Definition: EMM_DisplacementFVM_SSGROperator.cpp:295
#define tUCInt
Definition: types.h:21
#define tBoolean
Definition: types.h:139
SP_OBJECT(EMM_DisplacementFVM_SSGROperator)
#define null
Definition: types.h:144
#define tDimension
Definition: EMM_Types.h:10
virtual void computeGradUAtFace(const tBoolean &withConstraints, const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighborsIndices, const tDimension &dim, const tReal *Ucells, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal gradU[9]) const
compute the gradient U at the center of the face f of a cell whch is either an interior face or a Dir...
Definition: EMM_DisplacementFVM_SSGROperator.h:131
This class describes the method to interpolate U on points, faces and cells.
Definition: EMM_DisplacementFVM_VOGGROperator.h:48
virtual void computeGradAlmostNullUAtFace(const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighborsIndices, const tLimitCondition *lc, const tDimension &dim, const tReal *Ui, tReal gradU[9]) const
computes the gradient U at the center of net cell of the cell (xCell,yCell,zCell) with the interface ...
Definition: EMM_DisplacementFVM_SSGROperator.h:200
This class describes the displacement operator defined on the cells of the mesh with Surface Gradient...
Definition: EMM_DisplacementFVM_SSGROperator.h:44
virtual tBoolean getValues(tUIndex &size, const float *&values) const
get the values
Definition: EMM_RealField.h:585
#define tUIndex
Definition: types.h:126
EMM_DisplacementFVM_SSGROperator(void)
create
Definition: EMM_DisplacementFVM_SSGROperator.cpp:10
#define tString
Definition: types.h:135
void computeGradUAtFaceByStokesIntegration(const tBoolean &withConstraints, const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &nPx, const tUInteger &nPy, const tUInteger &nPz, const tBoolean *periodicity, const tDimension &dim, const tReal *Ucells, const tReal *Ui, const tLimitCondition *lc, const tReal *Upoints, tReal gradU[9]) const
compute the gradient U on face by using the Stokes integration
Definition: EMM_DisplacementFVM_SSGROperator.cpp:21
virtual tString toString() const
turn the class into string
Definition: EMM_DisplacementFVM_SSGROperator.h:340
const EMM_RealField & getUVertexInterpolation() const
get the displacement at points for reading
Definition: EMM_DisplacementFVM_VIGROperator.h:72
#define tReal
Definition: types.h:118
virtual ~EMM_DisplacementFVM_SSGROperator(void)
destroy
Definition: EMM_DisplacementFVM_SSGROperator.cpp:14