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


Public Member Functions | |
| GmpMechanicalEmbeddedFracture (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 | ~GmpMechanicalEmbeddedFracture () |
| Destructor. | |
| virtual const QVariantMap * | physicsMetaDataMap () |
| Returns a reference for the single mechanical physics attribute map, built when the function is called for the first time. | |
| bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable) |
| Reimplementation of the common function to init the _mechanicPoint structure. | |
| virtual FemResultType | fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element matrices and vectors for finite element that can have an embedded discontinuity. | |
| virtual FemResultType | fillEnrichedElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element matrices and vectors for a enriched element. | |
| int | getNumberEnrichedDofs (const GmElement *e) |
| Gets the number of enrichment degrees of freedom in the given element TODO: Generalize to consider the intersection between the discontinuities. | |
| int | getNumberEnrichedDofsPerDiscontinuity () const |
| Returns the number of enrichment dofs per discontinuity segment. TODO: 3D in-plane rotation. | |
| int | getDisplacementJumpOrder () const |
| Returns the order of the displacement jump based on the chosen deformation modes. | |
| FemResultType | solveDiscontinuityEquilibriumEq (const GmElement *e, int nRegDofs, int nEnrDof, GmMatrix &Kuu, GmMatrix &Kuw, GmMatrix &Kwu, GmMatrix &Kww, GmVector &fiu, GmVector &fia, GmVector &ue, GmVector &ae) |
| Solves the local equilibrium equations associated with the discontinuities. | |
| FemResultType | fillEnrichedElementSubData (const GmElement *e, const GmVector &ue, const GmVector &we, const GmMatrix &stressCoeffs, GmMatrix &Kuu, GmMatrix &Kuw, GmMatrix &Kwu, GmMatrix &Kww, GmVector &fiu, GmVector &fiw) |
| Fills the enriched element sub-matrices and sub-vectors. K = [ Kuu Kua ] , fi = [ fiu ] [ Kau Kaa ] [ fia ]. | |
| FemResultType | fillDiscontinuitySetElementData (const GmElement *e, const GmVector &ue, const GmVector &ae, GmMatrix &Kd, GmVector &fid, GmMatrix &Kstab) const |
| FemResultType | fillInternalBorderElementData (const GmElement *e, GmVector &ue, GmVector &ae, GmMatrix &Kb_uu, GmMatrix &Kb_ua, GmMatrix &Kb_au, GmMatrix &Kb_aa, GmVector &fbu, GmVector &fba) |
| Fills the enriched element displacement vector. | |
| void | getDiscontinuitySubElementIds (const GmElement *e, int k, int &idDiscontinuityElem, int &idDiscontinuityMesh) |
| void | displacementJumpShapeFunction (const GmMatrix &DX, const GmMatrix &mn, GmMatrix &Nd) const |
| void | fillGrMatrix (const GmElement *e, const GmMatrix &Xe, const GmMatrix &Bu, GmMatrix &Gc) const |
| void | fillGvMatrix (const GmElement *e, const GmShape *elemShape, const GmVector &Xn, const GmMatrix &Xe, const GmMatrix &C, GmMatrix &G) const |
| void | projectionMatrix (const GmVector &nd, GmMatrix &P) const |
| int | dimPolynomialStressInterpolation (const GmElement *e) const |
| void | polynomialStressInterpolation (int etype, const GmVector &X, GmMatrix &p) const |
| void | GramMatrixPolynomialStress (const GmElement *e, int stressOrder, GmMatrix &H) const |
| void | discontinuityIntegralPolynomialStress (const GmElement *ef, int displacementJumpOrder, int stressOrder, GmMatrix &S) const |
| double | lineSearch (const GmElement *e, GmMatrix &stressCoeffs, GmVector &ue, GmVector &x0, GmVector &d, GmVector &r) |
| Inexact line-search method to solve the local equilibrium equation The function being minimized is f = 0.5 * r^T * r where r is the residual vector. Return the step length (xi) that minimizes the function at the direction d. Considers that the direction d is defined be the Newton-Raphson method. | |
| FemResultType | fillEnrichedElementLocalEquation (const GmElement *e, const GmMatrix &stressCoeffs, const GmVector &ue, const GmVector &ae, GmVector &fia) |
| Fills the enriched element local equilibrium equation. | |
| void | fillElementOldEnrichedDof (const GmElement *e, GmVector &ae) |
| Fills the enriched element displacement vector. | |
| void | setElementEnrichedDof (const GmElement *e, GmVector &ae) |
| Set the current enriched element displacement vector. Updates the cell attributes of the discontinuity elements. | |
| void | fillEnrichedShapeFncMatrix (const GmElement *e, const GmMatrix &Xe, const GmVector &N, GmMatrix &Nenr) const |
| double | auxiliaryFunctionPhi (const GmVector &N, const GmMatrix &Xe, const GmVector &Xref, const GmVector &nd) const |
| void | fillDisplacementShapeFncMatrix (const GmElement *e, const GmVector &Nv, GmMatrix &Nm) const |
| Assemble displacement field shape function matrix. | |
| void | fillStressInterpolationCoeffs (const GmElement *e, GmMatrix &stressCoeffs) const |
| FemResultType | fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors) |
| void | fillStabilizationMatrix (const GmElement *e, const GmElement *ef, const GmMatrix &Td, const GmMatrix &Dep, GmMatrix &S) const |
| Get the stabilization matrix. | |
Public Member Functions inherited from GmpMechanicalSolid | |
| GmpMechanicalSolid (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 | ~GmpMechanicalSolid () |
| Destructor. | |
| virtual bool | beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors) |
| virtual void | fillBodyForce (const GmElement *e, const GmVector *coord, int ip, GmVector &BFc, const GmVector &N, double c) const |
| virtual void | gravityForce (const GmElement *e, const GmVector *coord, int ip, GmVector &Fext_u, const GmVector &N, double c) const |
| virtual void | gravityVector (const GmElement *e, const GmVector *coord, int ip, GmVector &gravComp) const |
| Fill gravity acceleration vector. | |
| virtual bool | calcDerivedResults (bool nonLinearSolver) |
| Calc stress component on nodes and/or Gauss points, ADDING the calculated value to the current result. | |
| virtual bool | checkLoadedData () |
| Checks the loaded data. | |
| 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 | 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. | |
| GmpMechanicPoint * | mechanicPoint () |
| 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. | |
| GmMatrix & | dep () |
| Returns a reference to the physics constitutive tangent matrix. | |
Private Attributes | |
| const char * | _pluginType |
| The plugin type name. | |
Additional Inherited Members | |
Protected Member Functions inherited from GmpMechanicalSolid | |
| virtual void | calcElementDerivedResultAtPoints (const GmElement *e, int resultId, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &result) |
| The virtual function used by calcDerivedResults() to effectivelly calculate stresses at the given evaluation points. | |
| virtual void | calcElementResetStrains (const GmElement *e) |
| The virtual function used by calcDerivedResults() to effectivelly calculate strain reset to zero. When the displacement are defined as zero, the deformation must also be made zero. | |
| virtual bool | setInitialConditions () |
| Sets the initial conditionrequired by interface elements. | |
| virtual bool | updatesReturnMappingInfo () |
| Updates the number of iteration and substeps of return mapping algorithm. | |
| virtual bool | calcMaterialDerivedResults () |
| The virtual function used by calcDerivedResults() to effectively calculate gauss attributes defined by Material. | |
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. | |
Basic class for the mechanical physics plugin object.
|
virtual |
Reimplementation of the common function to init the _mechanicPoint structure.
Reimplemented from GmpMechanicalSolid.
| GmpFemPhysics::FemResultType GmpMechanicalEmbeddedFracture::fillDiscontinuitySetElementData | ( | const GmElement * | e, |
| const GmVector & | ue, | ||
| const GmVector & | ae, | ||
| GmMatrix & | Kd, | ||
| GmVector & | fid, | ||
| GmMatrix & | Kstab ) const |
Get the stiffness matrix and the internal force vector from the contribution of the discontinuity cohesive law TODO: multiple intersecting discontinuities
|
virtual |
Fills the element matrices and vectors for finite element that can have an embedded discontinuity.
Reimplemented from GmpMechanicalSolid.
|
virtual |
Reimplemented from GmpMechanicalPhysics.
|
virtual |
Returns a reference for the single mechanical physics attribute map, built when the function is called for the first time.
Reimplemented from GmpMechanicalSolid.