C++ main module for emicrom Package
1.0
|
This class describes the displacement operator based on Finite Differences Method EMM_DisplacementFVMOperator for the EMMG_MagnetostrictionOperator class. More...
#include <EMMG_DisplacementFVM_STEGROperator.h>
Public Member Functions | |
virtual void | computeElasticStress (const EMM_RealField &U, EMM_RealField &S) const |
compute the elastic stress for all cells More... | |
virtual void | computeMagneticStress (const tReal &alpha, const tReal &beta, const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &S) const |
compute the magnetic stress for all cells More... | |
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. f is either an interior face or a Dirichlet face More... | |
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 More... | |
virtual void | buildDataOnBoundaryFaces (const EMM_Grid3D &mesh, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &U0, EMM_RealField &DnU0) |
build the data on boundary faces Dirichlet and Neumann More... | |
const EMM_RealField & | getDisplacementOnDirichletBoundary () const |
get the displacement field at boundary for reading More... | |
EMM_RealField & | getDisplacementOnDirichletBoundary () |
get the displacement field at boundary for writing More... | |
virtual tBoolean | discretize (const EMM_LandauLifschitzSystem &system) |
discretize and initialize the operator More... | |
virtual tBoolean | resetToInitialState (const EMM_LandauLifschitzSystem &system) |
reset the operator to initial step More... | |
virtual tULLInt | getMemorySize () const |
return the memory size in byte More... | |
const CORE_UIndexMorseArray & | getNeighborsIndices () const |
get the index of the neighbor cells for each cell of the mesh for reading More... | |
CORE_UIndexMorseArray & | getNeighborsIndices () |
get the index of the neighbor cells for each cell of the mesh More... | |
const tUInteger * | getSegmentsNumber () const |
get number of segments in each direction More... | |
const tBoolean * | isDirectionPeriodic () const |
get priodic directions More... | |
void | setIsGhostCellOn (const tBoolean &isOn) |
set true to considered ghost cells on boundary faces More... | |
const tBoolean & | isGhostCellOn () const |
get true to considered ghost cells on boundary faces More... | |
virtual tBoolean | backup (const tString &prefix, const tString &suffix, const tString &ext) const |
backup of the operator data into file(s) used for restoring More... | |
virtual tBoolean | restore (const EMM_LandauLifschitzSystem &system, const tString &prefix, const tString &suffix, const tString &ext) |
restore the operator data from file(s) More... | |
virtual tBoolean | getDataFieldSpace (const tUSInt &index, tString &dataName, tFlag &supportType, tString &dFieldType, tUIndex &n, tDimension &dim) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual void | spaceProjection (const tUIndex &nPoints, const tDimension &dim, const tReal *V0, tReal *V) const |
make the projection of the vector B into the solving linear space More... | |
virtual void | setSolver (const tString &solverName) |
set the solver More... | |
void | setSolver (SP::MATH_Solver solver) |
set the solver More... | |
virtual void | computeEquilibriumMatrixDiagonalConditioner (MATH_Vector &D) const |
compute the diagonal conditioner More... | |
virtual void | computeElasticTensor (const EMM_RealField &U, EMM_2PackedSymmetricTensors &eTensor) |
compute the elastic tensor for all cells More... | |
void | computeElasticStress (const tUIndex &nData, const tDimension &dim, const tReal *U, tReal *D) const |
compute the elastic stress More... | |
void | computeMagneticStress (const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &S) const |
compute the magnetic stress for all cells More... | |
virtual tReal | computeCineticEnergy (const EMM_RealField &V) const |
compute the energy of the magnetostriction operator at current displacement and velocity More... | |
virtual tReal | computePotentialEnergy (const EMM_RealField &U) const |
compute the potential energy to the space variation of the displacement More... | |
tReal | computeStressConstraintEnergy (const EMM_RealField &Uf) const |
compute the stress constraint energy on boundary More... | |
tReal | computeStressConstraintEnergy (const tReal &t) const |
compute the energy of the boundary stress constraint More... | |
virtual void | adimensionize (const tReal &Le, const tReal &Ms, const tReal &T, const tReal &L) |
adimensionize the operator More... | |
const tReal * | getAdimensionizedSegmentsSize () const |
get the segments size in all directions More... | |
const EMM_RealArray & | getAdimensionizedVolumicMass () const |
get the adimensionized volumic mass per cell More... | |
const EMM_4SymmetricTensors & | getLambdaE () const |
return the adimensionized elastic tensor distribution More... | |
const EMM_4Tensors & | getLambdaEDoubleDotLambdaM () const |
return the adimensionized magnetic tensor distribution More... | |
const EMM_4Tensors & | getLambdaMDoubleDotLambdaE () const |
return the adimensionized magnetic tensor distribution More... | |
const EMM_4SymmetricTensors & | getLambdaMDoubleDotLambdaEDoubleDotLambdaM () const |
return the adimensionized magnetic tensor distribution More... | |
void | setInitialDisplacement (const tReal &scale, const tString &dataFile) |
set initial displacement field. More... | |
void | setInitialDisplacement (const tReal data[3]) |
set initial displacement field More... | |
void | setInitialDisplacement (const tReal U0, const tReal &U1, const tReal &U2) |
set initial displacement field More... | |
void | setInitialDisplacement (const EMM_RealField &data) |
set initial displacement field More... | |
void | setInitialVelocity (const tReal &scale, const tString &dataFile) |
set initial velocity field More... | |
void | setInitialVelocity (const EMM_RealField &data) |
set initial velocity field More... | |
void | setInitialVelocity (const tReal data[3]) |
set initial velocity field More... | |
void | setInitialVelocity (const tReal &V0, const tReal &V1, const tReal &V2) |
set initial velocity field More... | |
void | setLimitConditionOnPoints (const EMM_IntArray &lc) |
set the limit condition each point is set to More... | |
void | setLimitConditionOnPoints (const tLimitCondition &lc) |
set the limit condition to all points More... | |
void | setConstraints (const tFlag &C, const tString &dataFile) |
set constraints from file defined on points More... | |
void | setConstraints (const tFlag &C, const tReal data[3]) |
set constraints field More... | |
void | setConstraints (const tFlag &C, const tReal &C0, const tReal &C1, const tReal &C2) |
set initial constriants field More... | |
void | setConstraints (const tFlag &C, const EMM_RealField &data) |
set constraints More... | |
const tFlag & | getConstraintFaces () const |
get the constraint faces if face f is constrainted More... | |
const EMM_RealField & | getConstraints () const |
get the constraints field for reading More... | |
EMM_RealField & | getConstraints () |
get the constraints field for writing More... | |
const EMM_LimitConditionArray & | getLimitConditionOnPoints () const |
SPC::EMM_LimitConditionArray | getLimitConditionOnPointsByReference () const |
void | nullProjectionOnDirichletBoundary (EMM_RealField &V) const |
project the velocity to 0 on dirichlet boundary points More... | |
void | nullProjectionOnDirichletBoundary (const tUIndex &nPoints, const tDimension &dim, tReal *V) const |
project the velocity to 0 on dirichlet boundary points More... | |
void | projectionOnDirichletBoundary (const EMM_RealField &V0, EMM_RealField &V) const |
project the velocity to 0 on dirichlet boundary points More... | |
void | projectionOnDirichletBoundary (const tUIndex &nPoints, const tDimension &dim, const tBoolean &incV0, const tReal *V0, tReal *V) const |
project the velocity to 0 on dirichlet boundary points More... | |
void | periodicProjection (const tCellFlag &periodicity, const tUInteger nPoints[3], EMM_RealField &V) const |
make the periodic projection of the field V More... | |
const EMM_2PackedSymmetricTensors & | getElasticTensor () const |
return the elastic tensor More... | |
virtual tUSInt | getDataFieldsNumber () const |
get the number of field used in the operator More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const float *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const double *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const long double *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | isAffine () const |
return true if the operator is either constant or linear More... | |
virtual tBoolean | isGradientComputationable () const |
return true if the gradient of the magnetic excitation is computationable More... | |
void | setDisplacement (const EMM_RealField &u) |
set the displacement field More... | |
void | setDisplacement (const tReal &Ux, const tReal &Uy, const tReal &Uz) |
set the displacement field to an uniform vector defied on points More... | |
EMM_RealField & | getDisplacement () |
get the displacement for writing More... | |
const EMM_RealField & | getDisplacement () const |
get the displacement for reading More... | |
const EMM_RealField & | getDisplacement (const tReal &t) const |
get the veolicty at time More... | |
void | setVelocity (const EMM_RealField &v) |
set the velocity of dicplacement defined on points More... | |
void | setVelocity (const tReal &Vx, const tReal &Vy, const tReal &Vz) |
set the displacement velocity field to an uniform vector defined on points More... | |
EMM_RealField & | getVelocity () |
get the velocity for writing More... | |
const EMM_RealField & | getVelocity (const tReal &t) const |
get the velocity at time More... | |
const EMM_RealField & | getVelocity () const |
get the velocity at t for reading More... | |
EMM_RealField & | getAccelerator () |
get the accelerator for writing More... | |
const EMM_RealField & | getAccelerator () const |
get the accelerator for reading More... | |
MATH_Solver * | getSolver () |
get the solver of the system More... | |
void | setElasticityState (const tFlag &v) |
set the elasticity state More... | |
tBoolean | isSteadyState () const |
tBoolean | isEquilibriumState () const |
tBoolean | isFrozenState () const |
void | setTimeIntegrationMethod (const tFlag &m) |
set the time integration method for new field More... | |
const tFlag & | getTimeIntegrationMethod () const |
get the time integration method for next time step More... | |
void | setTimeIntegrationOrder (const tInt &o) |
set the time integration order for new field More... | |
const tUCInt & | getTimeIntegrationOrder () const |
get the time integration order for new field More... | |
const tReal & | getTimeStep () const |
get the time step for elasticty More... | |
void | setCFL (const tReal &cfl) |
set the cfl for computing the initial time step More... | |
virtual tBoolean | computeFieldsAtTime (const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0) |
compute the fields of operator at time More... | |
virtual tBoolean | updateAtNextTimeStep (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &Mt) |
update the data of operator at next time step More... | |
virtual SP::EMM_BlockEquilibriumMatrix | NewEquilibriumMatrix () const |
create the equilibrium matrix More... | |
void | setIsEquilibriumMatrixReconditioned (const tBoolean &c) |
set to true if the equilibrium matrix is conditioned More... | |
const tBoolean & | isEquilibriumMatrixReconditioned () const |
get if the equilibrium matrix is conditioned More... | |
tBoolean | computeEquilibriumState (const EMM_RealArray &sigma, const EMM_RealField &M, const EMM_RealField &U0, EMM_RealField &U) |
compute the equilibirum state More... | |
virtual void | computeElasticStressMatrixProduct (const tUIndex &nData, const tDimension &dim, const tReal *U, tReal *D) const |
compute the elastic stress Matrix product More... | |
void | computeStress (const EMM_RealArray &sigma, const EMM_RealField &U, const EMM_RealField &M, EMM_RealField &stress) const |
compute the stress More... | |
tReal | computeEnergy (const tReal &t, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M) const |
compute the energy of the magnetostriction operator at current displacement and velocity More... | |
tReal | computeCineticEnergyAtTime (const tReal &t) const |
compute the energy due to velocity More... | |
tReal | computePotentialEnergyAtTime (const tReal &t) const |
compute the potential energy to the space variation of the displacement More... | |
virtual tString | getName () const |
return an human reading name of the operator More... | |
const tBoolean & | isCubicVolume () const |
return the true if the element is cubic More... | |
const tReal & | getElementVolume () const |
return the adimensionized volume of the element More... | |
void | getSharedPointer (SP::CORE_Object &p) |
get the shared pointer of this class into p More... | |
void | getSharedPointer (SPC::CORE_Object &p) const |
get the shared pointer of this class into p More... | |
tString | getClassName () const |
return the class name of the object More... | |
tString | getIdentityString () const |
return the identity string of the object of the form className_at_address More... | |
tString | getPointerAddress () const |
return the identity string of the object More... | |
template<class T > | |
tBoolean | isInstanceOf () const |
test if the clas T is an instance of this class More... | |
tBoolean | isInstanceOf (const tString &name) const |
test if the object is an instance of className More... | |
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 More... | |
Static Public Member Functions | |
static SP::EMMG_DisplacementFVM_STEGROperator | New () |
create a cubic anisotropy operator More... | |
static void | setIsMemoryChecked (const tBoolean &v) |
set if the memory checking is used More... | |
static void | setOut (SP::CORE_Out out) |
set the output stream More... | |
static void | resetOut () |
reset the output stream More... | |
static void | setThread (SP::CORE_Thread thread) |
set the thread More... | |
static void | resetThread () |
reset the output stream More... | |
static CORE_Out & | out () |
get the output More... | |
static SP::CORE_Out | getOut () |
get the output More... | |
static CORE_Thread & | getThread () |
get the profilier More... | |
static const tBoolean & | isMemoryChecked () |
get if the memory checking is used More... | |
static tString | getClassName (const tString &identityString) |
return the class name of the object More... | |
template<class T > | |
static tString | getTypeName () |
get type name More... | |
static tBoolean | is64Architecture () |
return true if the machine is a 64 bits machine More... | |
static tBoolean | is32Architecture () |
return true if the machine is a 32 bits machine More... | |
static tString | pointer2String (const void *obj) |
return the string representation of a pointer More... | |
static void | printObjectsInMemory (ostream &f) |
print object in memory More... | |
static void | printObjectsInMemory () |
print object in memory in the standart output More... | |
static tChar | getMaxChar () |
get the max value for tChar type More... | |
static tChar | getMinChar () |
get the min value for tChar type More... | |
static tUChar | getMaxUChar () |
get the max value for tUChar type More... | |
static tUChar | getMinUChar () |
get the min value for tUChar type More... | |
static tSInt | getMaxSInt () |
get the max value for tSInt type More... | |
static tSInt | getMinSInt () |
get the min value for tSInt type More... | |
static tUSInt | getMaxUSInt () |
get the max value for tUSInt type More... | |
static tUSInt | getMinUSInt () |
get the min value for tUSInt type More... | |
static tInt | getMaxInt () |
get the max value for tInt type More... | |
static tInt | getMinInt () |
get the min value for tInt type More... | |
static tUInt | getMaxUInt () |
get the max value for tUInt type More... | |
static tUInt | getMinUInt () |
get the min value for tUInt type More... | |
static tLInt | getMaxLInt () |
get the max value for tLInt type More... | |
static tLInt | getMinLInt () |
get the min value for tLInt type More... | |
static tULInt | getMaxULInt () |
get the max value for tULInt type More... | |
static tULInt | getMinULInt () |
get the min value for tULInt type More... | |
static tLLInt | getMaxLLInt () |
get the max value for tULInt type More... | |
static tLLInt | getMinLLInt () |
get the min value for tLLInt type More... | |
static tULLInt | getMaxULLInt () |
get the max value for tULLInt type More... | |
static tULLInt | getMinULLInt () |
get the min value for tULLInt type More... | |
static tFloat | getMaxFloat () |
get the max value for tFloat type More... | |
static tFloat | getMinFloat () |
get the min value for tFloat type More... | |
template<class T > | |
static T | getEpsilon () |
get the epsilon value for T type More... | |
template<class T > | |
static T | getInfinity () |
get the infinity for T type More... | |
static tFloat | getFloatEpsilon () |
get the epsilon value for tFloat type More... | |
static tFloat | getFloatInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getMaxDouble () |
get the max value for tDouble type More... | |
static tDouble | getMinDouble () |
get the min value for tDouble type More... | |
static tDouble | getDoubleInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getDoubleEpsilon () |
get the epsilon value for tDouble type More... | |
static tLDouble | getMinLDouble () |
get the min value for tLDouble type More... | |
static tLDouble | getMaxLDouble () |
get the max value for tLDouble type More... | |
static tLDouble | getLDoubleEpsilon () |
get the epsilon value for tLDouble type More... | |
static tDouble | getLDoubleInfinity () |
get the infinity value for tDouble type More... | |
static tIndex | getMaxIndex () |
get the max value for the array/vector indexing type More... | |
static tIndex | getMinIndex () |
get the min value for the array/vector indexing type More... | |
static tUIndex | getMaxUIndex () |
get the max value for difference the array/vector indexing type More... | |
static tUIndex | getMinUIndex () |
get the min value for difference the array/vector indexing type More... | |
static tFlag | getMaxFlag () |
get the max value for the tFlag type More... | |
static tFlag | getMinFlag () |
get the min value for the tFlag type More... | |
static tUInteger | getMaxUInteger () |
get the max value for the unsigned integer type More... | |
static tUInteger | getMinUInteger () |
get the min value for the unsigned integer type More... | |
static tInteger | getMaxInteger () |
get the max value for the integer type More... | |
static tInteger | getMinInteger () |
get the min value for the integer type More... | |
static tReal | getMaxReal () |
get the max value for the real type More... | |
static tReal | getMinReal () |
get the min value for the real type More... | |
static tReal | getRealEpsilon () |
get the eps which is the difference between 1 and the least value greater than 1 that is representable. More... | |
static tReal | getRealInfinity () |
get the infinity value More... | |
template<class T > | |
static T | computeEpsilon () |
compute epsilon More... | |
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 More... | |
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) |
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) |
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) |
static void | interpolateUAtVertices (const tBoolean &withDirichletPoints, const tUInteger N[3], const tBoolean isPeriodic[3], const CORE_UIndexMorseArray &neighborIndices, const tUIndex &nCells, const tDimension &dim, const tReal *U, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &U0, EMM_RealField &Up) |
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,yCell,zCell) More... | |
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 More... | |
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 More... | |
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) More... | |
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) More... | |
Static Public Attributes | |
static const tFlag | P1 =1 |
static const tFlag | TE =0 |
static const tFlag | FROZEN_STATE =1 |
static const tFlag | EQUILIBRIUM_STATE =3 |
static const tFlag | UNSTEADY_STATE =0 |
static const tReal | Mu0 =4*M_PI*1e-07 |
static const tReal | Gamma =-1.7e11 |
static const tDimension | X =0 |
static const tDimension | Y =1 |
static const tDimension | Z =2 |
static const tReal | NULL_VALUE [] ={0,0,0} |
Protected Member Functions | |
EMMG_DisplacementFVM_STEGROperator (void) | |
create More... | |
virtual | ~EMMG_DisplacementFVM_STEGROperator (void) |
destroy More... | |
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 |
compute the gradient U at the center of the face f of a cell when U is almost null More... | |
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 More... | |
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. More... | |
virtual void | toDoAfterThisSetting () |
to to after thios setting More... | |
virtual tBoolean | solveAcceleratorSystem (EMM_RealField &V) |
solve the velocity from the mass matrix : M.X=V V:=X More... | |
virtual void | spaceProjection (EMM_RealField &V) const |
make the projection of the vector B into the solving linear space More... | |
virtual void | spaceProjection (const EMM_RealField &V0, EMM_RealField &V) const |
make the projection of the vector B into the solving linear space More... | |
virtual void | spaceRelevant (EMM_RealField &V) const |
make the relevment of the vector B from the solving linear space. More... | |
virtual void | computeElasticTensor (const tUIndex &nData, const tDimension &dim, const tReal *U, EMM_2PackedSymmetricTensors &eTensor) const |
compute the elastic tensor for all cells More... | |
virtual void | computeElasticStress (const tBoolean &withConstraints, const tReal &beta, const tUIndex &nData, const tDimension &dim, const tReal *U, tReal *S) const |
compute the elastic stress More... | |
virtual void | computeMagneticStress (const tReal &alpha, const tReal &beta, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, const tUIndex &nData, tReal *D) const |
compute the magnetic stress to elastic stress S More... | |
virtual void | initializeEquilibriumSolver (const EMM_RealField &U0) |
initialize the equilibrium solver More... | |
void | setThis (SP::CORE_Object p) |
set this weak shared pointer called toDoAfterThis setting method More... | |
Static Protected Attributes | |
static const tUIndex | NEUMANN_FACE =CORE_Object::getMaxIndex() |
static const tUIndex | DIRICHLET_FACE =CORE_Object::getMaxIndex()+1 |
Private Member Functions | |
SP_OBJECT (EMMG_DisplacementFVM_STEGROperator) | |
This class describes the displacement operator based on Finite Differences Method EMM_DisplacementFVMOperator for the EMMG_MagnetostrictionOperator class.
|
inlineprotected |
|
inlineprotectedvirtual |
destroy
|
inlinevirtualinherited |
adimensionize the operator
[in] | Le | common elasticity adimensionized parameter |
[in] | Ms | common magnetization at saturation |
[in] | T | caracterictic time |
[in] | L | caracteristic length |
adimensionize the associated displacement operator
Reimplemented from EMM_Operator.
|
virtualinherited |
backup of the operator data into file(s) used for restoring
prefix | : common prefix of the saving files |
suffix | : common suffix of the saving files |
ext | : common extension of the saving files |
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::backup(), EMM_DisplacementFVMOperator::mU0, CORE_Object::out(), CORE_Out::println(), tBoolean, and tString.
Referenced by EMM_DisplacementFVMOperator::isGhostCellOn().
|
inlinevirtualinherited |
build the data on boundary faces Dirichlet and Neumann
mesh | the mesh of the domain |
limitConditionOnPoints | : limit condition on points |
U0 | : U at all points |
DnU0 | : grad UO . N at each point (applied forces) |
Implements EMM_DisplacementOperator.
References EMM_DisplacementFVMOperator::buildDataOnDirichletBoundaryFaces(), EMM_DisplacementFVMOperator::buildDataOnNeumannBoundaryFaces(), and EMM_DisplacementFVMOperator::setBoundaryFaceTypes().
|
staticinherited |
compute the mean value of U defined on points at cell (xCell,yCell,zCell)
[in] | xCell | x-index of the cell in [0,Nx[ to compute the mean of U |
[in] | yCell | y-index of the cell in [0,Ny[ to compute the mean of U |
[in] | zCell | z-index of the cell in [0,Nz[ to compute the mean of U |
[in] | isPeriodic | : periodicity of the domain |
[in] | Px | : number of points in x-direction |
[in] | Py | : number of points in y-direction |
[in] | Pz | : number of points in z-direction |
[in] | dim | : dimension of each point of U |
[in] | lc | : limit condition on points |
[in] | incU | : size of incement of U (0: if constant) |
[in] | Upoints | values of U at all points |
[out] | Um | mean of U on cell |
commpute the mean of U over the cell at segment indices xcell,yCell,zCell into Um
with iP is the point of the cell
References EMM_Grid3D::ELEMENT_POINTS, EMM_Grid3D::GET_MASTER_PERIODIC_POINT(), EMM_Grid3D::getPeriodicIndicator(), null, EMM_Grid3D::POINTS_NUMBER_PER_ELEMENT, EMM_Grid3D::SLAVE_LIMIT_CONDITION, tBoolean, tDimension, tReal, tUCInt, tUIndex, and tUInteger.
Referenced by EMM_DisplacementFVM_Interpolator::interpolateAlmostNullUAtFace().
|
virtualinherited |
compute the energy of the magnetostriction operator at current displacement and velocity
V | velocity |
Implements EMM_DisplacementOperator.
References CORE_MorseArray< T >::begin(), EMM_DisplacementOperator::getAdimensionizedVolumicMass(), EMM_RealField::getDimension(), EMM_Operator::getElementVolume(), CORE_Array< T >::getSize(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_RealField::getValues(), EMM_DisplacementFVMOperator::mNeighborsIndices, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT_REDUCTION, CORE_MorseArrayConstIterator< T >::size(), tBoolean, tDimension, tReal, tUIndex, and tUInteger.
Referenced by EMM_DisplacementFVMOperator::computeElasticTensor().
compute the energy due to velocity
t | time in [0,dt[ where dt is the time step |
References EMM_DisplacementOperator::computeCineticEnergy(), EMM_DisplacementOperator::getVelocity(), and tReal.
Referenced by EMM_DisplacementOperator::computeEnergy().
|
inlinevirtual |
compute the elastic stress for all cells
U | the displacement field |
S | the elastic stress |
It computes:
where
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementFVMOperator::computeElasticStress(), EMM_RealField::getDimension(), EMM_RealField::getSize(), null, EMM_RealField::setDimension(), EMM_RealField::setSize(), tDimension, and tUIndex.
|
protectedvirtualinherited |
compute the elastic stress
withConstraints | : false if constraints on neumann boundary are ignored |
beta | multiplicator factor |
nData | number of data for U / S (nCells or nVertices depending on the method) |
dim | dimension of the problem in [1,3] |
U | the displacement field values of size nData x dim |
S | the elastics stress of size nData x dim |
On a cell w, we have
So, is only needs to compute the gradient U at all faces of the cell.
Implements EMM_DisplacementOperator.
References CORE_MorseArray< T >::begin(), EMM_DisplacementFVMOperator::computeGradUAtFace(), EMM_DisplacementFVM_Interpolator::faceMean(), EMM_DisplacementOperator::getAdimensionizedSegmentsSize(), EMM_DisplacementOperator::getConstraintFaces(), EMM_DisplacementOperator::getConstraints(), EMM_DisplacementFVMOperator::getDisplacementOnDirichletBoundary(), EMM_4Tensors::getIndex(), EMM_DisplacementOperator::getLambdaE(), EMM_DisplacementOperator::getLimitConditionOnPoints(), EMM_DisplacementFVMOperator::getNeighborsIndices(), EMM_DisplacementFVMOperator::getSegmentsNumber(), EMM_4Tensors::getTensorSize(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_Tensors::getValues(), EMM_RealField::getValues(), iand, EMM_DisplacementFVMOperator::isDirectionPeriodic(), EMM_DisplacementFVM_Interpolator::NEUMANN_FACE, null, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, CORE_MorseArrayConstIterator< T >::size(), tBoolean, tCInt, tDimension, tFlag, tLimitCondition, tReal, tUCInt, tUIndex, tUInteger, EMM_Grid3D::UNMAGNETIZED_ELEMENT, and CORE_MorseArrayConstIterator< T >::values().
Referenced by EMMG_DisplacementFVM_SSGROperator::computeElasticStress(), computeElasticStress(), EMMG_DisplacementFVM_VTEGROperator::computeElasticStress(), EMMG_DisplacementFVM_VOGGROperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), and EMM_DisplacementFVMOperator::computeElasticTensor().
|
inlineinherited |
compute the elastic stress
nData | number of data for U (nCells or nVertices depending on the method) |
dim | dimension of the problem in [1,3] |
U | the displacement field values |
D | the elastic stress of size nData*dim |
It computes
where is the index of the p-th point into cell , P is the number of interior magnetized points and is the set of cells connected to point q.
Algorithm:
References EMM_DisplacementOperator::computeElasticStress(), tBoolean, tDimension, tReal, and tUIndex.
|
inlinevirtualinherited |
compute the elastic stress Matrix product
nData | number of data for U (nCells or nVertices depending on the method) |
dim | dimension of the problem in [1,3] |
U | the displacement field values |
D | the elastic stress of size nData*dim |
make the computation of A.U=-S_e.U for the elastic equilibrium matrix product with null constraints
Reimplemented in EMM_DisplacementFVM_VIGROperator.
References EMM_DisplacementOperator::computeElasticStress(), EMM_DisplacementOperator::computeElasticTensor(), tDimension, tReal, and tUIndex.
|
inlinevirtualinherited |
compute the elastic tensor for all cells
U | the displacement field |
eTensor | the elastic tensor of size 3x3 stored in row-packed symmetric upper matrix array of size 6 |
where
Reimplemented from EMM_DisplacementOperator.
Reimplemented in EMM_DisplacementFVM_VIGROperator.
References EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFVMOperator::computePotentialEnergy(), tBoolean, tDimension, tReal, and tUIndex.
Referenced by EMM_DisplacementFVM_VIGROperator::computeElasticTensor().
|
protectedvirtualinherited |
compute the elastic tensor for all cells
nData | size of the displacement field |
dim | dimension of the displacement field |
U | values of the displacement field of size nData x dim |
eTensor | the elastic tensor of size 3x3 stored in column-packed symmetric upper matrix array of size 6 |
where
It needs to compute the gradient of U at the center of the cell
Implements EMM_DisplacementOperator.
References CORE_MorseArray< T >::begin(), EMM_DisplacementFVMOperator::computeGradUAtCell(), CORE_MorseArray< T >::fitToSize(), EMM_DisplacementOperator::getAdimensionizedSegmentsSize(), EMM_DisplacementFVMOperator::getDisplacementOnDirichletBoundary(), CORE_MorseArray< T >::getIndicesByReference(), EMM_DisplacementOperator::getLimitConditionOnPoints(), EMM_DisplacementFVMOperator::getNeighborsIndices(), EMM_DisplacementFVMOperator::getSegmentsNumber(), EMM_2PackedSymmetricTensors::getTensorSize(), EMM_Tensors::getTensorsNumber(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_Tensors::getValues(), EMM_DisplacementFVMOperator::isDirectionPeriodic(), null, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, CORE_MorseArray< T >::setIndicesByReference(), EMM_Tensors::setTensorsNumber(), CORE_MorseArrayIterator< T >::size(), tBoolean, tDimension, tLimitCondition, tReal, tUCInt, tUIndex, tUInteger, CORE_MorseArrayIterator< T >::values(), and CORE_MorseArrayConstIterator< T >::values().
|
inherited |
compute the energy of the magnetostriction operator at current displacement and velocity
t | the time in [0,dt[ where dt is the time step |
nCells | : number of cells |
dim | dimension of each point of mesh |
sigma | the weight of each cell |
M | the magnetization field values |
References EMM_DisplacementOperator::computeCineticEnergyAtTime(), EMM_DisplacementOperator::computePotentialEnergyAtTime(), EMM_DisplacementOperator::computeStressConstraintEnergy(), EMM_DisplacementOperator::getConstraints(), EMM_DisplacementOperator::getElasticTensor(), EMM_Operator::getElementVolume(), CORE_Array< T >::getSize(), CORE_Object::getThread(), EMM_DisplacementOperator::isEquilibriumState(), EMM_DisplacementOperator::mLme, CORE_Thread::startChrono(), tBoolean, tReal, and tString.
Referenced by EMM_MagnetostrictionOperator::computeEnergy(), and EMM_DisplacementOperator::computeMagneticStress().
|
inlinestaticinherited |
compute epsilon
|
virtualinherited |
compute the diagonal conditioner
[out] | D | is the diagonal conditioner of the equilibrium matrix by defualt the diagonal matrix is the identity (its size if set to 0); |
Reimplemented from EMM_DisplacementOperator.
References CORE_MorseArray< T >::begin(), EMM_DisplacementFVMOperator::computeGradAlmostNullUAtFace(), EMM_DisplacementOperator::getAdimensionizedSegmentsSize(), EMM_RealField::getDimension(), EMM_DisplacementOperator::getDisplacement(), EMM_4Tensors::getIndex(), EMM_DisplacementOperator::getLambdaE(), EMM_DisplacementOperator::getLimitConditionOnPoints(), EMM_DisplacementFVMOperator::getNeighborsIndices(), EMM_DisplacementFVMOperator::getSegmentsNumber(), EMM_4Tensors::getTensorSize(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), MATH_Vector::getValues(), EMM_Tensors::getValues(), MATH_Vector::init(), EMM_DisplacementFVMOperator::isDirectionPeriodic(), EMM_DisplacementOperator::isEquilibriumMatrixReconditioned(), EMM_DisplacementFVM_Interpolator::NEUMANN_FACE, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, MATH_Vector::setSize(), CORE_MorseArrayConstIterator< T >::size(), tBoolean, tCInt, tDimension, tLimitCondition, tReal, tUCInt, tUIndex, tUInteger, EMM_Grid3D::UNMAGNETIZED_ELEMENT, and CORE_MorseArrayConstIterator< T >::values().
Referenced by EMM_DisplacementFVMOperator::spaceRelevant().
|
inherited |
compute the equilibirum state
[in] | sigma | : the weight array due to unhomegeneous magnetization at saturation |
[in] | M | : the magnetization field |
[in] | U0 | : the displacement field at dirichlet point |
[out] | U | the dispacement field at equilibrium |
References EMM_DisplacementOperator::computeMagneticStress(), EMM_RealField::copy(), EMM_DisplacementOperator::getAccelerator(), EMM_DisplacementOperator::getSolver(), EMM_DisplacementOperator::mEquilibriumMatrix, EMM_DisplacementOperator::mUt, MATH_Solver::setMaximumIterationsNumber(), EMM_DisplacementOperator::spaceProjection(), EMM_DisplacementOperator::spaceRelevant(), and tBoolean.
Referenced by EMM_DisplacementOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
virtualinherited |
compute the fields of operator at time
t | the time |
order | order of integration of the fields |
sigma | the magnetized weight of each cell |
dM_dt0 | the variation of M at time 0 |
M0 | the magnetization field at each point at time t 0 |
compute fields at time from M and its first time derivative
Implements EMM_Operator.
References EMM_DisplacementOperator::computeElasticTensor(), EMM_DisplacementOperator::computeFieldsAtTimeWithGL1Interpolation(), EMM_DisplacementOperator::computeFieldsAtTimeWithGLnInterpolation(), EMM_DisplacementOperator::computeFieldsAtTimeWithTE1(), EMM_DisplacementOperator::computeFieldsAtTimeWithTE2(), EMM_DisplacementOperator::isSteadyState(), EMM_DisplacementOperator::mAccelerator, EMM_DisplacementOperator::mDt, EMM_DisplacementOperator::mEpsilonUt, EMM_DisplacementOperator::mMs, EMM_DisplacementOperator::mTimeIntegrationMethod, EMM_DisplacementOperator::mTimeIntegrationOrder, EMM_DisplacementOperator::mUn, EMM_DisplacementOperator::mUnm1, EMM_DisplacementOperator::mUs, EMM_DisplacementOperator::mUt, EMM_DisplacementOperator::mVn, EMM_DisplacementOperator::mVt, EMM_DisplacementOperator::P1, tBoolean, EMM_DisplacementOperator::TE, and tFlag.
Referenced by EMM_DisplacementOperator::setCFL().
|
inlineprotectedvirtualinherited |
compute the value of Grad U on cell when U is almost null everywhere except at cell
[in] | h | : size of cell in each direction |
[in] | xCell | index of the segment in the x-direction |
[in] | yCell | index of the segment in the y-direction |
[in] | zCell | index of the segment in the z-direction |
[in] | Px | : number of points in the x-direction |
[in] | Py | : number of points in the y-direction |
[in] | Pz | : number of points in the z-direction |
[in] | periodicity | : periodicity of the mesh |
[in] | neighborsIndices | : indices of the neigbor cells per cells |
[in] | dim | : dimension of the field |
[in] | Ui | : displacement field on the cell (xCell,yCell,zCell) |
[out] | gradU | the gradiend of U for all coordinates in all directions |
Computes the gradient of U at the center of the cell when U is null everywhere excecpt in cell
Implements EMM_DisplacementFVM_VGROperator.
References EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation().
|
inlineprotectedvirtualinherited |
compute the gradient U at the center of the face f of a cell when U is almost null
[in] | h | : size of cell in each direction |
[in] | xCell | : index of the segment in the x-direction |
[in] | yCell | : index of the segment in the y-direction |
[in] | zCell | : index of the segment in the z-direction |
[in] | f | : index of the face |
[in] | nextCell | :neighbor cell index of the current cell with the face f |
[in] | Px | : number of points in the x-direction |
[in] | Py | : number of points in the y-direction |
[in] | Pz | : number of points in the y-direction |
[in] | periodicity | : periodicty of the mesh in each direction |
[in] | neighborsIndices | :neighbors indices of all the cell |
[in] | lc | : limit condition on points |
[in] | dim | : dimension of the field |
[in] | Ui | : displacement field on the cell |
[out] | gradU | : the gradient of U for all coordiantes in all direction |
It computes the value of gradient at cell when U is almost null everywhere except in the cell (xCell,yCell,zCell)
It is used for preconditionning the equilibrium matrix
Reimplemented from EMM_DisplacementFVM_VGROperator.
References EMM_DisplacementFVM_STEGROperator::computeGradAlmostNullUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), tBoolean, tDimension, tLimitCondition, tReal, tUCInt, tUIndex, and tUInteger.
|
inlineprotectedvirtualinherited |
compute the value of Grad U on next cell when U is almost null everywhere except at cell.
[in] | h | : size of cell in each direction |
[in] | xCell | index of the segment in the x-direction |
[in] | yCell | index of the segment in the y-direction |
[in] | zCell | index of the segment in the z-direction |
[in] | f | interface to find the next cell |
[in] | nextCell | index of the next cell |
[in] | Py | : number of points in the y-direction |
[in] | Px | : number of points in the x-direction |
[in] | Pz | : number of points in the z-direction |
[in] | periodicity | : periodicity of the mesh |
[in] | neighborsIndices | : indices of the neigbor cells per cells |
[in] | dim | : dimension of the field |
[in] | Ui | : displacement field on the cell (xCell,yCell,zCell) |
[out] | gradU | the gradiend of U for all coordinates in all directions |
Computes the gradient of U at the center of the cell when U is null everywhere excecpt in cell
Implements EMM_DisplacementFVM_VGROperator.
References EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtNextCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), tBoolean, tDimension, tLimitCondition, tReal, tUIndex, tUInteger, and tUSInt.
|
inlinevirtualinherited |
compute the value of Grad U on cell
[in] | withConstraints | : true tu use the Dirichlet & Neumann constraints |
[in] | h | : size of cell in each direction |
[in] | xCell | index of the segment in the x-direction |
[in] | yCell | index of the segment in the y-direction |
[in] | zCell | index of the segment in the z-direction |
[in] | Px | : number of points in the x-direction |
[in] | Py | : number of points in the y-direction |
[in] | Pz | : number of points in the z-direction |
[in] | periodicity | : periodicity of the mesh |
[in] | neighbors | : indices of the neigbor cells of the current cell |
[in] | dim | : dimension of the field |
[in] | Ucells | : displacement field value on all cells |
[in] | Ui | : displacement field on the cell (xCell,yCell,zCell) |
[in] | lc | : limit condition on points |
[in] | incU0 | increment of U0 for fixed displacement on Dirichlet boundary |
[in] | U0 | : displacement values on Dirichlet boundary |
[out] | gradU | the gradiend of U for all coordinates in all directions |
compute grad U at cell by the Taylon extension approximation
For all boundaries of the cell , with exterior normal where is one of the canonical directions and is the orientation of the normal with respect of the canonical direction , the gradient of the s-coordinate of U within the face is :
The gradient of U at the center of the cell in the k-direction is the barycenter of and in order to have an interpolation of 2 order:
This methods is quite expensive because it needs solving a system of size 3x6 equations.
Implements EMM_DisplacementFVMOperator.
References EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation().
|
inlinevirtualinherited |
compute the gradient U at the center of the face f of a cell. f is either an interior face or a Dirichlet face
[in] | withConstraints | true if constraints is applied in the diriclhlet boundary |
[in] | h | : size of cell in each direction |
[in] | xCell | : index of the segment in the x-direction |
[in] | yCell | : index of the segment in the y-direction |
[in] | zCell | : index of the segment in the z-direction |
[in] | f | : index of the face |
[in] | nextCell | : neighbor cells index |
[in] | Px | : number of points in the x-direction |
[in] | Py | : number of points in the y-direction |
[in] | Pz | : number of points in the z-direction |
[in] | periodicity | : periodicity of the mesh |
[in] | neighborsIndices | : neighbor cells indices of all cell |
[in] | dim | : dimension of the field |
[in] | Ucells | : displacement field value on all cells |
[in] | Ui | : displacement field on the cell |
[in] | lc | : limit condition on points |
[in] | incU0 | increment of U0 for fixed displacement on Dirichlet boundary |
[in] | U0 | : displacement values on Dirichlet boundary |
[out] | gradU | : the gradiend of U for all coordiantes in all direction |
It computes the gradient of U at the face f which is either an interior face or a Dirichlet face
It is used for computing the elastic stress
For all face with normal ,
is is the neigbor cell of .
If there is no neighbor that means that the face f is a boundary face. so that
with where .
For the tangential derivative in the direction r:
where is the mean of U on the edge in the face in the direction and .
Reimplemented from EMM_DisplacementFVM_VGROperator.
References EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion().
|
inlinevirtual |
compute the magnetic stress for all cells
[in] | alpha | : multipilcateur factor of S |
[in] | beta | : multipilcateur factor of Magnetic Stress |
[in] | sigma | the magnetized weight pert cell |
[in] | M | the magnetization field |
[in,out] | S | the magnetic stress |
It computes:
where
Implements EMM_DisplacementOperator.
References EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_RealField::getDimension(), EMM_RealField::getSize(), null, tDimension, and tUIndex.
|
protectedvirtualinherited |
compute the magnetic stress to elastic stress S
[in] | alpha | : multiplicator factor for S |
[in] | beta | : multiplicator factor for magnetic stress |
[in] | nCells | : the size of the magnetism value |
[in] | dim | : dimension of the problem in [1,3] |
[in] | sigma | : weight of each cell |
[in] | M | : the magnetization field values of size nCells x dim |
[in] | nData | : size of stress field values |
[in,out] | D | : in input the elastic stress , in output the total stress of size nData x dim |
For all cell i, the k-coordinate is on the interface (null for neuman boundary : no magnetic constraint)
where
Implements EMM_DisplacementOperator.
References CORE_MorseArray< T >::begin(), EMM_DisplacementOperator::getAdimensionizedSegmentsSize(), EMM_DisplacementOperator::getLambdaEDoubleDotLambdaM(), CORE_Array< T >::getSize(), EMM_4Tensors::getTensorSize(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_Tensors::getValues(), EMM_DisplacementFVMOperator::mNeighborsIndices, EMM_DisplacementFVM_Interpolator::NEUMANN_FACE, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, CORE_MorseArrayConstIterator< T >::size(), tBoolean, tCInt, tDimension, tReal, tUCInt, tUIndex, tUInteger, EMM_Grid3D::UNMAGNETIZED_ELEMENT, and CORE_MorseArrayConstIterator< T >::values().
Referenced by EMM_DisplacementFVMOperator::computeElasticTensor(), EMMG_DisplacementFVM_VTEGROperator::computeMagneticStress(), EMMG_DisplacementFVM_SSGROperator::computeMagneticStress(), computeMagneticStress(), and EMMG_DisplacementFVM_VOGGROperator::computeMagneticStress().
|
inlineinherited |
compute the magnetic stress for all cells
[in] | sigma | magnetized weight for each cell |
[in] | M | the magnetization field |
[out] | S | the magnetic stress dield |
It computes:
where
References EMM_DisplacementOperator::computeEnergy(), EMM_RealField::setDimension(), EMM_RealField::setSize(), tDimension, tReal, and tUIndex.
Referenced by EMM_DisplacementOperator::computeEquilibriumState(), and EMM_DisplacementOperator::computeStress().
|
staticinherited |
compute the number of cells connected to vertex
References EMM_Grid3D::ELEMENT_POINTS, CORE_MorseArray< T >::getSize(), EMM_Grid3D::POINTS_NUMBER_PER_ELEMENT, tBoolean, tInteger, tUInt, and tUSInt.
Referenced by EMM_DisplacementFVM_STEGROperator::computeGradAlmostNullUAtFaceByTaylorExpansion().
|
virtualinherited |
compute the potential energy to the space variation of the displacement
U | displacement field |
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::computePotentialEnergy().
Referenced by EMM_DisplacementFVMOperator::computeElasticTensor().
|
inlineinherited |
compute the potential energy to the space variation of the displacement
t | time in [0,dt[ where dt is the time step |
References EMM_DisplacementOperator::computePotentialEnergy(), EMM_DisplacementOperator::getDisplacement(), and tReal.
Referenced by EMM_DisplacementOperator::computeEnergy().
|
inlineinherited |
compute the stress
sigma | magnetized weight for each cell |
U | the displacement field |
M | the magnetization field |
stress | the divergence stress field |
It calls:
References EMM_DisplacementOperator::computeElasticStress(), and EMM_DisplacementOperator::computeMagneticStress().
Referenced by EMM_DisplacementOperator::computeFieldsAtTimeWithGLnInterpolation(), EMM_DisplacementOperator::restore(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
inlinevirtualinherited |
compute the stress constraint energy on boundary
Uf | the displacement field |
return 0 because there is no constraint forces energy
Implements EMM_DisplacementOperator.
|
inlineinherited |
compute the energy of the boundary stress constraint
t | time in [0,dt[ where dt is the time step |
References EMM_DisplacementOperator::getDisplacement(), and tReal.
Referenced by EMM_DisplacementOperator::computeEnergy().
|
virtualinherited |
discretize and initialize the operator
system | the data to discretize the operator |
Reimplemented from EMM_DisplacementOperator.
References EMM_Grid3D::buildNeighborsIndices(), EMM_DisplacementOperator::discretize(), EMM_DisplacementOperator::getAccelerator(), EMM_DisplacementOperator::getDisplacement(), EMM_Grid3D::getElementsNumber(), EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_LandauLifschitzSystem::getMatterField(), EMM_LandauLifschitzSystem::getMesh(), EMM_Grid3D::getSegmentsNumber(), EMM_LandauLifschitzSystem::getSigma(), EMM_DisplacementOperator::getVelocity(), EMM_Grid3D::isDirectionPeriodic(), EMM_DisplacementFVMOperator::mNeighborsIndices, EMM_DisplacementFVMOperator::mPeriodicDirections, EMM_DisplacementFVMOperator::mSegmentsNumber, CORE_Object::out(), EMM_RealField::pointDataToCellData(), CORE_Out::println(), EMM_RealField::setSize(), tBoolean, EMM_DisplacementFVMOperator::toString(), tUCInt, tUIndex, and EMM_DisplacementOperator::updateAtNextTimeStep().
Referenced by EMM_DisplacementFVMOperator::getDisplacementOnDirichletBoundary().
|
staticinherited |
compute the mean value of U defined on points at edge between face f and face g of the cell (xCell,yCell,zCell)
[in] | xCell | index of the segment of cell in the x-direction within [0,Nx[ to compute the mean of U |
[in] | yCell | index of the segment of cell in the y-direction within [0,Ny[ to compute the mean of U |
[in] | zCell | index of the segment of cell in the z-direction within [0,Nz[ to compute the mean of U |
[in] | f | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | g | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | isPeriodic | periodicity per direction |
[in] | Px | : number of points in x-direction |
[in] | Py | : number of points in y-direction |
[in] | Pz | : number of points in z-direction |
[in] | dim | : dimension of each point of U |
[in] | lc | : limit condition on points |
[in] | incU | : size of incement of U (0: if constant) |
[in] | Upoints | values of U at all points |
[out] | Um | : mean of U on cell |
commpute the mean of U over the edge intersection with the face f and g on the cell at segment indices xcell,yCell,zCell into Um with iP is the point of the edge
References EMM_Grid3D::EDGE_POINTS, EMM_Grid3D::ELEMENT_POINTS, EMM_Grid3D::GET_MASTER_PERIODIC_POINT(), EMM_Grid3D::getPeriodicIndicator(), null, EMM_Grid3D::SLAVE_LIMIT_CONDITION, tBoolean, tCInt, tDimension, CORE_Integer::toString(), tReal, tUCInt, tUIndex, and tUInteger.
Referenced by EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), and EMM_DisplacementFVM_Interpolator::interpolateUAtVertices().
|
staticinherited |
compute the mean value of U defined on points at face f of the cell (xCell,yCell,zCell)
[in] | xCell | x-index of the cell in [0,Nx[ to compute the mean of U |
[in] | yCell | y-index of the cell in [0,Ny[ to compute the mean of U |
[in] | zCell | z-index of the cell in [0,Nz[ to compute the mean of U |
[in] | f | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | isPeriodic | : periodicity of the domain |
[in] | Px | : number of points in x-direction |
[in] | Py | : number of points in y-direction |
[in] | Pz | : number of points in z-direction |
[in] | dim | : dimension of each point of U |
[in] | lc | : limit condition on points |
[in] | incU | : size of incement of U (0: if constant) |
[in] | Upoints | values of U at all points |
[out] | Um | mean of U on cell |
with iP is the point of the face
References EMM_Grid3D::ELEMENT_POINTS, EMM_Grid3D::FACE_POINTS, EMM_Grid3D::GET_MASTER_PERIODIC_POINT(), EMM_Grid3D::getPeriodicIndicator(), null, EMM_Grid3D::POINTS_NUMBER_PER_FACE, EMM_Grid3D::SLAVE_LIMIT_CONDITION, tBoolean, tDimension, tLimitCondition, tReal, tUCInt, tUIndex, and tUInteger.
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradUAtFaceByStokesIntegration(), EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), and EMM_DisplacementFVM_Interpolator::interpolateAlmostNullUAtFace().
|
inlineinherited |
get the accelerator for writing
Referenced by EMM_DisplacementOperator::computeEquilibriumState(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), and EMM_DisplacementOperator::initializeEquilibriumSolver().
|
inlineinherited |
get the accelerator for reading
References EMM_DisplacementOperator::setSolver(), and tString.
|
inlineinherited |
get the segments size in all directions
References EMM_DisplacementOperator::mL.
Referenced by EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFEMOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), and EMM_DisplacementFEMOperator::computeStressConstraintEnergy().
|
inlineinherited |
get the adimensionized volumic mass per cell
References EMM_DisplacementOperator::mKappa.
Referenced by EMM_DisplacementFVMOperator::computeCineticEnergy(), and EMM_DisplacementFEMOperator::computeCineticEnergy().
|
inherited |
return the class name of the object
References tString.
Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().
return the class name of the object
identityString | the identity string of the object |
|
inlineinherited |
get the constraint faces if face f is constrainted
References EMM_DisplacementOperator::mConstraintFaces.
Referenced by EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), and EMM_DisplacementFVMOperator::computeElasticStress().
|
inlineinherited |
get the constraints field for reading
Referenced by EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementOperator::computeEnergy(), and EMM_DisplacementFEMOperator::computeStressConstraintEnergy().
|
inlineinherited |
get the constraints field for writing
|
inlinevirtualinherited |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
References tBoolean.
|
inlinevirtualinherited |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
References tBoolean.
|
inlinevirtualinherited |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
References tBoolean.
|
inlinevirtualinherited |
get the number of field used in the operator
Reimplemented from EMM_Operator.
References EMM_DisplacementOperator::isSteadyState().
|
inlinevirtualinherited |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
supportType | : mesh element whre the field is applied EMM_Grid3D::ELEMENT; || EMM_Grid3D::POINT |
dFieldType | : type of the field double,float,int,.... |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
for index :
Reimplemented from EMM_Operator.
References EMM_Grid3D::ELEMENT, EMM_DisplacementOperator::getAccelerator(), EMM_RealField::getDimension(), EMM_DisplacementOperator::getDisplacement(), EMM_RealField::getSize(), and EMM_DisplacementOperator::getVelocity().
|
inlineinherited |
get the displacement for writing
Referenced by EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementOperator::computePotentialEnergyAtTime(), EMM_DisplacementOperator::computeStressConstraintEnergy(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), EMM_DisplacementOperator::initializeEquilibriumSolver(), EMM_DisplacementOperator::NewEquilibriumMatrix(), EMM_DisplacementFVMOperator::resetToInitialState(), and EMM_DisplacementOperator::resetToInitialState().
|
inlineinherited |
get the displacement for reading
|
inlineinherited |
get the veolicty at time
t | time to get velocity |
References EMM_DisplacementOperator::isSteadyState().
|
inlineinherited |
get the displacement field at boundary for reading
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeElasticTensor(), and EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver().
|
inlineinherited |
get the displacement field at boundary for writing
References EMM_DisplacementFVMOperator::buildDataOnDirichletBoundaryFaces(), EMM_DisplacementFVMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFVMOperator::getMemorySize(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), tBoolean, and tULLInt.
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the elastic tensor
References EMM_DisplacementOperator::mEpsilonUt.
Referenced by EMM_DisplacementOperator::computeEnergy().
|
inlineinherited |
return the adimensionized volume of the element
References EMM_Operator::mElementVolume.
Referenced by EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_ZeemanOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_MagneticExcitationLinearOperator::computeEnergyWithMagneticExcitation(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_ZeemanOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeMagneticStress(), and EMM_DisplacementOperator::computePotentialEnergy().
|
inlinestaticinherited |
get the epsilon value for T type
|
inlinestaticinherited |
get the epsilon value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the identity string of the object of the form className_at_address
References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.
Referenced by MATH_GaussLegendreIntegration::copy(), EMM_MultiScaleGrid::initialize(), CORE_Object::isInstanceOf(), CORE_Object::printObjectsInMemory(), MATH_Matrix::toString(), EMMG_SLPeriodicMultiScale::toString(), EMM_Stepper::toString(), EMM_AnisotropyDirectionsField::toString(), EMM_BlockMassMatrix::toString(), CORE_Object::toString(), EMM_Tensors::toString(), EMM_MultiScaleGrid::toString(), EMM_MatterField::toString(), EMM_Grid3D::toString(), and EMM_LandauLifschitzSystem::toString().
|
inlinestaticinherited |
get the infinity for T type
|
inlineinherited |
return the adimensionized elastic tensor distribution
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner().
|
inlineinherited |
return the adimensionized magnetic tensor distribution
Referenced by EMM_DisplacementFVMOperator::computeMagneticStress(), and EMM_DisplacementFEMOperator::computeMagneticStress().
|
inlineinherited |
return the adimensionized magnetic tensor distribution
|
inlineinherited |
return the adimensionized magnetic tensor distribution
Referenced by EMM_MagnetostrictionOperator::computeEnergy().
|
inlinestaticinherited |
get the epsilon value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tDouble type
|
inlineinherited |
References CORE_Array< T >::get().
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtNextCellByOstrogradskiGreenIntegration(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), and EMM_DisplacementOperator::projectionOnDirichletBoundary().
|
inlineinherited |
References EMM_DisplacementOperator::backup(), EMM_DisplacementOperator::buildDataOnBoundaryFaces(), EMM_DisplacementOperator::discretize(), EMM_DisplacementOperator::getMemorySize(), EMM_DisplacementOperator::mLimitConditionOnPoints, EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_DisplacementOperator::resetToInitialState(), EMM_DisplacementOperator::restore(), tBoolean, tCellFlag, tDimension, tReal, tString, tUIndex, tUInteger, and tULLInt.
Referenced by EMM_DisplacementFEMOperator::discretize().
|
inlinestaticinherited |
get the max value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tInt type
Referenced by MATSGN_FFT::fastFourierTransform3D_FFTW(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the real type
Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for difference the array/vector indexing type
Referenced by CORE_Vector< T >::addAfterIndices(), CORE_Vector< T >::search(), CORE_Test::testType(), CORE_Integer::toHexString(), and CORE_Integer::toString().
|
inlinestaticinherited |
get the max value for tUInt type
Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the unsigned integer type
Referenced by MATH_Pn::computeExtrenums(), EMM_MultiScaleGrid::computeLevelsNumber(), EMM_Input::restoreBackup(), MATH_P0::solve(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUSInt type
Referenced by CORE_Test::testType().
|
virtualinherited |
return the memory size in byte
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::getMemorySize(), and EMM_DisplacementFVMOperator::mU0.
Referenced by EMM_DisplacementFVMOperator::getDisplacementOnDirichletBoundary().
|
inlinestaticinherited |
get the min value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the real type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for difference the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the unsigned integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUSInt type
Referenced by CORE_Test::testType().
|
inlinevirtualinherited |
return an human reading name of the operator
References CORE_Object::getClassName(), EMM_Operator::isAffine(), EMM_Operator::isGradientComputationable(), tBoolean, tString, and tUIndex.
|
inlineinherited |
get the index of the neighbor cells for each cell of the mesh for reading
References EMM_DisplacementFVMOperator::mNeighborsIndices.
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), and EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver().
|
inlineinherited |
get the index of the neighbor cells for each cell of the mesh
References EMM_DisplacementFVMOperator::mNeighborsIndices.
|
inlinestaticinherited |
|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().
|
inlinestaticinherited |
get the eps which is the difference between 1 and the least value greater than 1 that is representable.
Referenced by MATH_P4::solveP4De(), and CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value
Referenced by BrentFunction::BrentFunction(), EMM_OperatorsTest::compareDiscretizedData(), EMM_IterativeTimeStep::EMM_IterativeTimeStep(), EMM_SLElementaryDemagnetizedMatrix::Kxy(), NRFunction::NRFunction(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), and CORE_Test::testType().
|
inlineinherited |
get number of segments in each direction
References EMM_DisplacementFVMOperator::mSegmentsNumber.
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
Referenced by CORE_Map< Key, Value >::getSharedPointer(), CORE_ArrayList< tString >::getSharedPointer(), EMM_Array< tCellFlag >::getSharedPointer(), CORE_Array< tCellFlag >::getSharedPointer(), CORE_MorseArray< tUChar >::getSharedPointer(), CORE_Vector< T >::getSharedPointer(), and CORE_Object::printObjectsInMemory().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
|
inlineinherited |
get the solver of the system
Referenced by EMM_DisplacementOperator::computeEquilibriumState(), EMMG_ClassFactory::NewInstance(), and EMM_DisplacementFEMOperator::solveAcceleratorSystem().
|
inlinestaticinherited |
get the profilier
Referenced by MATH_MaskVector::add(), MATH_Vector::add(), EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFEMOperator::computeElasticTensor(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_FullExchangeOperator::computeMagneticExcitationField(), EMM_StaticMagnetostrictionOperator::computeMagneticExcitationField(), EMM_LinearAnisotropyOperator::computeMagneticExcitationField(), EMM_StaticMagneticTensorOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_MinimalExchangeOperator::computeMagneticExcitationField(), EMM_AnisotropyOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().
|
inlineinherited |
get the time integration method for next time step
References EMM_DisplacementOperator::mTimeIntegrationMethod.
|
inlineinherited |
get the time integration order for new field
References EMM_DisplacementOperator::mTimeIntegrationOrder.
|
inlineinherited |
get the time step for elasticty
References EMM_DisplacementOperator::mDt.
|
inlinestaticinherited |
|
inlineinherited |
get the velocity for writing
Referenced by EMM_DisplacementOperator::computeCineticEnergyAtTime(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVMOperator::resetToInitialState(), and EMM_DisplacementOperator::resetToInitialState().
|
inlineinherited |
get the velocity at time
t | time to get velocity |
References EMM_DisplacementOperator::isSteadyState().
|
inlineinherited |
get the velocity at t for reading
|
protectedvirtualinherited |
initialize the equilibrium solver
[in] | U0 | is the value of U on dirichlet points |
Reimplemented in EMM_DisplacementFVM_VIGROperator.
References EMM_DisplacementOperator::computeElasticStress(), EMM_DisplacementOperator::getAccelerator(), EMM_RealField::getDimension(), EMM_DisplacementOperator::getDisplacement(), EMM_RealField::getSize(), EMM_RealField::getValues(), EMM_RealField::initField(), EMM_DisplacementOperator::mEquilibriumMatrix, EMM_DisplacementOperator::NewEquilibriumMatrix(), EMM_RealField::NewInstance(), EMM_RealField::setDimension(), EMM_RealField::setSize(), EMM_DisplacementOperator::spaceProjection(), EMM_DisplacementOperator::spaceRelevant(), tDimension, tReal, tUIndex, and EMM_Object::Z.
Referenced by EMM_DisplacementOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), EMM_DisplacementOperator::restore(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
inlinestaticinherited |
compute interpolation of U at Face
[in] | xCell | index of the segment of cell in the x-direction within [0,Px-1[ |
[in] | yCell | index of the segment of cell in the y-direction within [0,Py-1[ |
[in] | zCell | index of the segment of cell in the z-direction within [0,Pz-1[ |
[in] | Px | : number of points in the direction x |
[in] | Py | : number of points in the direction y |
[in] | Pz | : number of points in the direction z |
[in] | periodicity | : periodicty of the domain per direction |
[in] | neighborsIndices | :indices of the neighbor of each cell |
[in] | f | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | dim | : dimension of each point of U |
[in] | Ui | values of U at cell (xCell,yCell,zCell) |
[in] | lc | limit condition on all points of the mesh |
[in] | incU0 | increment for U0 (0: for constant U0, 1:for not uniform U0) |
[in] | U0 | values of U0 of size dim when incU0=0 or dim x Px x Py x Pz |
[out] | Umean | : mean of U on cell |
commpute the mean value of U on the face when U is null outside the cell (xCell,yCell,zCell) into Um
with iP is the point of the face
References EMM_DisplacementFVM_Interpolator::cellMean(), EMM_DisplacementFVM_Interpolator::faceMean(), EMM_DisplacementFVM_Interpolator::interpolateUAtFace(), null, tBoolean, tDimension, tLimitCondition, tReal, tUCInt, and tUInteger.
Referenced by EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), and EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtNextCellByOstrogradskiGreenIntegration().
|
inlinestaticinherited |
References EMM_DisplacementFVM_Interpolator::interpolateUAtVertex(), and null.
Referenced by EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration().
|
inherited |
interpolate U at edge
[in] | withConstraints | : true if there is a dirichlet constraint on edge |
[in] | xCell | index of the segment of cell in the x-direction within [0,Nx[ to compute the mean of U |
[in] | yCell | index of the segment of cell in the y-direction within [0,Ny[ to compute the mean of U |
[in] | zCell | index of the segment of cell in the z-direction within [0,Nz[ to compute the mean of U |
[in] | Px | : number of points in x-direction |
[in] | Py | : number of points in y-direction |
[in] | Pz | : number of points in z-direction |
[in] | periodicity | : periodicity of the mesh |
[in] | dim | : dimension of each point of U |
[in] | l | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | r | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | Ucells | U at all cells |
[in] | Uc | U at all cell (xCell,yCell,zCell) |
[in] | lc | limit condition on points |
[in] | incU0 | : size of incement of U at Dirichlet Points (0: if constant) |
[in] | U0 | values of U at all points (especialy dirichlet points) |
[in] | Nc | neighbors cell index of the cell (xCell,yCell,zCell) |
[in] | neighbors | neighbors cell index of the all cells |
[out] | iUc | : a working array pf size 3 |
[out] | iU | : a pointer to the interpolation of U where can be iUc or another values |
Computes the mean of U at the edge using the values of U over all the cells connected to the edge.
References EMM_DisplacementFVM_Interpolator::DIRICHLET_FACE, EMM_DisplacementFVM_Interpolator::edgeMean(), EMM_Object::NULL_VALUE, tDimension, tReal, tUCInt, tUIndex, and EMM_Grid3D::UNMAGNETIZED_ELEMENT.
Referenced by EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), and EMM_DisplacementFVM_Interpolator::interpolateUAtVertices().
|
inlinestaticinherited |
compute interpolation of U at Face
[in] | xCell | index of the segment of cell in the x-direction within [0,Px-1[ |
[in] | yCell | index of the segment of cell in the y-direction within [0,Py-1[ |
[in] | zCell | index of the segment of cell in the z-direction within [0,Pz-1[ |
[in] | Px | : number of points in the direction x |
[in] | Py | : number of points in the direction y |
[in] | Pz | : number of points in the direction z |
[in] | periodicity | : periodicty of the domain per direction |
[in] | neighborsIndices | :indices of the neighbor of each cell |
[in] | f | face index in [0,FACES_NUMBER_PER_ELEMENT[ |
[in] | dim | : dimension of each point of U |
[in] | Ucells | values of U at all cells |
[in] | lc | limit condition on all points of the mesh |
[in] | incU0 | increment for U0 (0: for constant U0, 1:for not uniform U0) |
[in] | U0 | values of U0 of size dim when incU0=0 or dim x Px x Py x Pz |
[out] | Umean | : mean of U on cell |
commpute the mean of U over the face f on the cell at segment indices xcell,yCell,zCell into Um
with iP is the point of the face
References null.
Referenced by EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), and EMM_DisplacementFVM_Interpolator::interpolateAlmostNullUAtFace().
|
inlinestaticinherited |
References EMM_DisplacementFVM_Interpolator::interpolateUAtVertex(), and null.
|
inlinestaticinherited |
References EMM_DisplacementFVM_Interpolator::edgeMean(), EMM_RealField::getDimension(), EMM_RealField::getSize(), EMM_RealField::getValues(), EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), tBoolean, tDimension, tLimitCondition, tReal, tUCInt, tUIndex, and tUInteger.
Referenced by EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), and EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver().
|
staticinherited |
References CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_RealField::getValues(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertex(), null, EMM_Object::NULL_VALUE, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED, EMM_RealField::setDimension(), EMM_RealField::setSize(), tBoolean, tLimitCondition, tReal, tUIndex, and tUInteger.
|
inlinestaticinherited |
return true if the machine is a 32 bits machine
References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
return true if the machine is a 64 bits machine
Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().
|
inlinevirtualinherited |
return true if the operator is either constant or linear
Implements EMM_Operator.
|
inlineinherited |
return the true if the element is cubic
References EMM_Operator::mIsCubic.
Referenced by EMM_FullExchangeOperator::discretize(), and EMM_MinimalExchangeOperator::discretize().
|
inlineinherited |
get priodic directions
References EMM_DisplacementFVMOperator::mPeriodicDirections.
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVM_VIGROperator::computeElasticStressMatrixProduct(), EMM_DisplacementFVM_VIGROperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), and EMM_DisplacementFVMOperator::setBoundaryFaceTypes().
|
inlineinherited |
get if the equilibrium matrix is conditioned
References EMM_DisplacementOperator::mIsEquilibriumMatrixConditioned.
Referenced by EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner().
|
inlineinherited |
Referenced by EMM_DisplacementOperator::backup(), EMM_DisplacementOperator::computeEnergy(), EMM_DisplacementOperator::resetToInitialState(), EMM_DisplacementOperator::restore(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
inlineinherited |
Referenced by EMM_DisplacementOperator::backup(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
inlineinherited |
get true to considered ghost cells on boundary faces
References EMM_DisplacementFVMOperator::backup(), EMM_DisplacementFVMOperator::mIsGhostCellOn, EMM_DisplacementFVMOperator::restore(), tBoolean, and tString.
Referenced by EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradAlmostNullUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), EMM_DisplacementFVM_STEGROperator::computeGradAlmostNullUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtNextCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradUAtFaceByStokesIntegration(), and EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion().
|
inlinevirtualinherited |
return true if the gradient of the magnetic excitation is computationable
Implements EMM_Operator.
|
inlineinherited |
test if the clas T is an instance of this class
References null.
Referenced by MATH_ToeplitzTest::toeplitzTest().
test if the object is an instance of className
name | name of the class |
References CORE_Object::getIdentityString().
|
inlinestaticinherited |
get if the memory checking is used
References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.
Referenced by main().
|
inlineinherited |
Referenced by EMM_DisplacementOperator::computeFieldsAtTime(), EMM_DisplacementOperator::getDataFieldsNumber(), EMM_DisplacementOperator::getDisplacement(), and EMM_DisplacementOperator::getVelocity().
|
inlinestatic |
create a cubic anisotropy operator
References EMMG_DisplacementFVM_STEGROperator().
Referenced by EMMG_ClassFactory::NewInstance().
|
virtualinherited |
create the equilibrium matrix
References EMM_DisplacementOperator::getDisplacement(), CORE_Object::getThis(), and EMM_BlockEquilibriumMatrix::New().
Referenced by EMM_DisplacementOperator::initializeEquilibriumSolver(), and EMM_DisplacementOperator::setCFL().
|
inherited |
project the velocity to 0 on dirichlet boundary points
V | the field |
set V=0 on Dirichlet points; V must be defined on points (return an exception if not)
References EMM_RealField::getDimension(), EMM_RealField::getValues(), EMM_RealField::initField(), EMM_DisplacementOperator::mLimitConditionOnPoints, tDimension, tReal, and tUIndex.
Referenced by EMM_DisplacementOperator::getLimitConditionOnPointsByReference(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_DisplacementOperator::resetToInitialState(), and EMM_DisplacementFEMOperator::spaceProjection().
|
inherited |
project the velocity to 0 on dirichlet boundary points
[in] | nPoints | : the number of points |
[in] | dim | : the dimension of each point |
[in,out] | V | : the values field defined on points |
set V=0 on Dirichlet points; V must be defined on points (return an excepion if not)
References EMM_Grid3D::DIRICHLET_LIMIT_CONDITION, EMM_DisplacementOperator::getLimitConditionOnPoints(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, tLimitCondition, tReal, tUIndex, and tUInteger.
|
inlinestaticinherited |
get the output
Referenced by EMM_Matter::adimensionize(), EMM_DisplacementFVMOperator::backup(), EMM_DisplacementOperator::backup(), MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralVectorProjector(), EMM_Test::caseTest(), EMM_Test::caseTests(), EMM_MatterField::computeAnisotropyDirectionsField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), MATH_MultiLevelsToeplitzMatrix::copy(), CORE_Exception::CORE_Exception(), EMM_MatterField::createAnisotropyOperator(), CORE_Run::createIO(), EMM_ElementaryTest::defaultBackupTest(), EMM_ElementaryTest::defaultTest(), MATH_MultiLevelsFFTToeplitzMatrix::diagonalize(), EMM_DisplacementFVMOperator::discretize(), EMM_MagnetostrictionOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_TensorsTest::doubleDotCrossDoubleDotScalarTests(), EMM_4Tensors::doubleDotCrossProduct(), EMM_TensorsTest::doubleDotCrossProductTests(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_TensorsTest::doubleDotCrossSquaredScalarTests(), EMM_4Tensors::doubleDotProduct(), EMM_TensorsTest::doubleDotProductTests(), EMM_DisplacementWaveTest::elasticWaveTest(), EMM_Test::elementaryTests(), FFTW_Test::fftwTutorial(), MATH_IntegrationTest::gaussLegendreTest(), EMM_MagnetostrictionTest::HComputingTest(), EMM_DemagnetizedPeriodicalTest::HTest(), EMMH_HysteresisTest::hysteresisDefaultCycleTest(), EMM_TensorsTest::initializationTests(), EMM_MultiScaleGrid::initialize(), EMM_MultiScaleSDGrid::initialize(), EMM_MatterField::loadFromANIFile(), EMM_AnisotropyDirectionsField::loadFromFile(), EMM_Matter::loadFromFile(), EMM_Grid3D::loadFromGEOFile(), EMM_MatterField::loadFromLOCFile(), EMM_Array< tCellFlag >::loadFromStream(), EMM_Matter::loadFromStream(), EMM_Matter::loadMattersFromFile(), EMM_Run::loadSystemFromOptions(), EMM_ElementaryTest::magnetostrictionBackupTest(), CORE_Run::make(), EMMH_Run::makeHysteresis(), EMM_Run::makeRun(), CORE_Run::makeType(), EMM_ElementaryTest::optionsTest(), MATH_PolynomialTest::P4Tests(), EMM_Test::primaryTests(), EMM_LandauLifschitzSystem::printLog(), CORE_Run::printOptions(), EMM_2PackedSymmetricTensors::product(), EMMG_SLDemagnetizedOperator::projectionOnSpectralSpace(), CORE_Run::readOptionsFromCommandLine(), CORE_Test::readVectorTest(), EMM_DemagnetizedPeriodicalTest::relaxationTest(), EMM_DisplacementFVMOperator::restore(), EMM_DisplacementOperator::restore(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), EMM_AnisotropyDirectionsField::saveToFile(), EMM_MatterField::saveToFile(), EMM_Grid3D::saveToGEOFile(), CORE_IOTest::searchTest(), EMMH_Hysteresis::setInitialMagnetizationField(), MATH_MultiLevelsToeplitzMatrix::setLevels(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_TensorsTest::squaredDoubleDotCrossScalarTests(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_TensorsTest::squaredDoubleDotScalarTests(), EMM_TensorsTest::squaredDoubleDotTests(), EMM_MatterTest::testAdimensionize(), EMM_MatterTest::testANIFile(), CORE_Test::testComplex(), CORE_Test::testDateWeek(), FFTW_Test::testDFT(), EMM_MatterTest::testIO(), EMM_ODETest::testODE(), CORE_Test::testOut(), CORE_Test::testReal(), EMM_FieldTest::testRealArray(), EMM_Grid3DTest::testSegment(), EMM_Grid3DTest::testThinSheet(), CORE_Test::testTime(), CORE_Test::testType(), MATH_FullMatrix::toString(), EMM_DemagnetizedPeriodicalTest::xyPeriodicalCubeSDGTest(), and EMM_DemagnetizedPeriodicalTest::xyPeriodicalSheetSDGTest().
|
inherited |
make the periodic projection of the field V
periodicity | :: periodcidcity projection |
nPoints | number of points of each direction |
V | field to project |
V at slave point is set to V at master point
References EMM_Grid3D::GET_MASTER_PERIODIC_POINT(), EMM_RealField::getDimension(), EMM_DisplacementOperator::getLimitConditionOnPoints(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), EMM_RealField::getValues(), null, OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, EMM_Grid3D::SLAVE_LIMIT_CONDITION, tDimension, tLimitCondition, CORE_Integer::toString(), tReal, tUIndex, and tUInteger.
Referenced by EMM_DisplacementOperator::getLimitConditionOnPointsByReference(), EMM_DisplacementOperator::resetToInitialState(), and EMM_DisplacementFEMOperator::spaceRelevant().
|
staticinherited |
return the string representation of a pointer
obj | : oject to get the string pointer |
References tString.
Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().
|
staticinherited |
print object in memory
f | : output to print the objects in memory |
References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.
|
inlinestaticinherited |
print object in memory in the standart output
Referenced by CORE_Object::is32Architecture(), and main().
|
inherited |
project the velocity to 0 on dirichlet boundary points
[in] | V0 | the field value on dirichlet points |
[out] | V | the field |
set V=V0 on Dirichlet points; V must be defined on points (return an excepion if not)
References EMM_RealField::getDimension(), EMM_RealField::getSize(), EMM_RealField::getValues(), EMM_RealField::initField(), EMM_DisplacementOperator::mLimitConditionOnPoints, null, EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), tBoolean, tDimension, tReal, and tUIndex.
Referenced by EMM_DisplacementOperator::getLimitConditionOnPointsByReference(), and EMM_DisplacementFEMOperator::spaceProjection().
|
inherited |
project the velocity to 0 on dirichlet boundary points
[in] | nPoints | the number of points |
[in] | dim | the dimension of each point |
[in] | incV0 | increment (either 0 or 1) of the values field on dirichlet points |
[in] | V0 | the values field on dirichlet points of size >=3 |
[in,out] | V | the values field defined on points |
set V=V0 on Dirichlet points; V must be defined on points (return an excepion if not)
References EMM_Grid3D::DIRICHLET_LIMIT_CONDITION, EMM_DisplacementOperator::getLimitConditionOnPoints(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, tDimension, tLimitCondition, tReal, tUIndex, and tUInteger.
|
inlinestaticinherited |
|
inlinestaticinherited |
|
virtualinherited |
reset the operator to initial step
system | the data to initialize the operator |
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::getDisplacement(), EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_LandauLifschitzSystem::getMesh(), EMM_LandauLifschitzSystem::getSigma(), EMM_DisplacementOperator::getVelocity(), EMM_RealField::pointDataToCellData(), EMM_DisplacementOperator::resetToInitialState(), tBoolean, and EMM_DisplacementOperator::updateAtNextTimeStep().
Referenced by EMM_DisplacementFVMOperator::getDisplacementOnDirichletBoundary().
|
virtualinherited |
restore the operator data from file(s)
system | general datat of system to restore the backup |
prefix | : common prefix of the saving files |
suffix | : common suffix of the saving files |
ext | : common extension of the saving files |
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementFVMOperator::mU0, CORE_Object::out(), CORE_Out::println(), EMM_DisplacementOperator::restore(), tBoolean, and tString.
Referenced by EMM_DisplacementFVMOperator::isGhostCellOn().
|
inlineinherited |
set the cfl for computing the initial time step
cfl | initial time step |
References EMM_DisplacementOperator::computeAccelerator(), EMM_DisplacementOperator::computeFieldsAtTime(), EMM_DisplacementOperator::computeFieldsAtTimeWithGL1Interpolation(), EMM_DisplacementOperator::computeFieldsAtTimeWithGLnInterpolation(), EMM_DisplacementOperator::computeFieldsAtTimeWithTE1(), EMM_DisplacementOperator::computeFieldsAtTimeWithTE2(), EMM_DisplacementOperator::computePastDisplacement(), EMM_DisplacementOperator::NewEquilibriumMatrix(), EMM_DisplacementOperator::solveAcceleratorSystem(), EMM_DisplacementOperator::spaceProjection(), EMM_DisplacementOperator::spaceRelevant(), tBoolean, tFlag, tReal, and EMM_DisplacementOperator::updateAtNextTimeStep().
|
inlineinherited |
set constraints from file defined on points
C | constraints faces in bit : if face f is constrainted |
dataFile | : file which contains the constraints field defined on points |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set constraints field
C | constraint faces in bit : if face f is constrainted |
data | : uniform data for constraints |
References EMM_RealField::setValue().
|
inlineinherited |
set initial constriants field
C | constraint faces in bit : if face f is constrainted |
C0 | x-coordinate of constraint |
C1 | y-coordinate of constraint |
C2 | z-coordinate of constraint |
References EMM_RealField::initField().
|
inlineinherited |
set constraints
C | constraint faces in bit : if face f is constrainted |
data | constraints field |
|
inlineinherited |
set the displacement field
u | : is the displacement field defined ob points |
|
inlineinherited |
set the displacement field to an uniform vector defied on points
Ux | uniform value of the field on the x-direction |
Uy | uniform value of the field on the y-direction |
Uz | uniform value of the field on the z-direction |
|
inlineinherited |
set the elasticity state
v | the elasticity state eithet equilibrium | steady | unsteady |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set initial displacement field.
scale | : the scale factor of the file |
dataFile | : file which contains the displacement field defined on points |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set initial displacement field
data | : uniform data for displacement |
References EMM_RealField::setValue().
|
inlineinherited |
set initial displacement field
U0 | x-coordinate of displacement |
U1 | y-coordinate of displacement |
U2 | z-coordinate of displacement |
References EMM_RealField::initField().
|
inlineinherited |
set initial displacement field
data | : data for displacement |
|
inlineinherited |
set initial velocity field
scale | scale of the file |
dataFile | : file which contains the velocity field defined on points |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set initial velocity field
data | velocity field |
|
inlineinherited |
set initial velocity field
data | : uniform data for velocity |
References EMM_RealField::setValue().
|
inlineinherited |
set initial velocity field
V0 | x-coordinate of velocity |
V1 | y-coordinate of velocity |
V2 | z-coordinate of velocity |
References EMM_RealField::initField().
|
inlineinherited |
set to true if the equilibrium matrix is conditioned
c | true to recondition the equilibrium matrix |
|
inlineinherited |
set true to considered ghost cells on boundary faces
isOn | true to consider ghost cells |
|
inlinestaticinherited |
set if the memory checking is used
v | : true to check memory |
Referenced by main().
|
inlineinherited |
set the limit condition each point is set to
lc | the limit condition value for all points of the mesh. Interior point are ignored (0)
|
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set the limit condition to all points
lc | the limit condition value for all points of the mesh. Interiror point are ignored (0)
|
|
inlinestaticinherited |
|
virtualinherited |
set the solver
solverName | name of the solver which can be either :
|
If empty biCGStab is used only for FVM displacement with equilibrium state
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::setSolver(), and tString.
Referenced by EMM_DisplacementFVMOperator::spaceRelevant().
|
inlineinherited |
set the solver
solver | : the solver |
|
inlineprotectedinherited |
set this weak shared pointer called toDoAfterThis setting method
p | : shared pointer of the class This |
References CORE_Object::toDoAfterThisSetting().
|
inlinestaticinherited |
set the thread
thread | the shared pointer to the thread |
References null.
Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().
|
inlineinherited |
set the time integration method for new field
m | integration method in P1 | TE |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set the time integration order for new field
o | integration ordre in {1,2} |
Referenced by EMMG_ClassFactory::NewInstance().
|
inlineinherited |
set the velocity of dicplacement defined on points
v | : is the displacement velocity field |
|
inlineinherited |
set the displacement velocity field to an uniform vector defined on points
Vx | uniform value of the field on the x-direction |
Vy | uniform value of the field on the y-direction |
Vz | uniform value of the field on the z-direction |
|
inlineprotectedvirtualinherited |
solve the velocity from the mass matrix : M.X=V V:=X
V |
|
Do nothing because for the FVM method, the mass matrix is identity
Implements EMM_DisplacementOperator.
|
private |
|
inlineprotectedvirtualinherited |
make the projection of the vector B into the solving linear space
[out] | V | field to project in linear solving space |
It is used in the constraint stress computing method EMM_DisplacementOperator::computeAccelerator()
Do nothing because there is no dirichlet points within FVM methods
Implements EMM_DisplacementOperator.
|
inlineprotectedvirtualinherited |
make the projection of the vector B into the solving linear space
[in] | V0 | : orthogonal vector of the linear solving space |
[out] | V | : field to project in linear solving space |
It is used in the constraint stress computing method EMM_DisplacementOperator::computeAccelerator()
Do nothing because there is no dirichlet points within FVM methods
Implements EMM_DisplacementOperator.
|
inlinevirtualinherited |
make the projection of the vector B into the solving linear space
[in] | nPoints | number of points |
[in] | dim | dimension of each points |
[in] | V0 | values of the orthognal space of the linear solving sapce |
[in,out] | V | values of the field to project in linear solving space It is used in the constraint stress computing method EMM_BlockEquilibriumMatrix::product() |
Do nothing because there is no dirichlet points within FVM methods
|
inlineprotectedvirtualinherited |
make the relevment of the vector B from the solving linear space.
V | field to rebuild from the solving space |
It is used in the new displacement fields computing EMM_DisplacementOperator::computeAcccelerator()
Do nothing because there is no slave points within FVM methods
Implements EMM_DisplacementOperator.
References EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVMOperator::computeGradAlmostNullUAtFace(), EMM_DisplacementFVMOperator::computeGradUAtCell(), EMM_DisplacementFVMOperator::computeGradUAtFace(), EMM_DisplacementFVMOperator::setSolver(), tBoolean, tDimension, tLimitCondition, tReal, tString, tUCInt, tUIndex, and tUInteger.
|
inlineprotectedvirtualinherited |
to to after thios setting
Reimplemented from EMM_DisplacementOperator.
References EMM_DisplacementOperator::toDoAfterThisSetting().
|
virtualinherited |
update the data of operator at next time step
dt | the time step |
sigma | the magnetized weight of each cell |
Mt | the magnetization field at each point at next time step |
Implements EMM_Operator.
References EMM_DisplacementOperator::computeAccelerator(), EMM_DisplacementOperator::computeElasticTensor(), EMM_DisplacementOperator::computeEquilibriumState(), EMM_DisplacementOperator::computePastDisplacement(), EMM_DisplacementOperator::computeStress(), EMM_DisplacementOperator::initializeEquilibriumSolver(), EMM_DisplacementOperator::isEquilibriumState(), EMM_DisplacementOperator::isFrozenState(), EMM_DisplacementOperator::mAccelerator, EMM_DisplacementOperator::mDt, EMM_DisplacementOperator::mEpsilonUt, EMM_DisplacementOperator::mKappa, EMM_DisplacementOperator::mTimeIntegrationMethod, EMM_DisplacementOperator::mTimeIntegrationOrder, EMM_DisplacementOperator::mUn, EMM_DisplacementOperator::mUnm1, EMM_DisplacementOperator::mUt, EMM_DisplacementOperator::mVn, EMM_DisplacementOperator::mVt, tBoolean, and EMM_DisplacementOperator::TE.
Referenced by EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_DisplacementFEMOperator::resetToInitialState(), EMM_DisplacementOperator::resetToInitialState(), and EMM_DisplacementOperator::setCFL().
|
staticprotectedinherited |
Referenced by EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_STEGROperator::computeGradAlmostNullUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), and EMM_DisplacementFVMOperator::setBoundaryFaceTypes().
|
staticinherited |
Referenced by EMMG_ClassFactory::NewInstance().
|
staticinherited |
Referenced by EMMG_ClassFactory::NewInstance().
|
staticinherited |
|
staticinherited |
Referenced by EMM_MatterField::adimensionize(), EMM_MagnetostrictionOperator::adimensionize(), EMM_Matter::adimensionize(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitation(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitationGradient(), EMM_Test::createMatters(), EMM_MatterField::getElasticTensorAdimensionizedParameter(), and EMM_MatterTest::testAdimensionize().
|
staticprotectedinherited |
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), EMM_DisplacementFVMOperator::computeMagneticStress(), and EMM_DisplacementFVMOperator::setBoundaryFaceTypes().
|
staticinherited |
Referenced by EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtNextCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradUAtFaceByStokesIntegration(), EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), and EMM_DisplacementFVM_Interpolator::interpolateUAtVertices().
|
staticinherited |
|
staticinherited |
Referenced by EMM_DisplacementOperator::backup(), EMM_DisplacementOperator::computeFieldsAtTime(), EMM_DisplacementOperator::EMM_DisplacementOperator(), EMMG_ClassFactory::NewInstance(), EMM_DisplacementOperator::restore(), EMM_DisplacementFieldsTest::test(), and EMM_DisplacementOperator::updateAtNextTimeStep().
|
staticinherited |
Referenced by EMM_DisplacementOperator::EMM_DisplacementOperator(), and EMMG_ClassFactory::NewInstance().
|
staticinherited |
|
staticinherited |
Referenced by EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_RealField::fitToSize(), EMM_MassMatrix::getElementVolume(), EMM_CanonicalMassMatrix::isSymmetric(), EMM_BlockMassMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_RealField::setValue(), EMM_CanonicalMassMatrix::solve(), EMM_BlockMassMatrix::solve(), EMM_BlockMassMatrix::toString(), and EMMG_RealField::wedge().
|
staticinherited |