23#ifndef _GEMA_XFEM_MECHANIC_EMBEDDEDFRACTURE_H_
24#define _GEMA_XFEM_MECHANIC_EMBEDDEDFRACTURE_H_
26#include <gmpFemPhysicsCoupled.h>
27#include <gmpMechanicalPhysics.h>
28#include <gmpMechanicPoint.h>
36class GmpMechanicalPhysics;
46 : T(objType, simulation,
id,
"",
70 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger);
75 virtual const char* pluginName()
const {
return "Xfem"; }
77 virtual const char* pluginType()
const {
return _pluginType; }
84 virtual bool dofByElement(
bool* fixed,
bool* addOnly,
bool* trackChanges)
const;
93 int border, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
95 virtual FemResultType
fillElementData(
const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
149 virtual bool loadPrivateData(
LuaTable& table);
151 virtual bool beforeElementStiffnessLoop(
const GmpFemMatrixSet& elemMatrices,
const GmpFemVectorSet& elemVectors);
160 virtual void addTranslationDeformationMode(
GmMatrix& Mu);
GmPluginObjectFactory * objectFactory(QString pluginName, QString category="", QString objType="")
GmPluginLoader * loader() const
Basic class for the standard plane strain physics plugin object.
Definition xfemMechanicEmbeddedFracture.h:66
GmMatrix _Dsn
Constitutive tangent matrix (2 x 2)
Definition xfemMechanicEmbeddedFracture.h:171
XfemMechanicEmbeddedFracture(const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
Constructor. Will be called by the plugin loading code.
Definition xfemMechanicEmbeddedFracture.cpp:63
const char * _pluginType
The plugin type name.
Definition xfemMechanicEmbeddedFracture.h:170
virtual bool checkAndLoadPrivateData(LuaTable &table)
Overloads default checkAndLoadPrivateData() to be able to setup materials.
Definition xfemMechanicEmbeddedFracture.cpp:222
embeddedBC_Ids
IDs for accepted boundary condition types.
Definition xfemMechanicEmbeddedFracture.h:129
@ NUM_BC_IDS
The number of boundary conditions ids above.
Definition xfemMechanicEmbeddedFracture.h:134
@ FIXED_W_BC_ID
Id for fixed Jump displacement boundary condition.
Definition xfemMechanicEmbeddedFracture.h:130
embeddedBCValueIds
IDs for property values from accepted boundary condition types.
Definition xfemMechanicEmbeddedFracture.h:139
@ BC_WY_ID
Nodal jump displacement boundary condition in y.
Definition xfemMechanicEmbeddedFracture.h:141
@ NUM_BCV_IDS
The number of boundary conditions value ids above.
Definition xfemMechanicEmbeddedFracture.h:145
@ BC_WZ_ID
Nodal jump displacement boundary condition in z.
Definition xfemMechanicEmbeddedFracture.h:142
@ BC_WX_ID
Nodal jump displacement boundary condition in x.
Definition xfemMechanicEmbeddedFracture.h:140
virtual ~XfemMechanicEmbeddedFracture()
Destructor.
Definition xfemMechanicEmbeddedFracture.cpp:96
GmpMechanicalPhysics * _mechPhys
The mechanical physics providing parameters and matrices to the coupling equation.
Definition xfemMechanicEmbeddedFracture.h:172
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 pore pressures.
Definition xfemMechanicEmbeddedFracture.cpp:313
virtual FemResultType fillEnrichedElementSubData(const GmElement *e, GmVector &ue, GmVector &we, int nRegDofs, int nEnrDof, GmMatrix &Kuu, GmMatrix &Kuw, GmMatrix &Kww, GmVector &fiu, GmVector &fiw)
Fills the enriched element sub-matrices and sub-vectors.
Definition xfemMechanicEmbeddedFracture.cpp:666
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the Xfem mechanical physics attribute map, built when the function is called ...
Definition xfemMechanicEmbeddedFracture.cpp:102
embeddedStateVarIds
IDs for Mechanical xfem state vars.
Definition xfemMechanicEmbeddedFracture.h:107
@ U_ID
Id for retrieving the accessor to the displacement state var.
Definition xfemMechanicEmbeddedFracture.h:108
@ W_ID
Id for retrieving the accessor to the enriched state var
Definition xfemMechanicEmbeddedFracture.h:109
@ NUM_STATEVAR_IDS
The number of state var ids above.
Definition xfemMechanicEmbeddedFracture.h:112
virtual FemResultType fillEnrichedElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a enriched element.
Definition xfemMechanicEmbeddedFracture.cpp:496
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for generic elements.
Definition xfemMechanicEmbeddedFracture.cpp:455
int getNumberEnrichedDofs(const GmElement *e)
Gets the number of enrichment degrees of freedom in the given element TODO: Generalize to consider th...
Definition xfemMechanicEmbeddedFracture.cpp:590
embeddedPhysicsAttributeIds
IDs for physics attributes.
Definition xfemMechanicEmbeddedFracture.h:117
@ ISOPARAMETRIC_ID
Id for retrieving the isoParametric physics attribute.
Definition xfemMechanicEmbeddedFracture.h:118
@ CONDENSATION_ID
Id for retrieving the static condensation physics attribute.
Definition xfemMechanicEmbeddedFracture.h:119
@ NUM_ATTRI_IDS
The number of physics attribute ids above.
Definition xfemMechanicEmbeddedFracture.h:123
@ CONDENSATION_TOL
Tolerance for the static condensation process.
Definition xfemMechanicEmbeddedFracture.h:120
Basic class for a XFEM mesh. This is the basic mesh interface for xfem problems adding enrichment cap...
Definition xfemMesh.h:50
virtual XfemGaussAccessor * enrichedGaussAttributeAccessor(QString id, Unit desiredUnit, const GmLogCategory &logger) const
Equivalent to call enrichedGaussAttributeAccessor(id, 0, true, desiredUnit, logger)
Definition xfemMesh.h:86
Auxiliar class wrapping a plugin physics object. Its only purpose is to override the creation of Gaus...
Definition xfemMechanicEmbeddedFracture.h:43
virtual GmGaussAccessor * createGaussAttributeAccessor(GmElementMesh *mesh, QString id, int snum, bool locked, Unit desiredUnit, const GmLogCategory &logger) const
Overrides the standard GmpFemPhysics::createGaussAttributeAccessor() implementation to create an enri...
Definition xfemMechanicEmbeddedFracture.h:54
Declaration of the XfemMesh class.