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_VTEGROperator.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 | 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 | computeGradUAtFace (const tBoolean &withConstraints, const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighborsIndices, const tDimension &dim, const tReal *Ucells, const tReal *Ui, const tLimitCondition *lc, const tBoolean &incU0, const tReal *U0, tReal gradU[9]) const |
compute the gradient U at the center of the face f of a cell whch is either an interior face or a Dirichlet face (none a neumann Face) 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_VTEGROperator | 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_VTEGROperator (void) | |
create More... | |
virtual | ~EMMG_DisplacementFVM_VTEGROperator (void) |
destroy 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 | computeGradAlmostNullUAtFace (const tReal *h, const tUInteger &xCell, const tUInteger &yCell, const tUInteger &zCell, const tUCInt &f, const tUIndex &nextCell, const tUInteger &Px, const tUInteger &Py, const tUInteger &Pz, const tBoolean *periodicity, const CORE_UIndexMorseArray &neighborsIndices, const tLimitCondition *lc, const tDimension &dim, const tReal *Ui, tReal gradU[9]) const |
computes the gradient U at the center of net cell of the cell (xCell,yCell,zCell) with the interface f when U is almost null except in the cell (xCell,yCel,zCell) . The interface either an interior face or a Dirichlet face 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_VTEGROperator) | |
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(), EMMG_DisplacementFVM_STEGROperator::computeElasticStress(), 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().
|
protectedvirtualinherited |
computes the gradient U at the center of net cell of the cell (xCell,yCell,zCell) with the interface f when U is almost null except in the cell (xCell,yCel,zCell) . The interface either an interior face or a Dirichlet face
[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
The normal component is (U at center of next cell is null) where
The tangential component is the mean of the gradient at cells with interface f in common : . If the face is within a Dircihlet boundary .
Implements EMM_DisplacementFVMOperator.
Reimplemented in EMM_DisplacementFVM_SSGROperator, and EMM_DisplacementFVM_STEGROperator.
References EMM_DisplacementFVM_VGROperator::computeGradAlmostNullUAtCell(), EMM_DisplacementFVM_VGROperator::computeGradAlmostNullUAtNextCell(), EMM_DisplacementFVMOperator::isGhostCellOn(), tCInt, tDimension, tReal, and EMM_Grid3D::UNMAGNETIZED_ELEMENT.
|
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().
|
virtualinherited |
compute the gradient U at the center of the face f of a cell whch is either an interior face or a Dirichlet face (none a neumann 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
Computes gradU at face f decomposed by its normal component and its tangential components
The normal component is where
The tangential component is the mean of the gradient at cells with interface f in common : . If the face is within a Dircihlet boundary .
Implements EMM_DisplacementFVMOperator.
Reimplemented in EMM_DisplacementFVM_STEGROperator, and EMM_DisplacementFVM_SSGROperator.
References EMM_DisplacementFVMOperator::computeGradUAtCell(), EMM_DisplacementFVM_Interpolator::faceMean(), EMM_DisplacementFVMOperator::isGhostCellOn(), null, EMM_Object::NULL_VALUE, tCInt, tDimension, tReal, tUIndex, and EMM_Grid3D::UNMAGNETIZED_ELEMENT.
|
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(), computeMagneticStress(), EMMG_DisplacementFVM_SSGROperator::computeMagneticStress(), EMMG_DisplacementFVM_STEGROperator::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_VTEGROperator().
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 |