MechSys  1.0
Computing library for simulations in continuum and discrete mechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Public Attributes | Static Public Attributes
FEM::EquilibElem Class Reference

#include <equilibelem.h>

Inheritance diagram for FEM::EquilibElem:
FEM::Element FEM::HydroMechElem

List of all members.

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.

Constructor & Destructor Documentation

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]

Connectivity.

Parameters:
NDimSpace dimension
CellGeometric information: ID, Tag, connectivity
MdlModel
XMdlExtra Model
PrpProperties
IniInitial values
virtual FEM::EquilibElem::~EquilibElem ( ) [inline, virtual]

Member Function Documentation

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]

Get internal variable.

Reimplemented from FEM::Element.

Reimplemented in FEM::HydroMechElem.

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]

Number of internal variables.

Reimplemented from FEM::Element.

Reimplemented in FEM::HydroMechElem.

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]

Set internal variable.

Reimplemented from FEM::Element.

Reimplemented in FEM::HydroMechElem.

void FEM::EquilibElem::StateAtIP ( SDPair KeysVals,
int  IdxIP 
) const [inline, virtual]

Get state at IP.

Reimplemented from FEM::Element.

Reimplemented in FEM::HydroMechElem.

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]

Update state at IPs.

Reimplemented from FEM::Element.

Reimplemented in FEM::HydroMechElem.


Member Data Documentation

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.

Density.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines