1 #ifndef EMM_DisplacementFEMOperator_H 2 #define EMM_DisplacementFEMOperator_H 494 return mMassMatrix->getPointsNumber();
502 return mMassMatrix->getPeriodicIndicator();
508 return mMassMatrix->getNeighborsIndicator();
521 mMassMatrix->getMemorySize();
538 dFieldType=CORE_Object::getTypeName<tReal>();
static const tFlag POINT
Definition: EMM_Grid3D.h:66
virtual void computeEquilibriumMatrixDiagonalConditioner(MATH_Vector &D) const
compute the diagonal conditioner
Definition: EMM_DisplacementFEMOperator.cpp:595
This class describes a grid3d mesh.
Definition: EMM_Grid3D.h:48
virtual tUIndex getSize() const =0
return the size of the field
SP::EMM_MassMatrix mMassMatrix
Definition: EMM_DisplacementFEMOperator.h:376
const tFlag & getMassMatrixType() const
get the mass matrix type
Definition: EMM_DisplacementFEMOperator.h:480
tReal computeStressConstraintEnergy(const EMM_RealField &Uf) const
compute the stress constraint energy on boundary
Definition: EMM_DisplacementFEMOperator.cpp:2176
static const tFlag CANONICAL_MASS_MATRIX
mass matrix whose each element is real
Definition: EMM_DisplacementFEMOperator.h:353
EMM_RealField & getAccelerator()
get the accelerator for writing
Definition: EMM_DisplacementOperator.h:970
tBoolean buildDataOnNeumannBoundaryFaces(const EMM_Grid3D &mesh, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &DnU0, EMM_RealField &C) const
build the data on boundary faces
Definition: EMM_DisplacementFEMOperator.cpp:50
virtual tBoolean resetToInitialState(const EMM_LandauLifschitzSystem &system)
reset the operator to initial state the operator
Definition: EMM_DisplacementFEMOperator.cpp:536
EMM_RealField & getDisplacement()
get the displacement for writing
Definition: EMM_DisplacementOperator.h:911
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_DisplacementOperator.cpp:854
SP_OBJECT(EMM_DisplacementFEMOperator)
#define tUCInt
Definition: types.h:21
#define tUSInt
Definition: types.h:28
#define tBoolean
Definition: types.h:139
static const tFlag CONDENSED_MASS_MATRIX
mass matrix is diagonal
Definition: EMM_DisplacementFEMOperator.h:359
void addBoundaryElasticStress(const tReal &beta, const tUIndex &nPoints, const tDimension &dim, tReal *D) const
add the elastic stress from boundary
Definition: EMM_DisplacementFEMOperator.cpp:1301
static const tUCInt INT_GRAD_PHI_FACTOR
Definition: EMM_DisplacementFEMOperator.h:367
#define tDimension
Definition: EMM_Types.h:10
static const tCInt INT_GRAD_PHI[]
Definition: EMM_DisplacementFEMOperator.h:366
virtual void computeElasticTensor(const tUIndex &nData, const tDimension &dim, const tReal *U, EMM_2PackedSymmetricTensors &eTensor) const
compute the elastic tensor for all cells
Definition: EMM_DisplacementFEMOperator.cpp:1088
virtual void spaceRelevant(EMM_RealField &V) const
make the rebuild of the vector V from the solving space.
Definition: EMM_DisplacementFEMOperator.cpp:563
virtual void spaceProjection(EMM_RealField &V) const
make the projection of the vector B into the solving linear space
Definition: EMM_DisplacementFEMOperator.cpp:555
virtual void buildDataOnBoundaryFaces(const EMM_Grid3D &mesh, const EMM_LimitConditionArray &limitConditionOnPoints, const EMM_RealField &U0, EMM_RealField &DnU0)
build the data on boundary faces
Definition: EMM_DisplacementFEMOperator.h:415
virtual SP::EMM_RealField NewInstance() const =0
create a new instance of real field with the same dimension and size
This class describes a morse array of symmetric tensors of 2 order in packed form.
Definition: EMM_2PackedSymmetricTensors.h:20
tFlag mMassMatrixType
Definition: EMM_DisplacementFEMOperator.h:373
#define tCellFlag
Definition: EMM_Types.h:16
This class describes the displacement operator defined on the data of the mesh.
Definition: EMM_DisplacementOperator.h:193
virtual tBoolean solveAcceleratorSystem(EMM_RealField &V)
solve the velocity form the accelerator matrix : M.X=V V:=X
Definition: EMM_DisplacementFEMOperator.cpp:567
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.
Definition: EMM_DisplacementFEMOperator.h:536
const tCellFlag & getPeriodicIndicator() const
get the periodicity indication
Definition: EMM_DisplacementFEMOperator.h:501
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzSystem.h:88
#define tCInt
Definition: types.h:24
This class describes a masked vector.
Definition: MATH_Vector.h:16
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_DisplacementFEMOperator.h:519
virtual ~EMM_DisplacementFEMOperator(void)
destroy
Definition: EMM_DisplacementFEMOperator.cpp:43
#define tUIndex
Definition: types.h:126
This class describes a real array.
Definition: EMM_RealArray.h:16
const tDimension & getDimension() const
get the dimension
Definition: EMM_RealField.h:553
DEFINE_SPTR(EMM_DisplacementFEMOperator)
virtual void copy(const EMM_RealField &f)=0
copy the real vector
#define tString
Definition: types.h:135
virtual tReal computePotentialEnergy(const EMM_RealField &U) const
compute the potential energy to the space variation of the displacement
Definition: EMM_DisplacementFEMOperator.cpp:2170
void setMassMatrixType(const tFlag &t)
set the mass matrix type
Definition: EMM_DisplacementFEMOperator.h:474
virtual tReal computeCineticEnergy(const EMM_RealField &V) const
compute the energy of the magnetostriction operator at current displacement and velocity ...
Definition: EMM_DisplacementFEMOperator.cpp:2159
EMM_RealField & getVelocity()
get the velocity for writing
Definition: EMM_DisplacementOperator.h:949
virtual void computeElasticStress(const tBoolean &withConstraints, const tReal &beta, const tUIndex &nData, const tDimension &dim, const tReal *U, tReal *D) const
compute the elastic stress
Definition: EMM_DisplacementFEMOperator.cpp:1353
const EMM_CellFlagArray & getNeighborsIndicator() const
return the neighbors indicator in bits where F is the number of faces per element and is 1 if there...
Definition: EMM_DisplacementFEMOperator.h:507
static const tFlag BLOCK_MASS_MATRIX
mass matrix whose each element is a digonal matrixof size 3
Definition: EMM_DisplacementFEMOperator.h:356
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
Definition: EMM_DisplacementFEMOperator.cpp:1865
This class describes the displacement operator defined on the points of the mesh. ...
Definition: EMM_DisplacementFEMOperator.h:345
#define tULLInt
Definition: types.h:45
virtual tString toString() const
turn the martix into string
Definition: EMM_DisplacementFEMOperator.h:758
This class describes a real field.
Definition: EMM_RealField.h:21
virtual void setSize(const tUIndex &n)=0
set the size
virtual SP::EMM_MassMatrix NewMassMatrix() const
create the accelerator matrix
Definition: EMM_DisplacementFEMOperator.cpp:480
#define tReal
Definition: types.h:118
virtual tBoolean discretize(const EMM_LandauLifschitzSystem &system)
discretize the operator
Definition: EMM_DisplacementFEMOperator.cpp:500
EMM_DisplacementFEMOperator(void)
create
Definition: EMM_DisplacementFEMOperator.cpp:36
const tUIndex * getPointsNumber() const
get the points number in each direction
Definition: EMM_DisplacementFEMOperator.h:493
#define tFlag
Definition: types.h:74