C++ main module for emicrom Package
1.0
|
This class describes the displacement operator defined on the data of the mesh. More...
#include <EMM_DisplacementOperator.h>
Public Member Functions | |
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 |
virtual void | buildDataOnBoundaryFaces (const EMM_Grid3D &mesh, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &U0, EMM_RealField &DnU0)=0 |
build the data on boundary faces More... | |
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... | |
virtual tULLInt | getMemorySize () const |
return the memory size in byte More... | |
virtual tBoolean | discretize (const EMM_LandauLifschitzSystem &system) |
discretize and initialize the operator More... | |
virtual tBoolean | resetToInitialState (const EMM_LandauLifschitzSystem &system) |
reset the opertaro to initial state 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... | |
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... | |
virtual void | setSolver (const tString &solverName) |
set the solver More... | |
void | setSolver (SP::MATH_Solver solver) |
set the solver 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... | |
virtual void | computeEquilibriumMatrixDiagonalConditioner (MATH_Vector &D) const |
compute the diagonal conditioner 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... | |
virtual void | computeElasticTensor (const EMM_RealField &U, EMM_2PackedSymmetricTensors &eTensor) |
compute the elastic tensor for all cells More... | |
void | computeStress (const EMM_RealArray &sigma, const EMM_RealField &U, const EMM_RealField &M, EMM_RealField &stress) const |
compute the stress More... | |
virtual void | computeElasticStress (const EMM_RealField &U, EMM_RealField &S) const |
compute the elastic stress 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 void | computeMagneticStress (const tReal &alpha, const tReal &beta, const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &S) const =0 |
compute the magnetic stress for all cells from 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... | |
virtual tReal | computeCineticEnergy (const EMM_RealField &V) const =0 |
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 tReal | computePotentialEnergy (const EMM_RealField &U) const |
compute the potential energy to the space variation of the displacement More... | |
tReal | computeStressConstraintEnergy (const tReal &t) const |
compute the energy of the boundary stress constraint More... | |
virtual tReal | computeStressConstraintEnergy (const EMM_RealField &U) const =0 |
compute the energy of the stress constraint with displacemet More... | |
virtual tString | toString () const |
turn the martix into string 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... | |
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... | |
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... | |
Static Public Member Functions | |
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 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 | |
EMM_DisplacementOperator (void) | |
create More... | |
virtual | ~EMM_DisplacementOperator (void) |
destroy More... | |
virtual void | toDoAfterThisSetting () |
method called after the setting of the shared pointer this method can only be called once. More... | |
virtual void | spaceRelevant (EMM_RealField &V) const =0 |
make the relevment of the vector B from the solving linear space. More... | |
virtual void | initializeEquilibriumSolver (const EMM_RealField &U0) |
initialize the equilibrium solver More... | |
virtual void | computeElasticTensor (const tUIndex &nData, const tDimension &dim, const tReal *U, EMM_2PackedSymmetricTensors &eTensor) const =0 |
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 *D) const =0 |
compute the elastic stress which is an affine operator where 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 &nS, tReal *S) const =0 |
compute the magnetic stress to elastic stress S More... | |
void | setThis (SP::CORE_Object p) |
set this weak shared pointer called toDoAfterThis setting method More... | |
Private Member Functions | |
SP_OBJECT (EMM_DisplacementOperator) | |
tBoolean | computePastDisplacement (const tReal &dt, const EMM_RealField &accelerator, const EMM_RealField &U0, const EMM_RealField &V0, EMM_RealField &U) const |
compute from and with time step dt More... | |
tBoolean | computeFieldsAtTimeWithTE2 (const tReal &dtau, const tReal &dt, const EMM_RealField &accelerator, const EMM_RealField &U0, const EMM_RealField &U1, EMM_RealField &U2, EMM_RealField &V2) const |
compute the new U & V at by taylor extension of order 2 More... | |
tBoolean | computeFieldsAtTimeWithTE1 (const tReal &dt, const EMM_RealField &accelerator, const EMM_RealField &U0, const EMM_RealField &V0, EMM_RealField &U1, EMM_RealField &V1) const |
compute the new U & V at by taylor extension of order 2 More... | |
tBoolean | computeFieldsAtTimeWithGL1Interpolation (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, const EMM_RealField &U0, const EMM_RealField &V0, EMM_RealField &Ut, EMM_RealField &Vt) const |
compute the new U & V at by gauss legendre interpolation of degre N (N=1) More... | |
tBoolean | computeFieldsAtTimeWithGLnInterpolation (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, const EMM_RealField &U0, const EMM_RealField &V0, EMM_RealField &Ut, EMM_RealField &Vt, EMM_RealField &Us, EMM_RealField &Ms) |
compute the new U & V at by gauss legendre interpolation of degre N (N=4) More... | |
tBoolean | computeAccelerator (EMM_RealField &V) |
compute the accelerator from the mass matrix : M.X=V V:=X More... | |
virtual tBoolean | solveAcceleratorSystem (EMM_RealField &V)=0 |
solve the accelerator system : M.X=V V:=X More... | |
virtual void | spaceProjection (EMM_RealField &V) const =0 |
make the projection of the vector B into the solving linear space More... | |
virtual void | spaceProjection (const EMM_RealField &V0, EMM_RealField &V) const =0 |
make the projection of the vector B into the solving linear space More... | |
Private Attributes | |
SP::EMM_4SymmetricTensors | mLe |
SP::EMM_4Tensors | mLme |
SP::EMM_4Tensors | mLem |
SP::EMM_4SymmetricTensors | mLmem |
tFlag | mElasticityState |
tFlag | mTimeIntegrationMethod |
tUCInt | mTimeIntegrationOrder |
tReal | mL [3] |
tReal | mCFL |
tReal | mDt |
EMM_RealArray | mKappa |
SP::EMM_LimitConditionArray | mLimitConditionOnPoints |
EMM_2PackedSymmetricTensors | mEpsilonUt |
SP::EMM_RealField | mUnm1 |
SP::EMM_RealField | mUn |
SP::EMM_RealField | mUt |
SP::EMM_RealField | mVt |
SP::EMM_RealField | mVn |
SP::EMM_RealField | mAccelerator |
SP::EMM_RealField | mAccelerator_t |
tString | mInitUFile |
tReal | mInitUFileScale |
SP::EMM_RealField | mInitU |
tString | mInitVFile |
tReal | mInitVFileScale |
SP::EMM_RealField | mInitV |
tFlag | mConstraintFaces |
SP::EMM_RealField | mConstraints |
tReal | mElasticTensorAdimensionizedParameter |
tReal | mTc |
tReal | mLc |
tReal | mMsat |
SP::MATH_GaussLegendreIntegration | mIntegrator |
SP::EMM_RealField | mUs |
SP::EMM_RealField | mMs |
SP::MATH_Solver | mSolver |
tBoolean | mIsEquilibriumMatrixConditioned |
SP::EMM_BlockEquilibriumMatrix | mEquilibriumMatrix |
This class describes the displacement operator defined on the data of the mesh.
It solves the equation either
with mixed limit condition :
The physical parameters are:
The mathematical operators are:
We normalize the variables by , and when L denotes the reference length of cells (max step size of the cell).
The unsteady equation becomes:
with :
There is two kinds of numerical integrations:
We denote by , , , , and .
The first use the Gauss Legendre integrations:
verifies the system:
we have:
This first method is unconditionally unstable in dimension 1. So we prefer to use the second integration method which use a Taylor expansion with respect of time which is stable with a CFL defined by of 1.
So, , then we conclude that
and the elasticity equation gives
For computing the first step before t=0, we can forseen by when is the initial velocity of the displacement.
At any time, it is possible to compute the velocity in 2 order precision in time by using , and :
so with ,
.
For constant time step the formula becomes:
.
The main idea algorithm to compute the displacement is to discretize the elastic equation in a discrete solving space space to leads to a matrix equation : where
Note that the discrete solving space is either the vertices of the grid for the Finite Element Methods or the elements of the grid for the Finite Volume Methods.
To solve the equilibrium state, we suppose that which leads to :
In this formulation is a symetric definite negative matrix. So we prefer to solve the equation in order to have better performance of conjugate gradient linear solver :
The solving of this linear equation is done by the Conjugate Gradient method which needs only the definition of the Matrix.Vector product.
As displacement is known in dirichlet point, we ensure that for all Dirichlet points i and that the right hand side of the equation verifies . This is done by the spaceProjection() method.
For sqalve point s, we ensure that is replaced by its corresponding values when m is the master vertex corresponding to s in the periodic slave boundary. At the end the sapceRelevant() method set to .
The input data of the algorithm to solve the displacement and velocity field are:
The output results at each time is the
The algorithm to compute the unsteady output results :
The algorithm to compute the steady output results :
with and
As is definite negative, we solve instead
|
protected |
create
References mCFL, mDt, mElasticityState, mElasticTensorAdimensionizedParameter, mInitU, mLc, mMsat, mTc, mTimeIntegrationMethod, mTimeIntegrationOrder, TE, tUSInt, and UNSTEADY_STATE.
|
protectedvirtual |
destroy
|
inlinevirtual |
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.
|
virtual |
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 |
It saves
Reimplemented from EMM_Operator.
Reimplemented in EMM_DisplacementFVMOperator.
References isEquilibriumState(), isFrozenState(), mAccelerator, mDt, mEpsilonUt, mTimeIntegrationMethod, mUn, mUnm1, mVn, CORE_Object::out(), CORE_Out::println(), EMM_Tensors::saveToFile(), tBoolean, TE, and tString.
Referenced by EMM_DisplacementFVMOperator::backup(), and getLimitConditionOnPointsByReference().
|
pure virtual |
build the data on boundary faces
mesh | : mesh of the domain |
limitConditionOnPoints | : limit condition on points |
U0 | : U at all points at t=0 |
DnU0 | : grad UO . N at each point |
discretize the limit condition into the linar solving space
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
Referenced by getLimitConditionOnPointsByReference().
|
private |
compute the accelerator from the mass matrix : M.X=V V:=X
V |
|
References solveAcceleratorSystem(), spaceProjection(), spaceRelevant(), and tBoolean.
Referenced by computeFieldsAtTimeWithGLnInterpolation(), restore(), setCFL(), and updateAtNextTimeStep().
|
pure virtual |
compute the energy due to velocity
V | velocity field |
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
Referenced by computeCineticEnergyAtTime().
compute the energy due to velocity
t | time in [0,dt[ where dt is the time step |
References computeCineticEnergy(), getVelocity(), and tReal.
Referenced by computeEnergy().
|
inlinevirtual |
compute the elastic stress for all cells
U | the displacement field |
S | the elastic stress field |
It computes:
where
Reimplemented in EMMG_DisplacementFVM_VOGGROperator, EMMG_DisplacementFVM_SSGROperator, EMMG_DisplacementFVM_STEGROperator, EMMG_DisplacementFVM_VTEGROperator, and EMMG_DisplacementFEMOperator.
References EMM_RealField::getDimension(), EMM_RealField::getValues(), tDimension, tReal, and tUIndex.
Referenced by computeElasticStress(), computeElasticStressMatrixProduct(), computeStress(), and initializeEquilibriumSolver().
|
inline |
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 computeElasticStress(), tBoolean, tDimension, tReal, and tUIndex.
|
protectedpure virtual |
compute the elastic stress which is an affine operator where
withConstraints | : if true compute the whore opertaor if false, compute only the linear part of operator |
beta | factor of the strees to turn intto definite positive/negative matrix |
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 |
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
|
inlinevirtual |
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 computeElasticStress(), computeElasticTensor(), tDimension, tReal, and tUIndex.
|
virtual |
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 in EMM_DisplacementFVMOperator, and EMM_DisplacementFVM_VIGROperator.
References EMM_RealField::getDimension(), EMM_RealField::getValues(), tDimension, tReal, and tUIndex.
Referenced by computeElasticStressMatrixProduct(), EMM_DisplacementFVMOperator::computeElasticTensor(), computeFieldsAtTime(), restore(), and updateAtNextTimeStep().
|
protectedpure virtual |
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
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
tReal EMM_DisplacementOperator::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
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 computeCineticEnergyAtTime(), computePotentialEnergyAtTime(), computeStressConstraintEnergy(), getConstraints(), getElasticTensor(), EMM_Operator::getElementVolume(), CORE_Array< T >::getSize(), CORE_Object::getThread(), isEquilibriumState(), mLme, CORE_Thread::startChrono(), tBoolean, tReal, and tString.
Referenced by EMM_MagnetostrictionOperator::computeEnergy(), and computeMagneticStress().
|
inlinestaticinherited |
compute epsilon
|
inlinevirtual |
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 in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
References computeEquilibriumState(), initializeEquilibriumSolver(), MATH_Vector::setSize(), and tBoolean.
tBoolean EMM_DisplacementOperator::computeEquilibriumState | ( | const EMM_RealArray & | sigma, |
const EMM_RealField & | M, | ||
const EMM_RealField & | U0, | ||
EMM_RealField & | U | ||
) |
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 computeMagneticStress(), EMM_RealField::copy(), getAccelerator(), getSolver(), mEquilibriumMatrix, mUt, MATH_Solver::setMaximumIterationsNumber(), spaceProjection(), spaceRelevant(), and tBoolean.
Referenced by computeEquilibriumMatrixDiagonalConditioner(), and updateAtNextTimeStep().
|
virtual |
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 computeElasticTensor(), computeFieldsAtTimeWithGL1Interpolation(), computeFieldsAtTimeWithGLnInterpolation(), computeFieldsAtTimeWithTE1(), computeFieldsAtTimeWithTE2(), isSteadyState(), mAccelerator, mDt, mEpsilonUt, mMs, mTimeIntegrationMethod, mTimeIntegrationOrder, mUn, mUnm1, mUs, mUt, mVn, mVt, P1, tBoolean, TE, and tFlag.
Referenced by setCFL().
|
private |
compute the new U & V at by gauss legendre interpolation of degre N (N=1)
dt | the time step |
sigma | the magnetized weight of each cell |
dM_dt0 | : the magnetization field variation at time 0 |
M0 | the magnetization field at time 0 |
U0 | the displacement field at time 0 |
V0 | the velocity field at time 0 |
Ut | the returned displacement field at time t |
Vt | the returned velocity field at time t |
The new M is given by the formula: where
References EMM_RealField::add(), EMM_RealField::copy(), EMM_RealField::getSize(), EMM_RealField::initField(), mAccelerator, and EMM_RealField::setSize().
Referenced by computeFieldsAtTime(), and setCFL().
|
private |
compute the new U & V at by gauss legendre interpolation of degre N (N=4)
dt | the time step |
sigma | the magnetized weight of each cell |
dM_dt0 | : the magnetization field variation at time 0 |
M0 | the magnetization field at time 0 |
U0 | the displacement field at time 0 |
V0 | the velocity field at time 0 |
Ut | output displacement field at time dt |
Vt | output velocity field at time dt |
Us | working displacement field at time s.dt |
Ms | working magnetization field at time s.dt |
M variation in [0,dt[:
U Variation in [0,dt[ :
V variation in [0,dt[
References EMM_RealField::add(), computeAccelerator(), computeStress(), EMM_RealField::copy(), MATH_GaussLegendreIntegration::getOrder(), MATH_GaussLegendreIntegration::getPoints(), EMM_RealField::getSize(), MATH_GaussLegendreIntegration::getWeights(), mAccelerator, mAccelerator_t, mIntegrator, mKappa, EMM_RealField::setSize(), tBoolean, tReal, tUIndex, and tUSInt.
Referenced by computeFieldsAtTime(), and setCFL().
|
private |
compute the new U & V at by taylor extension of order 2
dt | the time step |
accelerator | : the accelerator d^2U/dt^2 at each cell |
U0 | the displacement U at time |
V0 | the velocity field V at time |
U1 | the OUTPUT displacement U at time |
V1 | the OUTPUT velocity V at time |
References EMM_RealField::add(), EMM_RealField::getSize(), EMM_RealField::initField(), and EMM_RealField::setSize().
Referenced by computeFieldsAtTime(), and setCFL().
|
private |
compute the new U & V at by taylor extension of order 2
dtau | the time step |
dt | the time step |
accelerator | : the accelerator d^2U/dt2 at each cell |
U0 | the displacement U at time |
U1 | the displacement U at time |
U2 | the OUTPUT displacement U at time |
V2 | the OUTPUT velocity V at time |
and ,
with
References EMM_RealField::add(), EMM_RealField::getSize(), EMM_RealField::initField(), EMM_RealField::setSize(), and tReal.
Referenced by computeFieldsAtTime(), and setCFL().
|
inline |
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 computeEnergy(), EMM_RealField::setDimension(), EMM_RealField::setSize(), tDimension, tReal, and tUIndex.
Referenced by computeEquilibriumState(), and computeStress().
|
pure virtual |
compute the magnetic stress for all cells from the stress
[in] | alpha | : multiplicator factor for S |
[in] | beta | : multiplicator factor for magnetic stress |
[in] | sigma | the magnetized weight of cells |
[in] | M | the magnetization field |
[in,out] | S | the total stress field |
It computes:
where
Implemented in EMMG_DisplacementFVM_VOGGROperator, EMMG_DisplacementFVM_SSGROperator, EMMG_DisplacementFVM_STEGROperator, EMMG_DisplacementFVM_VTEGROperator, and EMMG_DisplacementFEMOperator.
|
protectedpure virtual |
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] | nS | size of stress field values |
[in,out] | S | the stress in input the elastic stress , in output the total stress of size nData x dim |
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
|
private |
compute from and with time step dt
dt | time step . |
accelerator | d2U/dt^2 at t=0 |
U0 | displacement field at t=0 |
V0 | : velocity field at t=0 |
U | : OUTPUT displacement field at t=t_{-1} |
References EMM_RealField::add(), and EMM_RealField::copy().
Referenced by setCFL(), and updateAtNextTimeStep().
|
virtual |
compute the potential energy to the space variation of the displacement
U | displacement field |
Reimplemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
References EMM_Operator::getElementVolume(), mEpsilonUt, mLe, and tReal.
Referenced by EMM_DisplacementFVMOperator::computePotentialEnergy(), EMM_DisplacementFEMOperator::computePotentialEnergy(), and computePotentialEnergyAtTime().
compute the potential energy to the space variation of the displacement
t | time in [0,dt[ where dt is the time step |
References computePotentialEnergy(), getDisplacement(), and tReal.
Referenced by computeEnergy().
|
inline |
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 computeElasticStress(), and computeMagneticStress().
Referenced by computeFieldsAtTimeWithGLnInterpolation(), restore(), and updateAtNextTimeStep().
compute the energy of the boundary stress constraint
t | time in [0,dt[ where dt is the time step |
References getDisplacement(), and tReal.
Referenced by computeEnergy().
|
pure virtual |
compute the energy of the stress constraint with displacemet
U | the displacement field |
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
|
virtual |
discretize and initialize the operator
system | the data to discretize the operator |
Reimplemented from EMM_Operator.
Reimplemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
References EMM_Grid3D::getAdimensionizedSegmentsSize(), EMM_Grid3D::getElementsNumber(), EMM_LandauLifschitzSystem::getMatterField(), EMM_MatterField::getMatterParameterDistribution(), EMM_LandauLifschitzSystem::getMesh(), EMM_Grid3D::getVerticesNumber(), mKappa, mL, mLmem, EMM_Matter::RHOd, tBoolean, tReal, tUIndex, and tUSInt.
Referenced by EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), and getLimitConditionOnPointsByReference().
|
inline |
get the accelerator for writing
Referenced by computeEquilibriumState(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), and initializeEquilibriumSolver().
|
inline |
get the accelerator for reading
References setSolver(), and tString.
|
inline |
get the segments size in all directions
References 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().
|
inline |
get the adimensionized volumic mass per cell
References 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 |
|
inline |
get the constraint faces if face f is constrainted
References mConstraintFaces.
Referenced by EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), and EMM_DisplacementFVMOperator::computeElasticStress().
|
inline |
get the constraints field for reading
Referenced by EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFVMOperator::computeElasticStress(), computeEnergy(), and EMM_DisplacementFEMOperator::computeStressConstraintEnergy().
|
inline |
get the constraints field for writing
|
inlinevirtual |
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.
|
inlinevirtual |
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.
|
inlinevirtual |
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.
|
inlinevirtual |
get the number of field used in the operator
Reimplemented from EMM_Operator.
References 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 or 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[ |
Reimplemented in EMM_DisplacementFEMOperator, EMM_DisplacementFVMOperator, EMM_MagnetostrictionOperator, and EMM_ZeemanOperator.
References EMM_Grid3D::ELEMENT.
|
inline |
get the displacement for writing
Referenced by EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), computePotentialEnergyAtTime(), computeStressConstraintEnergy(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), initializeEquilibriumSolver(), NewEquilibriumMatrix(), EMM_DisplacementFVMOperator::resetToInitialState(), and resetToInitialState().
|
inline |
get the displacement for reading
|
inline |
get the veolicty at time
t | time to get velocity |
References isSteadyState().
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inline |
return the elastic tensor
References mEpsilonUt.
Referenced by 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(), computeEnergy(), EMM_MagneticExcitationLinearOperator::computeEnergyWithMagneticExcitation(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_ZeemanOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeMagneticStress(), and 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
|
inline |
return the adimensionized elastic tensor distribution
Referenced by EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner().
|
inline |
return the adimensionized magnetic tensor distribution
Referenced by EMM_DisplacementFVMOperator::computeMagneticStress(), and EMM_DisplacementFEMOperator::computeMagneticStress().
|
inline |
return the adimensionized magnetic tensor distribution
|
inline |
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
|
inline |
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(), nullProjectionOnDirichletBoundary(), periodicProjection(), and projectionOnDirichletBoundary().
|
inline |
References backup(), buildDataOnBoundaryFaces(), discretize(), getMemorySize(), mLimitConditionOnPoints, nullProjectionOnDirichletBoundary(), periodicProjection(), projectionOnDirichletBoundary(), resetToInitialState(), 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().
|
virtual |
return the memory size in byte
Reimplemented from EMM_Operator.
Reimplemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
References EMM_Operator::getMemorySize(), EMM_Tensors::getMemorySize(), CORE_Array< T >::getMemorySize(), mAccelerator, mAccelerator_t, mConstraints, mEpsilonUt, mEquilibriumMatrix, mKappa, mLe, mLem, mLme, mLmem, mMs, mUn, mUnm1, mUs, mUt, mVn, mVt, null, and tULLInt.
Referenced by getLimitConditionOnPointsByReference(), EMM_DisplacementFVMOperator::getMemorySize(), and EMM_DisplacementFEMOperator::getMemorySize().
|
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.
|
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 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 |
|
inline |
get the solver of the system
Referenced by 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(), 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(), nullProjectionOnDirichletBoundary(), periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), 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().
|
inline |
get the time integration method for next time step
References mTimeIntegrationMethod.
|
inline |
get the time integration order for new field
References mTimeIntegrationOrder.
|
inline |
|
inlinestaticinherited |
|
inline |
get the velocity for writing
Referenced by computeCineticEnergyAtTime(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::getDataFieldSpace(), EMM_DisplacementFEMOperator::getDataFieldSpace(), EMM_DisplacementFVMOperator::resetToInitialState(), and resetToInitialState().
|
inline |
get the velocity at time
t | time to get velocity |
References isSteadyState().
|
inline |
get the velocity at t for reading
|
protectedvirtual |
initialize the equilibrium solver
[in] | U0 | is the value of U on dirichlet points |
Reimplemented in EMM_DisplacementFVM_VIGROperator.
References computeElasticStress(), getAccelerator(), EMM_RealField::getDimension(), getDisplacement(), EMM_RealField::getSize(), EMM_RealField::getValues(), EMM_RealField::initField(), mEquilibriumMatrix, NewEquilibriumMatrix(), EMM_RealField::NewInstance(), EMM_RealField::setDimension(), EMM_RealField::setSize(), spaceProjection(), spaceRelevant(), tDimension, tReal, tUIndex, and EMM_Object::Z.
Referenced by computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFVM_VIGROperator::initializeEquilibriumSolver(), restore(), and updateAtNextTimeStep().
|
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().
|
inlinevirtual |
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().
|
inline |
get if the equilibrium matrix is conditioned
References mIsEquilibriumMatrixConditioned.
Referenced by EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), and EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner().
|
inline |
Referenced by backup(), computeEnergy(), resetToInitialState(), restore(), and updateAtNextTimeStep().
|
inline |
|
inlinevirtual |
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().
|
inline |
Referenced by computeFieldsAtTime(), getDataFieldsNumber(), getDisplacement(), and getVelocity().
|
virtual |
create the equilibrium matrix
References getDisplacement(), CORE_Object::getThis(), and EMM_BlockEquilibriumMatrix::New().
Referenced by initializeEquilibriumSolver(), and setCFL().
void EMM_DisplacementOperator::nullProjectionOnDirichletBoundary | ( | EMM_RealField & | V | ) | const |
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(), mLimitConditionOnPoints, tDimension, tReal, and tUIndex.
Referenced by getLimitConditionOnPointsByReference(), projectionOnDirichletBoundary(), resetToInitialState(), and EMM_DisplacementFEMOperator::spaceProjection().
void EMM_DisplacementOperator::nullProjectionOnDirichletBoundary | ( | const tUIndex & | nPoints, |
const tDimension & | dim, | ||
tReal * | V | ||
) | const |
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, 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(), 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(), 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().
void EMM_DisplacementOperator::periodicProjection | ( | const tCellFlag & | periodicity, |
const tUInteger | nPoints[3], | ||
EMM_RealField & | V | ||
) | const |
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(), 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 getLimitConditionOnPointsByReference(), 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().
void EMM_DisplacementOperator::projectionOnDirichletBoundary | ( | const EMM_RealField & | V0, |
EMM_RealField & | V | ||
) | const |
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(), mLimitConditionOnPoints, null, nullProjectionOnDirichletBoundary(), tBoolean, tDimension, tReal, and tUIndex.
Referenced by getLimitConditionOnPointsByReference(), and EMM_DisplacementFEMOperator::spaceProjection().
void EMM_DisplacementOperator::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
[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, getLimitConditionOnPoints(), CORE_Object::getThread(), CORE_Thread::getThreadsNumber(), OMP_GET_THREAD_ID, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, tDimension, tLimitCondition, tReal, tUIndex, and tUInteger.
|
inlinestaticinherited |
|
inlinestaticinherited |
|
virtual |
reset the opertaro to initial state
system | the data to initialize the operator |
Implements EMM_Operator.
Reimplemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
References getDisplacement(), EMM_Grid3D::getElementsNumber(), EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_LandauLifschitzSystem::getMesh(), EMM_Grid3D::getPeriodicIndicator(), EMM_Grid3D::getSegmentsNumber(), EMM_LandauLifschitzSystem::getSigma(), getVelocity(), EMM_Grid3D::getVerticesNumber(), isEquilibriumState(), mInitU, mInitUFile, mInitUFileScale, mInitV, mInitVFile, mInitVFileScale, mLc, mTc, mUn, mVn, nullProjectionOnDirichletBoundary(), periodicProjection(), tBoolean, tDimension, tReal, tUIndex, tUInteger, and updateAtNextTimeStep().
Referenced by getLimitConditionOnPointsByReference(), EMM_DisplacementFVMOperator::resetToInitialState(), and EMM_DisplacementFEMOperator::resetToInitialState().
|
virtual |
restore the operator data from file(s)
system | : general data to restore the operator |
prefix | : common prefix of the saving files |
suffix | : common suffix of the saving files |
ext | : common extension of the saving files |
It restore the state from :
Reimplemented from EMM_Operator.
Reimplemented in EMM_DisplacementFVMOperator.
References computeAccelerator(), computeElasticTensor(), computeStress(), EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_LandauLifschitzSystem::getSigma(), initializeEquilibriumSolver(), isEquilibriumState(), mAccelerator, mDt, mEpsilonUt, mKappa, mTimeIntegrationMethod, mUn, mUnm1, mVn, CORE_Object::out(), CORE_Out::println(), tBoolean, TE, CORE_Real::toString(), and tString.
Referenced by getLimitConditionOnPointsByReference(), and EMM_DisplacementFVMOperator::restore().
|
inline |
set the cfl for computing the initial time step
cfl | initial time step |
References computeAccelerator(), computeFieldsAtTime(), computeFieldsAtTimeWithGL1Interpolation(), computeFieldsAtTimeWithGLnInterpolation(), computeFieldsAtTimeWithTE1(), computeFieldsAtTimeWithTE2(), computePastDisplacement(), NewEquilibriumMatrix(), solveAcceleratorSystem(), spaceProjection(), spaceRelevant(), tBoolean, tFlag, tReal, and updateAtNextTimeStep().
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().
set constraints field
C | constraint faces in bit : if face f is constrainted |
data | : uniform data for constraints |
References EMM_RealField::setValue().
|
inline |
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().
|
inline |
set constraints
C | constraint faces in bit : if face f is constrainted |
data | constraints field |
|
inline |
set the displacement field
u | : is the displacement field defined ob points |
|
inline |
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 |
|
inline |
set the elasticity state
v | the elasticity state eithet equilibrium | steady | unsteady |
Referenced by EMMG_ClassFactory::NewInstance().
|
inline |
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().
|
inline |
set initial displacement field
data | : uniform data for displacement |
References EMM_RealField::setValue().
|
inline |
set initial displacement field
U0 | x-coordinate of displacement |
U1 | y-coordinate of displacement |
U2 | z-coordinate of displacement |
References EMM_RealField::initField().
|
inline |
set initial displacement field
data | : data for displacement |
|
inline |
set initial velocity field
scale | scale of the file |
dataFile | : file which contains the velocity field defined on points |
Referenced by EMMG_ClassFactory::NewInstance().
|
inline |
set initial velocity field
data | velocity field |
|
inline |
set initial velocity field
data | : uniform data for velocity |
References EMM_RealField::setValue().
|
inline |
set initial velocity field
V0 | x-coordinate of velocity |
V1 | y-coordinate of velocity |
V2 | z-coordinate of velocity |
References EMM_RealField::initField().
|
inline |
set to true if the equilibrium matrix is conditioned
c | true to recondition the equilibrium matrix |
|
inlinestaticinherited |
set if the memory checking is used
v | : true to check memory |
Referenced by main().
|
inline |
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().
|
inline |
set the limit condition to all points
lc | the limit condition value for all points of the mesh. Interiror point are ignored (0)
|
|
inlinestaticinherited |
|
virtual |
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 in EMM_DisplacementFVMOperator.
References tString.
Referenced by getAccelerator(), EMMG_ClassFactory::NewInstance(), and EMM_DisplacementFVMOperator::setSolver().
|
inline |
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().
|
inline |
set the time integration method for new field
m | integration method in P1 | TE |
Referenced by EMMG_ClassFactory::NewInstance().
|
inline |
set the time integration order for new field
o | integration ordre in {1,2} |
Referenced by EMMG_ClassFactory::NewInstance().
|
inline |
set the velocity of dicplacement defined on points
v | : is the displacement velocity field |
|
inline |
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 |
|
privatepure virtual |
solve the accelerator system : M.X=V V:=X
V |
|
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
Referenced by computeAccelerator(), and setCFL().
|
private |
|
privatepure virtual |
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()
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
Referenced by computeAccelerator(), computeEquilibriumState(), initializeEquilibriumSolver(), and setCFL().
|
privatepure virtual |
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()
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
|
protectedpure virtual |
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()
Implemented in EMM_DisplacementFEMOperator, and EMM_DisplacementFVMOperator.
Referenced by computeAccelerator(), computeEquilibriumState(), initializeEquilibriumSolver(), and setCFL().
|
inlineprotectedvirtual |
method called after the setting of the shared pointer this method can only be called once.
Reimplemented from EMM_Object.
Reimplemented in EMM_DisplacementFVMOperator.
References EMM_Object::toDoAfterThisSetting().
Referenced by EMM_DisplacementFVMOperator::toDoAfterThisSetting().
|
inlinevirtual |
turn the martix into string
Reimplemented from CORE_Object.
Reimplemented in EMM_DisplacementFEMOperator, EMM_DisplacementFVMOperator, EMM_DisplacementFVM_VTEGROperator, EMM_DisplacementFVM_SSGROperator, and EMM_DisplacementFVM_STEGROperator.
References CORE_Object::toString().
Referenced by EMM_DisplacementFVMOperator::toString().
|
virtual |
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 computeAccelerator(), computeElasticTensor(), computeEquilibriumState(), computePastDisplacement(), computeStress(), initializeEquilibriumSolver(), isEquilibriumState(), isFrozenState(), mAccelerator, mDt, mEpsilonUt, mKappa, mTimeIntegrationMethod, mTimeIntegrationOrder, mUn, mUnm1, mUt, mVn, mVt, tBoolean, and TE.
Referenced by EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_DisplacementFEMOperator::resetToInitialState(), resetToInitialState(), and setCFL().
|
static |
Referenced by EMMG_ClassFactory::NewInstance().
|
static |
Referenced by EMMG_ClassFactory::NewInstance().
|
staticinherited |
|
private |
|
private |
Referenced by computeFieldsAtTimeWithGLnInterpolation(), and getMemorySize().
|
private |
Referenced by EMM_DisplacementOperator().
|
private |
Referenced by getConstraintFaces().
|
private |
Referenced by getMemorySize().
|
private |
Referenced by backup(), computeFieldsAtTime(), EMM_DisplacementOperator(), getTimeStep(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by EMM_DisplacementOperator().
|
private |
Referenced by EMM_DisplacementOperator().
|
private |
Referenced by backup(), computeFieldsAtTime(), computePotentialEnergy(), getElasticTensor(), getMemorySize(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by computeEquilibriumState(), getMemorySize(), and initializeEquilibriumSolver().
|
private |
Referenced by EMM_DisplacementOperator(), and resetToInitialState().
|
private |
Referenced by resetToInitialState().
|
private |
Referenced by resetToInitialState().
|
private |
Referenced by resetToInitialState().
|
private |
Referenced by resetToInitialState().
|
private |
Referenced by resetToInitialState().
|
private |
Referenced by computeFieldsAtTimeWithGLnInterpolation().
|
private |
Referenced by isEquilibriumMatrixReconditioned().
|
private |
|
private |
Referenced by discretize(), and getAdimensionizedSegmentsSize().
|
private |
Referenced by EMM_DisplacementOperator(), and resetToInitialState().
|
private |
Referenced by computePotentialEnergy(), and getMemorySize().
|
private |
Referenced by getMemorySize().
|
private |
|
private |
Referenced by computeEnergy(), and getMemorySize().
|
private |
Referenced by discretize(), and getMemorySize().
|
private |
Referenced by computeFieldsAtTime(), and getMemorySize().
|
private |
Referenced by EMM_DisplacementOperator().
|
private |
|
private |
Referenced by EMM_DisplacementOperator(), and resetToInitialState().
|
private |
Referenced by backup(), computeFieldsAtTime(), EMM_DisplacementOperator(), getTimeIntegrationMethod(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by computeFieldsAtTime(), EMM_DisplacementOperator(), getTimeIntegrationOrder(), and updateAtNextTimeStep().
|
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().
|
private |
Referenced by backup(), computeFieldsAtTime(), getMemorySize(), resetToInitialState(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by backup(), computeFieldsAtTime(), getMemorySize(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by computeFieldsAtTime(), and getMemorySize().
|
private |
Referenced by computeEquilibriumState(), computeFieldsAtTime(), getMemorySize(), and updateAtNextTimeStep().
|
private |
Referenced by backup(), computeFieldsAtTime(), getMemorySize(), resetToInitialState(), restore(), and updateAtNextTimeStep().
|
private |
Referenced by computeFieldsAtTime(), getMemorySize(), and updateAtNextTimeStep().
|
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().
|
static |
Referenced by computeFieldsAtTime(), EMMG_ClassFactory::NewInstance(), and EMM_DisplacementFieldsTest::test().
|
static |
|
static |
Referenced by 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 |