24 #ifndef _GEMA_PLUGIN_MECHANICAL_PHYSICS_MECHANIC_H_ 25 #define _GEMA_PLUGIN_MECHANICAL_PHYSICS_MECHANIC_H_ 38 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger)
39 : T(pluginType, simulation,
id, description, matFactory, logger)
48 assert(e); Q_UNUSED(X); Q_UNUSED(N);
50 int d = GmpFemPhysicsCommon::nodeDim();
55 assert(Bu.n_rows == 2*d && Bu.n_cols == e->
numNodes()*d);
60 for (
int i = 0; i < e->
numNodes(); i++)
73 for (
int i = 0; i < e->
numNodes(); i++)
97 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger)
98 : T(pluginType, simulation,
id, description, matFactory, logger)
106 assert(e); Q_UNUSED(X); Q_UNUSED(N);
112 assert(Bu.n_rows == 2 * nodeDim() && Bu.n_cols == e->
numNodes()*nodeDim());
116 assert(nodeDim() == 2);
117 for (
int i = 0; i < e->
numNodes(); i++)
129 virtual bool isPlaneStress() {
return true; }
137 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger)
138 : T(pluginType, simulation,
id, description, matFactory, logger)
157 for (
int j = 0; j < n; ++j)
158 rGauss += N(j)*X(j, 0);
160 assert(Bu.n_rows == 2 * nodeDim() && Bu.n_cols == n*nodeDim());
163 assert(nodeDim() == 2);
164 for (
int i = 0; i < e->
numNodes(); i++)
170 Bu(2, l) = N(i) / rGauss;
184 for (
int j = 0; j < n; ++j)
185 rGauss += N(j)*X(j, 0);
186 return 2 * arma::datum::pi * rGauss;
Mechanic Axissymetric for Quad and Tri, Elements.
Definition: gmpMechanic.h:133
Declaration of the GmpMechanicalPhysics class.
Definition: gmpMechanic.h:93
virtual bool isAxisymmetric()
Returns TRUE only for axisymmetric models.
Definition: gmpMechanic.h:143
Mechanic 2D & 3D for Quad, Tri, Hex and Tet Elements.
Definition: gmpMechanic.h:34
virtual int numNodes() const=0
virtual double shapeCartesianPartialsFromJacobian(const GmVector &ncoord, const GmMatrix &J, GmMatrix &dN, bool transposed=false) const