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

#include <domain.h>

List of all members.

Public Types

enum  BryTagType_t { None_t, Element_t, Border_t, Node_t }
typedef std::map< String,
BCFuncs * > 
MDatabase_t
 Map 'tag_varkey' to M function pointer (ex.: '-10_ux')
typedef std::map< int, Model * > Models_t
 Map tag to model pointer.

Public Member Functions

 Domain (Mesh::Generic const &Msh, Dict const &Prps, Dict const &Mdls, Dict const &Inis, char const *FNKey=NULL, Array< int > const *OutV=NULL, pVTUfunc pVTU=NULL)
 Pointer to function to be called in WriteVTU (ex.: solution values)
 ~Domain ()
void SetBCsNew (Array< BCfunc > const &Bfuns, Array< FaceBc > const &Fbcs, Array< NodeBc > const &Nbcs)
void SetBCs (Dict const &BCs)
 Set boundary conditions.
void NewNodsClearU ()
 Clear U values of StgNewNods (new nodes just activated by SetBCs)
void PrintResults (char const *NF="%15.6e", bool OnlySummary=false, bool WithElems=true, double Tol=1.0e-10) const
 Print results (Tol:tolerance to ignore zeros)
void WriteMPY (char const *FileKey, MPyPrms const &Prms) const
void WriteVTU (char const *FileKey, bool DoExtrapolation=true) const
bool CheckErrorNods (Table const &NodSol, SDPair const &NodTol) const
 Check error at nodes.
bool CheckErrorEles (Table const &EleSol, SDPair const &EleTol) const
 Check error at the centre of elements.
bool CheckErrorIPs (Table const &EleSol, SDPair const &EleTol) const
 Check error at integration points of elements.
void PrintBCs (std::ostream &os, double tf=1.0) const
 Print boundary conditions.
void SaveState (char const *FileKey) const
 Save Nodes and Elements' state to an HDF5 file.
void LoadState (char const *FileKey)
 Load Nodes and Elements' state from an HDF5 file.
void SetGeostatic (SDPair const &Data)
 Set geostatic state.
void NodalResults (bool OnlyOutNods=false) const
 Calculate extrapolated values at elments IPs' to nodes.
void OutResults (char const *VTUFName=NULL, bool HeaderOnly=false)
 Do output results.
void CalcReactions (Table &NodesReactions, SDPair &SumReactions) const
 Calculate reactions.

Public Attributes

double Time
 Current time (t)
size_t IdxOut
 Index for output of Time files (VTU)
Dict const & Prps
 Element properties.
Dict const & Inis
 Initial values.
int NDim
 Space dimension.
Models_t Mdls
 Models.
Models_t XMdls
 Extra Models.
pVTUfunc VTUfunc
 Pointer to function to be called in WriteVTU.
std::map< int, Node * > VertID2Node
 Map vertex ID to Node.
Array< Node * > Nods
 (Allocated memory) Nodes
Array< Element * > Eles
 (Allocated memory) Elements
Array< Node * > TgdNods
 Tagged Nodes (at boundaries)
Array< Element * > TgdEles
 Tagged edges or faces of Elements (at boundaries)
Array< Node * > OutNods
 Nodes for which output (results) is generated.
Array< Element * > OutEles
 Elements corresponding to Nodes for which output is to be generated (needed during extrapolation)
Array< std::ofstream * > FilNods
 Files with results at selected nodes (OutNods)
Array< Element * > Beams
 Subset of elements of type Beam.
MDatabase_t MFuncs
 Database of pointers to M functions.
Array< Node * > InterNodes
 Nodes on the inferface between partitions (if PARA==true)
Tag2Eles_t Tag2Eles
 Map tag to elements. Useful to activate/deactivate layers.
Array< Node * > ActNods
 Subset of active nodes (set once per call to SetBCs)
Array< Element * > ActEles
 Subset of active elements (set once per call to SetBCs)
Array< Node * > NodsWithPF
 Subset of nodes with prescribed F.
Array< Node * > NodsWithPU
 Subset of nodes with prescribed U.
Array< Element * > ElesWithBC
 Subset of elements with prescribed boundary conditions (ex.: beams, flowelem with convection, etc.)
Array< Node * > NodsPins
 Subset of nodes that are pins.
Array< Node * > NodsIncSup
 Subset of nodes with inclined supports.
Array< Node * > StgNewNods
 Nodes just activated in the new stage set by SetBCs.
bool HasDisps
 Has displacements (ux, ...) ?
bool HasVeloc
 Has velocities (vx, ...) ?
bool HasWDisch
 Has specific water discharge (qwx, ...) ?
Array< StringAllUKeys
 All U node keys (ux, uy, hh, ...)
Array< StringAllFKeys
 All F node keys (fx, fy, qq, ...)
Array< StringAllUKeysBCF
 All U BC callback functions (UX, UY, HH, ...) : upper case.
Array< StringAllFKeysBCF
 All F BC callback functions (FX, FY, QQ, ...) : upper case.
Array< StringAllExtraKeys
 All extra BC keys such as 'qn', 'qt', 's', 'activate', 'grav'.
Array< StringAllExtraKeysBCF
 All extra BC keys such as 'qn', 'qt', 's', 'activate', 'grav'.
Array< StringAllEKeys
 All element keys (sx, sy, vx, vy, ...)
Res_t NodResults
 Extrapolated nodal results.
Res_t NodResCount
 Count how many times a variable (key) was added to a node.

Static Public Attributes

static bool PARA = false
 Parallel code ?
static bool WithInfo = true
 Print information ?

Member Typedef Documentation

Map 'tag_varkey' to M function pointer (ex.: '-10_ux')

typedef std::map<int,Model*> FEM::Domain::Models_t

Map tag to model pointer.


Member Enumeration Documentation

Enumerator:
None_t 
Element_t 
Border_t 
Node_t 

Constructor & Destructor Documentation

FEM::Domain::Domain ( Mesh::Generic const &  Msh,
Dict const &  Prps,
Dict const &  Mdls,
Dict const &  Inis,
char const *  FNKey = NULL,
Array< int > const *  OutV = NULL,
pVTUfunc  pVTU = NULL 
) [inline]

Pointer to function to be called in WriteVTU (ex.: solution values)

Parameters:
MshThe mesh
PrpsElement properties
MdlsModel names and parameters
InisInitial values
FNKeyFilename key to be used during the output of results
OutVIDs or Tags of vertices to generate output
FEM::Domain::~Domain ( ) [inline]

Member Function Documentation

void FEM::Domain::CalcReactions ( Table NodesReactions,
SDPair SumReactions 
) const [inline]

Calculate reactions.

bool FEM::Domain::CheckErrorEles ( Table const &  EleSol,
SDPair const &  EleTol 
) const [inline]

Check error at the centre of elements.

bool FEM::Domain::CheckErrorIPs ( Table const &  EleSol,
SDPair const &  EleTol 
) const [inline]

Check error at integration points of elements.

bool FEM::Domain::CheckErrorNods ( Table const &  NodSol,
SDPair const &  NodTol 
) const [inline]

Check error at nodes.

void FEM::Domain::LoadState ( char const *  FileKey) [inline]

Load Nodes and Elements' state from an HDF5 file.

void FEM::Domain::NewNodsClearU ( ) [inline]

Clear U values of StgNewNods (new nodes just activated by SetBCs)

void FEM::Domain::NodalResults ( bool  OnlyOutNods = false) const [inline]

Calculate extrapolated values at elments IPs' to nodes.

void FEM::Domain::OutResults ( char const *  VTUFName = NULL,
bool  HeaderOnly = false 
) [inline]

Do output results.

void FEM::Domain::PrintBCs ( std::ostream &  os,
double  tf = 1.0 
) const [inline]

Print boundary conditions.

void FEM::Domain::PrintResults ( char const *  NF = "%15.6e",
bool  OnlySummary = false,
bool  WithElems = true,
double  Tol = 1.0e-10 
) const [inline]

Print results (Tol:tolerance to ignore zeros)

void FEM::Domain::SaveState ( char const *  FileKey) const [inline]

Save Nodes and Elements' state to an HDF5 file.

void FEM::Domain::SetBCs ( Dict const &  BCs) [inline]

Set boundary conditions.

void FEM::Domain::SetBCsNew ( Array< BCfunc > const &  Bfuns,
Array< FaceBc > const &  Fbcs,
Array< NodeBc > const &  Nbcs 
) [inline]
void FEM::Domain::SetGeostatic ( SDPair const &  Data) [inline]

Set geostatic state.

void FEM::Domain::WriteMPY ( char const *  FileKey,
FEM::MPyPrms const &  Prms 
) const [inline]
void FEM::Domain::WriteVTU ( char const *  FileKey,
bool  DoExtrapolation = true 
) const [inline]

Member Data Documentation

Subset of active elements (set once per call to SetBCs)

Subset of active nodes (set once per call to SetBCs)

All element keys (sx, sy, vx, vy, ...)

All extra BC keys such as 'qn', 'qt', 's', 'activate', 'grav'.

All extra BC keys such as 'qn', 'qt', 's', 'activate', 'grav'.

All F node keys (fx, fy, qq, ...)

All F BC callback functions (FX, FY, QQ, ...) : upper case.

All U node keys (ux, uy, hh, ...)

All U BC callback functions (UX, UY, HH, ...) : upper case.

Subset of elements of type Beam.

(Allocated memory) Elements

Subset of elements with prescribed boundary conditions (ex.: beams, flowelem with convection, etc.)

Array<std::ofstream*> FEM::Domain::FilNods

Files with results at selected nodes (OutNods)

Has displacements (ux, ...) ?

Has velocities (vx, ...) ?

Has specific water discharge (qwx, ...) ?

Index for output of Time files (VTU)

Initial values.

Nodes on the inferface between partitions (if PARA==true)

Models.

Database of pointers to M functions.

Space dimension.

Count how many times a variable (key) was added to a node.

Extrapolated nodal results.

(Allocated memory) Nodes

Subset of nodes with inclined supports.

Subset of nodes that are pins.

Subset of nodes with prescribed F.

Subset of nodes with prescribed U.

Elements corresponding to Nodes for which output is to be generated (needed during extrapolation)

Nodes for which output (results) is generated.

bool FEM::Domain::PARA = false [static]

Parallel code ?

Element properties.

Nodes just activated in the new stage set by SetBCs.

Map tag to elements. Useful to activate/deactivate layers.

Tagged edges or faces of Elements (at boundaries)

Tagged Nodes (at boundaries)

Current time (t)

Map vertex ID to Node.

Pointer to function to be called in WriteVTU.

bool FEM::Domain::WithInfo = true [static]

Print information ?

Extra Models.


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