MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
GmpMechanicalInterface Class Reference

Basic class for the mechanical interface element plugin object. More...

#include <gmpMechanicalInterface.h>

Inheritance diagram for GmpMechanicalInterface:
Collaboration diagram for GmpMechanicalInterface:

Public Types

enum  InterfaceGaussAttributeIds {
  SDV_GA_ID = GmpMechanicalPhysics::NUM_GA_IDS , SDVOLD_GA_ID , IV_GA_ID , IVOLD_GA_ID ,
  NUM_GA_IDS
}
 IDs for physics Gauss attributes. More...
 
- Public Types inherited from GmpMechanicalPhysics
enum  PhysicsAttributeIds {
  ISOPARAMETRIC_ID , STRESS_MODE_ID , STRAIN_MODE_ID , P_STRAIN_MODE_ID ,
  BODY_FORCE_ID , CGRAV_ID , GEOMETRIC_ID , RF_MODE_ID ,
  RMAPPINGINFO_ID , K0MODE_ID , STRAIN_RESET_ID , CONTACT_ID ,
  STRAIN_T_ID , NUM_ATTRI_IDS
}
 IDs for physics attributes. More...
 
enum  StateVarIds { U_ID , NUM_STATEVAR_IDS }
 IDs for Mechanical physics state vars. More...
 
enum  ExternalLoadsIds { PRESSURE_ID , THERMAL_ID , TREF_ID , NUM_EXTLOADS_IDS }
 IDs for Mechanical physics state vars. More...
 
enum  NodeAttributeIds {
  S_NA_ID , E_NA_ID , RF_NA_ID , CF_NA_ID ,
  CD_NA_ID , CIV_NA_ID , CIVOLD_NA_ID , NUM_NA_IDS
}
 IDs for physics node attributes. More...
 
enum  GaussAttributeIds {
  S_GA_ID , SOLD_GA_ID , RS_GA_ID , E_GA_ID ,
  EOLD_GA_ID , YSR_GA_ID , YSROLD_GA_ID , ST_GA_ID ,
  STOLD_GA_ID , ITER_GA_ID , ITEROLD_GA_ID , SUBSTEP_GA_ID ,
  SUBSTEPOLD_GA_ID , LINESEARCH_GA_ID , LINESEARCHOLD_GA_ID , ET_GA_ID ,
  NUM_GA_IDS
}
 IDs for physics Gauss attributes. More...
 
enum  ElementPropertyIds {
  THICKNESS_ID , BF_ID , GRAV_ID , DENS_ID ,
  DENSB_ID , ALPHA_ID , NUM_PROPER_IDS
}
 IDs for physics element properties. More...
 
enum  BoundaryConditionIds {
  FIXED_U_BC_ID , FIXED_CF_BC_ID , PL_BC_ID , HL_BC_ID ,
  WP_BC_ID , NUM_BC_IDS
}
 IDs for accepted boundary condition types. More...
 
enum  BoundaryConditionValueIds {
  BC_UX_ID , BC_UY_ID , BC_UZ_ID , BC_CF_ID ,
  BC_PL_ID , BC_HLR_ID , BC_HL_ID , BC_NRL_ID ,
  BC_SWF_ID , NUM_BCV_IDS
}
 IDs for property values from accepted boundary condition types. More...
 
enum  ContactBCIds { LOCAL_CBC_ID , GLOBAL_CBC_ID , NUM_CBC_IDS }
 IDs for accepted contact boundary conditions. More...
 
enum  ContactBCValueIds { CBC_KCN_ID , CBC_KSN_ID , CBC_MU_ID , NUM_CBCV_IDS }
 IDs for property values from accepted Contact boundary condition (CBC) More...
 

Public Member Functions

 GmpMechanicalInterface (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpMechanicalInterface ()
 Destructor.
 
virtual const QVariantMap * physicsMetaDataMap ()
 Returns a reference for the mechanical interface attribute map, built when the function is called for the first time.
 
virtual bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
 Reimplementation of the common function to init the _mechanicPoint structure.
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic Interface element.
 
virtual void fillMiddlePressure (const GmElement *e, const GmVector &Pe, GmVector &Pm) const
 Computes the pressure at the middle plane of the interface element . Given an element 'e' and the nodal pressure 'Pe', fills and returns the matrix with pressure at the middle plane 'Pm'.
 
virtual void fillElementDisplacements (const GmElement *e, GmVector &ue) const
 Fills elemental displacements.
 
virtual void updateNodalCoordinates (const GmElement *e, GmMatrix &Xe, const GmVector &ue) const
 Updates the nodal coordinates using nodal displacements Xen = Xe + ue.
 
virtual FemResultType fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors)
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 
- Public Member Functions inherited from GmpMechanicalPhysics
 GmpMechanicalPhysics (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 Constructor. Will be called by the plugin loading code.
 
virtual ~GmpMechanicalPhysics ()
 Destructor.
 
virtual const char * pluginName () const
 
virtual const char * pluginType () const
 
virtual bool supportsStateDumping ()
 
virtual unsigned stress_state (void) const
 Returns the number of stress components.
 
virtual bool fixedNodalForcesBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const
 See comments on base class. Fills vectors with prescribed nodal concentrated forces.
 
virtual bool fixedNodalDofsBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const
 See comments on base class. Fills vectors with prescribed node displacements.
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element stiffness matrix elemK and/or the force vector elemF for element 'e', taking into account pressure load and/or point generation boundary conditions, as indicated by the bc parameter.
 
virtual FemResultType fillElementDataPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due uniforme pressure load.
 
virtual FemResultType fillElementDataHydPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due hydraulic pressure load. Information is provided from two vertical reference coordinates with the respective
 
virtual FemResultType fillElementDataWaterSheepPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due water sheet pressure load. Information is provided from reference coordinates to level of water with the respective
 
virtual FemResultType fillContactData (const GmContactBoundaryCondition *cbc, int bcIndex1, int bcIndex2, GmMatrixDof &dofMap, GmpFemMatrixSet &matrixSet, GmpFemVectorSet &vecSet)
 Fills the contact boundary contribution.
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Calc stress component on nodes and/or Gauss points, ADDING the calculated value to the current result.
 
virtual bool calcMaterialDerivedResults () const
 The virtual function used by calcDerivedResults() to effectively calculate gauss attributes required by the Material.
 
virtual double fillBuMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bu)=0
 Given a point 'ncood', the element coordinate matrix 'X', the point shape functions 'N' and the transformation Jacobian 'J', fills the matrix with cartesian partial derivatives Bu using the provided shape function and returns the scaled jacobian determinant.
 
void fillElementDisplacements (const GmElement *e, GmVector &ue)
 Given an element, fills the vector 'ue' with nodal displacements. The vector should have size equal to n * d where n is the number of element nodes and d is the node dimension.
 
void fillElementThermalIncrement (const GmElement *e, GmVector &dTe)
 The virtual function to fill the nodal thermal increment.
 
virtual double axisymmetricFactor (const GmElement *e, const GmMatrix &X, const GmVector &N) const
 Returns the factor that should be applied when using axis symetric elements. 1.0 for other etypes.
 
virtual bool isPlaneStress ()
 Returns the factor that should be applied when using axis symetric elements. 1.0 for other etypes.
 
virtual bool isAxisymmetric ()
 Returns TRUE only for axisymmetric models.
 
GmpMechanicPointmechanicPoint ()
 Returns the physics mechanical material point.
 
virtual bool evaluatesThermalStrain (const GmElement *e, GmVector &strainT, GmVector &NT, GmVector &dT, double alpha) const
 Returns The thermal strain.
 
GmMatrixdep ()
 Returns a reference to the physics constitutive tangent matrix.
 

Protected Member Functions

virtual bool setInitialConditions ()
 Sets initial conditions.
 

Additional Inherited Members

- Protected Attributes inherited from GmpMechanicalPhysics
GmpMechanicPoint_mechanicPoint
 Access to mechanical material point.
 
GmTLS< GmMatrix, true > _Dep
 Constitutive tangent matrix (2 x 2)
 
bool _setInitialCond
 Sets the initial conditions required by the physics.
 

Detailed Description

Basic class for the mechanical interface element plugin object.

Member Enumeration Documentation

◆ InterfaceGaussAttributeIds

IDs for physics Gauss attributes.

Enumerator
SDV_GA_ID 

Base Id for Gauss attribute(s) used to store the damage variable at the current state.

SDVOLD_GA_ID 

Id for retrieving the damage variable accessor at the previous state.

IV_GA_ID 

Base Id for Gauss attribute(s) used to store the internal variable at the current state.

IVOLD_GA_ID 

Id for retrieving the internal variable accessor at the previous state.

NUM_GA_IDS 

The number of gauss attributes.

Member Function Documentation

◆ fillElementData()

GmpFemPhysics::FemResultType GmpMechanicalInterface::fillElementData ( const GmElement * e,
GmpFemMatrixSet & elemMatrices,
GmpFemVectorSet & elemVectors )
virtual

Fills the element matrices and vectors for a generic Interface element.

Implements GmpMechanicalPhysics.

Reimplemented in GmpMechanicalReinforcedInterface.

◆ fillElementDataForLoads()

GmpFemPhysics::FemResultType GmpMechanicalInterface::fillElementDataForLoads ( const GmElement * e,
int loadId,
GmpFemVectorSet & elemVectors )
virtual

Reimplemented from GmpMechanicalPhysics.

◆ fillElementDisplacements()

void GmpMechanicalInterface::fillElementDisplacements ( const GmElement * e,
GmVector & ue ) const
virtual

Fills elemental displacements.

See comments on base class. Fills the vector ue with nodal displacements.

◆ fillMiddlePressure()

void GmpMechanicalInterface::fillMiddlePressure ( const GmElement * e,
const GmVector & Pe,
GmVector & Pm ) const
virtual

Computes the pressure at the middle plane of the interface element . Given an element 'e' and the nodal pressure 'Pe', fills and returns the matrix with pressure at the middle plane 'Pm'.

See comments on base class. Fills matrix with middle coordinates.

◆ physicsMetaDataMap()

const QVariantMap * GmpMechanicalInterface::physicsMetaDataMap ( )
virtual

Returns a reference for the mechanical interface attribute map, built when the function is called for the first time.

Reimplemented from GmpMechanicalPhysics.

Reimplemented in GmpMechanicalReinforcedInterface.

◆ setInitialConditions()

bool GmpMechanicalInterface::setInitialConditions ( )
protectedvirtual

Sets initial conditions.

Sets the initial conditionrequired by interface elements.

◆ updateNodalCoordinates()

void GmpMechanicalInterface::updateNodalCoordinates ( const GmElement * e,
GmMatrix & Xe,
const GmVector & ue ) const
virtual

Updates the nodal coordinates using nodal displacements Xen = Xe + ue.

Updates the nodal coordinates Xen = Xe + ue.


The documentation for this class was generated from the following files: