35 #include "../sm/Elements/Plates/quad1mindlin.h" 36 #include "../sm/Materials/structuralms.h" 37 #include "../sm/CrossSections/structuralcrosssection.h" 117 answer.
at(1) = force.
at(1);
118 answer.
at(4) = force.
at(2);
119 answer.
at(7) = force.
at(3);
120 answer.
at(10) = force.
at(4);
154 for (
int i = 0; i < 4; ++i ) {
155 answer(0, 2 + i * 3) = dn(i, 0);
156 answer(1, 1 + i * 3) = -dn(i, 1);
157 answer(2, 2 + i * 3) = dn(i, 1);
158 answer(2, 1 + i * 3) = -dn(i, 0);
160 answer(3, 0 + i * 3) = dns(i, 0);
161 answer(3, 2 + i * 3) = ns(i);
162 answer(4, 0 + i * 3) = dns(i, 1);
163 answer(4, 1 + i * 3) = -ns(i);
194 answer = {D_w, R_u, R_v};
224 return detJ * weight;
232 double dV, mass = 0.;
243 answer.
at(1, 1) = mass * 0.25;
244 answer.
at(4, 4) = mass * 0.25;
245 answer.
at(7, 7) = mass * 0.25;
246 answer.
at(10, 10) = mass * 0.25;
255 if ( type == IST_ShellForceTensor || type == IST_ShellStrainTensor ) {
256 if ( type == IST_ShellForceTensor ) {
264 answer.
at(4) = help.
at(5);
265 answer.
at(5) = help.
at(4);
268 }
else if ( type == IST_ShellMomentTensor || type == IST_CurvatureTensor ) {
269 if ( type == IST_ShellMomentTensor ) {
274 answer.
at(1) = help.
at(1);
275 answer.
at(2) = help.
at(2);
279 answer.
at(6) = help.
at(3);
290 answer = {1, 2, 3, 4, 5, 6};
291 }
else if ( iEdge == 2 ) {
292 answer = {4, 5, 6, 7, 8, 9};
293 }
else if ( iEdge == 3 ) {
294 answer = {7, 8, 9, 10, 11, 12};
295 }
else if ( iEdge == 4 ) {
296 answer = {10, 11, 12, 1, 2, 3};
314 double dx, dy, length;
328 length = sqrt(dx * dx + dy * dy);
330 answer.
at(1, 1) = 1.0;
331 answer.
at(2, 2) = dx / length;
332 answer.
at(2, 3) = -dy / length;
333 answer.
at(3, 2) = -answer.
at(2, 3);
334 answer.
at(3, 3) = answer.
at(2, 2);
356 for (
int i = 1; i < 5; i++ ) {
367 for (
int i = 1; i < 5; i++ ) {
CrossSection * giveCrossSection()
virtual void giveDofManDofIDMask(int inode, IntArray &) const
Returns dofmanager dof mask for node.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
The element interface required by ZZNodalRecoveryModel.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
void beVectorProductOf(const FloatArray &v1, const FloatArray &v2)
Computes vector product (or cross product) of vectors given as parameters, , and stores the result in...
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...
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const
Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element ...
The element interface required by ZZNodalRecoveryModel.
Abstract base class for "structural" finite elements with geometrical nonlinearities.
double & at(int i)
Coefficient access function.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
This class implements a structural material status information.
void clear()
Clears receiver (zero size).
virtual double edgeGiveTransformationJacobian(int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge Jacobian of transformation between local and global coordinates.
virtual void computeComponentArrayAt(FloatArray &answer, TimeStep *tStep, ValueModeType mode)
Computes boundary condition value - its components values at given time.
virtual double giveCoordinate(int i)
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
MatResponseMode
Describes the character of characteristic material matrix.
#define _IFT_Quad1Mindlin_ReducedIntegration
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. ...
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.
virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
Computes volume related to integration point on local edge.
Class representing a general abstraction for finite element interpolation class.
virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge)
DofIDItem
Type representing particular dof type.
virtual double giveWeight()
Returns integration weight of receiver.
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
virtual void giveGeneralizedStress_Plate(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
Wrapper around element definition to provide FEICellGeometry interface.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
Quad1Mindlin(int n, Domain *d)
double at(int i, int j) const
Coefficient access function.
void resize(int n)
Checks size of receiver towards requested bounds.
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.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
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.
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.
IntegrationPointStatus * giveMaterialStatus()
Returns reference to associated material status (NULL if not defined).
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
virtual double giveCharacteristicLength(const FloatArray &normalToCrackPlane)
Returns the size of element in the given direction, in some cases adjusted (e.g.
static FEI2dQuadLin interp_lin
void zero()
Zeroes all coefficients of receiver.
virtual bcGeomType giveBCGeoType() const
Returns geometry character of boundary condition.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
void zero()
Zeroes all coefficient of receiver.
InterfaceType
Enumerative type, used to identify interface type.
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.
Load is base abstract class for all loads.
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual bcValType giveBCValType() const
Returns receiver load type.
Class implementing node in finite element mesh.
virtual void computeMidPlaneNormal(FloatArray &answer, const GaussPoint *gp)
Computes mid-plane normal of receiver at integration point.
double normalize()
Normalizes receiver.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
Class representing integration point in finite element program.
virtual FEInterpolation * giveInterpolation() const
Class representing solution step.
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
int numberOfDofMans
Number of dofmanagers.
void add(const FloatArray &src)
Adds array src to receiver.
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of interpolation functions (shape functions) at given point.
bool reducedIntegrationFlag
Flag controlling reduced (one - point) integration for shear.
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.