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();
54 assert(Bu.n_rows == 2*d && Bu.n_cols == e->
numNodes()*d);
59 for (
int i = 0; i < e->
numNodes(); i++)
72 constexpr int bstride = 3;
73 constexpr int bustride = 6;
74 const double* bptr = B.memptr();
75 double * buptr = Bu.memptr();
76 for (
int i = 0, n = e->
numNodes(); i < n; i++)
82 const double* bi = bptr + i*bstride;
83 double b0 = bi[0], b1 = bi[1], b2 = bi[2];
89 double* bu = buptr + bustride * l;
100 bu = buptr + bustride * k;
111 bu = buptr + bustride * m;
125 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger)
126 : T(pluginType, simulation,
id, description, matFactory, logger)
134 assert(e); Q_UNUSED(X); Q_UNUSED(N);
140 assert(Bu.n_rows == 2 * nodeDim() && Bu.n_cols == e->
numNodes()*nodeDim());
144 assert(nodeDim() == 2);
145 for (
int i = 0; i < e->
numNodes(); i++)
157 virtual bool isPlaneStress() {
return true; }
165 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger)
166 : T(pluginType, simulation,
id, description, matFactory, logger)
185 for (
int j = 0; j < n; ++j)
186 rGauss += N(j)*X(j, 0);
188 assert(Bu.n_rows == 2 * nodeDim() && Bu.n_cols == n*nodeDim());
191 assert(nodeDim() == 2);
192 for (
int i = 0; i < e->
numNodes(); i++)
198 Bu(2, l) = N(i) / rGauss;
212 for (
int j = 0; j < n; ++j)
213 rGauss += N(j)*X(j, 0);
214 return 2 * arma::datum::pi * rGauss;
Mechanic 2D & 3D for Quad, Tri, Hex and Tet Elements.
Definition gmpMechanic.h:35