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

#include <variablecrosssection.h>

Inheritance diagram for oofem::VariableCrossSection:
Collaboration diagram for oofem::VariableCrossSection:

Public Member Functions

 VariableCrossSection (int n, Domain *d)
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
double give (CrossSectionProperty a, GaussPoint *gp) const override
double give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local) const override
Public Member Functions inherited from oofem::SimpleCrossSection
 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 createMaterialStatus (GaussPoint &iGP) override
double give (int aProperty, GaussPoint *gp) 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 Member Functions

void giveExpression (const ScalarFunction **expr, CrossSectionProperty aProperty) const
std::string giveExpression (CrossSectionProperty aProperty)

Protected Attributes

ScalarFunction thicknessExpr
 Expression for cross section thickness.
ScalarFunction widthExpr
 Expression for cross section width.
ScalarFunction areaExpr
 Expression for cross section area.
ScalarFunction iyExpr
 Expression for cross section inertia moment $I_y$.
ScalarFunction izExpr
 Expression for cross section inertia moment $I_z$.
ScalarFunction ixExpr
 Expression for cross section torsion moment $I_x$.
ScalarFunction shearAreayExpr
 Expression for cross section beam shear area $A_y$.
ScalarFunction shearAreazExpr
 Expression for cross section beam shear area $A_z$.
ScalarFunction drillingStiffnessExpr
 Expression for cross section beam drilling stiffness.
ScalarFunction relDrillingStiffnessExpr
 Expression for cross section relative drilling stiffness.
ScalarFunction drillingTypeExpr
 Expression for type of artificially added stiffness.
ScalarFunction directorxExpr
 Expression for director vector component in x-axis.
ScalarFunction directoryExpr
 Expression for director vector component in y-axis.
ScalarFunction directorzExpr
 Expression for director vector component in z-axis.
bool localFormulationFlag
 if set to true, all expressions are in element local cs, otherwise are expressed in global cs
Protected Attributes inherited from oofem::SimpleCrossSection
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 cross section model in finite element problem. A cross section properties are not a constant values, but they can be set as scalar functions of the spatial position in terms of x,y,z variables. example "0.1+x*0.2+y*0.0", where (x,y,z) are global (or optionally local element) coordinates. This cross section model is a integral model, so it does not perform any integration over cross-section volume.

Note: varible cross section model uses the same keywords as simple cs model. As it is derived from simple cross section class, the initializeFrom method does not calls the parent method, because the same keywords are used to read variables of different type.

Definition at line 62 of file variablecrosssection.h.

Constructor & Destructor Documentation

◆ VariableCrossSection()

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

Constructor.

Parameters
nCross section number.
dAssociated domain.

Definition at line 103 of file variablecrosssection.h.

References localFormulationFlag, and oofem::SimpleCrossSection::SimpleCrossSection().

Member Function Documentation

◆ give() [1/2]

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

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::SimpleCrossSection.

Definition at line 190 of file variablecrosssection.C.

References oofem::Element::computeGlobalCoordinates(), oofem::Element::computeLocalCoordinates(), oofem::ScalarFunction::eval(), oofem::FEMComponent::giveDomain(), giveExpression(), oofem::FEMComponent::giveNumber(), localFormulationFlag, OOFEM_ERROR, and oofem::CrossSection::propertyDictionary.

◆ give() [2/2]

double oofem::VariableCrossSection::give ( CrossSectionProperty a,
GaussPoint * gp ) const
overridevirtual

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::SimpleCrossSection.

Definition at line 183 of file variablecrosssection.C.

References give(), oofem::GaussPoint::giveElement(), and oofem::GaussPoint::giveNaturalCoordinates().

Referenced by give().

◆ giveClassName()

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

Reimplemented from oofem::SimpleCrossSection.

Definition at line 122 of file variablecrosssection.h.

◆ giveExpression() [1/2]

◆ giveExpression() [2/2]

std::string oofem::VariableCrossSection::giveExpression ( CrossSectionProperty aProperty)
protected

◆ giveInputRecord()

◆ giveInputRecordName()

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

Reimplemented from oofem::SimpleCrossSection.

Definition at line 123 of file variablecrosssection.h.

References _IFT_VariableCrossSection_Name.

◆ initializeFrom()

Member Data Documentation

◆ areaExpr

ScalarFunction oofem::VariableCrossSection::areaExpr
protected

Expression for cross section area.

Definition at line 70 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ directorxExpr

ScalarFunction oofem::VariableCrossSection::directorxExpr
protected

Expression for director vector component in x-axis.

Definition at line 88 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ directoryExpr

ScalarFunction oofem::VariableCrossSection::directoryExpr
protected

Expression for director vector component in y-axis.

Definition at line 90 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ directorzExpr

ScalarFunction oofem::VariableCrossSection::directorzExpr
protected

Expression for director vector component in z-axis.

Definition at line 92 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ drillingStiffnessExpr

ScalarFunction oofem::VariableCrossSection::drillingStiffnessExpr
protected

Expression for cross section beam drilling stiffness.

Definition at line 82 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ drillingTypeExpr

ScalarFunction oofem::VariableCrossSection::drillingTypeExpr
protected

Expression for type of artificially added stiffness.

Definition at line 86 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ ixExpr

ScalarFunction oofem::VariableCrossSection::ixExpr
protected

Expression for cross section torsion moment $I_x$.

Definition at line 76 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ iyExpr

ScalarFunction oofem::VariableCrossSection::iyExpr
protected

Expression for cross section inertia moment $I_y$.

Definition at line 72 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ izExpr

ScalarFunction oofem::VariableCrossSection::izExpr
protected

Expression for cross section inertia moment $I_z$.

Definition at line 74 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ localFormulationFlag

bool oofem::VariableCrossSection::localFormulationFlag
protected

if set to true, all expressions are in element local cs, otherwise are expressed in global cs

Definition at line 95 of file variablecrosssection.h.

Referenced by give(), and VariableCrossSection().

◆ relDrillingStiffnessExpr

ScalarFunction oofem::VariableCrossSection::relDrillingStiffnessExpr
protected

Expression for cross section relative drilling stiffness.

Definition at line 84 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ shearAreayExpr

ScalarFunction oofem::VariableCrossSection::shearAreayExpr
protected

Expression for cross section beam shear area $A_y$.

Definition at line 78 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ shearAreazExpr

ScalarFunction oofem::VariableCrossSection::shearAreazExpr
protected

Expression for cross section beam shear area $A_z$.

Definition at line 80 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ thicknessExpr

ScalarFunction oofem::VariableCrossSection::thicknessExpr
protected

Expression for cross section thickness.

Definition at line 66 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().

◆ widthExpr

ScalarFunction oofem::VariableCrossSection::widthExpr
protected

Expression for cross section width.

Definition at line 68 of file variablecrosssection.h.

Referenced by giveExpression(), giveInputRecord(), and initializeFrom().


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