C++ main module for emicrom Package  1.0
EMM_DisplacementFVM_VTEGROperator.h
Go to the documentation of this file.
1 #ifndef EMM_DisplacementFVM_VTEGROperator_H
2 #define EMM_DisplacementFVM_VTEGROperator_H
3 
5 
50 
52  // ATTRIBUTES
53 
54 
55 private:
56 
57 
58 
59 public:
60 
61 
62  // ASSOCIATION
63 
64 private:
65 
66 
67 
68 
69 
70 protected:
71 
72  // METHODS
73 
74  // CONSTRUCTORS
75 
79 
80  // DESTRUCTORS
81 
85 
86 
87 public:
88 
89 
90  //SET Methods
91  //============
92 
93 
94 
95 
96 public:
97 
98 
99 
100  //Grad U at cell reconstruction
101  //=============================
102 
135  virtual void computeGradUAtCell(const tBoolean& withConstraints,const tReal *h,
136  const tUInteger& xCell, const tUInteger& yCell,const tUInteger& zCell,
137  const tUInteger& Px, const tUInteger& Py,const tUInteger& Pz,
138  const tBoolean *periodicity,
139  const tUIndex* neighbors,
140  const tDimension& dim,
141  const tReal *Ucells,const tReal *Ui,
142  const tLimitCondition* lc,const tBoolean& incU0, const tReal* U0,
143  tReal gradU[9]) const {
144 
146  h,xCell,yCell,zCell,
147  Px,Py,Pz,
148  periodicity,
149  neighbors,
150  dim,
151  Ucells,Ui,
152  lc,incU0,U0,
153  gradU);
154  }
155 
156 protected:
157 
174  virtual void computeGradAlmostNullUAtCell(const tReal *h,
175  const tUInteger& xCell,
176  const tUInteger& yCell,
177  const tUInteger& zCell,
178  const tUInteger& Px,
179  const tUInteger& Py,
180  const tUInteger& Pz,
181  const tBoolean *periodicity,
182  const CORE_UIndexMorseArray& neighborsIndices,
183  const tDimension& dim,
184  const tReal *Ui,
185  tReal gradU[9]) const{
186 
188  xCell,yCell,zCell,
189  Px,Py,Pz,
190  neighborsIndices[xCell+(Px-1)*(yCell+(Py-1)*zCell)],
191  dim,Ui,
192  gradU);
193  }
194 
214  const tUInteger& xCell,
215  const tUInteger& yCell,
216  const tUInteger& zCell,
217  const tUCInt& f,
218  const tUIndex& nextCell,
219  const tUInteger& Px,
220  const tUInteger& Py,
221  const tUInteger& Pz,
222  const tBoolean *periodicity,
223  const CORE_UIndexMorseArray& neighborsIndices,
224  const tDimension& dim,
225  const tReal *Ui,
226  tReal gradU[9]) const {
227 
229  xCell,yCell,zCell,
230  f,
231  Px,Py,Pz,
232  neighborsIndices[nextCell],
233  dim,Ui,
234  gradU);
235  }
236 
237 
238 
239 private:
240 
241 
275  const tReal *h,
276  const tUInteger& xCell, const tUInteger& yCell,const tUInteger& zCell,
277  const tUInteger& Px, const tUInteger& Py,const tUInteger& Pz,
278  const tBoolean *periodicity,
279  const tUIndex* neighbors,
280  const tDimension& dim,
281  const tReal *U,const tReal *Ui,
282  const tLimitCondition* lc,const tBoolean& incU0, const tReal* U0,
283  tReal gradU[9]) const;
284 
285 
305  const tUInteger& xCell,
306  const tUInteger& yCell,
307  const tUInteger& zCell,
308  const tUInteger& Px,
309  const tUInteger& Py,
310  const tUInteger& Pz,
311  const tUIndex* neighbors,
312  const tDimension& dim,
313  const tReal* Ucell,
314  tReal gradU[9]) const;
335  const tUInteger& xCell,
336  const tUInteger& yCell,
337  const tUInteger& zCell,
338  const tUSInt& f,
339  const tUInteger& Px,
340  const tUInteger& Py,
341  const tUInteger& Pz,
342  const tUIndex* neighbors,
343  const tDimension& dim,
344  const tReal* Ucell,
345  tReal gradU[9]) const;
346 
347 
348 
349  //STRING representation
350  //=======================
351 
354  virtual tString toString() const {
356  return ret;
357  }
358 
359 
360 
361 };
362 
363 #endif
364 
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
SP_OBJECT(EMM_DisplacementFVM_VTEGROperator)
virtual void computeGradAlmostNullUAtNextCell(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 *Ui, tReal gradU[9]) const
compute the value of Grad U on next cell when U is almost null everywhere except at cell...
Definition: EMM_DisplacementFVM_VTEGROperator.h:213
virtual void computeGradUAtCell(const tBoolean &withConstraints, const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const tUIndex *neighbors, const tDimension &dim, const tReal *Ucells, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal gradU[9]) const
compute the value of Grad U on cell
Definition: EMM_DisplacementFVM_VTEGROperator.h:135
#define tUCInt
Definition: types.h:21
void computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tUIndex *neighbors, const tDimension &dim, const tReal *Ucell, tReal gradU[9]) const
compute the value of Grad U on cell using the Taylor Expansion formula base on value on displacement ...
Definition: EMM_DisplacementFVM_VTEGROperator.cpp:227
#define tUSInt
Definition: types.h:28
#define tBoolean
Definition: types.h:139
DEFINE_SPTR(EMM_DisplacementFVM_VTEGROperator)
void computeGradAlmostNullUAtNextCellByTaylorExpansionWithNeumannInterpolation(const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUSInt &f, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tUIndex *neighbors, const tDimension &dim, const tReal *Ucell, tReal gradU[9]) const
compute the value of Grad U on next cell using the taylor expansion formula base on value on displace...
Definition: EMM_DisplacementFVM_VTEGROperator.cpp:409
#define tDimension
Definition: EMM_Types.h:10
void computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(const tBoolean &withConstraints, const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const tUIndex *neighbors, const tDimension &dim, const tReal *U, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal gradU[9]) const
compute the value of Grad U on cell with a Taylor expansion
Definition: EMM_DisplacementFVM_VTEGROperator.cpp:20
#define tUIndex
Definition: types.h:126
#define tString
Definition: types.h:135
This class describes the displacement operator defined on the cells of the mesh with Volume Gradient ...
Definition: EMM_DisplacementFVM_VTEGROperator.h:49
virtual ~EMM_DisplacementFVM_VTEGROperator(void)
destroy
Definition: EMM_DisplacementFVM_VTEGROperator.cpp:12
virtual void computeGradAlmostNullUAtCell(const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighborsIndices, const tDimension &dim, const tReal *Ui, tReal gradU[9]) const
compute the value of Grad U on cell when U is almost null everywhere except at cell ...
Definition: EMM_DisplacementFVM_VTEGROperator.h:174
EMM_DisplacementFVM_VTEGROperator(void)
create
Definition: EMM_DisplacementFVM_VTEGROperator.cpp:8
virtual tString toString() const
turn the class into string
Definition: EMM_DisplacementFVM_VTEGROperator.h:354
#define tReal
Definition: types.h:118
This class describes the displacement operator defined on the cells of the mesh with Volume Gradient ...
Definition: EMM_DisplacementFVM_VGROperator.h:25