![]() |
MechSys
1.0
Computing library for simulations in continuum and discrete mechanics
|
#include <uwpelem.h>
Public Types | |
typedef std::map< size_t, SDPair > | IdxToBcs_t |
typedef std::map< size_t, BCFuncs * > | IdxToBcf_t |
Public Member Functions | |
UWPElem (int NDim, Mesh::Cell const &Cell, Model const *Mdl, Model const *XMdl, SDPair const &Prp, SDPair const &Ini, Array< Node * > const &Nodes) | |
Connectivity. | |
~UWPElem () | |
void | SetBCs (size_t IdxEdgeOrFace, SDPair const &BCs, BCFuncs *BCF) |
Set boundary conditions. | |
void | CalcSurfLoads (double Time, Vec_t &Sl, Vec_t &Sq) const |
Calculate surface loads. | |
void | GetLoc () const |
Get location vectors. | |
void | ElemEqs (double Time, Vec_t const &V_g, Vec_t const &Ww_g, Vec_t const &Pw_g) const |
Element equations: M,Mw,Hw,f,fw,hw,cw,ew. | |
void | StateKeys (Array< String > &Keys) const |
State keys. | |
void | StateAtIP (SDPair &KeysVals, int IdxIP) const |
State at IP. | |
void | Interp (Mat_t const &C, IntegPoint const &IP, double h=1.0) const |
Interpolation matrices. | |
double | Update (size_t Idx, Vec_t const &V_g, Vec_t const &dPwdt_g, double dt) |
Calculate rates and update. FE:Idx=0, ME:Idx=1. | |
void | Restore () |
Restore state. | |
Public Attributes | |
Array< UnsatFlowState * > | FSta |
Flow state. | |
UnsatFlow const * | FMdl |
Flow model. | |
IdxToBcs_t | LBCs |
Loads boundary conditions. | |
IdxToBcf_t | LBCf |
Loads callbacks. | |
bool | HasGrav |
Has gravity? | |
Vec_t | g |
Gravity vector: [0,-g]^T or [0,0,-g]^T. | |
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. | |
static size_t | NDp = 0 |
Number of DOFs of pressure == GEp->NN. | |
static Array< size_t > | LocU |
location of U | |
static Array< size_t > | LocWw |
location of Ww | |
static Array< size_t > | LocPw |
location of Pw | |
static Mat_t | M |
Solids mass matrix: NDu,NDu. | |
static Mat_t | Mw |
Water mass matrix: NDu,NDu. | |
static Mat_t | Hw |
Water storage matrix: NDp,NDp. | |
static Vec_t | f |
Solids force vector: NDu. | |
static Vec_t | fw |
Water force vector: NDu. | |
static Vec_t | hw |
Water gradient vector: NDu. | |
static Vec_t | cw |
Water convection vector: NDu. | |
static Vec_t | ew |
Water coupling vector: NDp. | |
static Mat_t | dNdX |
Derivative of shape functions: NDim,GE->NN. | |
static Mat_t | B |
Matrix with deriv of shapes: NCo,NDu. | |
static Mat_t | Bp |
Pressure matrix with derivs: NDim,GE->NN == dNdX. | |
static Mat_t | N |
Shape functions: NDim,NDu. | |
static Mat_t | Np |
Pressure shape functions: 1,NDp. | |
static Vec_t | Npv |
Vector of pressure shape funcs: NDp. | |
static Mat_t | J |
Jacobian of dNdX: NDim,NDim. | |
static Mat_t | Ji |
Inverse of J: NDim,NDim. | |
static Mat_t | Jf |
Jacobian of dNfacedX: NDim-1,NDim. | |
static double | DetJ |
Determinant of Jacobian. | |
static double | Coef |
Coef for integration. | |
static Vec_t | V |
Element (local) solids velocity vector: NDu. | |
static Vec_t | Ww |
Element (local) water rel. velocity: NDu. | |
static Vec_t | Pw |
Element (local) water pressure: NDp. | |
static Vec_t | dPwdt |
Element (local) derivative of pw: NDp. | |
static Mat_t | Co |
Coordinates matrix: GE->NN,NDim. | |
static Mat_t | Cf |
Face coordinates matrix: GE->NFN,NDim. | |
static Mat_t | lw |
O2 tensor: velocity gradient == Sum_n (vsn+wwn) dy Gn: NDim,NDim. | |
static Vec_t | ww |
Water rel velocit at IP: ww = N * Ww: NDim. | |
static Vec_t | d |
O2 tensor: rate of deformation of solids == B*v: NCo. | |
static Vec_t | fwd |
Drag force vector: NDim. | |
static Array< String > | StaKeys |
State keys such as 'sx', 'sy', to be extrapolated to nodes. |
typedef std::map<size_t,BCFuncs*> FEM::UWPElem::IdxToBcf_t |
typedef std::map<size_t,SDPair > FEM::UWPElem::IdxToBcs_t |
FEM::UWPElem::UWPElem | ( | int | NDim, |
Mesh::Cell const & | Cell, | ||
Model const * | Mdl, | ||
Model const * | XMdl, | ||
SDPair const & | Prp, | ||
SDPair const & | Ini, | ||
Array< Node * > const & | Nodes | ||
) | [inline] |
FEM::UWPElem::~UWPElem | ( | ) | [inline] |
void FEM::UWPElem::CalcSurfLoads | ( | double | Time, |
Vec_t & | Sl, | ||
Vec_t & | Sq | ||
) | const [inline] |
Calculate surface loads.
void FEM::UWPElem::ElemEqs | ( | double | Time, |
Vec_t const & | V_g, | ||
Vec_t const & | Ww_g, | ||
Vec_t const & | Pw_g | ||
) | const [inline, virtual] |
Element equations: M,Mw,Hw,f,fw,hw,cw,ew.
Reimplemented from FEM::Element.
void FEM::UWPElem::GetLoc | ( | ) | const [inline, virtual] |
Get location vectors.
Reimplemented from FEM::Element.
void FEM::UWPElem::Interp | ( | Mat_t const & | C, |
IntegPoint const & | IP, | ||
double | h = 1.0 |
||
) | const [inline] |
Interpolation matrices.
void FEM::UWPElem::Restore | ( | ) | [inline, virtual] |
Restore state.
Reimplemented from FEM::Element.
void FEM::UWPElem::SetBCs | ( | size_t | IdxEdgeOrFace, |
SDPair const & | BCs, | ||
BCFuncs * | BCF | ||
) | [inline, virtual] |
Set boundary conditions.
Reimplemented from FEM::Element.
void FEM::UWPElem::StateAtIP | ( | SDPair & | KeysVals, |
int | IdxIP | ||
) | const [inline, virtual] |
State at IP.
Reimplemented from FEM::Element.
void FEM::UWPElem::StateKeys | ( | Array< String > & | Keys | ) | const [inline, virtual] |
State keys.
Reimplemented from FEM::Element.
double FEM::UWPElem::Update | ( | size_t | Idx, |
Vec_t const & | V_g, | ||
Vec_t const & | dPwdt_g, | ||
double | dt | ||
) | [inline, virtual] |
Calculate rates and update. FE:Idx=0, ME:Idx=1.
Reimplemented from FEM::Element.
Mat_t FEM::UWPElem::B [static] |
Matrix with deriv of shapes: NCo,NDu.
Mat_t FEM::UWPElem::Bp [static] |
Pressure matrix with derivs: NDim,GE->NN == dNdX.
Mat_t FEM::UWPElem::Cf [static] |
Face coordinates matrix: GE->NFN,NDim.
Mat_t FEM::UWPElem::Co [static] |
Coordinates matrix: GE->NN,NDim.
double FEM::UWPElem::Coef [static] |
Coef for integration.
Vec_t FEM::UWPElem::cw [static] |
Water convection vector: NDu.
Vec_t FEM::UWPElem::d [static] |
O2 tensor: rate of deformation of solids == B*v: NCo.
double FEM::UWPElem::DetJ [static] |
Determinant of Jacobian.
Mat_t FEM::UWPElem::dNdX [static] |
Derivative of shape functions: NDim,GE->NN.
Vec_t FEM::UWPElem::dPwdt [static] |
Element (local) derivative of pw: NDp.
Vec_t FEM::UWPElem::ew [static] |
Water coupling vector: NDp.
Vec_t FEM::UWPElem::f [static] |
Solids force vector: NDu.
UnsatFlow const* FEM::UWPElem::FMdl |
Flow model.
Flow state.
Vec_t FEM::UWPElem::fw [static] |
Water force vector: NDu.
Vec_t FEM::UWPElem::fwd [static] |
Drag force vector: NDim.
Gravity vector: [0,-g]^T or [0,0,-g]^T.
Has gravity?
Mat_t FEM::UWPElem::Hw [static] |
Water storage matrix: NDp,NDp.
Vec_t FEM::UWPElem::hw [static] |
Water gradient vector: NDu.
Mat_t FEM::UWPElem::J [static] |
Jacobian of dNdX: NDim,NDim.
Mat_t FEM::UWPElem::Jf [static] |
Jacobian of dNfacedX: NDim-1,NDim.
Mat_t FEM::UWPElem::Ji [static] |
Inverse of J: NDim,NDim.
Loads callbacks.
Loads boundary conditions.
Array< size_t > FEM::UWPElem::LocPw [static] |
location of Pw
Array< size_t > FEM::UWPElem::LocU [static] |
location of U
Array< size_t > FEM::UWPElem::LocWw [static] |
location of Ww
Mat_t FEM::UWPElem::lw [static] |
O2 tensor: velocity gradient == Sum_n (vsn+wwn) dy Gn: NDim,NDim.
Mat_t FEM::UWPElem::M [static] |
Solids mass matrix: NDu,NDu.
Mat_t FEM::UWPElem::Mw [static] |
Water mass matrix: NDu,NDu.
Mat_t FEM::UWPElem::N [static] |
Shape functions: NDim,NDu.
size_t FEM::UWPElem::NCo = 0 [static] |
Number of stress/strain components == 2*NDim.
size_t FEM::UWPElem::NDp = 0 [static] |
Number of DOFs of pressure == GEp->NN.
size_t FEM::UWPElem::NDu = 0 [static] |
Number of DOFs (displacements) == NN*NDim.
Mat_t FEM::UWPElem::Np [static] |
Pressure shape functions: 1,NDp.
Vec_t FEM::UWPElem::Npv [static] |
Vector of pressure shape funcs: NDp.
Vec_t FEM::UWPElem::Pw [static] |
Element (local) water pressure: NDp.
Array< String > FEM::UWPElem::StaKeys [static] |
State keys such as 'sx', 'sy', to be extrapolated to nodes.
Vec_t FEM::UWPElem::V [static] |
Element (local) solids velocity vector: NDu.
Vec_t FEM::UWPElem::Ww [static] |
Element (local) water rel. velocity: NDu.
Vec_t FEM::UWPElem::ww [static] |
Water rel velocit at IP: ww = N * Ww: NDim.