OOFEM 3.0
Loading...
Searching...
No Matches
oofem::SimpleCrossSection Class Reference

#include <simplecrosssection.h>

Inheritance diagram for oofem::SimpleCrossSection:
Collaboration diagram for oofem::SimpleCrossSection:

Public Member Functions

 SimpleCrossSection (int n, Domain *d)
FloatArrayF< 6 > giveRealStress_3d (const FloatArrayF< 6 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 6 > giveRealStress_3dDegeneratedShell (const FloatArrayF< 6 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 4 > giveRealStress_PlaneStrain (const FloatArrayF< 4 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 3 > giveRealStress_PlaneStress (const FloatArrayF< 3 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 1 > giveRealStress_1d (const FloatArrayF< 1 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 2 > giveRealStress_Warping (const FloatArrayF< 2 > &reducedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 6, 6 > giveStiffnessMatrix_3d (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 3, 3 > giveStiffnessMatrix_PlaneStress (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 4, 4 > giveStiffnessMatrix_PlaneStrain (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 1, 1 > giveStiffnessMatrix_1d (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 3 > giveGeneralizedStress_Beam2d (const FloatArrayF< 3 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 6 > giveGeneralizedStress_Beam3d (const FloatArrayF< 6 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 5 > giveGeneralizedStress_Plate (const FloatArrayF< 5 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 8 > giveGeneralizedStress_Shell (const FloatArrayF< 8 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 9 > giveGeneralizedStress_ShellRot (const FloatArrayF< 9 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 4 > giveGeneralizedStress_MembraneRot (const FloatArrayF< 4 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 3 > giveGeneralizedStress_PlateSubSoil (const FloatArrayF< 3 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const override
void giveCharMaterialStiffnessMatrix (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) override
bool isCharacteristicMtrxSymmetric (MatResponseMode mode) const override
FloatMatrixF< 6, 6 > give3dDegeneratedShellStiffMtrx (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 3, 3 > give2dBeamStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 6, 6 > give3dBeamStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 5, 5 > give2dPlateStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 8, 8 > give3dShellStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 9, 9 > give3dShellRotStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 4, 4 > giveMembraneRotStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 3, 3 > give2dPlateSubSoilStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
virtual FloatArrayF< 9 > giveFirstPKStress_3d (const FloatArrayF< 9 > &reducedF, GaussPoint *gp, TimeStep *tStep) const override
virtual FloatArrayF< 5 > giveFirstPKStress_PlaneStrain (const FloatArrayF< 5 > &reducedF, GaussPoint *gp, TimeStep *tStep) const override
virtual FloatArrayF< 4 > giveFirstPKStress_PlaneStress (const FloatArrayF< 4 > &reducedF, GaussPoint *gp, TimeStep *tStep) const override
virtual FloatArrayF< 1 > giveFirstPKStress_1d (const FloatArrayF< 1 > &reducedF, GaussPoint *gp, TimeStep *tStep) const override
void giveCharMaterialStiffnessMatrix_dPdF (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
FloatMatrixF< 9, 9 > giveStiffnessMatrix_dPdF_3d (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 5, 5 > giveStiffnessMatrix_dPdF_PlaneStrain (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 4, 4 > giveStiffnessMatrix_dPdF_PlaneStress (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 1, 1 > giveStiffnessMatrix_dPdF_1d (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
void createMaterialStatus (GaussPoint &iGP) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
double give (int aProperty, GaussPoint *gp) const override
double give (CrossSectionProperty a, GaussPoint *gp) const override
double give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local) const override
int giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep) override
MaterialgiveMaterial (IntegrationPoint *ip) const override
 hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const
int giveMaterialNumber () const
void setMaterialNumber (int matNum)
int checkConsistency () override
InterfacegiveMaterialInterface (InterfaceType t, IntegrationPoint *ip) override
void giveCauchyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedFIncrement, TimeStep *tStep) override
void giveEshelbyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedvF, TimeStep *tStep) override
void giveStiffnessMatrix_dCde (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) override
void giveTemperatureVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep) const
int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override
int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override
int estimatePackSize (DataStream &buff, GaussPoint *gp) override
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
Public Member Functions inherited from oofem::StructuralCrossSection
 StructuralCrossSection (int n, Domain *d)
FloatArray giveRealStresses (const FloatArray &reducedStrain, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArrayF< 6 > giveGeneralizedStress_3dBeamSubSoil (const FloatArrayF< 6 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArray giveFirstPKStresses (const FloatArray &reducedF, GaussPoint *gp, TimeStep *tStep) const
virtual FloatMatrixF< 6, 6 > give3dBeamSubSoilStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArrayimposeStressConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d)
virtual FloatArrayimposeStrainConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d)
int testCrossSectionExtension (CrossSectExtension ext) override
MaterialgiveMaterial (IntegrationPoint *ip) const override
Public Member Functions inherited from oofem::CrossSection
 CrossSection (int n, Domain *d)
virtual ~CrossSection ()
 Destructor.
int giveSetNumber () const
virtual bool hasProperty (CrossSectionProperty a)
void printYourself () override
 Prints receiver state on stdout. Useful for debugging.
virtual int setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element)
virtual int setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element)
virtual double predictRelativeComputationalCost (GaussPoint *ip)
virtual double giveRelativeSelfComputationalCost ()
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
virtual void saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
virtual void restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void postInitialize ()
 Performs post initialization steps. Called after all components are created and initialized.
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Protected Attributes

int materialNumber = 0
 Material number.
int czMaterialNumber = 0
 Cohesive zone material number.
Protected Attributes inherited from oofem::CrossSection
Dictionary propertyDictionary
int setNumber
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

Class implementing "simple" cross section model in finite element problem. A cross section is an attribute of a domain. It is usually also attribute of many elements.

The simple cross section implementation does not perform any integration over cross-section volume, it represents a cross section model, where the whole cross section model is represented by single integration point. and therefore all requests for characteristic contributions (stiffness) and for real stress computations are simply passed to parent StructuralCrossSection class, which invokes corresponding material mode services. Please note, that it is assumed that material model will support these material modes and provide corresponding services for characteristic components and stress evaluation. For description, how to incorporate more elaborate models of cross section, please read base CrossSection documentation.

The overloaded methods giveFullCharacteristicVector and giveFullCharacteristicVector add some additional support for integrated cross section models - _3dShell, _3dBeam, _2dPlate and _2dBeam.

This class also reads into its property dictionary necessary geometric cross section characteristics, which are requested by particular material models. These parameters can be requested using get service and include those defined by CrossSectionProperty.

Definition at line 86 of file simplecrosssection.h.

Constructor & Destructor Documentation

◆ SimpleCrossSection()

oofem::SimpleCrossSection::SimpleCrossSection ( int n,
Domain * d )
inline

Constructor.

Parameters
nCross section number.
dAssociated domain.

Definition at line 98 of file simplecrosssection.h.

References oofem::StructuralCrossSection::StructuralCrossSection().

Referenced by oofem::VariableCrossSection::VariableCrossSection(), and oofem::WarpingCrossSection::WarpingCrossSection().

Member Function Documentation

◆ checkConsistency()

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

Allows programmer to test some internal data, before computation begins. For example, one may use this function, to ensure that element has material with required capabilities is assigned to element. This must be done after all mesh components are instanciated.

Returns
Nonzero if receiver is consistent.

Implements oofem::StructuralCrossSection.

Definition at line 701 of file simplecrosssection.C.

References oofem::FEMComponent::giveClassName(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveMaterial(), materialNumber, and OOFEM_WARNING.

◆ createMaterialStatus()

void oofem::SimpleCrossSection::createMaterialStatus ( GaussPoint & iGP)
overridevirtual

◆ estimatePackSize()

int oofem::SimpleCrossSection::estimatePackSize ( DataStream & buff,
GaussPoint * ip )
overridevirtual

Estimates the necessary pack size to hold all packed data of receiver. The corresponding material model service is invoked. The nature of packed data is typically material model dependent.

Parameters
buffCommunication buffer.
ipIntegration point.
Returns
Estimate of pack size.

Implements oofem::CrossSection.

Definition at line 923 of file simplecrosssection.C.

References oofem::Material::estimatePackSize(), and giveMaterial().

◆ give() [1/3]

double oofem::SimpleCrossSection::give ( CrossSectionProperty a,
const FloatArray & coords,
Element * elem,
bool local ) const
inlineoverridevirtual

Returns the value of cross section property at given point (belonging to given element). the point coordinates can be specified using its local element coordinates or global coordinates (one of these two can be set to NULL) The default implementation assumes constant properties stored in propertyDictionary.

Parameters
aId of requested property.
coordslocal or global coordinates (determined by local parameter) of point of interest
elemreference to underlying element containing given point
gpIntegration point
Returns
Property value.

Reimplemented from oofem::CrossSection.

Reimplemented in oofem::VariableCrossSection.

Definition at line 170 of file simplecrosssection.h.

References oofem::CrossSection::give().

◆ give() [2/3]

double oofem::SimpleCrossSection::give ( CrossSectionProperty a,
GaussPoint * gp ) const
inlineoverridevirtual

Returns the value of cross section property at given point. The default implementation assumes constant properties stored in propertyDictionary.

Parameters
aId of requested property.
gpIntegration point
Returns
Property value.

Reimplemented from oofem::CrossSection.

Reimplemented in oofem::VariableCrossSection.

Definition at line 169 of file simplecrosssection.h.

References oofem::CrossSection::give().

◆ give() [3/3]

double oofem::SimpleCrossSection::give ( int aProperty,
GaussPoint * gp ) const
overridevirtual

◆ give2dBeamStiffMtrx()

FloatMatrixF< 3, 3 > oofem::SimpleCrossSection::give2dBeamStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Computes the stiffness matrix for 2d beams.

Parameters
answerThe requested matrix.
modeMaterial response mode.
gpIntegration point.
tStepTime step.

Implements oofem::StructuralCrossSection.

Definition at line 355 of file simplecrosssection.C.

References oofem::FloatMatrixF< N, M >::at(), oofem::CS_Area, oofem::CS_InertiaMomentY, oofem::CS_ShearAreaZ, give(), oofem::StructuralMaterial::give1dStressStiffMtrx(), and giveMaterial().

Referenced by giveCharMaterialStiffnessMatrix(), and giveGeneralizedStress_Beam2d().

◆ give2dPlateStiffMtrx()

FloatMatrixF< 5, 5 > oofem::SimpleCrossSection::give2dPlateStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing 2d plate stiffness matrix.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 405 of file simplecrosssection.C.

References oofem::FloatMatrixF< N, M >::at(), oofem::CS_Thickness, give(), giveMaterial(), and oofem::StructuralMaterial::givePlaneStressStiffMtrx().

Referenced by giveCharMaterialStiffnessMatrix(), and giveGeneralizedStress_Plate().

◆ give2dPlateSubSoilStiffMtrx()

FloatMatrixF< 3, 3 > oofem::SimpleCrossSection::give2dPlateSubSoilStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing subsoil stiffness matrix for plates.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 499 of file simplecrosssection.C.

References oofem::StructuralMaterial::give2dPlateSubSoilStiffMtrx(), and giveMaterial().

◆ give3dBeamStiffMtrx()

FloatMatrixF< 6, 6 > oofem::SimpleCrossSection::give3dBeamStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Computes the stiffness matrix for 2d beams.

Parameters
answerThe requested matrix.
modeMaterial response mode.
gpIntegration point.
tStepTime step.
Todo
Do this by using the general 3d tangent matrix instead somehow!!!

Implements oofem::StructuralCrossSection.

Definition at line 373 of file simplecrosssection.C.

References oofem::FloatMatrixF< N, M >::at(), oofem::CS_Area, oofem::CS_InertiaMomentY, oofem::CS_InertiaMomentZ, oofem::CS_ShearAreaY, oofem::CS_ShearAreaZ, oofem::CS_TorsionConstantX, E, give(), oofem::StructuralMaterial::give1dStressStiffMtrx(), and giveMaterial().

Referenced by giveCharMaterialStiffnessMatrix(), and giveGeneralizedStress_Beam3d().

◆ give3dDegeneratedShellStiffMtrx()

FloatMatrixF< 6, 6 > oofem::SimpleCrossSection::give3dDegeneratedShellStiffMtrx ( MatResponseMode rMode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing 3d shell stiffness matrix on degenerated shell elements.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Reimplemented from oofem::StructuralCrossSection.

Definition at line 470 of file simplecrosssection.C.

References oofem::FloatMatrixF< N, M >::at(), oofem::StructuralMaterial::give3dMaterialStiffnessMatrix(), and giveMaterial().

Referenced by giveCharMaterialStiffnessMatrix().

◆ give3dShellRotStiffMtrx()

FloatMatrixF< 9, 9 > oofem::SimpleCrossSection::give3dShellRotStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing 3d shell (with normal rotation) stiffness matrix.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 457 of file simplecrosssection.C.

References oofem::FloatMatrix::assemble(), oofem::FloatMatrix::at(), oofem::CS_DrillingStiffness, give(), give3dShellStiffMtrx(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

◆ give3dShellStiffMtrx()

FloatMatrixF< 8, 8 > oofem::SimpleCrossSection::give3dShellStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing 3d shell stiffness matrix.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 429 of file simplecrosssection.C.

References oofem::FloatMatrixF< N, M >::at(), oofem::CS_Thickness, give(), and giveMaterial().

Referenced by give3dShellRotStiffMtrx(), giveCharMaterialStiffnessMatrix(), and giveGeneralizedStress_Shell().

◆ giveCauchyStresses()

void oofem::SimpleCrossSection::giveCauchyStresses ( FloatArray & answer,
GaussPoint * gp,
const FloatArray & reducedFIncrement,
TimeStep * tStep )
overridevirtual

Computes the Cauchy stress vector for a given increment of deformation gradient and given integration point. The service should use previously reached equilibrium history variables. Also it should update temporary history variables in status according to newly reached state. The temporary history variables are moved into equilibrium ones after global structure equilibrium has been reached by iteration process. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains the Cauchy stress.
gpIntegration point.
reducedFIncrementIncrement of the deformation gradient vector in reduced form.
Todo
should this then be in a multiplicative way? /JB
Parameters
tStepCurrent time step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 730 of file simplecrosssection.C.

References oofem::StructuralMaterial::giveCauchyStressVector_1d(), oofem::StructuralMaterial::giveCauchyStressVector_3d(), oofem::StructuralMaterial::giveCauchyStressVector_PlaneStrain(), oofem::StructuralMaterial::giveCauchyStressVector_PlaneStress(), giveMaterial(), and oofem::GaussPoint::giveMaterialMode().

◆ giveCharMaterialStiffnessMatrix()

void oofem::SimpleCrossSection::giveCharMaterialStiffnessMatrix ( FloatMatrix & answer,
MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep )
overridevirtual

Computes the stiffness matrix of receiver in given integration point, respecting its history. The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains result.
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 323 of file simplecrosssection.C.

References give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dBeamStiffMtrx(), give3dDegeneratedShellStiffMtrx(), give3dShellStiffMtrx(), giveMaterial(), and oofem::GaussPoint::giveMaterialMode().

◆ giveCharMaterialStiffnessMatrix_dPdF()

void oofem::SimpleCrossSection::giveCharMaterialStiffnessMatrix_dPdF ( FloatMatrix & answer,
MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep )
overridevirtual

Computes the large strain stiffness matrix of receiver in given integration point, respecting its history. The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains result.
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 804 of file simplecrosssection.C.

References giveMaterial(), oofem::GaussPoint::giveMaterialMode(), and OOFEM_ERROR.

◆ giveClassName()

const char * oofem::SimpleCrossSection::giveClassName ( ) const
inlineoverridevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Reimplemented in oofem::VariableCrossSection, and oofem::WarpingCrossSection.

Definition at line 165 of file simplecrosssection.h.

◆ giveEshelbyStresses()

void oofem::SimpleCrossSection::giveEshelbyStresses ( FloatArray & answer,
GaussPoint * gp,
const FloatArray & reducedvF,
TimeStep * tStep )
overridevirtual

Computes the Eshelby stress vector. Does not update history variables, this is a postprocesing computation.

Parameters
answerContains the Eshelby stress.
gpIntegration point.
tStepCurrent time step (most models are able to respond only when tStep is current time step).

Reimplemented from oofem::StructuralCrossSection.

Definition at line 751 of file simplecrosssection.C.

References oofem::StructuralMaterial::giveEshelbyStressVector_PlaneStrain(), giveMaterial(), and oofem::GaussPoint::giveMaterialMode().

◆ giveFirstPKStress_1d()

FloatArrayF< 1 > oofem::SimpleCrossSection::giveFirstPKStress_1d ( const FloatArrayF< 1 > & reducedF,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveFirstPKStress_3d()

FloatArrayF< 9 > oofem::SimpleCrossSection::giveFirstPKStress_3d ( const FloatArrayF< 9 > & reducedF,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveFirstPKStress_PlaneStrain()

FloatArrayF< 5 > oofem::SimpleCrossSection::giveFirstPKStress_PlaneStrain ( const FloatArrayF< 5 > & reducedF,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveFirstPKStress_PlaneStress()

FloatArrayF< 4 > oofem::SimpleCrossSection::giveFirstPKStress_PlaneStress ( const FloatArrayF< 4 > & reducedF,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveGeneralizedStress_Beam2d()

FloatArrayF< 3 > oofem::SimpleCrossSection::giveGeneralizedStress_Beam2d ( const FloatArrayF< 3 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Computes the generalized stress vector for given strain and integration point.

Parameters
answerContains result.
gpIntegration point.
generalizedStrainStrain vector in reduced generalized form.
tStepCurrent time step (most models are able to respond only when tStep is current time step).

Note: (by bp): This assumes that the behaviour is elastic there exist a nuumber of nonlinear integral material models for beams defined directly in terms of integral forces and moments and corresponding deformations and curvatures. This would require to implement support at material model level. Mikael: That would not be a continuum material model, but it would highly depend on the cross-section shape, thus, it should be a special cross-section model instead. This cross-section assumes you can split the response into inertia moments and pure material response. This is only possible for a constant, elastic response (i.e. elastic). Therefore, this cross-section may only be allowed to give the elastic response.

Implements oofem::StructuralCrossSection.

Definition at line 136 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::CS_Thickness, oofem::dot(), give(), give2dBeamStiffMtrx(), giveMaterial(), oofem::FloatArray::giveSize(), giveTemperatureVector(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

◆ giveGeneralizedStress_Beam3d()

FloatArrayF< 6 > oofem::SimpleCrossSection::giveGeneralizedStress_Beam3d ( const FloatArrayF< 6 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Note: (by bp): This assumes that the behaviour is elastic there exist a number of nonlinear integral material models for beams defined directly in terms of integral forces and moments and corresponding deformations and curvatures. This would require to implement support at material model level. Mikael: See earlier response to comment

Implements oofem::StructuralCrossSection.

Definition at line 169 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::CS_Thickness, oofem::CS_Width, oofem::dot(), give(), give3dBeamStiffMtrx(), giveMaterial(), oofem::FloatArray::giveSize(), giveTemperatureVector(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

◆ giveGeneralizedStress_MembraneRot()

FloatArrayF< 4 > oofem::SimpleCrossSection::giveGeneralizedStress_MembraneRot ( const FloatArrayF< 4 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual
Todo
We should support nonlinear behavior for the membrane part. In fact, should be even bundle the rotation part with the membrane? We gain nothing from this design anyway as the rotation field is always separate. Separate manual integration by the element would be an option.

Implements oofem::StructuralCrossSection.

Definition at line 300 of file simplecrosssection.C.

References oofem::dot(), giveMaterial(), giveMembraneRotStiffMtrx(), oofem::Material::giveStatus(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

◆ giveGeneralizedStress_Plate()

FloatArrayF< 5 > oofem::SimpleCrossSection::giveGeneralizedStress_Plate ( const FloatArrayF< 5 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Note: (by bp): This assumes that the behaviour is elastic there exist a number of nonlinear integral material models for beams/plates/shells defined directly in terms of integral forces and moments and corresponding deformations and curvatures. This would require to implement support at material model level. Mikael: See earlier response to comment

Implements oofem::StructuralCrossSection.

Definition at line 204 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::CS_Thickness, oofem::dot(), give(), give2dPlateStiffMtrx(), giveMaterial(), oofem::FloatArray::giveSize(), giveTemperatureVector(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

◆ giveGeneralizedStress_PlateSubSoil()

FloatArrayF< 3 > oofem::SimpleCrossSection::giveGeneralizedStress_PlateSubSoil ( const FloatArrayF< 3 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveGeneralizedStress_Shell()

FloatArrayF< 8 > oofem::SimpleCrossSection::giveGeneralizedStress_Shell ( const FloatArrayF< 8 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Note: (by bp): This assumes that the behaviour is elastic there exist a nuumber of nonlinear integral material models for beams/plates/shells defined directly in terms of integral forces and moments and corresponding deformations and curvatures. This would require to implement support at material model level. Mikael: See earlier response to comment

Implements oofem::StructuralCrossSection.

Definition at line 236 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::CS_Thickness, oofem::dot(), give(), give3dShellStiffMtrx(), giveMaterial(), oofem::FloatArray::giveSize(), giveTemperatureVector(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

Referenced by giveGeneralizedStress_ShellRot().

◆ giveGeneralizedStress_ShellRot()

FloatArrayF< 9 > oofem::SimpleCrossSection::giveGeneralizedStress_ShellRot ( const FloatArrayF< 9 > & generalizedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Note: (by bp): This assumes that the behaviour is elastic there exist a nuumber of nonlinear integral material models for beams/plates/shells defined directly in terms of integral forces and moments and corresponding deformations and curvatures. This would require to implement support at material model level. Mikael: See earlier response to comment

Implements oofem::StructuralCrossSection.

Definition at line 270 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::CS_DrillingStiffness, give(), giveGeneralizedStress_Shell(), giveMaterial(), and oofem::StructuralMaterialStatus::letTempStrainVectorBe().

◆ giveInputRecord()

◆ giveInputRecordName()

const char * oofem::SimpleCrossSection::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Reimplemented in oofem::VariableCrossSection, and oofem::WarpingCrossSection.

Definition at line 166 of file simplecrosssection.h.

References _IFT_SimpleCrossSection_Name.

◆ giveIPValue()

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

Returns the integration point corresponding value in Reduced form.

Parameters
answercontain corresponding ip value, zero sized if not available
ipIntegration point.
typeDetermines the type of internal variable.
tStepTime step.
Returns
Nonzero if o.k, zero otherwise.

Reimplemented from oofem::CrossSection.

Definition at line 688 of file simplecrosssection.C.

References oofem::FloatArray::at(), oofem::Material::giveIPValue(), giveMaterial(), oofem::FEMComponent::giveNumber(), and oofem::FloatArray::resize().

◆ giveMaterial()

Material * oofem::SimpleCrossSection::giveMaterial ( IntegrationPoint * ip) const
overridevirtual

hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const

Returns the material associated with the GP. Default implementation uses gp->giveMaterial() for backwards compatibility, but it should be overloaded in each specialized cross-section.

Implements oofem::CrossSection.

Definition at line 670 of file simplecrosssection.C.

References oofem::FEMComponent::giveDomain(), oofem::GaussPoint::giveElement(), oofem::Domain::giveMaterial(), oofem::Element::giveMaterial(), and giveMaterialNumber().

Referenced by estimatePackSize(), give(), give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give2dPlateSubSoilStiffMtrx(), give3dBeamStiffMtrx(), give3dDegeneratedShellStiffMtrx(), give3dShellStiffMtrx(), giveCauchyStresses(), giveCharMaterialStiffnessMatrix(), giveCharMaterialStiffnessMatrix_dPdF(), giveEshelbyStresses(), giveFirstPKStress_1d(), giveFirstPKStress_3d(), giveFirstPKStress_PlaneStrain(), giveFirstPKStress_PlaneStress(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_Beam3d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_PlateSubSoil(), giveGeneralizedStress_Shell(), giveGeneralizedStress_ShellRot(), giveIPValue(), giveMaterialInterface(), giveMembraneRotStiffMtrx(), giveRealStress_1d(), giveRealStress_3d(), giveRealStress_3dDegeneratedShell(), giveRealStress_PlaneStrain(), giveRealStress_PlaneStress(), giveRealStress_Warping(), giveStiffnessMatrix_1d(), giveStiffnessMatrix_3d(), giveStiffnessMatrix_dCde(), giveStiffnessMatrix_dPdF_1d(), giveStiffnessMatrix_dPdF_3d(), giveStiffnessMatrix_dPdF_PlaneStrain(), giveStiffnessMatrix_dPdF_PlaneStress(), giveStiffnessMatrix_PlaneStrain(), giveStiffnessMatrix_PlaneStress(), packUnknowns(), and unpackAndUpdateUnknowns().

◆ giveMaterialInterface()

Interface * oofem::SimpleCrossSection::giveMaterialInterface ( InterfaceType t,
IntegrationPoint * ip )
overridevirtual

Reimplemented from oofem::StructuralCrossSection.

Definition at line 720 of file simplecrosssection.C.

References oofem::FEMComponent::giveInterface(), and giveMaterial().

◆ giveMaterialNumber()

int oofem::SimpleCrossSection::giveMaterialNumber ( ) const
inline

Definition at line 174 of file simplecrosssection.h.

Referenced by giveMaterial(), and isCharacteristicMtrxSymmetric().

◆ giveMembraneRotStiffMtrx()

FloatMatrixF< 4, 4 > oofem::SimpleCrossSection::giveMembraneRotStiffMtrx ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing membrane stiffness matrix with added drilling stiffness.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 489 of file simplecrosssection.C.

References oofem::assemble(), oofem::FloatMatrixF< N, M >::at(), oofem::CS_DrillingStiffness, give(), giveMaterial(), and oofem::StructuralMaterial::givePlaneStressStiffMtrx().

Referenced by giveGeneralizedStress_MembraneRot().

◆ giveRealStress_1d()

FloatArrayF< 1 > oofem::SimpleCrossSection::giveRealStress_1d ( const FloatArrayF< 1 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveRealStress_3d()

FloatArrayF< 6 > oofem::SimpleCrossSection::giveRealStress_3d ( const FloatArrayF< 6 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveRealStress_3dDegeneratedShell()

FloatArrayF< 6 > oofem::SimpleCrossSection::giveRealStress_3dDegeneratedShell ( const FloatArrayF< 6 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Reimplemented from oofem::StructuralCrossSection.

Definition at line 61 of file simplecrosssection.C.

References giveMaterial().

◆ giveRealStress_PlaneStrain()

FloatArrayF< 4 > oofem::SimpleCrossSection::giveRealStress_PlaneStrain ( const FloatArrayF< 4 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveRealStress_PlaneStress()

FloatArrayF< 3 > oofem::SimpleCrossSection::giveRealStress_PlaneStress ( const FloatArrayF< 3 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveRealStress_Warping()

FloatArrayF< 2 > oofem::SimpleCrossSection::giveRealStress_Warping ( const FloatArrayF< 2 > & reducedStrain,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_1d()

FloatMatrixF< 1, 1 > oofem::SimpleCrossSection::giveStiffnessMatrix_1d ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_3d()

FloatMatrixF< 6, 6 > oofem::SimpleCrossSection::giveStiffnessMatrix_3d ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Method for computing the stiffness matrix.

Parameters
answerStiffness matrix.
modeMaterial response mode.
gpIntegration point, which load history is used.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 104 of file simplecrosssection.C.

References oofem::StructuralMaterial::give3dMaterialStiffnessMatrix(), and giveMaterial().

◆ giveStiffnessMatrix_dCde()

void oofem::SimpleCrossSection::giveStiffnessMatrix_dCde ( FloatMatrix & answer,
MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep )
overridevirtual

Computes the material stiffness matrix dCde of receiver in a given integration point, respecting its history. The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains result.
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 858 of file simplecrosssection.C.

References oofem::StructuralMaterial::give1dStressStiffMtrx_dCde(), oofem::StructuralMaterial::give3dMaterialStiffnessMatrix_dCde(), giveMaterial(), oofem::GaussPoint::giveMaterialMode(), oofem::StructuralMaterial::givePlaneStrainStiffMtrx_dCde(), oofem::StructuralMaterial::givePlaneStressStiffMtrx_dCde(), and OOFEM_ERROR.

◆ giveStiffnessMatrix_dPdF_1d()

FloatMatrixF< 1, 1 > oofem::SimpleCrossSection::giveStiffnessMatrix_dPdF_1d ( MatResponseMode rMode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_dPdF_3d()

FloatMatrixF< 9, 9 > oofem::SimpleCrossSection::giveStiffnessMatrix_dPdF_3d ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

Computes the material stiffness matrix dPdF of receiver in a given integration point, respecting its history. The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains result.
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when tStep is current time step).

Implements oofem::StructuralCrossSection.

Definition at line 823 of file simplecrosssection.C.

References oofem::StructuralMaterial::give3dMaterialStiffnessMatrix_dPdF(), and giveMaterial().

◆ giveStiffnessMatrix_dPdF_PlaneStrain()

FloatMatrixF< 5, 5 > oofem::SimpleCrossSection::giveStiffnessMatrix_dPdF_PlaneStrain ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_dPdF_PlaneStress()

FloatMatrixF< 4, 4 > oofem::SimpleCrossSection::giveStiffnessMatrix_dPdF_PlaneStress ( MatResponseMode rMode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_PlaneStrain()

FloatMatrixF< 4, 4 > oofem::SimpleCrossSection::giveStiffnessMatrix_PlaneStrain ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveStiffnessMatrix_PlaneStress()

FloatMatrixF< 3, 3 > oofem::SimpleCrossSection::giveStiffnessMatrix_PlaneStress ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
overridevirtual

◆ giveTemperatureVector()

◆ initializeFrom()

void oofem::SimpleCrossSection::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver acording to object description stored in input record. Calls CrossSection initializeFrom service and reads the values of

  • 'thick' thickness
  • 'width' width
  • 'area' area
  • 'iy' Moment of inertia around y
  • 'iz' Moment of inertia around z
  • 'ik' Torsion moment around x
  • 'beamshearcoeff' Beam shear coefficient
    Parameters
    irRecord to read off.

Reimplemented from oofem::CrossSection.

Reimplemented in oofem::VariableCrossSection, and oofem::WarpingCrossSection.

Definition at line 507 of file simplecrosssection.C.

References _IFT_SimpleCrossSection_area, _IFT_SimpleCrossSection_directorx, _IFT_SimpleCrossSection_directory, _IFT_SimpleCrossSection_directorz, _IFT_SimpleCrossSection_drillStiffness, _IFT_SimpleCrossSection_drillType, _IFT_SimpleCrossSection_ik, _IFT_SimpleCrossSection_iy, _IFT_SimpleCrossSection_iz, _IFT_SimpleCrossSection_MaterialNumber, _IFT_SimpleCrossSection_relDrillStiffness, _IFT_SimpleCrossSection_shearareay, _IFT_SimpleCrossSection_shearareaz, _IFT_SimpleCrossSection_shearcoeff, _IFT_SimpleCrossSection_thick, _IFT_SimpleCrossSection_width, oofem::CS_Area, oofem::CS_BeamShearCoeff, oofem::CS_DirectorVectorX, oofem::CS_DirectorVectorY, oofem::CS_DirectorVectorZ, oofem::CS_DrillingStiffness, oofem::CS_DrillingType, oofem::CS_InertiaMomentY, oofem::CS_InertiaMomentZ, oofem::CS_RelDrillingStiffness, oofem::CS_ShearAreaY, oofem::CS_ShearAreaZ, oofem::CS_Thickness, oofem::CS_TorsionConstantX, oofem::CS_Width, oofem::InputRecord::hasField(), oofem::CrossSection::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, materialNumber, and oofem::CrossSection::propertyDictionary.

◆ isCharacteristicMtrxSymmetric()

bool oofem::SimpleCrossSection::isCharacteristicMtrxSymmetric ( MatResponseMode rMode) const
overridevirtual

Check for symmetry of stiffness matrix. Default implementation returns true. It can be moved to base Cross section class in the future.

Parameters
rModeResponse mode of material.
Returns
True if stiffness matrix of receiver is symmetric.

Implements oofem::StructuralCrossSection.

Definition at line 659 of file simplecrosssection.C.

References oofem::FEMComponent::domain, and giveMaterialNumber().

◆ packUnknowns()

int oofem::SimpleCrossSection::packUnknowns ( DataStream & buff,
TimeStep * tStep,
GaussPoint * ip )
overridevirtual

Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. The corresponding material model service for particular integration point is invoked. The nature of packed data is material model dependent. Typically, for material of "local" response (response depends only on integration point local state) no data are exchanged. For "nonlocal" constitutive models the send/receive of local values which undergo averaging is performed between local and corresponding remote elements.

Parameters
buffCommunication buffer.
tStepSolution step.
ipIntegration point.
Returns
Nonzero if successful.

Implements oofem::CrossSection.

Definition at line 911 of file simplecrosssection.C.

References giveMaterial(), and oofem::Material::packUnknowns().

◆ restoreContext()

void oofem::SimpleCrossSection::restoreContext ( DataStream & stream,
ContextMode mode )
overridevirtual

Restores the receiver state previously written in stream.

See also
saveContext
Parameters
streamInput stream.
modeDetermines amount of info available in stream (state, definition, ...).
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::CrossSection.

Definition at line 944 of file simplecrosssection.C.

References oofem::CIO_IOERR, CM_Definition, czMaterialNumber, materialNumber, oofem::DataStream::read(), oofem::CrossSection::restoreContext(), and THROW_CIOERR.

◆ saveContext()

void oofem::SimpleCrossSection::saveContext ( DataStream & stream,
ContextMode mode )
overridevirtual

Stores receiver state to output stream.

Parameters
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::CrossSection.

Definition at line 929 of file simplecrosssection.C.

References oofem::CIO_IOERR, CM_Definition, czMaterialNumber, materialNumber, oofem::CrossSection::saveContext(), THROW_CIOERR, and oofem::DataStream::write().

◆ setMaterialNumber()

void oofem::SimpleCrossSection::setMaterialNumber ( int matNum)
inline

Definition at line 175 of file simplecrosssection.h.

◆ unpackAndUpdateUnknowns()

int oofem::SimpleCrossSection::unpackAndUpdateUnknowns ( DataStream & buff,
TimeStep * tStep,
GaussPoint * ip )
overridevirtual

Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer.

See also
packUnknowns service.
Parameters
buffCommunication buffer.
tStepSolution step.
ipIntegration point.
Returns
Nonzero if successful.

Implements oofem::CrossSection.

Definition at line 917 of file simplecrosssection.C.

References giveMaterial(), and oofem::Material::unpackAndUpdateUnknowns().

Member Data Documentation

◆ czMaterialNumber

int oofem::SimpleCrossSection::czMaterialNumber = 0
protected

Cohesive zone material number.

Definition at line 90 of file simplecrosssection.h.

Referenced by restoreContext(), and saveContext().

◆ materialNumber


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