![]() |
MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
|
Basic class for the standard stress bar physics plugin object. More...
#include <gmpBar.h>


Public Member Functions | |
| GmpBar (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger) | |
| Constructor. | |
| virtual | ~GmpBar () |
| Destructor. | |
| virtual const QVariantMap * | physicsMetaDataMap () |
| Returns a reference for the single Hydraulics attribute map, built when the function is called for the first time. | |
| virtual double | fillBuMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bp) |
| 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. More... | |
| virtual FemResultType | fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element internal force and stiffness. | |
| virtual bool | calcDerivedResults (bool nonLinearSolver) |
| Recovers per element stresses for bar elements, storing the results in an element attribute. | |
| virtual void | updateNodalCoordinates (const GmElement *e, GmMatrix &Xe, GmVector &ue) |
| Updates the nodal coordinates using nodal displacements Xen = Xe + ue. More... | |
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) |
| Returns the number of stress components. More... | |
| virtual bool | fixedNodalForcesBc (QList< int > &nodes, QList< int > &dof, QList< double > &values) const |
| See comments on base class. Fills vectors with prescribed nodal concentrated forces. | |
| virtual bool | fixedNodalDofsBc (QList< int > &nodes, QList< int > &dof, QList< 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. More... | |
| virtual FemResultType | fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors) |
| 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. More... | |
| virtual bool | calcMaterialDerivedResults () const |
| The virtual function used by calcDerivedResults() to effectively calculate gauss attributes required by the Material. | |
| 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. More... | |
| virtual void | fillMiddleCoordinates (const GmElement *e, GmMatrix Xnode, GmMatrix &MX) const |
| virtual double | axisymmetricFactor (const GmElement *e, const GmMatrix &X, const GmVector &N) |
| 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. | |
| GmpMechanicPoint * | mechanicPoint () |
| Returns the physics mechanical material point. | |
| GmMatrix & | dep () |
| Returns a reference to the physics constitutive tangent matrix. | |
| virtual GmVector | timeSim () const |
| Returns the simulation time used by the simulation. More... | |
Protected Member Functions | |
| virtual bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &gaussTable) |
| Reimplementation of the common function to init the _mechanicPoint structure. | |
Private Member Functions | |
| double | calcElementStress (GmElement *e) |
| Calculates the bar internal stress. More... | |
Additional Inherited Members | |
Protected Attributes inherited from GmpMechanicalPhysics | |
| GmpMechanicalContact | _mecContact |
| Object with general contact methods. | |
| GmpMechanicPoint * | _mechanicPoint |
| Access to mechanical material point. | |
| GmMatrix | _Dep |
| Constitutive tangent matrix (2 x 2) | |
| bool | _setInitialCond |
| Sets the initial conditions required by the physics. | |
Basic class for the standard stress bar physics plugin object.
This physics plugin calculates deformations and stress values for bars using the model described by Felippa.
Parameters:
|
private |
Calculates the bar internal stress.
To compute the internal stress we need only to recover the bar elongation d. and remember that the internal force is equal to (E * A * d)/L. The computation bellow follows Felippa, equation 3.19 (page 3-8) and the formulation in figure 21.9 (page 21-10), remembering that the stress is equal to the internal force divided by A
|
virtual |
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.
The shape function given as parameter is the shape function that should be used to calculate the partial derivatives. It will be a linear function in case of iso-parametric elements and the element shape function otherwise.
Matrices J, X and N should have been calculated using the element shape function even in an iso-parametric setting.
Implements GmpMechanicalPhysics.
Updates the nodal coordinates using nodal displacements Xen = Xe + ue.
Updates the nodal coordinates Xen = Xe + ue.
1.8.15