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
FEM::Element Class Reference

#include <element.h>

Inheritance diagram for FEM::Element:
FEM::Beam FEM::EquilibElem FEM::FlowElem FEM::NLRod FEM::Rod FEM::USigCondElem FEM::USigElem FEM::USigEpsElem FEM::UWPElem

List of all members.

Public Member Functions

 Element (int NDim, Mesh::Cell const &Cell, Model const *Mdl, Model const *XMdl, SDPair const &Prp, SDPair const &Ini, Array< Node * > const &Nodes)
 Connectivity.
virtual ~Element ()
virtual void IncNLocDOF (size_t &NEq) const
 Increment the number of local DOFs.
virtual void BackupState () const
 Backup element state.
virtual void RestoreState () const
 Restore element state.
virtual void SetBCs (size_t IdxEdgeOrFace, SDPair const &BCs, BCFuncs *BCF)
 Set boundary conditions.
virtual void AddToF (double Time, Vec_t &F) const
 Add to (external) F vector contribution at each Time.
virtual void ClrBCs ()
 Clear boundary conditions.
virtual void GetLoc () const
 Get location vector for mounting K/M matrices.
virtual void GetLoc (Array< size_t > &Loc) const
 Get location vector for mounting K/M matrices.
virtual void ElemEqs (double Time, Vec_t const &V, Vec_t const &Ww, Vec_t const &Pw) const
 Get location vector for mounting K/M matrices.
virtual void CalcK (Mat_t &K) const
virtual void CalcM (Mat_t &M) const
virtual void CalcC (Mat_t &C) const
virtual void CalcK (Vec_t const &U, double Alpha, double dt, Mat_t &KK, Vec_t &dF) const
virtual void CalcKCM (Mat_t &KK, Mat_t &CC, Mat_t &MM) const
virtual void UpdateState (Vec_t const &dU, Vec_t *F_int=NULL) const
virtual void SetFint (Vec_t *Fint=NULL) const
 Calculate Fi = K*U.
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.
virtual void StateAtIPs (Array< SDPair > &Results) const
 Get state (internal values: sig, eps) at all integration points.
virtual void StateAtNodes (Array< SDPair > &Results) const
 Get state (internal values: sig, eps) at all nodes (applies extrapolation)
virtual void Draw (std::ostream &os, MPyPrms const &Prms) const
 TODO: Move this to a Python script. Draw element with MatPlotLib.
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.
virtual double Update (size_t Idx, Vec_t const &V_g, Vec_t const &dPwdt_g, double dt)
 Update state.
virtual void Restore ()
 Restore state.
void CoordMatrix (Mat_t &C) const
 Matrix with coordinates of nodes.
void FCoordMatrix (size_t IdxFace, Mat_t &C) const
 Matrix with coordinates of face nodes.
void ShapeMatrix (Mat_t &M) const
 Matrix with shape functions evaluated at IPs.
void CalcShape (Mat_t const &C, IntegPoint const &IP, double &detJ, double &Coef) const
 Results are in GE->N.
void CalcFaceShape (Mat_t const &FC, IntegPoint const &FIP, double &detJ, double &Coef, double h=1.0) const
 Results are in GE->FN.
void CalcFaceShape (Mat_t const &FC, IntegPoint const &FIP, Mat_t &J, double &detJ, double &Coef, double h=1.0) const
 Results are in GE->FN.
void CoordsOfIP (size_t IdxIP, Vec_t &X) const
 x-y-z coordinates of integration point (IP)

Public Attributes

int NDim
 Space dimension.
Mesh::Cell const & Cell
 Geometric information: ID, Tag, connectivity.
Model const * Mdl
 The model.
Model const * XMdl
 Extra model.
GeomElemGE
 Element for geometry definition.
bool Active
 Active element ?
GeomType GTy
 Geometry type.
Array< Node * > Con
 Connectivity.
Array< State * > Sta
 State at the centre of the element or at each IP.
bool IsUWP
 Is u-w-p element ?

Constructor & Destructor Documentation

FEM::Element::Element ( 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
FEM::Element::~Element ( ) [inline, virtual]

Member Function Documentation

virtual void FEM::Element::AddToF ( double  Time,
Vec_t F 
) const [inline, virtual]

Add to (external) F vector contribution at each Time.

void FEM::Element::BackupState ( ) const [inline, virtual]

Backup element state.

virtual void FEM::Element::CalcC ( Mat_t C) const [inline, virtual]
void FEM::Element::CalcFaceShape ( Mat_t const &  FC,
IntegPoint const &  FIP,
double &  detJ,
double &  Coef,
double  h = 1.0 
) const [inline]

Results are in GE->FN.

void FEM::Element::CalcFaceShape ( Mat_t const &  FC,
IntegPoint const &  FIP,
Mat_t J,
double &  detJ,
double &  Coef,
double  h = 1.0 
) const [inline]

Results are in GE->FN.

virtual void FEM::Element::CalcIVRate ( double  Time,
Vec_t const &  U,
Vec_t const &  V,
Vec_t Rate 
) const [inline, virtual]

Calculate rate of internal variables.

Reimplemented in FEM::HydroMechElem, and FEM::EquilibElem.

virtual void FEM::Element::CalcK ( Mat_t K) const [inline, virtual]
virtual void FEM::Element::CalcK ( Vec_t const &  U,
double  Alpha,
double  dt,
Mat_t KK,
Vec_t dF 
) const [inline, virtual]
virtual void FEM::Element::CalcKCM ( Mat_t KK,
Mat_t CC,
Mat_t MM 
) const [inline, virtual]

Reimplemented in FEM::HydroMechElem.

virtual void FEM::Element::CalcM ( Mat_t M) const [inline, virtual]

Reimplemented in FEM::EquilibElem, FEM::FlowElem, and FEM::Beam.

void FEM::Element::CalcShape ( Mat_t const &  C,
IntegPoint const &  IP,
double &  detJ,
double &  Coef 
) const [inline]

Results are in GE->N.

virtual void FEM::Element::ClrBCs ( ) [inline, virtual]

Clear boundary conditions.

Reimplemented in FEM::FlowElem, and FEM::Beam.

void FEM::Element::CoordMatrix ( Mat_t C) const [inline]

Matrix with coordinates of nodes.

void FEM::Element::CoordsOfIP ( size_t  IdxIP,
Vec_t X 
) const [inline]

x-y-z coordinates of integration point (IP)

virtual void FEM::Element::CorrectIVs ( ) [inline, virtual]

Correct just set IVs.

Reimplemented in FEM::EquilibElem.

void FEM::Element::Draw ( std::ostream &  os,
MPyPrms const &  Prms 
) const [inline, virtual]

TODO: Move this to a Python script. Draw element with MatPlotLib.

Reimplemented in FEM::Beam, and FEM::Rod.

virtual void FEM::Element::ElemEqs ( double  Time,
Vec_t const &  V,
Vec_t const &  Ww,
Vec_t const &  Pw 
) const [inline, virtual]

Get location vector for mounting K/M matrices.

Reimplemented in FEM::UWPElem.

void FEM::Element::FCoordMatrix ( size_t  IdxFace,
Mat_t C 
) const [inline]

Matrix with coordinates of face nodes.

virtual double FEM::Element::GetIV ( size_t  i) const [inline, virtual]

Get internal variable.

Reimplemented in FEM::HydroMechElem, and FEM::EquilibElem.

virtual void FEM::Element::GetLoc ( ) const [inline, virtual]

Get location vector for mounting K/M matrices.

Reimplemented in FEM::UWPElem.

virtual void FEM::Element::GetLoc ( Array< size_t > &  Loc) const [inline, virtual]

Get location vector for mounting K/M matrices.

Reimplemented in FEM::NLRod, FEM::HydroMechElem, FEM::USigCondElem, FEM::USigElem, FEM::USigEpsElem, FEM::EquilibElem, FEM::FlowElem, FEM::Beam, and FEM::Rod.

virtual void FEM::Element::IncNLocDOF ( size_t &  NEq) const [inline, virtual]

Increment the number of local DOFs.

Reimplemented in FEM::USigElem, and FEM::USigEpsElem.

virtual size_t FEM::Element::NIVs ( ) const [inline, virtual]

Number of internal variables.

Reimplemented in FEM::HydroMechElem, and FEM::EquilibElem.

virtual void FEM::Element::Restore ( ) [inline, virtual]

Restore state.

Reimplemented in FEM::UWPElem.

void FEM::Element::RestoreState ( ) const [inline, virtual]

Restore element state.

virtual void FEM::Element::SetBCs ( size_t  IdxEdgeOrFace,
SDPair const &  BCs,
BCFuncs BCF 
) [inline, virtual]
virtual void FEM::Element::SetFint ( Vec_t Fint = NULL) const [inline, virtual]

Calculate Fi = K*U.

Reimplemented in FEM::EquilibElem.

virtual void FEM::Element::SetIV ( size_t  i,
double  Val 
) [inline, virtual]

Set internal variable.

Reimplemented in FEM::HydroMechElem, and FEM::EquilibElem.

void FEM::Element::ShapeMatrix ( Mat_t M) const [inline]

Matrix with shape functions evaluated at IPs.

virtual void FEM::Element::StateAtIP ( SDPair KeysVals,
int  IdxIP 
) const [inline, virtual]
void FEM::Element::StateAtIPs ( Array< SDPair > &  Results) const [inline, virtual]

Get state (internal values: sig, eps) at all integration points.

void FEM::Element::StateAtNodes ( Array< SDPair > &  Results) const [inline, virtual]

Get state (internal values: sig, eps) at all nodes (applies extrapolation)

Reimplemented in FEM::Beam, and FEM::Rod.

virtual void FEM::Element::StateKeys ( Array< String > &  Keys) const [inline, virtual]

Get state keys, ex: sx, sy, sxy, ex, ey, exy.

Reimplemented in FEM::UWPElem, FEM::USigCondElem, FEM::USigElem, FEM::HydroMechElem, FEM::USigEpsElem, FEM::EquilibElem, FEM::Beam, FEM::FlowElem, and FEM::Rod.

virtual double FEM::Element::Update ( size_t  Idx,
Vec_t const &  V_g,
Vec_t const &  dPwdt_g,
double  dt 
) [inline, virtual]

Update state.

Reimplemented in FEM::UWPElem.

virtual void FEM::Element::UpdateState ( Vec_t const &  dU,
Vec_t F_int = NULL 
) const [inline, virtual]

Member Data Documentation

Active element ?

Geometric information: ID, Tag, connectivity.

Connectivity.

Element for geometry definition.

Geometry type.

Is u-w-p element ?

The model.

Space dimension.

State at the centre of the element or at each IP.

Extra model.


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