35 #include "../sm/Elements/Plates/dkt.h" 36 #include "../sm/Materials/structuralms.h" 37 #include "../sm/CrossSections/structuralcrosssection.h" 123 double load = force.
at(1) * dens * dV / 3.0;
145 double x1, x2, x3, y1, y2, y3, z1, z2, z3;
152 double N1dk = 4.0 * ksi - 1.0;
154 double N3dk = -3.0 + 4.0 * ksi + 4.0 * eta;
155 double N4dk = 4.0 * eta;
156 double N5dk = -4.0 * eta;
157 double N6dk = 4.0 * ( 1.0 - 2.0 * ksi - eta );
160 double N2de = 4.0 * eta - 1.0;
161 double N3de = -3.0 + 4.0 * eta + 4.0 * ksi;
162 double N4de = 4.0 * ksi;
163 double N5de = 4.0 * ( 1.0 - 2.0 * eta - ksi );
164 double N6de = -4.0 * ksi;
166 double A = N1dk * x1 + N2dk * x2 + N3dk * x3 + N4dk * ( x1 + x2 ) / 2 + N5dk * ( x2 + x3 ) / 2 + N6dk * ( x1 + x3 ) / 2;
167 double B = N1dk * y1 + N2dk * y2 + N3dk * y3 + N4dk * ( y1 + y2 ) / 2 + N5dk * ( y2 + y3 ) / 2 + N6dk * ( y1 + y3 ) / 2;
168 double C = N1de * x1 + N2de * x2 + N3de * x3 + N4de * ( x1 + x2 ) / 2 + N5de * ( x2 + x3 ) / 2 + N6de * ( x1 + x3 ) / 2;
169 double D = N1de * y1 + N2de * y2 + N3de * y3 + N4de * ( y1 + y2 ) / 2 + N5de * ( y2 + y3 ) / 2 + N6de * ( y1 + y3 ) / 2;
171 double dxdk = D / ( A * D - B * C );
172 double dydk = -C / ( A * D - B * C );
173 double dxde = -B / ( A * D - B * C );
174 double dyde = A / ( A * D - B * C );
176 double dN102 = N1dk * dxdk + N1de * dxde;
177 double dN104 = N2dk * dxdk + N2de * dxde;
178 double dN106 = N3dk * dxdk + N3de * dxde;
179 double dN108 = N4dk * dxdk + N4de * dxde;
180 double dN110 = N5dk * dxdk + N5de * dxde;
181 double dN112 = N6dk * dxdk + N6de * dxde;
183 double dN201 = -N1dk * dydk - N1de * dyde;
184 double dN203 = -N2dk * dydk - N2de * dyde;
185 double dN205 = -N3dk * dydk - N3de * dyde;
186 double dN207 = -N4dk * dydk - N4de * dyde;
187 double dN209 = -N5dk * dydk - N5de * dyde;
188 double dN211 = -N6dk * dydk - N6de * dyde;
191 double dx4 = x2 - x1;
192 double dy4 = y2 - y1;
193 double l4 = sqrt(dx4 * dx4 + dy4 * dy4);
195 double dx5 = x3 - x2;
196 double dy5 = y3 - y2;
197 double l5 = sqrt(dx5 * dx5 + dy5 * dy5);
199 double dx6 = x1 - x3;
200 double dy6 = y1 - y3;
201 double l6 = sqrt(dx6 * dx6 + dy6 * dy6);
203 double c4 = dy4 / l4;
204 double s4 = -dx4 / l4;
206 double c5 = dy5 / l5;
207 double s5 = -dx5 / l5;
209 double c6 = dy6 / l6;
210 double s6 = -dx6 / l6;
213 double T11 = -1.5 / l4 * c4;
214 double T12 = -0.25 * c4 * c4 + 0.5 * s4 * s4;
215 double T13 = -0.25 * c4 * s4 - 0.5 * c4 * s4;
216 double T14 = 1.5 / l4 * c4;
217 double T15 = -0.25 * c4 * c4 + 0.5 * s4 * s4;
218 double T16 = -0.25 * c4 * s4 - 0.5 * c4 * s4;
220 double T21 = -1.5 / l4 * s4;
221 double T22 = -0.25 * c4 * s4 - 0.5 * c4 * s4;
222 double T23 = -0.25 * s4 * s4 + 0.5 * c4 * c4;
223 double T24 = 1.5 / l4 * s4;
224 double T25 = -0.25 * c4 * s4 - 0.5 * c4 * s4;
225 double T26 = -0.25 * s4 * s4 + 0.5 * c4 * c4;
227 double T34 = -1.5 / l5 * c5;
228 double T35 = -0.25 * c5 * c5 + 0.5 * s5 * s5;
229 double T36 = -0.25 * c5 * s5 - 0.5 * c5 * s5;
230 double T37 = 1.5 / l5 * c5;
231 double T38 = -0.25 * c5 * c5 + 0.5 * s5 * s5;
232 double T39 = -0.25 * c5 * s5 - 0.5 * c5 * s5;
234 double T44 = -1.5 / l5 * s5;
235 double T45 = -0.25 * c5 * s5 - 0.5 * c5 * s5;
236 double T46 = -0.25 * s5 * s5 + 0.5 * c5 * c5;
237 double T47 = 1.5 / l5 * s5;
238 double T48 = -0.25 * c5 * s5 - 0.5 * c5 * s5;
239 double T49 = -0.25 * s5 * s5 + 0.5 * c5 * c5;
241 double T51 = 1.5 / l6 * c6;
242 double T52 = -0.25 * c6 * c6 + 0.5 * s6 * s6;
243 double T53 = -0.25 * c6 * s6 - 0.5 * c6 * s6;
244 double T57 = -1.5 / l6 * c6;
245 double T58 = -0.25 * c6 * c6 + 0.5 * s6 * s6;
246 double T59 = -0.25 * c6 * s6 - 0.5 * c6 * s6;
248 double T61 = 1.5 / l6 * s6;
249 double T62 = -0.25 * c6 * s6 - 0.5 * c6 * s6;
250 double T63 = -0.25 * s6 * s6 + 0.5 * c6 * c6;
251 double T67 = -1.5 / l6 * s6;
252 double T68 = -0.25 * c6 * s6 - 0.5 * c6 * s6;
253 double T69 = -0.25 * s6 * s6 + 0.5 * c6 * c6;
258 answer.
at(1, 1) = T21 * dN108 + T61 * dN112;
259 answer.
at(1, 2) = T22 * dN108 + T62 * dN112;
260 answer.
at(1, 3) = dN102 + T23 * dN108 + T63 * dN112;
261 answer.
at(1, 4) = T24 * dN108 + T44 * dN110;
262 answer.
at(1, 5) = T25 * dN108 + T45 * dN110;
263 answer.
at(1, 6) = dN104 + T26 * dN108 + T46 * dN110;
264 answer.
at(1, 7) = T47 * dN110 + T67 * dN112;
265 answer.
at(1, 8) = T48 * dN110 + T68 * dN112;
266 answer.
at(1, 9) = dN106 + T49 * dN110 + T69 * dN112;
268 answer.
at(2, 1) = T11 * dN207 + T51 * dN211;
269 answer.
at(2, 2) = dN201 + T12 * dN207 + T52 * dN211;
270 answer.
at(2, 3) = T13 * dN207 + T53 * dN211;
271 answer.
at(2, 4) = T14 * dN207 + T34 * dN209;
272 answer.
at(2, 5) = dN203 + T15 * dN207 + T35 * dN209;
273 answer.
at(2, 6) = T16 * dN207 + T36 * dN209;
274 answer.
at(2, 7) = T37 * dN209 + T57 * dN211;
275 answer.
at(2, 8) = dN205 + T38 * dN209 + T58 * dN211;
276 answer.
at(2, 9) = T39 * dN209 + T59 * dN211;
278 answer.
at(3, 1) = -T11 * dN108 - T51 * dN112 - T21 * dN207 - T61 * dN211;
279 answer.
at(3, 2) = -dN102 - T12 * dN108 - T52 * dN112 - T22 * dN207 - T62 * dN211;
280 answer.
at(3, 3) = -dN201 - T13 * dN108 - T53 * dN112 - T23 * dN207 - T63 * dN211;
281 answer.
at(3, 4) = -T14 * dN108 - T34 * dN110 - T24 * dN207 - T44 * dN209;
282 answer.
at(3, 5) = -dN104 - T15 * dN108 - T35 * dN110 - T25 * dN207 - T45 * dN209;
283 answer.
at(3, 6) = -dN203 - T16 * dN108 - T36 * dN110 - T26 * dN207 - T46 * dN209;
284 answer.
at(3, 7) = -T37 * dN110 - T57 * dN112 - T47 * dN209 - T67 * dN211;
285 answer.
at(3, 8) = -dN106 - T38 * dN110 - T58 * dN112 - T48 * dN209 - T68 * dN211;
286 answer.
at(3, 9) = -dN205 - T39 * dN110 - T59 * dN112 - T49 * dN209 - T69 * dN211;
327 double &y1,
double &y2,
double &y3,
328 double &z1,
double &z2,
double &z3)
360 answer = {D_w, R_u, R_v};
395 lc[0].at(2), lc[1].at(2), lc[2].at(2),
396 lc[0].at(3), lc[1].at(3), lc[2].at(3));
400 return detJ * weight;
417 answer.
at(1, 1) = mss1;
418 answer.
at(4, 4) = mss1;
419 answer.
at(7, 7) = mss1;
443 #define POINT_TOL 1.e-3 452 double x1, x2, x3, y1, y2, y3, z1, z2, z3;
459 for (
int i = 1; i <= 3; i++ ) {
471 midplZ = z1 * answer.
at(1) + z2 * answer.
at(2) + z3 * answer.
at(3);
477 if ( elthick / 2.0 + midplZ - fabs( coords.
at(3) ) < -
POINT_TOL ) {
492 if ( type == IST_ShellForceTensor || type == IST_ShellStrainTensor ) {
493 if ( type == IST_ShellForceTensor ) {
501 answer.
at(4) = help.
at(5);
502 answer.
at(5) = help.
at(4);
505 }
else if ( type == IST_ShellMomentTensor || type == IST_CurvatureTensor ) {
506 if ( type == IST_ShellMomentTensor ) {
511 answer.
at(1) = help.
at(1);
512 answer.
at(2) = help.
at(2);
516 answer.
at(6) = help.
at(3);
532 if ( ( type == IST_ShellForceTensor ) || ( type == IST_ShellMomentTensor ) ||
533 ( type == IST_ShellStrainTensor ) || ( type == IST_CurvatureTensor ) ) {
584 answer.
at(1, 1) = n.
at(1);
585 answer.
at(1, 4) = n.
at(2);
586 answer.
at(2, 2) = answer.
at(3, 3) = n.
at(1);
587 answer.
at(2, 5) = answer.
at(3, 6) = n.
at(2);
601 double layerZeta, layerZCoord, top, bottom;
606 layerZCoord = 0.5 * ( ( 1. - layerZeta ) * bottom + ( 1. + layerZeta ) * top );
610 answer.
at(1) = masterGpStrain.
at(1) * layerZCoord;
611 answer.
at(2) = masterGpStrain.
at(2) * layerZCoord;
612 answer.
at(5) = masterGpStrain.
at(3) * layerZCoord;
613 answer.
at(3) = masterGpStrain.
at(5);
614 answer.
at(4) = masterGpStrain.
at(4);
633 }
else if ( iEdge == 2 ) {
640 }
else if ( iEdge == 3 ) {
670 double dx, dy, length;
684 length = sqrt(dx * dx + dy * dy);
686 answer.
at(1, 1) = 1.0;
687 answer.
at(2, 2) = dx / length;
688 answer.
at(2, 3) = -dy / length;
689 answer.
at(3, 2) = dy / length;
690 answer.
at(3, 3) = dx / length;
709 for (
int i = 1; i <= 9; i++ ) {
742 #ifdef DKT_EnableVertexMomentsCache 776 #ifdef DKT_EnableVertexMomentsCache 792 answer.
at(4) += m.
at(1, i) * dndx.
at(i, 1) + m.
at(3, i) * dndx.
at(i, 2);
793 answer.
at(5) += m.
at(2, i) * dndx.
at(i, 2) + m.
at(3, i) * dndx.
at(i, 1);
816 EASValsSetEdgeFlag(
true);
817 EASValsSetFillStyle(FILL_SOLID);
829 go = CreateTriangle3D(p);
830 EGWithMaskChangeAttributes(WIDTH_MASK | FILL_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
831 EGAttachObject(go, ( EObjectP )
this);
832 EMAddGraphicsToModel(ESIModel(), go);
852 EASValsSetEdgeFlag(
true);
853 EASValsSetFillStyle(FILL_SOLID);
865 go = CreateTriangle3D(p);
866 EGWithMaskChangeAttributes(WIDTH_MASK | FILL_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
867 EMAddGraphicsToModel(ESIModel(), go);
875 int i, indx, result = 0;
879 double s [ 3 ], defScale;
907 s [ 0 ] = v1.
at(indx);
908 s [ 1 ] = v2.
at(indx);
909 s [ 2 ] = v3.
at(indx);
914 for ( i = 0; i < 3; i++ ) {
930 tr = CreateTriangleWD3D(p, s [ 0 ], s [ 1 ], s [ 2 ]);
931 EGWithMaskChangeAttributes(LAYER_MASK, tr);
932 EMAddGraphicsToModel(ESIModel(), tr);
virtual SPRPatchType SPRNodalRecoveryMI_givePatchType()
CrossSection * giveCrossSection()
virtual void edgeEvalN(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of edge interpolation functions (shape functions) at given point.
int testElementGraphicActivity(Element *)
Test if particular element passed fulfills various filtering criteria for its graphics output...
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
The element interface required by ZZNodalRecoveryModel.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates the array of interpolation functions (shape functions) at given point.
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
void beVectorProductOf(const FloatArray &v1, const FloatArray &v2)
Computes vector product (or cross product) of vectors given as parameters, , and stores the result in...
ScalarAlgorithmType getScalarAlgo()
virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode)
Computes the load vector due to body load acting on receiver, at given time step. ...
Wrapper around cell with vertex coordinates stored in FloatArray**.
virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge)
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
The element interface required by ZZNodalRecoveryModel.
Abstract base class for "structural" finite elements with geometrical nonlinearities.
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
void zero()
Sets all component to zero.
double & at(int i)
Coefficient access function.
virtual int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep)
Returns internal state variable (like stress,strain) at node of element in Reduced form...
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
#define OOFEG_RAW_GEOMETRY_LAYER
This class implements a structural material status information.
void clear()
Clears receiver (zero size).
EPixel getElementEdgeColor()
virtual double giveCharacteristicLength(const FloatArray &normalToCrackPlane)
Returns the size of element in the given direction, in some cases adjusted (e.g.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual double edgeGiveTransformationJacobian(int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge Jacobian of transformation between local and global coordinates.
virtual double computeSurfaceVolumeAround(GaussPoint *gp, int iSurf)
Computes volume related to integration point on local surface.
virtual void computeComponentArrayAt(FloatArray &answer, TimeStep *tStep, ValueModeType mode)
Computes boundary condition value - its components values at given time.
DKTPlate(int n, Domain *d)
virtual double giveCoordinate(int i)
virtual void computeEdgeNMatrix(FloatMatrix &answer, int boundaryID, const FloatArray &lcoords)
computes edge interpolation matrix
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
MatResponseMode
Describes the character of characteristic material matrix.
#define OOFEG_DEFORMED_GEOMETRY_LAYER
void rotatedWith(FloatMatrix &r, char mode)
Returns the receiver a rotated according the change-of-base matrix r.
Abstract base class representing integration rule.
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the stress vector of receiver at given integration point, at time step tStep.
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
virtual void give2dPlateStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)=0
Method for computing 2d plate stiffness matrix.
int getInternalVarsDefGeoFlag()
EPixel getDeformedElementColor()
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
Class representing a general abstraction for finite element interpolation class.
InternalStateType giveIntVarType()
double giveNaturalCoordinate(int i) const
Returns i-th natural element coordinate of receiver.
FloatMatrix vertexMoments
The element interface corresponding to ZZErrorEstimator.
virtual void computeMidPlaneNormal(FloatArray &answer, const GaussPoint *gp)
Computes mid-plane normal of receiver at integration point.
StateCounterType giveSolutionStateCounter()
Returns current solution state counter.
DofIDItem
Type representing particular dof type.
#define OOFEG_RAW_GEOMETRY_WIDTH
StateCounterType stateCounter
virtual double giveWeight()
Returns integration weight of receiver.
UnknownType
Type representing particular unknown (its physical meaning).
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
virtual int computeLoadLSToLRotationMatrix(FloatMatrix &answer, int iSurf, GaussPoint *gp)
Returns transformation matrix from local surface c.s to element local coordinate system of load vecto...
virtual FEInterpolation * giveInterpolation() const
virtual void giveGeneralizedStress_Plate(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
Wrapper around element definition to provide FEICellGeometry interface.
virtual double giveUpdatedCoordinate(int ic, TimeStep *tStep, double scale=1.)
Returns updated ic-th coordinate of receiver.
virtual void computeStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Compute strain vector of receiver evaluated at given integration point at given time step from elemen...
virtual int global2local(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Default implementation using Newton's method to find the local coordinates.
double at(int i, int j) const
Coefficient access function.
void resize(int n)
Checks size of receiver towards requested bounds.
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType type)
virtual void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep)
Computes full 3D strain vector in element layer.
virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)
Computes interpolation matrix for element unknowns.
virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const
Assembles surface dof mapping mask, which provides mapping between surface local DOFs and "global" el...
virtual int setupIntegrationPoints(IntegrationRule &irule, int npoints, Element *element)
Sets up integration rule for the given element.
int numberOfGaussPoints
Number of integration points as specified by nip.
InternalStateMode giveIntVarMode()
void beNMatrixOf(const FloatArray &n, int nsd)
Assigns the receiver to be a repeated diagonal matrix.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual double give(CrossSectionProperty a, GaussPoint *gp)
Returns the value of cross section property at given point.
GaussPoint * getIntegrationPoint(int n)
Access particular integration point of receiver.
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
double giveCharacteristicLengthForPlaneElements(const FloatArray &normalToCrackPlane)
Returns the size of element in the given direction if the direction is in the XY plane, otherwise gives the mean size defined as the square root of the element area.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
IntegrationPointStatus * giveMaterialStatus()
Returns reference to associated material status (NULL if not defined).
void computeVertexBendingMoments(FloatMatrix &answer, TimeStep *tStep)
void setNaturalCoordinates(const FloatArray &c)
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual bool computeLocalCoordinates(FloatArray &answer, const FloatArray &gcoords)
Computes the element local coordinates from given global coordinates.
virtual int getRequiredNumberOfIntegrationPoints(integrationDomain dType, int approxOrder)
Abstract service.
static FEI2dTrLin interp_lin
Element geometry approximation.
void zero()
Zeroes all coefficients of receiver.
virtual bcGeomType giveBCGeoType() const
Returns geometry character of boundary condition.
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
void setColumn(const FloatArray &src, int c)
Sets the values of the matrix in specified column.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual int SetUpPointsOnTriangle(int, MaterialMode mode)
Sets up receiver's integration points on triangular (area coords) integration domain.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void giveDofManDofIDMask(int inode, IntArray &) const
Returns dofmanager dof mask for node.
virtual bool isActivated(TimeStep *tStep)
virtual FloatArray * giveCoordinates()
void zero()
Zeroes all coefficient of receiver.
InterfaceType
Enumerative type, used to identify interface type.
void updateFringeTableMinMax(double *s, int size)
Load is base abstract class for all loads.
The element interface required by LayeredCrossSection.
virtual bool computeGtoLRotationMatrix(FloatMatrix &answer)
Returns transformation matrix from global c.s.
int giveSize() const
Returns the size of receiver.
Abstract base class for all structural cross section models.
virtual void giveNodeCoordinates(double &x1, double &x2, double &x3, double &y1, double &y2, double &y3, double &z1, double &z2, double &z3)
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
virtual bcValType giveBCValType() const
Returns receiver load type.
Class implementing node in finite element mesh.
virtual IntegrationRule * GetSurfaceIntegrationRule(int iSurf)
virtual void computeSurfaceNMatrixAt(FloatMatrix &answer, int iSurf, GaussPoint *gp)
virtual int computeLoadLEToLRotationMatrix(FloatMatrix &answer, int iEdge, GaussPoint *gp)
Returns transformation matrix from local edge c.s to element local coordinate system of load vector c...
double normalize()
Normalizes receiver.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
#define OOFEG_VARPLOT_PATTERN_LAYER
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const
Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element ...
Class representing integration point in finite element program.
virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
Computes volume related to integration point on local edge.
Class representing solution step.
int numberOfDofMans
Number of dofmanagers.
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
virtual int SetUpPointsOnTriangle(int nPoints, MaterialMode mode)
Sets up receiver's integration points on triangular (area coords) integration domain.
virtual Material * giveMaterial()
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
void computeShearForces(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.