OOFEM 3.0
Loading...
Searching...
No Matches
oofem::StructuralElement Class Referenceabstract

#include <structuralelement.h>

Inheritance diagram for oofem::StructuralElement:
Collaboration diagram for oofem::StructuralElement:

Public Member Functions

 StructuralElement (int n, Domain *d)
virtual ~StructuralElement ()
 Destructor.
void giveCharacteristicMatrix (FloatMatrix &answer, CharType, TimeStep *tStep) override
void giveCharacteristicVector (FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep) override
virtual void computeMassMatrix (FloatMatrix &answer, TimeStep *tStep)
virtual void computeLumpedMassMatrix (FloatMatrix &answer, TimeStep *tStep)
virtual void computeConsistentMassMatrix (FloatMatrix &answer, TimeStep *tStep, double &mass, const double *ipDensity=NULL)
virtual void giveMassMtrxIntegrationgMask (IntArray &answer)
virtual void computeStiffnessMatrix (FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void computeStiffnessMatrix_withIRulesAsSubcells (FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
virtual void computeInitialStressMatrix (FloatMatrix &answer, TimeStep *tStep)
virtual void computeLumpedInitialStressMatrix (FloatMatrix &answer, TimeStep *tStep)
void computeField (ValueModeType mode, TimeStep *tStep, const FloatArray &lcoords, FloatArray &answer) override
virtual void giveInternalForcesVector (FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
virtual void giveInternalForcesVector_withIRulesAsSubcells (FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
virtual void computeStrainVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual void computeResultingIPTemperatureAt (FloatArray &answer, TimeStep *tStep, GaussPoint *gp, ValueModeType mode)
virtual void computeResultingIPEigenstrainAt (FloatArray &answer, TimeStep *tStep, GaussPoint *gp, ValueModeType mode)
Public Member Functions inherited from oofem::Element
 Element (int n, Domain *aDomain)
 Element (const Element &src)=delete
Elementoperator= (const Element &src)=delete
virtual ~Element ()
 Virtual destructor.
void giveLocationArray (IntArray &locationArray, const UnknownNumberingScheme &s, IntArray *dofIds=NULL) const
void giveLocationArray (IntArray &locationArray, const IntArray &dofIDMask, const UnknownNumberingScheme &s, IntArray *dofIds=NULL) const
virtual void giveBoundaryLocationArray (IntArray &locationArray, const IntArray &bNodes, const UnknownNumberingScheme &s, IntArray *dofIds=NULL)
virtual void giveBoundaryLocationArray (IntArray &locationArray, const IntArray &bNodes, const IntArray &dofIDMask, const UnknownNumberingScheme &s, IntArray *dofIds=NULL)
virtual int giveNumberOfDofs ()
virtual int giveNumberOfInternalDofManagers () const
virtual DofManagergiveInternalDofManager (int i) const
virtual void setInternalDofManager (int num, std::unique_ptr< DofManager > dm)
virtual double giveCharacteristicValue (CharType type, TimeStep *tStep)
virtual void computeTangentFromSurfaceLoad (FloatMatrix &answer, BoundaryLoad *load, int boundary, MatResponseMode rmode, TimeStep *tStep)
virtual void computeTangentFromEdgeLoad (FloatMatrix &answer, BoundaryLoad *load, int boundary, MatResponseMode rmode, TimeStep *tStep)
const IntArraygiveBodyLoadList () const
const IntArraygiveBoundaryLoadList () const
void computeVectorOf (ValueModeType u, TimeStep *tStep, FloatArray &answer)
void computeVectorOf (const IntArray &dofIDMask, ValueModeType u, TimeStep *tStep, FloatArray &answer, bool padding=false)
void computeBoundaryVectorOf (const IntArray &bNodes, const IntArray &dofIDMask, ValueModeType u, TimeStep *tStep, FloatArray &answer, bool padding=false)
void computeVectorOf (PrimaryField &field, const IntArray &dofIDMask, ValueModeType u, TimeStep *tStep, FloatArray &answer, bool padding=false)
void computeVectorOfPrescribed (ValueModeType u, TimeStep *tStep, FloatArray &answer)
void computeVectorOfPrescribed (const IntArray &dofIDMask, ValueModeType type, TimeStep *tStep, FloatArray &answer)
virtual int computeNumberOfDofs ()
virtual int computeNumberOfGlobalDofs ()
int computeNumberOfPrimaryMasterDofs ()
virtual bool computeGtoLRotationMatrix (FloatMatrix &answer)
virtual bool giveRotationMatrix (FloatMatrix &answer)
virtual bool computeDofTransformationMatrix (FloatMatrix &answer, const IntArray &nodes, bool includeInternal)
virtual void giveDofManDofIDMask (int inode, IntArray &answer) const
virtual void giveInternalDofManDofIDMask (int inode, IntArray &answer) const
virtual void giveElementDofIDMask (IntArray &answer) const
virtual double computeVolumeAround (GaussPoint *gp)
virtual double computeVolumeAreaOrLength ()
 Computes the volume, area or length of the element depending on its spatial dimension.
double computeMeanSize ()
virtual double computeVolume ()
virtual double computeArea ()
virtual double computeLength ()
virtual IntArray giveBoundaryEdgeNodes (int boundary, bool includeHierarchical=false) const
virtual IntArray giveBoundarySurfaceNodes (int boundary, bool includeHierarchical=false) const
virtual IntArray giveBoundaryNodes (int boundary) const
virtual std::unique_ptr< IntegrationRulegiveBoundaryEdgeIntegrationRule (int order, int boundary)
virtual std::unique_ptr< IntegrationRulegiveBoundarySurfaceIntegrationRule (int order, int boundary)
int giveDofManagerNumber (int i) const
const IntArraygiveDofManArray () const
void addDofManager (DofManager *dMan)
DofManagergiveDofManager (int i) const
NodegiveNode (int i) const
virtual ElementSidegiveSide (int i) const
virtual FEInterpolationgiveInterpolation () const
virtual FEInterpolationgiveInterpolation (DofIDItem id) const
virtual const FEInterpolationgetGeometryInterpolation () const
virtual MaterialgiveMaterial ()
int giveMaterialNumber () const
CrossSectiongiveCrossSection ()
int getActivityTimeFunctionNumber ()
void setActivityTimeFunctionNumber (int funcIndx)
void setMaterial (int matIndx)
virtual void setCrossSection (int csIndx)
virtual int giveNumberOfDofManagers () const
void setNumberOfDofManagers (int i)
 Sets number of element dof managers.
virtual int giveNumberOfNodes () const
void setDofManagers (const IntArray &dmans)
void setDofManager (int id, int dm)
void setBodyLoads (const IntArray &bodyLoads)
void setIntegrationRules (std ::vector< std ::unique_ptr< IntegrationRule > > irlist)
virtual integrationDomain giveIntegrationDomain () const
virtual MaterialMode giveMaterialMode ()
virtual int giveIntegrationRuleLocalCodeNumbers (IntArray &answer, IntegrationRule &ie)
int giveRegionNumber ()
virtual void initializeYourself (TimeStep *timeStepWhenICApply)
virtual bool isActivated (TimeStep *tStep)
virtual bool isCast (TimeStep *tStep)
virtual void initForNewStep ()
virtual Element_Geometry_Type giveGeometryType () const =0
virtual Element_Geometry_Type giveEdgeGeometryType (int id) const
 Returns the receiver edge geometry type.
virtual Element_Geometry_Type giveSurfaceGeometryType (int id) const
 Returns the receiver surface geometry type.
virtual int giveSpatialDimension ()
virtual int giveNumberOfBoundarySides ()
 Returns number of boundaries (entities of element_dimension-1: points, edges, surfaces).
virtual int giveNumberOfEdges () const
virtual int giveNumberOfSurfaces () const
virtual int giveDefaultIntegrationRule () const
virtual IntegrationRulegiveDefaultIntegrationRulePtr ()
int giveNumberOfIntegrationRules ()
virtual IntegrationRulegiveIntegrationRule (int i)
std::vector< std ::unique_ptr< IntegrationRule > > & giveIntegrationRulesArray ()
virtual int testElementExtension (ElementExtension ext)
int giveGlobalIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
virtual double giveLengthInDir (const FloatArray &normalToCrackPlane)
virtual double giveCharacteristicLength (const FloatArray &normalToCrackPlane)
double giveCharacteristicLengthForPlaneElements (const FloatArray &normalToCrackPlane)
double giveCharacteristicLengthForAxisymmElements (const FloatArray &normalToCrackPlane)
virtual double giveCharacteristicSize (GaussPoint *gp, FloatArray &normalToCrackPlane, ElementCharSizeMethod method)
virtual double giveParentElSize () const
virtual int computeGlobalCoordinates (FloatArray &answer, const FloatArray &lcoords)
virtual bool computeLocalCoordinates (FloatArray &answer, const FloatArray &gcoords)
virtual int giveLocalCoordinateSystem (FloatMatrix &answer)
virtual void giveLocalCoordinateSystemVector (InternalStateType isttype, FloatArray &answer)
virtual void computeMidPlaneNormal (FloatArray &answer, const GaussPoint *gp)
virtual int adaptiveMap (Domain *oldd, TimeStep *tStep)
virtual int mapStateVariables (Domain &iOldDom, const TimeStep &iTStep)
virtual int adaptiveFinish (TimeStep *tStep)
void updateLocalNumbering (EntityRenumberingFunctor &f) override
template<class T>
void ipEvaluator (T *src, void(T ::*f)(GaussPoint *gp))
 Integration point evaluator, loops over receiver IP's and calls given function (passed as f parameter) on them. The IP is parameter to function f.
template<class T, class S>
void ipEvaluator (T *src, void(T ::*f)(GaussPoint *, S &), S &_val)
 Integration point evaluator, loops over receiver IP's and calls given function (passed as f parameter) on them. The IP is parameter to function f as well as additional array.
virtual void drawYourself (oofegGraphicContext &gc, TimeStep *tStep)
virtual void drawAnnotation (oofegGraphicContext &gc, TimeStep *tStep)
virtual void drawRawGeometry (oofegGraphicContext &gc, TimeStep *tStep)
virtual void drawDeformedGeometry (oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
virtual void drawScalar (oofegGraphicContext &gc, TimeStep *tStep)
virtual void drawSpecial (oofegGraphicContext &gc, TimeStep *tStep)
virtual void giveLocalIntVarMaxMin (oofegGraphicContext &gc, TimeStep *tStep, double &emin, double &emax)
virtual int giveInternalStateAtSide (FloatArray &answer, InternalStateType type, InternalStateMode mode, int side, TimeStep *tStep)
int giveLabel () const
int giveGlobalNumber () const
void setGlobalNumber (int num)
elementParallelMode giveParallelMode () const
void setParallelMode (elementParallelMode _mode)
 Sets parallel mode of element.
virtual elementParallelMode giveKnotSpanParallelMode (int) const
int packUnknowns (DataStream &buff, TimeStep *tStep)
int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep)
int estimatePackSize (DataStream &buff)
const IntArraygivePartitionList () const
void setPartitionList (IntArray &pl)
virtual double predictRelativeComputationalCost ()
virtual double giveRelativeSelfComputationalCost ()
virtual double predictRelativeRedistributionCost ()
IntArraygiveBodyLoadArray ()
 Returns array containing load numbers of loads acting on element.
IntArraygiveBoundaryLoadArray ()
 Returns array containing load numbers of boundary loads acting on element.
void initializeFrom (InputRecord &ir, int priority) override
void initializeFinish () override
void postInitialize () override
 Performs post initialization steps.
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
void printOutputAt (FILE *file, TimeStep *tStep) override
virtual const IntArray giveLocation ()
virtual void recalculateCoordinates (int nodeNumber, FloatArray &coords)
void setSharedEdgeID (int iedge, int globalID)
void setSharedSurfaceID (int isurf, int globalID)
const IntArraygiveSharedEdgeIDs () const
const IntArraygiveSharedSurfaceIDs () const
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
virtual const char * giveInputRecordName () const =0
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void initializeFrom (InputRecord &ir)
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging.
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Protected Attributes

std::unique_ptr< FloatArrayinitialDisplacements
 Initial displacement vector, describes the initial nodal displacements when element has been casted.
Protected Attributes inherited from oofem::Element
int numberOfDofMans
 Number of dofmanagers.
IntArray dofManArray
 Array containing dofmanager numbers.
int material
 Number of associated material.
int crossSection
 Number of associated cross section.
IntArray bodyLoadArray
IntArray boundaryLoadArray
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
FloatMatrix elemLocalCS
 Transformation material matrix, used in orthotropic and anisotropic materials, global->local transformation.
int activityTimeFunction
 Element activity time function. If defined, nonzero value indicates active receiver, zero value inactive element.
int globalNumber
int numberOfGaussPoints
elementParallelMode parallel_mode
 Determines the parallel mode of the element.
IntArray partitions
IntArray globalEdgeIDs
IntArray globalSurfaceIDs
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Edge and surface load support services.

class IDNLMaterial
class TrabBoneNL3D
class MisesMatNl
class RankineMatNl
class GradDpElement
virtual void computeStressVector (FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)=0
virtual void computeBmatrixAt (GaussPoint *gp, FloatMatrix &answer, int lowerIndx=1, int upperIndx=ALL_STRAINS)=0
virtual void computeNmatrixAt (const FloatArray &iLocCoord, FloatMatrix &answer)
virtual void computePointLoadVectorAt (FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode, bool global=true)
virtual void giveEdgeDofMapping (IntArray &answer, int iEdge) const
virtual void giveSurfaceDofMapping (IntArray &answer, int iSurf) const
virtual double computeEdgeVolumeAround (GaussPoint *gp, int iEdge)
virtual double computeSurfaceVolumeAround (GaussPoint *gp, int iSurf)
virtual int computeLoadGToLRotationMtrx (FloatMatrix &answer)
virtual int computeLoadLEToLRotationMatrix (FloatMatrix &answer, int iEdge, GaussPoint *gp)
virtual int computeLoadLSToLRotationMatrix (FloatMatrix &answer, int iSurf, GaussPoint *gp)
virtual int giveNumberOfIPForMassMtrxIntegration ()
void condense (FloatMatrix *stiff, FloatMatrix *mass, FloatArray *load, IntArray *what)
virtual void setupIRForMassMtrxIntegration (IntegrationRule &iRule)

Methods related to nonlocal models

void updateBeforeNonlocalAverage (TimeStep *tStep) override
virtual void giveNonlocalLocationArray (IntArray &locationArray, const UnknownNumberingScheme &us)
virtual void addNonlocalStiffnessContributions (SparseMtrx &dest, const UnknownNumberingScheme &s, TimeStep *tStep)
int adaptiveUpdate (TimeStep *tStep) override
void updateInternalState (TimeStep *tStep) override
void updateYourself (TimeStep *tStep) override
int checkConsistency () override
void giveInputRecord (DynamicInputRecord &input) override
const char * giveClassName () const override
int giveInternalStateAtNode (FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep) override
void showSparseMtrxStructure (CharType mtrx, oofegGraphicContext &gc, TimeStep *tStep) override
 Shows sparse structure.
void showExtendedSparseMtrxStructure (CharType mtrx, oofegGraphicContext &gc, TimeStep *tStep) override
 Shows extended sparse structure (for example, due to nonlocal interactions for tangent stiffness).
void computeLoadVector (FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep) override
void computeBoundarySurfaceLoadVector (FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true) override
void computeBoundaryEdgeLoadVector (FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true) override
virtual void computeEdgeNMatrix (FloatMatrix &answer, int boundaryID, const FloatArray &lcoords)
 computes edge interpolation matrix
virtual void computeSurfaceNMatrix (FloatMatrix &answer, int boundaryID, const FloatArray &lcoords)
virtual void computeConstitutiveMatrixAt (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)=0
StructuralCrossSectiongiveStructuralCrossSection ()
 Helper function which returns the structural cross-section for the element.
virtual void createMaterialStatus ()
virtual void computeBodyLoadVectorAt (FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode)

Additional Inherited Members

Static Public Attributes inherited from oofem::Element
static ParamKey IPK_Element_mat
static ParamKey IPK_Element_crosssect
static ParamKey IPK_Element_nodes
static ParamKey IPK_Element_bodyload
static ParamKey IPK_Element_boundaryload
static ParamKey IPK_Element_lcs
static ParamKey IPK_Element_partitions
static ParamKey IPK_Element_remote
static ParamKey IPK_Element_activityTimeFunction
static ParamKey IPK_Element_nip
virtual void computeGaussPoints ()

Detailed Description

Abstract base class for all "structural" finite elements. It declares common interface provided by all derived elements. The implementation of these services is partly left on derived classes, some general services are implemented here generally (But they can be overload by more efficient element implementation). The general implementation provided here is intended for both linear and nonlinear computations. At this level, only material model nonlinearities are taken into account. If particular element type will participate in geometrically nonlinear computations, it should be derived from derived NLStructuralElement class, which provide support for this cases.

The basic data of an element are the numbers of its 'numberOfNodes' nodes, stored in 'nodeArray', of its 'material', of its body loads (eg, the dead weight) stored in 'loadArray'. These data are obtained from the domain. The element contains logical reference to Volume object ( which stores material,geometrical characteristics, integration points, state of material and so on) The calculated data of an element are its 'massMatrix', its 'stiffnessMatrix' its 'locationArray'. Since the load vector is recalculated at every time step, it is not given the status of attribute.

Tasks:

  • Obtaining its basic data, the element reads in the data file the number of these objects, then obtains the data from the domain (methods 'giveNode', 'giveMaterial',etc).
  • Calculating its contribution to the problem : Calculating its mass matrix M, its stiffness matrix K, its load vector f, its location array. Calculating its contribution to the LHS and RHS of the linear system, using Static,Newmark,etc, formula. These contributions are usually combinations of M,K,f.
  • Performing end-of-step operations; Calculating the strains and stresses at its Gauss points.
  • Printing its output in the data file and updating itself.

Definition at line 95 of file structuralelement.h.

Constructor & Destructor Documentation

◆ StructuralElement()

oofem::StructuralElement::StructuralElement ( int n,
Domain * d )

Constructor. Creates structural element with given number, belonging to given domain.

Parameters
nElement number.
dDomain to which new material will belong.

Definition at line 69 of file structuralelement.C.

References oofem::Element::Element().

Referenced by oofem::AbaqusUserElement::AbaqusUserElement(), oofem::BeamBaseElement::BeamBaseElement(), oofem::BondLink3d::BondLink3d(), oofem::CCTPlate::CCTPlate(), oofem::CohesiveSurface3d::CohesiveSurface3d(), oofem::DKTPlate::DKTPlate(), oofem::HTSelement::giveStructuralElement(), oofem::HTSelement::HTSelement(), oofem::InterfaceElem1d::InterfaceElem1d(), oofem::InterfaceElem2dLin::InterfaceElem2dLin(), oofem::InterfaceElem2dQuad::InterfaceElem2dQuad(), oofem::InterfaceElement3dTrLin::InterfaceElement3dTrLin(), oofem::LatticeStructuralElement::LatticeStructuralElement(), oofem::LIBeam2d::LIBeam2d(), oofem::LIBeam3d::LIBeam3d(), oofem::LineDistributedSpring::LineDistributedSpring(), oofem::LumpedMassElement::LumpedMassElement(), oofem::MITC4Shell::MITC4Shell(), oofem::NLStructuralElement::NLStructuralElement(), oofem::NodalSpringElement::NodalSpringElement(), oofem::QDKTPlate::QDKTPlate(), oofem::Quad1Mindlin::Quad1Mindlin(), oofem::Quad1MindlinShell3D::Quad1MindlinShell3D(), oofem::Quad1PlateSubSoil::Quad1PlateSubSoil(), oofem::SpringElement::SpringElement(), oofem::TR_SHELL01::TR_SHELL01(), oofem::TR_SHELL02::TR_SHELL02(), oofem::TR_SHELL11::TR_SHELL11(), oofem::Tr_Warp::Tr_Warp(), and oofem::Tria1PlateSubSoil::Tria1PlateSubSoil().

◆ ~StructuralElement()

oofem::StructuralElement::~StructuralElement ( )
virtual

Destructor.

Definition at line 74 of file structuralelement.C.

Member Function Documentation

◆ adaptiveUpdate()

int oofem::StructuralElement::adaptiveUpdate ( TimeStep * tStep)
overridevirtual

Updates the internal state variables stored in all IPs according to already mapped state.

Parameters
tStepTime step.
Returns
Nonzero if o.k, otherwise zero.

Reimplemented from oofem::Element.

Definition at line 1207 of file structuralelement.C.

References computeStrainVector(), giveStructuralCrossSection(), oofem::Element::integrationRulesArray, and oofem::MaterialModelMapperInterfaceType.

◆ addNonlocalStiffnessContributions()

void oofem::StructuralElement::addNonlocalStiffnessContributions ( SparseMtrx & dest,
const UnknownNumberingScheme & s,
TimeStep * tStep )
virtual

Adds the "nonlocal" contribution to stiffness matrix, to account for nonlocality of material model. Typically, this contribution is obtained by summing up mutual IP contributions.

Todo
Take into account cross section model (slaves)

Definition at line 1185 of file structuralelement.C.

References oofem::Element::giveDefaultIntegrationRulePtr(), giveStructuralCrossSection(), oofem::Element::isActivated(), oofem::NonlocalMaterialStiffnessInterface::NonlocalMaterialStiffnessInterface_addIPContribution(), and oofem::NonlocalMaterialStiffnessInterfaceType.

Referenced by oofem::NonLinearDynamic::assemble(), and oofem::NonLinearStatic::assemble().

◆ checkConsistency()

int oofem::StructuralElement::checkConsistency ( void )
overridevirtual

Performs consistency check. This method is called at startup for all elements in particular domain. This method is intended to check data compatibility. Particular element types should test if compatible material and crossSection both with required capabilities are specified. Derived classes should provide their own analysis specific tests. Some printed input if incompatibility is found should be provided (error or warning member functions). Method can be also used to initialize some variables, since this is invoked after all domain components are instanciated.

Returns
Zero value if check fail, otherwise nonzero.

Reimplemented from oofem::Element.

Reimplemented in oofem::TrPlaneStress2dXFEM.

Definition at line 1012 of file structuralelement.C.

References oofem::CS_StructuralCapability, giveClassName(), oofem::Element::giveCrossSection(), and OOFEM_WARNING.

◆ computeBmatrixAt()

virtual void oofem::StructuralElement::computeBmatrixAt ( GaussPoint * gp,
FloatMatrix & answer,
int lowerIndx = 1,
int upperIndx = ALL_STRAINS )
pure virtual

Computes the geometrical matrix of receiver in given integration point. The product of this matrix (assembled at given integration point) and element displacement vector is element strain vector. If lowerIndx and upperIndx parameters are specified, answer is formed only for strains within this interval. This will affects the size of answer.

Parameters
gpIntegration point for which answer is computed.
answerGeometric matrix of receiver.
lowerIndxIf specified, answer is formed only for strain with index equal and greater than lowerIndx. This parameter has default value 1 (answer is formed from first strain).
upperIndxIf specified, answer is formed only for strain with index less and equal than upperIndx. This parameter has default value ALL_STRAINS (answer is formed for all strains).

Implemented in oofem::AbaqusUserElement, oofem::AxisymElement, oofem::Beam2d, oofem::Beam3d, oofem::BondLink3d, oofem::CCTPlate, oofem::CohesiveSurface3d, oofem::DKTPlate, oofem::HTSelement, oofem::InterfaceElem1d, oofem::InterfaceElem2dLin, oofem::InterfaceElem2dQuad, oofem::InterfaceElement3dTrLin, oofem::L4Axisymm, oofem::Lattice2d, oofem::Lattice2dBoundary, oofem::Lattice3d, oofem::Lattice3dBoundary, oofem::Lattice3dBoundaryTruss, oofem::LatticeBeam3d, oofem::LatticeBeam3dBoundary, oofem::LatticeLink3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::LSpace, oofem::LSpaceBB, oofem::LTRSpaceBoundary, oofem::LumpedMassElement, oofem::MITC4Shell, oofem::NodalSpringElement, oofem::PlaneStrainElement, oofem::PlaneStress2d, oofem::PlaneStress2dXfem, oofem::PlaneStressElement, oofem::Q4Axisymm, oofem::QDKTPlate, oofem::QTrPlaneStress2dXFEM, oofem::QTruss1d, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlaneStrain, oofem::Quad1PlateSubSoil, oofem::Quad2PlateSubSoil, oofem::RerShell, oofem::Shell7Base, oofem::SolidShell, oofem::SpringElement, oofem::Structural2DElement, oofem::Structural3DElement, oofem::tet21ghostsolid, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tr_Warp, oofem::Tria1PlateSubSoil, oofem::Tria2PlateSubSoil, oofem::TrPlaneStress2dXFEM, oofem::TrPlanestressRotAllman, oofem::TrPlaneStrRot, oofem::Truss1d, oofem::Truss2d, and oofem::Truss3d.

References ALL_STRAINS, computeNmatrixAt(), condense(), giveNumberOfIPForMassMtrxIntegration(), and setupIRForMassMtrxIntegration().

Referenced by oofem::PhaseFieldElement::computeBStress_u(), oofem::GradDpElement::computeLocalStrainVector(), oofem::NLStructuralElement::computeStiffnessMatrix(), computeStiffnessMatrix(), oofem::GradientDamageElement::computeStiffnessMatrix_du(), oofem::GradDpElement::computeStiffnessMatrix_ku(), oofem::GradientDamageElement::computeStiffnessMatrix_ud(), oofem::PhaseFieldElement::computeStiffnessMatrix_ud(), oofem::GradDpElement::computeStiffnessMatrix_uk(), oofem::BaseMixedPressureElement::computeStiffnessMatrix_uu(), oofem::GradDpElement::computeStiffnessMatrix_uu(), oofem::GradientDamageElement::computeStiffnessMatrix_uu(), oofem::PhaseFieldElement::computeStiffnessMatrix_uu(), oofem::NLStructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), computeStiffnessMatrix_withIRulesAsSubcells(), oofem::BaseMixedPressureElement::computeStrainVector(), oofem::GradientDamageElement::computeStrainVector(), computeStrainVector(), oofem::NLStructuralElement::giveInternalForcesVector(), giveInternalForcesVector(), oofem::BaseMixedPressureElement::giveInternalForcesVector_u(), oofem::GradientDamageElement::giveInternalForcesVector_u(), oofem::PhaseFieldElement::giveInternalForcesVector_u(), oofem::NLStructuralElement::giveInternalForcesVector_withIRulesAsSubcells(), giveInternalForcesVector_withIRulesAsSubcells(), oofem::GradDpElement::giveLocalInternalForcesVector(), oofem::RankineMatNl::giveLocalNonlocalStiffnessContribution(), oofem::IDNLMaterial::giveRemoteNonlocalStiffnessContribution(), oofem::MisesMatNl::giveRemoteNonlocalStiffnessContribution(), oofem::RankineMatNl::giveRemoteNonlocalStiffnessContribution(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressSteel(), and oofem::LinearizedDilationForceAssembler::vectorFromElement().

◆ computeBodyLoadVectorAt()

void oofem::StructuralElement::computeBodyLoadVectorAt ( FloatArray & answer,
Load * load,
TimeStep * tStep,
ValueModeType mode )
protectedvirtual

Computes the load vector due to body load acting on receiver, at given time step. Default implementation computes body load vector numerically as \( l=\int_V N^{\mathrm{T}} f \rho\;\mathrm{d}V \) using default integration rule. Result is transformed to global c.s.

Parameters
answerComputed load vector due to body load
loadBody load which contribution is computed.
tStepTime step.
modedetermines the response mode

Reimplemented in oofem::Beam2d, oofem::Beam3d, oofem::CCTPlate3d, oofem::CCTPlate, oofem::DKTPlate3d, oofem::DKTPlate, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::QDKTPlate, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlateSubSoil, oofem::RerShell, oofem::Shell7Base, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tria1PlateSubSoil, oofem::TrPlanestressRotAllman3d, oofem::TrPlaneStrRot3d, and oofem::TrPlaneStrRot.

Definition at line 262 of file structuralelement.C.

References oofem::FloatArray::add(), oofem::FloatArray::beTProductOf(), oofem::BodyLoadBGT, oofem::FloatArray::clear(), oofem::Load::computeComponentArrayAt(), computeLoadGToLRotationMtrx(), computeNmatrixAt(), oofem::Element::computeVolumeAround(), oofem::ForceLoadBVT, oofem::GeneralBoundaryCondition::giveBCGeoType(), oofem::GeneralBoundaryCondition::giveBCValType(), oofem::Element::giveCrossSection(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::FloatArray::giveSize(), oofem::GaussPoint::giveSubPatchCoordinates(), OOFEM_ERROR, and oofem::FloatArray::rotatedWith().

Referenced by oofem::LIBeam2dNL::computeBodyLoadVectorAt(), oofem::LIBeam3d2::computeBodyLoadVectorAt(), oofem::LIBeam3dNL2::computeBodyLoadVectorAt(), oofem::LIBeam3dNL::computeBodyLoadVectorAt(), computeConstitutiveMatrixAt(), computeLoadVector(), and oofem::BeamBaseElement::computeLocalForceLoadVector().

◆ computeBoundaryEdgeLoadVector()

void oofem::StructuralElement::computeBoundaryEdgeLoadVector ( FloatArray & answer,
BoundaryLoad * load,
int edge,
CharType type,
ValueModeType mode,
TimeStep * tStep,
bool global = true )
overridevirtual

Computes the contribution of the given load at the given boundary edge. In general, the answer should include only relevant DOFs at the edge. The related is giveBoundaryLocationArray method, which should return corresponding code numbers..

Note
Elements which do not have an contribution should resize the vector to be empty.
Parameters
answerRequested contribution of load (in Global c.s.).
loadLoad to compute contribution from.
edgeEdge number.
typeType of the contribution.
modeDetermines mode of answer.
tStepTime step when answer is computed.
globalif true (default) then contribution is in global c.s., when false then contribution is in element local c.s.
Todo
Make sure this part is correct.
Todo
Support this...
Todo
Change the load type to "BoundaryEdgeLoad" maybe?

Reimplemented from oofem::Element.

Reimplemented in oofem::TrPlanestressRotAllman.

Definition at line 186 of file structuralelement.C.

References oofem::FEInterpolation::boundaryEdgeLocal2Global(), oofem::FloatArray::clear(), computeEdgeNMatrix(), computeEdgeVolumeAround(), computeLoadGToLRotationMtrx(), computeLoadLEToLRotationMatrix(), oofem::BoundaryLoad::computeValueAt(), oofem::BoundaryLoad::giveApproxOrder(), oofem::Element::giveBoundaryEdgeIntegrationRule(), oofem::BoundaryLoad::giveCoordSystMode(), oofem::Load::giveFormulationType(), oofem::Element::giveInterpolation(), oofem::GaussPoint::giveNaturalCoordinates(), OOFEM_ERROR, oofem::FloatArray::plusProduct(), and oofem::FloatArray::rotatedWith().

Referenced by oofem::BeamBaseElement::computeLocalForceLoadVector().

◆ computeBoundarySurfaceLoadVector()

void oofem::StructuralElement::computeBoundarySurfaceLoadVector ( FloatArray & answer,
BoundaryLoad * load,
int boundary,
CharType type,
ValueModeType mode,
TimeStep * tStep,
bool global = true )
overridevirtual

Computes the contribution of the given load at the given boundary surface in global coordinate system. In general, the answer should include only relevant DOFs at the edge. The related is giveBoundaryLocationArray method, which should return corresponding code numbers.

Note
Elements which do not have an contribution should resize the vector to be empty.
Parameters
answerRequested contribution of load.
loadLoad to compute contribution from.
boundaryBoundary number.
typeType of the contribution.
modeDetermines mode of answer.
tStepTime step when answer is computed.
globalif true (default) then contribution is in global c.s., when false then contribution is in element local c.s.
Todo
Make sure this part is correct.
Todo
Support this...
Todo
Some way to ask for the thickness at a global coordinate maybe?

Reimplemented from oofem::Element.

Reimplemented in oofem::tet21ghostsolid.

Definition at line 110 of file structuralelement.C.

References oofem::FEInterpolation::boundaryLocal2Global(), oofem::FloatArray::clear(), computeLoadLSToLRotationMatrix(), computeSurfaceNMatrix(), computeSurfaceVolumeAround(), oofem::BoundaryLoad::computeValueAt(), oofem::BoundaryLoad::giveApproxOrder(), oofem::Element::giveBoundarySurfaceIntegrationRule(), oofem::BoundaryLoad::giveCoordSystMode(), oofem::Load::giveFormulationType(), oofem::Element::giveInterpolation(), oofem::GaussPoint::giveNaturalCoordinates(), OOFEM_ERROR, oofem::FloatArray::plusProduct(), and oofem::FloatArray::rotatedWith().

Referenced by oofem::BeamBaseElement::computeLocalForceLoadVector().

◆ computeConsistentMassMatrix()

void oofem::StructuralElement::computeConsistentMassMatrix ( FloatMatrix & answer,
TimeStep * tStep,
double & mass,
const double * ipDensity = NULL )
virtual

Computes consistent mass matrix of receiver using numerical integration over element volume. Mass matrix is computed as \( M = \int_V N^{\mathrm{T}} \rho N dV \), where \( N \) is displacement approximation matrix. The number of necessary integration points is determined using this->giveNumberOfIPForMassMtrxIntegration service. Only selected degrees of freedom participate in integration of mass matrix. This is described using dof mass integration mask. This mask is obtained from this->giveMassMtrxIntegrationgMask service. The nonzero mask value at i-th position indicates that i-th element DOF participates in mass matrix computation. The result is in element local coordinate system.

Parameters
answerMass matrix.
tStepTime step.
massTotal mass of receiver.

Reimplemented in oofem::AbaqusUserElement, oofem::Beam2d, oofem::Beam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::PlaneStress2dXfem, oofem::QTrPlaneStress2dXFEM, and oofem::TrPlaneStress2dXFEM.

Definition at line 337 of file structuralelement.C.

References oofem::FloatMatrix::at(), oofem::IntArray::at(), computeNmatrixAt(), oofem::Element::computeNumberOfDofs(), oofem::Element::computeVolumeAround(), oofem::Element::giveCrossSection(), giveMassMtrxIntegrationgMask(), oofem::FloatMatrix::giveNumberOfRows(), oofem::GaussPoint::giveSubPatchCoordinates(), oofem::Element::isActivated(), oofem::IntArray::isEmpty(), oofem::FloatMatrix::plusProductSymmUpper(), oofem::FloatMatrix::resize(), setupIRForMassMtrxIntegration(), oofem::FloatMatrix::symmetrized(), and oofem::FloatMatrix::zero().

Referenced by oofem::Beam3d::computeConsistentMassMatrix(), computeLumpedMassMatrix(), computeMassMatrix(), and oofem::LSPrimaryVariableMapper::mapPrimaryVariables().

◆ computeConstitutiveMatrixAt()

virtual void oofem::StructuralElement::computeConstitutiveMatrixAt ( FloatMatrix & answer,
MatResponseMode rMode,
GaussPoint * gp,
TimeStep * tStep )
pure virtual

Computes constitutive matrix of receiver. Default implementation uses element cross section giveCharMaterialStiffnessMatrix service.

Parameters
answerConstitutive matrix.
rModeMaterial response mode of answer.
gpIntegration point for which constitutive matrix is computed.
tStepTime step.

Implemented in oofem::AbaqusUserElement, oofem::AxisymElement, oofem::Beam2d, oofem::Beam3d, oofem::BondLink3d, oofem::BondLink3dBoundary, oofem::CCTPlate, oofem::CohesiveSurface3d, oofem::DKTPlate, oofem::HTSelement, oofem::InterfaceElem1d, oofem::InterfaceElem2dLin, oofem::InterfaceElem2dQuad, oofem::InterfaceElement3dTrLin, oofem::Lattice2d, oofem::Lattice3d, oofem::LatticeBeam3d, oofem::LatticeLink3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::LumpedMassElement, oofem::MITC4Shell, oofem::NodalSpringElement, oofem::PlaneStrainElement, oofem::PlaneStress2dXfem, oofem::PlaneStressElement, oofem::QDKTPlate, oofem::QTrPlaneStress2dXFEM, oofem::QTruss1d, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlateSubSoil, oofem::RerShell, oofem::SpringElement, oofem::Structural3DElement, oofem::tet21ghostsolid, oofem::Tr2Shell7, oofem::Tr2Shell7XFEM, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tr_Warp, oofem::Tria1PlateSubSoil, oofem::TrPlaneStress2dXFEM, oofem::TrPlaneStrRot, oofem::Truss1d, oofem::Truss2d, oofem::Truss3d, and oofem::Truss3dnl2.

References computeBodyLoadVectorAt(), computePointLoadVectorAt(), createMaterialStatus(), and giveStructuralCrossSection().

Referenced by oofem::NLStructuralElement::computeStiffnessMatrix(), computeStiffnessMatrix(), oofem::NLStructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), computeStiffnessMatrix_withIRulesAsSubcells(), oofem::LinearizedDilationForceAssembler::vectorFromElement(), and oofem::ZZErrorEstimatorInterface::ZZErrorEstimatorI_computeElementContributions().

◆ computeEdgeNMatrix()

void oofem::StructuralElement::computeEdgeNMatrix ( FloatMatrix & answer,
int boundaryID,
const FloatArray & lcoords )
virtual

computes edge interpolation matrix

Reimplemented in oofem::DKTPlate, and oofem::MITC4Shell.

Definition at line 251 of file structuralelement.C.

References oofem::FloatMatrix::beNMatrixOf(), oofem::Element::giveGeometryType(), and oofem::Element::giveInterpolation().

Referenced by computeBoundaryEdgeLoadVector().

◆ computeEdgeVolumeAround()

◆ computeField()

void oofem::StructuralElement::computeField ( ValueModeType mode,
TimeStep * tStep,
const FloatArray & lcoords,
FloatArray & answer )
overridevirtual

Computes the unknown vector interpolated at the specified local coordinates. Used for exporting data and mapping fields.

See also
giveElementDofIDMask The unknown vector should match the element field as specified by the element dof IDs.
Parameters
modeMode (total, increment, etc) of the output
tStepTime step to evaluate at
lcoordsLocal coordinates to evaluate at
answerResults

Reimplemented from oofem::Element.

Reimplemented in oofem::TrPlaneStress2dXFEM, and oofem::Truss1dGradDamage.

Definition at line 565 of file structuralelement.C.

References oofem::FloatArray::beProductOf(), computeNmatrixAt(), and oofem::Element::computeVectorOf().

◆ computeInitialStressMatrix()

virtual void oofem::StructuralElement::computeInitialStressMatrix ( FloatMatrix & answer,
TimeStep * tStep )
inlinevirtual

Computes initial stress matrix for linear stability problem. Default implementation is not provided. Please note, that initial stress matrix depends on normal forces of element, corresponding engineering model must take this into account.

Parameters
answerComputed initial stress matrix.
tStepTime step.

Reimplemented in oofem::Beam2d, oofem::Beam3d, oofem::LIBeam2dNL, oofem::LumpedMassElement, oofem::NLStructuralElement, oofem::NodalSpringElement, oofem::SpringElement, oofem::Structural3DElement, and oofem::Truss3d.

Definition at line 197 of file structuralelement.h.

References OOFEM_ERROR.

Referenced by giveCharacteristicMatrix().

◆ computeLoadGToLRotationMtrx()

virtual int oofem::StructuralElement::computeLoadGToLRotationMtrx ( FloatMatrix & answer)
inlineprotectedvirtual

Returns transformation matrix from global coordinate system to local element coordinate system for element load vector components. If no transformation is necessary, answer is empty matrix (default);

Parameters
answerTransformation matrix.
Returns
Nonzero if transformation matrix is not empty matrix, zero otherwise.

Reimplemented in oofem::Beam3d, oofem::CCTPlate3d, oofem::DKTPlate3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LinQuad3DPlaneStress, oofem::MITC4Shell, oofem::TR_SHELL11, oofem::TrPlanestressRotAllman3d, and oofem::TrPlaneStrRot3d.

Definition at line 425 of file structuralelement.h.

References oofem::FloatMatrix::clear().

Referenced by oofem::QDKTPlate::computeBodyLoadVectorAt(), computeBodyLoadVectorAt(), oofem::Beam2d::computeBoundaryEdgeLoadVector(), computeBoundaryEdgeLoadVector(), oofem::TrPlanestressRotAllman::computeBoundaryEdgeLoadVector(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), and computePointLoadVectorAt().

◆ computeLoadLEToLRotationMatrix()

virtual int oofem::StructuralElement::computeLoadLEToLRotationMatrix ( FloatMatrix & answer,
int iEdge,
GaussPoint * gp )
inlineprotectedvirtual

Returns transformation matrix from local edge c.s to element local coordinate system of load vector components. Necessary, because integration must be done in local coordinate system of entity (edge or surface). If no transformation is necessary, answer is empty matrix (default);

Parameters
answerComputed rotation matrix.
iEdgeEdge number.
gpIntegration point (point, where transformation is computed, useful for curved edges).
Returns
Nonzero if transformation matrix is not empty matrix, zero otherwise.

Reimplemented in oofem::CCTPlate, oofem::DKTPlate3d, oofem::DKTPlate, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::MITC4Shell, oofem::QDKTPlate, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Structural2DElement, oofem::Structural3DElement, oofem::Truss2d, and oofem::Truss3d.

Definition at line 442 of file structuralelement.h.

References oofem::FloatMatrix::clear().

Referenced by computeBoundaryEdgeLoadVector().

◆ computeLoadLSToLRotationMatrix()

virtual int oofem::StructuralElement::computeLoadLSToLRotationMatrix ( FloatMatrix & answer,
int iSurf,
GaussPoint * gp )
inlineprotectedvirtual

Returns transformation matrix from local surface c.s to element local coordinate system of load vector components. Necessary, because integration must be done in local coordinate system of entity (edge or surface). If no transformation is necessary, answer is empty matrix (default);

Parameters
answerComputed rotation matrix.
iSurfSurface number.
gpIntegration point (point, where transformation is computed, useful for curved surfaces)
Returns
Nonzero if transformation matrix is not empty matrix, zero otherwise.

Reimplemented in oofem::CCTPlate3d, oofem::DKTPlate3d, oofem::DKTPlate, oofem::LSpace, oofem::Q27Space, oofem::QDKTPlate, oofem::QSpace, oofem::Structural3DElement, oofem::TR_SHELL11, and oofem::TrPlaneStrRot3d.

Definition at line 456 of file structuralelement.h.

References oofem::FloatMatrix::clear().

Referenced by computeBoundarySurfaceLoadVector().

◆ computeLoadVector()

void oofem::StructuralElement::computeLoadVector ( FloatArray & answer,
BodyLoad * load,
CharType type,
ValueModeType mode,
TimeStep * tStep )
overridevirtual

Computes the contribution of the given body load (volumetric).

Parameters
answerRequested contribution of load.
loadLoad to compute contribution from.
typeType of the contribution.
modeDetermines mode of answer.
tStepTime step when answer is computed.
Todo
This assumption of dead-weight loads needs to be lifted. We can have other body loads, such as

Reimplemented from oofem::Element.

Reimplemented in oofem::tet21ghostsolid.

Definition at line 91 of file structuralelement.C.

References oofem::FloatArray::clear(), computeBodyLoadVectorAt(), oofem::Element::computeLocalCoordinates(), computePointLoadVectorAt(), and oofem::PointLoad::giveCoordinates().

◆ computeLumpedInitialStressMatrix()

virtual void oofem::StructuralElement::computeLumpedInitialStressMatrix ( FloatMatrix & answer,
TimeStep * tStep )
inlinevirtual

Computes lumped initial stress matrix of receiver.

Parameters
answerLumped initial stress matrix.
tStepTime step.

Reimplemented in oofem::Beam2d, and oofem::Beam3d.

Definition at line 206 of file structuralelement.h.

Referenced by giveCharacteristicMatrix().

◆ computeLumpedMassMatrix()

void oofem::StructuralElement::computeLumpedMassMatrix ( FloatMatrix & answer,
TimeStep * tStep )
virtual

Computes lumped mass matrix of receiver. Default implementation returns lumped consistent mass matrix. Then returns lumped mass transformed into nodal coordinate system. The lumping procedure zeroes all off-diagonal members and zeroes also all diagonal members corresponding to non-displacement DOFs. Such diagonal matrix is then rescaled, to preserve the element mass. Requires the computeNmatrixAt and giveMassMtrxIntegrationgMask services to be implemented.

Parameters
answerLumped mass matrix.
tStepTime step.

Reimplemented in oofem::CCTPlate, oofem::DKTPlate, oofem::InterfaceElem1d, oofem::Lattice3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::LTRSpace, oofem::LumpedMassElement, oofem::NodalSpringElement, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlateSubSoil, oofem::RerShell, oofem::Shell7Base, oofem::SpringElement, oofem::Tria1PlateSubSoil, oofem::Truss1d, oofem::Truss2d, and oofem::Truss3d.

Definition at line 413 of file structuralelement.C.

References oofem::FloatMatrix::at(), oofem::IntArray::at(), computeConsistentMassMatrix(), oofem::Element::computeNumberOfDofs(), oofem::Element::giveDofManDofIDMask(), oofem::Element::giveNumberOfDofManagers(), oofem::FloatMatrix::giveNumberOfRows(), oofem::IntArray::giveSize(), oofem::Element::isActivated(), OOFEM_ERROR, oofem::FloatMatrix::resize(), oofem::FloatMatrix::times(), and oofem::FloatMatrix::zero().

Referenced by giveCharacteristicMatrix(), and giveCharacteristicVector().

◆ computeMassMatrix()

void oofem::StructuralElement::computeMassMatrix ( FloatMatrix & answer,
TimeStep * tStep )
virtual

Computes mass matrix of receiver. Default implementation returns consistent mass matrix and uses numerical integration. Returns result of this->computeConsistentMassMatrix service, transformed into nodal coordinate system. Requires the computeNmatrixAt and giveMassMtrxIntegrationgMask services to be implemented.

Parameters
answerMass matrix.
tStepTime step.

Reimplemented in oofem::CCTPlate, oofem::DKTPlate, oofem::InterfaceElem1d, oofem::Lattice3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LineDistributedSpring, oofem::LumpedMassElement, oofem::NodalSpringElement, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlateSubSoil, oofem::RerShell, oofem::Shell7Base, oofem::SpringElement, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::Tria1PlateSubSoil, oofem::Truss1d, oofem::Truss2d, and oofem::Truss3d.

Definition at line 404 of file structuralelement.C.

References computeConsistentMassMatrix().

Referenced by giveCharacteristicMatrix().

◆ computeNmatrixAt()

void oofem::StructuralElement::computeNmatrixAt ( const FloatArray & iLocCoord,
FloatMatrix & answer )
virtual

Computes interpolation matrix for element unknowns. The order and meaning of unknowns is element dependent.

Parameters
iLocCoordLocal coordinates.
answerInterpolation matrix evaluated at gp.

Reimplemented in oofem::Beam2d, oofem::Beam3d, oofem::CCTPlate, oofem::CohesiveSurface3d, oofem::DKTPlate, oofem::HTSelement, oofem::InterfaceElem1d, oofem::InterfaceElem2dLin, oofem::InterfaceElem2dQuad, oofem::InterfaceElement3dTrLin, oofem::LatticeStructuralElement, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LumpedMassElement, oofem::MITC4Shell, oofem::NodalSpringElement, oofem::PlaneStress2dXfem, oofem::QDKTPlate, oofem::QTrPlaneStress2dXFEM, oofem::Quad1PlateSubSoil, oofem::Quad2PlateSubSoil, oofem::RerShell, oofem::Shell7Base, oofem::SpringElement, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tr_Warp, oofem::Tria1PlateSubSoil, oofem::Tria2PlateSubSoil, oofem::TrPlaneStress2dXFEM, oofem::TrPlanestressRotAllman, oofem::TrPlaneStrRot, oofem::Truss1d, oofem::Truss2d, and oofem::Truss3d.

Definition at line 1029 of file structuralelement.C.

References oofem::FloatMatrix::beNMatrixOf(), oofem::Element::giveInterpolation(), oofem::Element::giveNumberOfDofManagers(), oofem::Element::giveSpatialDimension(), N, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

Referenced by computeBmatrixAt(), computeBodyLoadVectorAt(), computeConsistentMassMatrix(), computeField(), computePointLoadVectorAt(), oofem::FreeWarping::computeResultAtCenterOfGravity(), oofem::QPlaneStress2dSlip::computeStiffnessMatrix(), oofem::QTrPlaneStress2dSlip::computeStiffnessMatrix(), oofem::QPlaneStress2dSlip::giveInternalForcesVector(), oofem::QTrPlaneStress2dSlip::giveInternalForcesVector(), oofem::LTRSpaceBoundary::giveIPValue(), oofem::QPlaneStress2dSlip::giveIPValue(), oofem::QTrPlaneStress2dSlip::giveIPValue(), giveIPValue(), oofem::LSpace::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::LTRSpace::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::PlaneStress2d::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::Quad1PlaneStrain::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::TrPlaneStrain::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::TrPlaneStress2d::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::LSPrimaryVariableMapper::mapPrimaryVariables(), and oofem::XfemStructuralElementInterface::XfemElementInterface_computeConsistentMassMatrix().

◆ computePointLoadVectorAt()

void oofem::StructuralElement::computePointLoadVectorAt ( FloatArray & answer,
Load * load,
TimeStep * tStep,
ValueModeType mode,
bool global = true )
protectedvirtual

Computes point load vector contribution of receiver for given load (should has BoundaryLoad Base).

Parameters
answerComputed load vector.
loadPoint load which contribution is computed.
tStepTime step.
modedetermines response mode

Definition at line 301 of file structuralelement.C.

References oofem::FloatArray::beTProductOf(), computeLoadGToLRotationMtrx(), oofem::Element::computeLocalCoordinates(), computeNmatrixAt(), oofem::PointLoad::computeValueAt(), oofem::PointLoad::giveCoordinates(), oofem::PointLoad::giveCoordSystMode(), OOFEM_WARNING, and oofem::FloatArray::rotatedWith().

Referenced by computeConstitutiveMatrixAt(), computeLoadVector(), and oofem::BeamBaseElement::computeLocalForceLoadVector().

◆ computeResultingIPEigenstrainAt()

void oofem::StructuralElement::computeResultingIPEigenstrainAt ( FloatArray & answer,
TimeStep * tStep,
GaussPoint * gp,
ValueModeType mode )
virtual

◆ computeResultingIPTemperatureAt()

◆ computeStiffnessMatrix()

void oofem::StructuralElement::computeStiffnessMatrix ( FloatMatrix & answer,
MatResponseMode rMode,
TimeStep * tStep )
virtual

Computes numerically stiffness matrix of receiver. Default implementation computes element stiffness using \( K=\int_v B^{\mathrm{T}} D B \mathrm{d}V \) formulae, where \( B \) is element geometric matrix and \( D \) is material stiffness matrix. No geometrical nonlinearity is taken into account. NUmerical integration procedure uses integrationRulesArray for numerical integration. Support for reduced or selected integration is implemented. The individual integration rules are assumed to correspond to different terms from which the overall matrix is assembled.

If there is one integration rule, the full integration of all coefficients is performed. Otherwise, integration is performed using following rules. Each integration rule can specify start and end strain index of strain vector components for which is valid. It is necessary to ensure that these start and end indexes, dividing geometrical matrix into blocks, are not overlapping and that each strain component is included.

Then stiffness matrix is obtained as summation of integrals \( I_{ij}=\int_v B^{\mathrm{T}}_i D_{ij} B_j \mathrm{d}V \) where \( B_i \) is i-th block of geometrical matrix and \( D_{ij} \) is corresponding constitutive sub-matrix. The geometrical matrix is obtained using computeBmatrixAt service and the constitutive matrix is obtained using computeConstitutiveMatrixAt service. The \( I_{ij} \) integral is evaluated using such integration rule, which is valid for i-th or j-th block and has smaller number of integration points.

For higher numerical performance, only one half of stiffness matrix is computed and answer is then symmetrized. Therefore, if element matrix will be generally nonsymmetric, one must specialize this method. Finally, the result is transformed into global coordinate system (or nodal coordinate system, if it is defined).

Parameters
answerComputed stiffness matrix (symmetric).
rModeResponse mode.
tStepTime step.

Reimplemented in oofem::AbaqusUserElement, oofem::Beam2d, oofem::Beam3d, oofem::BondLink3d, oofem::BondLink3dBoundary, oofem::CoupledFieldsElement, oofem::HTSelement, oofem::Lattice2d, oofem::Lattice2dBoundary, oofem::Lattice3d, oofem::Lattice3dBoundary, oofem::Lattice3dBoundaryTruss, oofem::LatticeBeam3d, oofem::LatticeBeam3dBoundary, oofem::LatticeLink3d, oofem::LatticeLink3dBoundary, oofem::LIBeam2d, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dBoundary, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LTRSpaceBoundary, oofem::LumpedMassElement, oofem::MacroLSpace, oofem::MITC4Shell, oofem::NLStructuralElement, oofem::NodalSpringElement, oofem::PlaneStress2dXfem, oofem::PlaneStressGradDamage, oofem::PlaneStressPhF2d, oofem::QPlaneStrainGrad, oofem::QPlaneStrainGradDamage, oofem::QPlaneStress2dSlip, oofem::QPlaneStressGradDamage, oofem::QPlaneStressPhF2d, oofem::QTrPlaneStrainGradDamage, oofem::QTrPlaneStrainP1, oofem::QTrPlaneStress2dSlip, oofem::QTrPlaneStress2dXFEM, oofem::QTrPlaneStressGradDamage, oofem::QTRSpaceGradDamage, oofem::QTruss1dGradDamage, oofem::Quad1MindlinShell3D, oofem::Quad1PlaneStrainGradDamage, oofem::Quad1PlaneStrainP1, oofem::QWedgeGradDamage, oofem::Shell7Base, oofem::Shell7BaseXFEM, oofem::SolidShell, oofem::SpringElement, oofem::tet21ghostsolid, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TrPlaneStress2dXFEM, oofem::TrPlaneStressGradDamage, oofem::TrPlanestressRotAllman, oofem::Truss1dGradDamage, oofem::Truss3dnl2, and oofem::Truss3dnl.

Definition at line 575 of file structuralelement.C.

References oofem::FloatMatrix::beProductOf(), oofem::FloatMatrix::beSubMatrixOf(), oofem::FloatMatrix::clear(), computeBmatrixAt(), computeConstitutiveMatrixAt(), oofem::Element::computeVolumeAround(), oofem::Element::giveCrossSection(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::Element::integrationRulesArray, oofem::Element::isActivated(), oofem::FloatMatrix::plusProductSymmUpper(), oofem::FloatMatrix::plusProductUnsym(), and oofem::FloatMatrix::symmetrized().

Referenced by oofem::LIBeam3d2::computeStiffnessMatrix(), oofem::MITC4Shell::computeStiffnessMatrix(), giveCharacteristicMatrix(), and oofem::LineDistributedSpring::giveInternalForcesVector().

◆ computeStiffnessMatrix_withIRulesAsSubcells()

◆ computeStrainVector()

void oofem::StructuralElement::computeStrainVector ( FloatArray & answer,
GaussPoint * gp,
TimeStep * tStep )
virtual

◆ computeStressVector()

virtual void oofem::StructuralElement::computeStressVector ( FloatArray & answer,
const FloatArray & strain,
GaussPoint * gp,
TimeStep * tStep )
pure virtual

Computes the stress vector of receiver at given integration point, at time step tStep. The nature of these stresses depends on the element's type.

Parameters
answerStress vector.
strainStrain vector.
gpIntegration point.
tStepTime step.

Implemented in oofem::AbaqusUserElement, oofem::AxisymElement, oofem::Beam2d, oofem::Beam3d, oofem::BondLink3d, oofem::BondLink3dBoundary, oofem::CCTPlate, oofem::CohesiveSurface3d, oofem::DKTPlate, oofem::HTSelement, oofem::InterfaceElem1d, oofem::InterfaceElem2dLin, oofem::InterfaceElem2dQuad, oofem::InterfaceElement3dTrLin, oofem::Lattice2d, oofem::Lattice3d, oofem::LatticeBeam3d, oofem::LatticeLink3d, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::LumpedMassElement, oofem::MITC4Shell, oofem::NodalSpringElement, oofem::PlaneStrainElement, oofem::PlaneStress2dXfem, oofem::PlaneStressElement, oofem::QDKTPlate, oofem::QTrPlaneStress2dXFEM, oofem::QTruss1d, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Quad1PlateSubSoil, oofem::RerShell, oofem::SpringElement, oofem::Structural3DElement, oofem::tet21ghostsolid, oofem::Tr2Shell7, oofem::Tr2Shell7XFEM, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tr_Warp, oofem::Tria1PlateSubSoil, oofem::TrPlaneStress2dXFEM, oofem::TrPlaneStrRot, oofem::Truss1d, oofem::Truss2d, and oofem::Truss3d.

Referenced by oofem::PhaseFieldElement::computeBStress_u(), oofem::NLStructuralElement::giveInternalForcesVector(), giveInternalForcesVector(), oofem::NLStructuralElement::giveInternalForcesVector_withIRulesAsSubcells(), giveInternalForcesVector_withIRulesAsSubcells(), and updateInternalState().

◆ computeSurfaceNMatrix()

void oofem::StructuralElement::computeSurfaceNMatrix ( FloatMatrix & answer,
int boundaryID,
const FloatArray & lcoords )
virtual

Computes surface interpolation matrix. Interpolation matrix provide way, how to compute local surface unknowns (nonzero element unknowns on surface) at any integration point of surface, based on local unknowns in surface nodes. Local coordinate system of surface edge and element surface numbering is element dependent. The integration point is specified using two-dimensional iso coordinates, or using area coordinates for triangular surface.

Parameters
answerInterpolation matrix of surface.
boundaryIDSurface number.
localcoordinates

Reimplemented in oofem::CCTPlate, oofem::MITC4Shell, oofem::QDKTPlate, oofem::Quad1PlateSubSoil, oofem::Quad2PlateSubSoil, oofem::Tria1PlateSubSoil, and oofem::Tria2PlateSubSoil.

Definition at line 178 of file structuralelement.C.

References oofem::FloatMatrix::beNMatrixOf(), oofem::Element::giveGeometryType(), and oofem::Element::giveInterpolation().

Referenced by computeBoundarySurfaceLoadVector().

◆ computeSurfaceVolumeAround()

double oofem::StructuralElement::computeSurfaceVolumeAround ( GaussPoint * gp,
int iSurf )
protectedvirtual

◆ condense()

void oofem::StructuralElement::condense ( FloatMatrix * stiff,
FloatMatrix * mass,
FloatArray * load,
IntArray * what )
protected

General service for condensation of stiffness and optionally load vector and mass or initial stress matrices of receiver.

Parameters
stiffStiffness matrix to be condensed. Must be specified.
massMass or initial stress matrix. If parameter is NULL, only stiffness and/or load is condensed.
loadLoad vector of receiver. If specified then it is condensed. If no load vector condensation is necessary set parameter to NULL pointer.
whatInteger array. If at i-th position is nonzero, then i-th component is condensed.

Definition at line 1044 of file structuralelement.C.

References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::IntArray::at(), oofem::FloatMatrix::giveNumberOfRows(), oofem::FloatArray::giveSize(), oofem::IntArray::giveSize(), oofem::FloatMatrix::isSquare(), OOFEM_ERROR, and oofem::FloatArray::resize().

Referenced by computeBmatrixAt().

◆ createMaterialStatus()

void oofem::StructuralElement::createMaterialStatus ( )
virtual

◆ giveCharacteristicMatrix()

void oofem::StructuralElement::giveCharacteristicMatrix ( FloatMatrix & answer,
CharType type,
TimeStep * tStep )
overridevirtual

Computes characteristic matrix of receiver of requested type in given time step.

Parameters
answerRequested characteristic matrix (stiffness, tangent, ...). If element has no capability to compute requested type of characteristic matrix error function is invoked.
typeId of characteristic component requested.
tStepTime step when answer is computed.

Reimplemented from oofem::Element.

Reimplemented in oofem::TR_SHELL01, and oofem::TR_SHELL02.

Definition at line 887 of file structuralelement.C.

References oofem::__CharTypeToString(), computeInitialStressMatrix(), computeLumpedInitialStressMatrix(), computeLumpedMassMatrix(), computeMassMatrix(), computeStiffnessMatrix(), and OOFEM_ERROR.

◆ giveCharacteristicVector()

void oofem::StructuralElement::giveCharacteristicVector ( FloatArray & answer,
CharType type,
ValueModeType mode,
TimeStep * tStep )
overridevirtual

Computes characteristic vector of receiver of requested type in given time step. If element has no capability to compute requested type of characteristic vector error function is invoked.

Parameters
answerRequested characteristic vector.
typeId of characteristic component requested.
modeDetermines mode of answer.
tStepTime step when answer is computed.

Reimplemented from oofem::Element.

Reimplemented in oofem::TR_SHELL01, oofem::TR_SHELL02, and oofem::Tr_Warp.

Definition at line 915 of file structuralelement.C.

References oofem::__CharTypeToString(), computeLumpedMassMatrix(), giveInternalForcesVector(), oofem::FloatMatrix::giveNumberOfColumns(), OOFEM_ERROR, and oofem::FloatArray::resize().

Referenced by oofem::Tr_Warp::giveCharacteristicVector().

◆ giveClassName()

◆ giveEdgeDofMapping()

virtual void oofem::StructuralElement::giveEdgeDofMapping ( IntArray & answer,
int iEdge ) const
inlineprotectedvirtual

Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element DOFs. Mask can be imagined as local edge code numbers used to localize local edge DOFs to element DOFs.

Parameters
answerEdge DOF mapping.
iEdgeEdge number.

Reimplemented in oofem::CCTPlate, oofem::DKTPlate3d, oofem::DKTPlate, oofem::LIBeam2d, oofem::LIBeam2dNL, oofem::LIBeam3d2, oofem::LIBeam3d, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::MITC4Shell, oofem::QDKTPlate, oofem::Quad1Mindlin, oofem::Quad1MindlinShell3D, oofem::Shell7Base, oofem::Structural2DElement, oofem::Structural3DElement, oofem::Tr2Shell7, oofem::Tr2Shell7XFEM, oofem::Tr_Warp, oofem::TrPlanestressRotAllman, oofem::Truss2d, and oofem::Truss3d.

Definition at line 394 of file structuralelement.h.

References oofem::IntArray::clear().

◆ giveInputRecord()

void oofem::StructuralElement::giveInputRecord ( DynamicInputRecord & input)
overridevirtual

Setups the input record string of receiver.

Parameters
inputDynamic input record to be filled by receiver.

TODO: Should initialDisplacements be stored? /ES

Reimplemented from oofem::Element.

Reimplemented in oofem::TrPlaneStress2dXFEM.

Definition at line 1228 of file structuralelement.C.

Referenced by oofem::AbaqusUserElement::giveInputRecord(), and oofem::NLStructuralElement::giveInputRecord().

◆ giveInternalForcesVector()

void oofem::StructuralElement::giveInternalForcesVector ( FloatArray & answer,
TimeStep * tStep,
int useUpdatedGpRecord = 0 )
virtual

Returns equivalent nodal forces vectors. Useful for nonlinear analysis. Default implementation computes result as \( F=\int_v B^{\mathrm{T}} \sigma \mathrm{d}V \), where \( \sigma \) is the real element stress vector obtained using computeStressVector service (if useUpdatedGpRecord=0) or (if useUpdatedGpRecord=1) from integration point status. The geometric matrix is obtained using computeBmatrixAt service. Integration is performed using default integration rule, which should produce always valid results, assuming that strains used for computation of stresses are valid.

Parameters
answerInternal nodal forces vector.
tStepTime step.
useUpdatedGpRecordIf equal to zero, the stresses in integration points are computed (slow but safe), else if nonzero the stresses are taken directly from integration point status (should be derived from StructuralMaterialStatus) (fast, but engineering model must ensure valid status data in each integration point).

Reimplemented in oofem::AbaqusUserElement, oofem::Beam2d, oofem::Beam3d, oofem::BondLink3d, oofem::BondLink3dBoundary, oofem::CoupledFieldsElement, oofem::HTSelement, oofem::Lattice2dBoundary, oofem::Lattice3dBoundary, oofem::Lattice3dBoundaryTruss, oofem::LatticeBeam3d, oofem::LatticeBeam3dBoundary, oofem::LatticeLink3d, oofem::LatticeLink3dBoundary, oofem::LIBeam3dBoundary, oofem::LIBeam3dNL2, oofem::LIBeam3dNL, oofem::LineDistributedSpring, oofem::LTRSpaceBoundary, oofem::LumpedMassElement, oofem::MacroLSpace, oofem::MITC4Shell, oofem::NLStructuralElement, oofem::NodalSpringElement, oofem::PlaneStress2dXfem, oofem::PlaneStressGradDamage, oofem::PlaneStressPhF2d, oofem::QPlaneStrainGrad, oofem::QPlaneStrainGradDamage, oofem::QPlaneStress2dSlip, oofem::QPlaneStressGradDamage, oofem::QPlaneStressPhF2d, oofem::QTrPlaneStrainGradDamage, oofem::QTrPlaneStrainP1, oofem::QTrPlaneStress2dSlip, oofem::QTrPlaneStress2dXFEM, oofem::QTrPlaneStressGradDamage, oofem::QTRSpaceGradDamage, oofem::QTruss1dGradDamage, oofem::Quad1MindlinShell3D, oofem::Quad1PlaneStrainGradDamage, oofem::Quad1PlaneStrainP1, oofem::QWedgeGradDamage, oofem::Shell7Base, oofem::Shell7BaseXFEM, oofem::SolidShell, oofem::SpringElement, oofem::tet21ghostsolid, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TrPlaneStress2dXFEM, oofem::TrPlaneStressGradDamage, oofem::Truss1dGradDamage, oofem::Truss3dnl2, and oofem::Truss3dnl.

Definition at line 724 of file structuralelement.C.

References oofem::FloatArray::beProductOf(), oofem::FloatArray::clear(), computeBmatrixAt(), computeStressVector(), oofem::Element::computeVectorOf(), oofem::Element::computeVolumeAround(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::LatticeMaterialStatus::giveLatticeStress(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveMaterialStatus(), oofem::FloatArray::giveSize(), oofem::StructuralMaterialStatus::giveStressVector(), oofem::StructuralInterfaceMaterialStatus::giveTraction(), initialDisplacements, oofem::Element::isActivated(), oofem::FloatArray::plusProduct(), oofem::FloatArray::resize(), oofem::FloatArray::subtract(), and oofem::FloatArray::zero().

Referenced by giveCharacteristicVector(), oofem::MITC4Shell::giveInternalForcesVector(), and oofem::LatticeStructuralElement::printOutputAt().

◆ giveInternalForcesVector_withIRulesAsSubcells()

◆ giveInternalStateAtNode()

int oofem::StructuralElement::giveInternalStateAtNode ( FloatArray & answer,
InternalStateType type,
InternalStateMode mode,
int node,
TimeStep * tStep )
overridevirtual

Returns internal state variable (like stress,strain) at node of element in Reduced form, the way how is obtained is dependent on InternalValueType. The value may be local, or smoothed using some recovery technique / returns zero if element is unable to respond to request.

Parameters
answerContains result, zero sized if not supported.
typeDetermines the internal variable requested (physical meaning).
modeDetermines the mode of variable (recovered, local, ...).
nodeNode number, for which variable is required.
tStepTime step.
Returns
Nonzero if o.k, zero otherwise.

Reimplemented from oofem::Element.

Definition at line 1256 of file structuralelement.C.

References oofem::FloatArray::at(), oofem::DofManager::giveCoordinate(), oofem::Element::giveNode(), oofem::Node::giveUpdatedCoordinate(), and oofem::FloatArray::resize().

Referenced by oofem::Axisymm3d::drawScalar(), oofem::CCTPlate::drawScalar(), oofem::DKTPlate::drawScalar(), oofem::L4Axisymm::drawScalar(), oofem::LSpace::drawScalar(), oofem::LTRSpace::drawScalar(), oofem::MITC4Shell::drawScalar(), oofem::PlaneStress2d::drawScalar(), oofem::QDKTPlate::drawScalar(), oofem::QPlaneStress2d::drawScalar(), oofem::QTrPlaneStrain::drawScalar(), oofem::QTrPlaneStress2d::drawScalar(), oofem::Quad1PlaneStrain::drawScalar(), oofem::TR_SHELL01::drawScalar(), oofem::TR_SHELL02::drawScalar(), oofem::TrPlaneStrain::drawScalar(), oofem::TrPlaneStress2d::drawScalar(), and oofem::Truss1d::drawScalar().

◆ giveIPValue()

int oofem::StructuralElement::giveIPValue ( FloatArray & answer,
GaussPoint * gp,
InternalStateType type,
TimeStep * tStep )
overridevirtual

Returns the integration point corresponding value in full form.

Parameters
answerContain corresponding integration point value, zero sized if not available.
gpIntegration point to check.
typeDetermines the type of internal variable.
tStepTime step.
Returns
Nonzero if o.k, zero otherwise.
Todo
Which "error type" should be used? Why are there several? I don't see the point of this enum when there could be different function calls just as well (and different IST values)

Reimplemented from oofem::Element.

Reimplemented in oofem::tet21ghostsolid, oofem::TR_SHELL01, oofem::TR_SHELL02, oofem::TR_SHELL11, oofem::Tria1PlateSubSoil, oofem::TrPlanestressRotAllman3d, oofem::TrPlaneStrRot3d, oofem::TrPlaneStrRot, and oofem::Truss3d.

Definition at line 1139 of file structuralelement.C.

References oofem::FloatArray::beProductOf(), computeNmatrixAt(), oofem::Element::computeVectorOf(), oofem::GaussPoint::giveSubPatchCoordinates(), and N.

Referenced by oofem::Structural3DElement::computeInitialStressMatrix(), oofem::Axisymm3d::drawScalar(), oofem::CohesiveSurface3d::drawScalar(), oofem::InterfaceElem1d::drawScalar(), oofem::InterfaceElem2dLin::drawScalar(), oofem::InterfaceElem2dQuad::drawScalar(), oofem::L4Axisymm::drawScalar(), oofem::LIBeam3d2::drawScalar(), oofem::LTRSpace::drawScalar(), oofem::PlaneStress2d::drawScalar(), oofem::PlaneStress2dXfem::drawScalar(), oofem::QPlaneStrain::drawScalar(), oofem::QPlaneStress2d::drawScalar(), oofem::QTrPlaneStress2d::drawScalar(), oofem::Quad1PlaneStrain::drawScalar(), oofem::TrPlaneStrain::drawScalar(), oofem::TrPlaneStress2d::drawScalar(), oofem::TrPlaneStress2dXFEM::drawScalar(), oofem::Truss1d::drawScalar(), oofem::Lattice2d::drawSpecial(), oofem::LSpace::drawSpecial(), oofem::LTRSpace::drawSpecial(), oofem::PlaneStress2d::drawSpecial(), oofem::Quad1PlaneStrain::drawSpecial(), oofem::TrPlaneStress2d::drawSpecial(), oofem::CCTPlate3d::giveIPValue(), oofem::CCTPlate::giveIPValue(), oofem::DKTPlate3d::giveIPValue(), oofem::DKTPlate::giveIPValue(), oofem::LIBeam2dNL::giveIPValue(), oofem::LIBeam3dNL::giveIPValue(), oofem::MITC4Shell::giveIPValue(), oofem::QDKTPlate::giveIPValue(), oofem::Quad1Mindlin::giveIPValue(), oofem::Quad1MindlinShell3D::giveIPValue(), oofem::tet21ghostsolid::giveIPValue(), oofem::Axisymm3d::NodalAveragingRecoveryMI_computeNodalValue(), oofem::LSpace::NodalAveragingRecoveryMI_computeNodalValue(), oofem::LTRSpace::NodalAveragingRecoveryMI_computeNodalValue(), oofem::Q9PlaneStress2d::NodalAveragingRecoveryMI_computeNodalValue(), oofem::QPlaneStress2d::NodalAveragingRecoveryMI_computeNodalValue(), oofem::TrPlaneStrain::NodalAveragingRecoveryMI_computeNodalValue(), oofem::TrPlaneStress2d::NodalAveragingRecoveryMI_computeNodalValue(), oofem::Truss1d::NodalAveragingRecoveryMI_computeNodalValue(), and oofem::Tr_Warp::ZZNodalRecoveryMI_computeNValProduct().

◆ giveMassMtrxIntegrationgMask()

virtual void oofem::StructuralElement::giveMassMtrxIntegrationgMask ( IntArray & answer)
inlinevirtual

Returns mask indicating, which unknowns (their type and ordering is the same as element unknown vector) participate in mass matrix integration. Nonzero value at i-th position indicates that corresponding row in interpolation matrix N will participate in mass matrix integration (typically only displacements are taken into account).

Parameters
answerIntegration mask, if zero sized, all unknowns participate. This is default.

Definition at line 155 of file structuralelement.h.

References oofem::IntArray::clear().

Referenced by computeConsistentMassMatrix(), and oofem::XfemStructuralElementInterface::XfemElementInterface_computeConsistentMassMatrix().

◆ giveNonlocalLocationArray()

void oofem::StructuralElement::giveNonlocalLocationArray ( IntArray & locationArray,
const UnknownNumberingScheme & us )
virtual

Returns the "nonlocal" location array of receiver. This is necessary, when stiffness matrix of nonlocal model is assembled. Since model is nonlocal, the value at given IP depends on other IP (generally belonging to different elements) and as a consequence leads to increase of stiffness matrix profile, to take into account this "remote" dependency.

Parameters
locationArrayLocation arrays from neighboring elements.
usUnknown numbering scheme.

Definition at line 1154 of file structuralelement.C.

References oofem::IntArray::clear(), oofem::IntArray::followedBy(), oofem::Element::giveDefaultIntegrationRulePtr(), giveStructuralCrossSection(), and oofem::NonlocalMaterialStiffnessInterfaceType.

◆ giveNumberOfIPForMassMtrxIntegration()

int oofem::StructuralElement::giveNumberOfIPForMassMtrxIntegration ( )
protectedvirtual

◆ giveStructuralCrossSection()

StructuralCrossSection * oofem::StructuralElement::giveStructuralCrossSection ( )

Helper function which returns the structural cross-section for the element.

Definition at line 1236 of file structuralelement.C.

References oofem::Element::giveCrossSection().

Referenced by adaptiveUpdate(), addNonlocalStiffnessContributions(), oofem::CCTPlate3d::computeBodyLoadVectorAt(), oofem::CCTPlate::computeBodyLoadVectorAt(), oofem::DKTPlate3d::computeBodyLoadVectorAt(), oofem::DKTPlate::computeBodyLoadVectorAt(), oofem::Quad1Mindlin::computeBodyLoadVectorAt(), oofem::Quad1MindlinShell3D::computeBodyLoadVectorAt(), oofem::RerShell::computeBodyLoadVectorAt(), oofem::TR_SHELL11::computeBodyLoadVectorAt(), oofem::TrPlanestressRotAllman3d::computeBodyLoadVectorAt(), oofem::TrPlaneStrRot3d::computeBodyLoadVectorAt(), oofem::TrPlaneStrRot::computeBodyLoadVectorAt(), oofem::NLStructuralElement::computeCauchyStressVector(), oofem::Beam2d::computeConsistentMassMatrix(), oofem::Beam3d::computeConsistentMassMatrix(), oofem::StructuralElementEvaluator::computeConsistentMassMatrix(), oofem::AxisymElement::computeConstitutiveMatrix_dPdF_At(), oofem::PlaneStrainElement::computeConstitutiveMatrix_dPdF_At(), oofem::PlaneStressElement::computeConstitutiveMatrix_dPdF_At(), oofem::QTruss1d::computeConstitutiveMatrix_dPdF_At(), oofem::Structural3DElement::computeConstitutiveMatrix_dPdF_At(), oofem::tet21ghostsolid::computeConstitutiveMatrix_dPdF_At(), oofem::Truss1d::computeConstitutiveMatrix_dPdF_At(), oofem::Truss2d::computeConstitutiveMatrix_dPdF_At(), oofem::Truss3d::computeConstitutiveMatrix_dPdF_At(), oofem::AxisymElement::computeConstitutiveMatrixAt(), oofem::Beam2d::computeConstitutiveMatrixAt(), oofem::Beam3d::computeConstitutiveMatrixAt(), oofem::BondLink3dBoundary::computeConstitutiveMatrixAt(), oofem::CCTPlate::computeConstitutiveMatrixAt(), oofem::DKTPlate::computeConstitutiveMatrixAt(), oofem::LIBeam2d::computeConstitutiveMatrixAt(), oofem::LIBeam2dNL::computeConstitutiveMatrixAt(), oofem::LIBeam3d2::computeConstitutiveMatrixAt(), oofem::LIBeam3d::computeConstitutiveMatrixAt(), oofem::LIBeam3dNL2::computeConstitutiveMatrixAt(), oofem::LIBeam3dNL::computeConstitutiveMatrixAt(), oofem::PlaneStrainElement::computeConstitutiveMatrixAt(), oofem::PlaneStressElement::computeConstitutiveMatrixAt(), oofem::QDKTPlate::computeConstitutiveMatrixAt(), oofem::QTruss1d::computeConstitutiveMatrixAt(), oofem::Quad1Mindlin::computeConstitutiveMatrixAt(), oofem::Quad1MindlinShell3D::computeConstitutiveMatrixAt(), oofem::Quad1PlateSubSoil::computeConstitutiveMatrixAt(), oofem::RerShell::computeConstitutiveMatrixAt(), oofem::Structural3DElement::computeConstitutiveMatrixAt(), computeConstitutiveMatrixAt(), oofem::tet21ghostsolid::computeConstitutiveMatrixAt(), oofem::TR_SHELL11::computeConstitutiveMatrixAt(), oofem::Tr_Warp::computeConstitutiveMatrixAt(), oofem::Tria1PlateSubSoil::computeConstitutiveMatrixAt(), oofem::TrPlaneStrRot::computeConstitutiveMatrixAt(), oofem::Truss1d::computeConstitutiveMatrixAt(), oofem::Truss2d::computeConstitutiveMatrixAt(), oofem::Truss3d::computeConstitutiveMatrixAt(), oofem::Truss3dnl2::computeConstitutiveMatrixAt(), oofem::NLStructuralElement::computeFirstPKStressVector(), oofem::Truss3dnl2::computeInitialStressStiffness(), oofem::Truss3dnl::computeInitialStressStiffness(), oofem::GradientDamageElement::computeInternalForces_dB(), oofem::GradientDamageElement::computeInternalForces_dN(), oofem::CCTPlate::computeLocalCoordinates(), oofem::DKTPlate::computeLocalCoordinates(), oofem::QDKTPlate::computeLocalCoordinates(), oofem::RerShell::computeLocalCoordinates(), oofem::CCTPlate::computeLumpedMassMatrix(), oofem::DKTPlate::computeLumpedMassMatrix(), oofem::LIBeam2d::computeLumpedMassMatrix(), oofem::LIBeam2dNL::computeLumpedMassMatrix(), oofem::LIBeam3d2::computeLumpedMassMatrix(), oofem::LIBeam3d::computeLumpedMassMatrix(), oofem::LIBeam3dNL2::computeLumpedMassMatrix(), oofem::LIBeam3dNL::computeLumpedMassMatrix(), oofem::LTRSpace::computeLumpedMassMatrix(), oofem::Quad1Mindlin::computeLumpedMassMatrix(), oofem::Quad1MindlinShell3D::computeLumpedMassMatrix(), oofem::RerShell::computeLumpedMassMatrix(), oofem::Truss1d::computeLumpedMassMatrix(), oofem::Truss2d::computeLumpedMassMatrix(), oofem::Truss3d::computeLumpedMassMatrix(), oofem::MITC4Shell::computeStiffnessMatrix(), oofem::NLStructuralElement::computeStiffnessMatrix(), oofem::Quad1MindlinShell3D::computeStiffnessMatrix(), oofem::SolidShell::computeStiffnessMatrix(), oofem::Truss3dnl2::computeStiffnessMatrix(), oofem::Truss3dnl::computeStiffnessMatrix(), oofem::GradientDamageElement::computeStiffnessMatrix_dd(), oofem::GradientDamageElement::computeStiffnessMatrix_du(), oofem::GradDpElement::computeStiffnessMatrix_kk(), oofem::GradDpElement::computeStiffnessMatrix_ku(), oofem::BaseMixedPressureElement::computeStiffnessMatrix_pp(), oofem::GradientDamageElement::computeStiffnessMatrix_ud(), oofem::GradDpElement::computeStiffnessMatrix_uk(), oofem::BaseMixedPressureElement::computeStiffnessMatrix_uu(), oofem::GradDpElement::computeStiffnessMatrix_uu(), oofem::GradientDamageElement::computeStiffnessMatrix_uu(), oofem::NLStructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), oofem::TrPlanestressRotAllman::computeStiffnessMatrixZeroEnergyStabilization(), oofem::AxisymElement::computeStressVector(), oofem::BaseMixedPressureElement::computeStressVector(), oofem::Beam2d::computeStressVector(), oofem::Beam3d::computeStressVector(), oofem::BondLink3dBoundary::computeStressVector(), oofem::CCTPlate::computeStressVector(), oofem::DKTPlate::computeStressVector(), oofem::LIBeam2d::computeStressVector(), oofem::LIBeam2dNL::computeStressVector(), oofem::LIBeam3d2::computeStressVector(), oofem::LIBeam3d::computeStressVector(), oofem::LIBeam3dNL2::computeStressVector(), oofem::LIBeam3dNL::computeStressVector(), oofem::MITC4Shell::computeStressVector(), oofem::PlaneStrainElement::computeStressVector(), oofem::PlaneStressElement::computeStressVector(), oofem::QDKTPlate::computeStressVector(), oofem::QTruss1d::computeStressVector(), oofem::Quad1Mindlin::computeStressVector(), oofem::Quad1MindlinShell3D::computeStressVector(), oofem::Quad1PlateSubSoil::computeStressVector(), oofem::RerShell::computeStressVector(), oofem::Structural3DElement::computeStressVector(), oofem::tet21ghostsolid::computeStressVector(), oofem::TR_SHELL11::computeStressVector(), oofem::Tr_Warp::computeStressVector(), oofem::Tria1PlateSubSoil::computeStressVector(), oofem::TrPlaneStrRot::computeStressVector(), oofem::Truss1d::computeStressVector(), oofem::Truss2d::computeStressVector(), oofem::Truss3d::computeStressVector(), oofem::GradientDamageElement::computeStressVector_and_localDamageDrivingVariable(), oofem::GradDpElement::computeStressVectorAndLocalCumulatedStrain(), oofem::DKTPlate::computeVertexBendingMoments(), oofem::TrPlanestressRotAllman3d::computeVolumeAround(), oofem::TrPlaneStrRot3d::computeVolumeAround(), createMaterialStatus(), oofem::MITC4Shell::giveCharacteristicTensor(), oofem::TR_SHELL11::giveCharacteristicTensor(), oofem::TrPlaneStrRot3d::giveCharacteristicTensor(), oofem::QPlaneStress2dSlip::giveHomogenizedFields(), oofem::QTrPlaneStress2dSlip::giveHomogenizedFields(), oofem::MITC4Shell::giveInternalForcesVector(), oofem::Quad1MindlinShell3D::giveInternalForcesVector(), oofem::SolidShell::giveInternalForcesVector(), oofem::Truss3dnl2::giveInternalForcesVector(), oofem::GradientDamageElement::giveInternalForcesVector_d(), oofem::BaseMixedPressureElement::giveInternalForcesVector_p(), oofem::BaseMixedPressureElement::giveInternalForcesVector_u(), giveNonlocalLocationArray(), oofem::QPlaneStress2dSlip::giveSensitivities(), oofem::QTrPlaneStress2dSlip::giveSensitivities(), showExtendedSparseMtrxStructure(), updateBeforeNonlocalAverage(), oofem::LinearizedDilationForceAssembler::vectorFromElement(), oofem::XfemStructuralElementInterface::XfemElementInterface_computeConsistentMassMatrix(), and oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().

◆ giveSurfaceDofMapping()

virtual void oofem::StructuralElement::giveSurfaceDofMapping ( IntArray & answer,
int iSurf ) const
inlineprotectedvirtual

Assembles surface dof mapping mask, which provides mapping between surface local DOFs and "global" element DOFs. Mask can be imagined as local surface code numbers used to localize local DOFs to element DOFs.

Parameters
answerSurface DOF mapping.
iSurfSurface number

Reimplemented in oofem::CCTPlate3d, oofem::DKTPlate3d, oofem::DKTPlate, oofem::MITC4Shell, oofem::QDKTPlate, oofem::Shell7Base, oofem::Structural3DElement, oofem::Tr2Shell7, oofem::Tr2Shell7XFEM, oofem::TR_SHELL11, and oofem::TrPlaneStrRot3d.

Definition at line 402 of file structuralelement.h.

References oofem::IntArray::clear().

◆ setupIRForMassMtrxIntegration()

void oofem::StructuralElement::setupIRForMassMtrxIntegration ( IntegrationRule & iRule)
protectedvirtual

◆ showExtendedSparseMtrxStructure()

void oofem::StructuralElement::showExtendedSparseMtrxStructure ( CharType mtrx,
oofegGraphicContext & gc,
TimeStep * tStep )
overridevirtual

Shows extended sparse structure (for example, due to nonlocal interactions for tangent stiffness).

Reimplemented from oofem::Element.

Definition at line 1357 of file structuralelement.C.

References gc, oofem::Element::giveDefaultIntegrationRulePtr(), giveStructuralCrossSection(), oofem::NonlocalMaterialStiffnessInterface::NonlocalMaterialStiffnessInterface_showSparseMtrxStructure(), and oofem::NonlocalMaterialStiffnessInterfaceType.

◆ showSparseMtrxStructure()

void oofem::StructuralElement::showSparseMtrxStructure ( CharType mtrx,
oofegGraphicContext & gc,
TimeStep * tStep )
overridevirtual

◆ updateBeforeNonlocalAverage()

void oofem::StructuralElement::updateBeforeNonlocalAverage ( TimeStep * tStep)
overridevirtual

Updates internal element state (in all integration points of receiver) before nonlocal averaging takes place. Used by so nonlocal materials, because their response in particular point depends not only on state in this point, but depends also on state in point's neighborhood. Nonlocal quantity is computed as nonlocal average of local quantities. Therefore, before updating integration point state depending on nonlocal quantity (or quantities), local quantities in all integration points must be updated in advance. This function updates local quantities of material model using updateBeforeNonlocalAverage member function of structural nonlocal material class.

Parameters
tStepTime step.

Reimplemented from oofem::Element.

Definition at line 975 of file structuralelement.C.

References computeStrainVector(), oofem::Element_remote, oofem::Element::giveParallelMode(), giveStructuralCrossSection(), oofem::Element::integrationRulesArray, oofem::NonlocalMaterialExtensionInterfaceType, and oofem::StructuralNonlocalMaterialExtensionInterface::updateBeforeNonlocAverage().

◆ updateInternalState()

void oofem::StructuralElement::updateInternalState ( TimeStep * tStep)
overridevirtual

Updates element state after equilibrium in time step has been reached. Default implementation updates all integration rules defined by integrationRulesArray member variable. Doing this, all integration points and their material statuses are updated also. All temporary history variables, which now describe equilibrium state are copied into equilibrium ones. The existing internal state is used for update.

Parameters
tStepTime step for newly reached state.
See also
Material::updateYourself
IntegrationRule::updateYourself
GaussPoint::updateYourself
Element::updateInternalState

Reimplemented from oofem::Element.

Reimplemented in oofem::TR_SHELL01, and oofem::TR_SHELL02.

Definition at line 960 of file structuralelement.C.

References computeStrainVector(), computeStressVector(), and oofem::Element::integrationRulesArray.

◆ updateYourself()

void oofem::StructuralElement::updateYourself ( TimeStep * tStep)
overridevirtual

Updates element state after equilibrium in time step has been reached. Default implementation updates all integration rules defined by integrationRulesArray member variable. Doing this, all integration points and their material statuses are updated also. All temporary history variables, which now describe equilibrium state are copied into equilibrium ones. The existing internal state is used for update.

Parameters
tStepTime step for newly reached state.
See also
Material::updateYourself
IntegrationRule::updateYourself
GaussPoint::updateYourself
Element::updateInternalState

Reimplemented from oofem::Element.

Reimplemented in oofem::TR_SHELL01, oofem::TR_SHELL02, and oofem::TrPlaneStress2dXFEM.

Definition at line 944 of file structuralelement.C.

References oofem::Element::activityTimeFunction, oofem::Element::computeVectorOf(), initialDisplacements, and oofem::Element::isActivated().

Referenced by oofem::AbaqusUserElement::updateYourself().

◆ GradDpElement

friend class GradDpElement
friend

Definition at line 529 of file structuralelement.h.

References GradDpElement.

Referenced by GradDpElement.

◆ IDNLMaterial

friend class IDNLMaterial
friend

Definition at line 525 of file structuralelement.h.

References IDNLMaterial.

Referenced by IDNLMaterial.

◆ MisesMatNl

friend class MisesMatNl
friend

Definition at line 527 of file structuralelement.h.

References MisesMatNl.

Referenced by MisesMatNl.

◆ RankineMatNl

friend class RankineMatNl
friend

Definition at line 528 of file structuralelement.h.

References RankineMatNl.

Referenced by RankineMatNl.

◆ TrabBoneNL3D

friend class TrabBoneNL3D
friend

Definition at line 526 of file structuralelement.h.

References TrabBoneNL3D.

Referenced by TrabBoneNL3D.

Member Data Documentation

◆ initialDisplacements

std::unique_ptr< FloatArray > oofem::StructuralElement::initialDisplacements
protected

Initial displacement vector, describes the initial nodal displacements when element has been casted.

Definition at line 99 of file structuralelement.h.

Referenced by oofem::LTRSpaceBoundary::computeDeformationGradientVector(), oofem::NLStructuralElement::computeDeformationGradientVector(), oofem::tet21ghostsolid::computeDeformationGradientVectorFromDispl(), oofem::BondLink3d::computeStiffnessMatrix(), oofem::BondLink3dBoundary::computeStiffnessMatrix(), oofem::LatticeLink3d::computeStiffnessMatrix(), oofem::Lattice3dBoundary::computeStrainVector(), oofem::Lattice3dBoundaryTruss::computeStrainVector(), oofem::LatticeLink3dBoundary::computeStrainVector(), oofem::LIBeam3dBoundary::computeStrainVector(), oofem::LTRSpaceBoundary::computeStrainVector(), computeStrainVector(), oofem::BondLink3d::giveInternalForcesVector(), oofem::BondLink3dBoundary::giveInternalForcesVector(), oofem::Lattice2dBoundary::giveInternalForcesVector(), oofem::Lattice3dBoundary::giveInternalForcesVector(), oofem::Lattice3dBoundaryTruss::giveInternalForcesVector(), oofem::LatticeBeam3d::giveInternalForcesVector(), oofem::LatticeBeam3dBoundary::giveInternalForcesVector(), oofem::LatticeLink3d::giveInternalForcesVector(), oofem::LatticeLink3dBoundary::giveInternalForcesVector(), oofem::NLStructuralElement::giveInternalForcesVector(), giveInternalForcesVector(), oofem::TrPlaneStress2dXFEM::giveInternalForcesVector(), oofem::Truss3dnl2::giveInternalForcesVector(), oofem::Truss3dnl::giveInternalForcesVector(), giveInternalForcesVector_withIRulesAsSubcells(), updateYourself(), and oofem::XfemStructuralElementInterface::XfemElementInterface_computeDeformationGradientVector().


The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011