1 #ifndef EMM_DisplacementFVM_Interpolator_H 2 #define EMM_DisplacementFVM_Interpolator_H 213 N,isPeriodic,neighborIndices,
215 limitConditionOnPoints,U0,
283 const tReal* &iU)
const;
318 const tReal* Upoints,
358 periodicity,neighborsIndices,f,dim,
478 const tReal* Upoints,
517 const tReal* Upoints,
This class is a base class of E-MicromM core package.
Definition: EMM_Object.h:21
virtual tUIndex getSize() const =0
return the size of the field
#define tLimitCondition
Definition: EMM_Types.h:19
#define tUInteger
Definition: types.h:91
static const tUIndex DIRICHLET_FACE
Definition: EMM_DisplacementFVM_Interpolator.h:27
static void interpolateUAtVertex(tUInteger xP, tUInteger yP, tUInteger zP, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean isPeriodic[3], const CORE_UIndexMorseArray &neighborIndices, const tDimension &dim, const tReal *Ucells, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, const tLimitCondition &LCp, tReal *Up)
Definition: EMM_DisplacementFVM_Interpolator.h:129
#define tUCInt
Definition: types.h:21
#define tUSInt
Definition: types.h:28
#define tBoolean
Definition: types.h:139
static void interpolateAlmostNullUAtVertex(const tUInteger &xP, const tUInteger &yP, const tUInteger &zP, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean isPeriodic[3], const CORE_UIndexMorseArray &neighborIndices, const tDimension &dim, const tUIndex &iCell, const tReal *Ui, const tLimitCondition *lc, const tLimitCondition &LCp, tReal *Up)
Definition: EMM_DisplacementFVM_Interpolator.h:168
static tBoolean faceMean(const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tBoolean *isPeriodic, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tDimension &dim, const tLimitCondition *lc, const tBoolean &incU, const tReal *Upoints, tReal *Um)
compute the mean value of U defined on points at face f of the cell (xCell,yCell,zCell) ...
Definition: EMM_DisplacementFVM_Interpolator.cpp:973
static void interpolateUAtVertices(const tBoolean &withDirichletPoints, const tUInteger N[3], const tBoolean isPeriodic[3], const CORE_UIndexMorseArray &neighborIndices, const EMM_RealField &Ucells, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &U0, EMM_RealField &Up)
Definition: EMM_DisplacementFVM_Interpolator.h:202
#define null
Definition: types.h:144
#define tDimension
Definition: EMM_Types.h:10
DEFINE_SPTR(EMM_DisplacementFVM_Interpolator)
static void interpolateAlmostNullUAtFace(const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean periodicity[3], const CORE_UIndexMorseArray &neighborsIndices, const tUCInt &f, const tDimension &dim, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal *Umean)
compute interpolation of U at Face
Definition: EMM_DisplacementFVM_Interpolator.h:388
static void interpolateUAtVertex(tUInteger xP, tUInteger yP, tUInteger zP, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean isPeriodic[3], const CORE_UIndexMorseArray &neighborIndices, const tDimension &dim, const tReal *Ucells, const tUIndex &iCell, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, const tLimitCondition &LCp, tReal *Up)
Definition: EMM_DisplacementFVM_Interpolator.cpp:89
EMM_DisplacementFVM_Interpolator(void)
create
Definition: EMM_DisplacementFVM_Interpolator.cpp:13
SP_OBJECT(EMM_DisplacementFVM_Interpolator)
Definition: EMM_DisplacementFVM_Interpolator.h:16
static const tUIndex NEUMANN_FACE
Definition: EMM_DisplacementFVM_Interpolator.h:26
virtual tBoolean getValues(tUIndex &size, const float *&values) const
get the values
Definition: EMM_RealField.h:585
#define tUIndex
Definition: types.h:126
static tBoolean cellMean(const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tBoolean *isPeriodic, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tDimension &dim, const tLimitCondition *lc, const tBoolean &incU, const tReal *Upoints, tReal *Um)
compute the mean value of U defined on points at cell (xCell,yCell,zCell)
Definition: EMM_DisplacementFVM_Interpolator.cpp:1076
const tDimension & getDimension() const
get the dimension
Definition: EMM_RealField.h:553
static tBoolean edgeMean(const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUCInt &g, const tBoolean *isPeriodic, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tDimension &dim, const tLimitCondition *lc, const tBoolean &incU, const tReal *Upoints, tReal *Um)
compute the mean value of U defined on points at edge between face f and face g of the cell (xCell...
Definition: EMM_DisplacementFVM_Interpolator.cpp:751
virtual ~EMM_DisplacementFVM_Interpolator(void)
destroy
Definition: EMM_DisplacementFVM_Interpolator.cpp:17
This class describes a real field.
Definition: EMM_RealField.h:21
#define tReal
Definition: types.h:118
void interpolateUAtEdge(const tBoolean &withConstraints, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const tDimension &dim, const tUCInt &l, const tUCInt &r, const tReal *Ucells, const tReal *Uc, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, const tUIndex *Nc, const CORE_UIndexMorseArray &neighbors, tReal *iUc, const tReal *&iU) const
interpolate U at edge
Definition: EMM_DisplacementFVM_Interpolator.cpp:451
static void interpolateUAtFace(const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean periodicity[3], const CORE_UIndexMorseArray &neighborsIndices, const tUCInt &f, const tDimension &dim, const tReal *Ucells, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal *Umean)
compute interpolation of U at Face
Definition: EMM_DisplacementFVM_Interpolator.h:348
static tUSInt computeNeighborCellsNumber(const tUInteger &iP, const tUInteger &jP, const tUInteger &kP, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighbors)
compute the number of cells connected to vertex
Definition: EMM_DisplacementFVM_Interpolator.cpp:24