![]() |
MechSys
1.0
Computing library for simulations in continuum and discrete mechanics
|
#include <equilibelem.h>
Public Member Functions | |
EquilibElem (int NDim, Mesh::Cell const &Cell, Model const *Mdl, Model const *XMdl, SDPair const &Prp, SDPair const &Ini, Array< Node * > const &Nodes) | |
Connectivity. | |
virtual | ~EquilibElem () |
virtual void | SetBCs (size_t IdxEdgeOrFace, SDPair const &BCs, BCFuncs *BCF) |
If setting body forces, IdxEdgeOrFace is ignored. | |
virtual void | GetLoc (Array< size_t > &Loc) const |
Get location vector for mounting K/M matrices. | |
void | CalcK (Mat_t &K) const |
Stiffness matrix. | |
void | CalcM (Mat_t &M) const |
Mass matrix. | |
virtual void | UpdateState (Vec_t const &dU, Vec_t *F_int=NULL) const |
Update state at IPs. | |
virtual void | SetFint (Vec_t *Fint=NULL) const |
Set Fint=K*Ue or set nodes if Fint==NULL. | |
virtual void | StateKeys (Array< String > &Keys) const |
Get state keys, ex: sx, sy, sxy, ex, ey, exy. | |
virtual void | StateAtIP (SDPair &KeysVals, int IdxIP) const |
Get state at IP. | |
void | CalcB (Mat_t const &C, IntegPoint const &IP, Mat_t &B, double &detJ, double &Coef) const |
Strain-displacement matrix. Coef: coefficient used during integration. | |
void | CalcN (Mat_t const &C, IntegPoint const &IP, Mat_t &N, double &detJ, double &Coef) const |
Shape functions matrix. | |
virtual size_t | NIVs () const |
Number of internal variables. | |
virtual double | GetIV (size_t i) const |
Get internal variable. | |
virtual void | SetIV (size_t i, double Val) |
Set internal variable. | |
virtual void | CalcIVRate (double Time, Vec_t const &U, Vec_t const &V, Vec_t &Rate) const |
Calculate rate of internal variables. | |
virtual void | CorrectIVs () |
Correct just set IVs. | |
Public Attributes | |
double | h |
Thickness of the element. | |
double | rho |
Density. | |
Static Public Attributes | |
static size_t | NCo = 0 |
Number of stress/strain components == 2*NDim. | |
static size_t | NDu = 0 |
Number of DOFs (displacements) == NN*NDim. |
FEM::EquilibElem::EquilibElem | ( | int | NDim, |
Mesh::Cell const & | Cell, | ||
Model const * | Mdl, | ||
Model const * | XMdl, | ||
SDPair const & | Prp, | ||
SDPair const & | Ini, | ||
Array< Node * > const & | Nodes | ||
) | [inline] |
virtual FEM::EquilibElem::~EquilibElem | ( | ) | [inline, virtual] |
void FEM::EquilibElem::CalcB | ( | Mat_t const & | C, |
IntegPoint const & | IP, | ||
Mat_t & | B, | ||
double & | detJ, | ||
double & | Coef | ||
) | const [inline] |
Strain-displacement matrix. Coef: coefficient used during integration.
void FEM::EquilibElem::CalcIVRate | ( | double | Time, |
Vec_t const & | U, | ||
Vec_t const & | V, | ||
Vec_t & | Rate | ||
) | const [inline, virtual] |
Calculate rate of internal variables.
Reimplemented from FEM::Element.
Reimplemented in FEM::HydroMechElem.
void FEM::EquilibElem::CalcK | ( | Mat_t & | K | ) | const [inline, virtual] |
Stiffness matrix.
Reimplemented from FEM::Element.
void FEM::EquilibElem::CalcM | ( | Mat_t & | M | ) | const [inline, virtual] |
Mass matrix.
Reimplemented from FEM::Element.
void FEM::EquilibElem::CalcN | ( | Mat_t const & | C, |
IntegPoint const & | IP, | ||
Mat_t & | N, | ||
double & | detJ, | ||
double & | Coef | ||
) | const [inline] |
Shape functions matrix.
void FEM::EquilibElem::CorrectIVs | ( | ) | [inline, virtual] |
Correct just set IVs.
Reimplemented from FEM::Element.
double FEM::EquilibElem::GetIV | ( | size_t | i | ) | const [inline, virtual] |
void FEM::EquilibElem::GetLoc | ( | Array< size_t > & | Loc | ) | const [inline, virtual] |
Get location vector for mounting K/M matrices.
Reimplemented from FEM::Element.
Reimplemented in FEM::HydroMechElem.
size_t FEM::EquilibElem::NIVs | ( | ) | const [inline, virtual] |
void FEM::EquilibElem::SetBCs | ( | size_t | IdxEdgeOrFace, |
SDPair const & | BCs, | ||
BCFuncs * | BCF | ||
) | [inline, virtual] |
If setting body forces, IdxEdgeOrFace is ignored.
Reimplemented from FEM::Element.
Reimplemented in FEM::HydroMechElem.
void FEM::EquilibElem::SetFint | ( | Vec_t * | Fint = NULL | ) | const [inline, virtual] |
Set Fint=K*Ue or set nodes if Fint==NULL.
Reimplemented from FEM::Element.
void FEM::EquilibElem::SetIV | ( | size_t | i, |
double | Val | ||
) | [inline, virtual] |
void FEM::EquilibElem::StateAtIP | ( | SDPair & | KeysVals, |
int | IdxIP | ||
) | const [inline, virtual] |
void FEM::EquilibElem::StateKeys | ( | Array< String > & | Keys | ) | const [inline, virtual] |
Get state keys, ex: sx, sy, sxy, ex, ey, exy.
Reimplemented from FEM::Element.
Reimplemented in FEM::HydroMechElem.
void FEM::EquilibElem::UpdateState | ( | Vec_t const & | dU, |
Vec_t * | F_int = NULL |
||
) | const [inline, virtual] |
double FEM::EquilibElem::h |
Thickness of the element.
size_t FEM::EquilibElem::NCo = 0 [static] |
Number of stress/strain components == 2*NDim.
size_t FEM::EquilibElem::NDu = 0 [static] |
Number of DOFs (displacements) == NN*NDim.
double FEM::EquilibElem::rho |
Density.