OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::VariableCrossSection Class Reference

Class implementing cross section model in finite element problem. More...

#include <variablecrosssection.h>

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

Public Member Functions

 VariableCrossSection (int n, Domain *d)
 Constructor. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver acording to object description stored in input record. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver. More...
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
virtual double give (CrossSectionProperty a, GaussPoint *gp)
 Returns the value of cross section property at given point. More...
 
virtual double give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local)
 Returns the value of cross section property at given point (belonging to given element). More...
 
- Public Member Functions inherited from oofem::SimpleCrossSection
 SimpleCrossSection (int n, Domain *d)
 Constructor. More...
 
virtual void giveRealStress_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveRealStress_3dDegeneratedShell (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveRealStress_PlaneStrain (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveRealStress_PlaneStress (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveRealStress_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveRealStress_Warping (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 
virtual void giveStiffnessMatrix_3d (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing the stiffness matrix. More...
 
virtual void giveStiffnessMatrix_PlaneStress (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 
virtual void giveStiffnessMatrix_PlaneStrain (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 
virtual void giveStiffnessMatrix_1d (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 
virtual void giveGeneralizedStress_Beam2d (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 Computes the generalized stress vector for given strain and integration point. More...
 
virtual void giveGeneralizedStress_Beam3d (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
virtual void giveGeneralizedStress_Plate (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
virtual void giveGeneralizedStress_Shell (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
virtual void giveGeneralizedStress_MembraneRot (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
virtual void giveGeneralizedStress_PlateSubSoil (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
virtual void giveCharMaterialStiffnessMatrix (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the stiffness matrix of receiver in given integration point, respecting its history. More...
 
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode mode)
 Check for symmetry of stiffness matrix. More...
 
virtual void give3dDegeneratedShellStiffMtrx (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 Method for computing 3d shell stiffness matrix on degenerated shell elements. More...
 
virtual void give2dBeamStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the stiffness matrix for 2d beams. More...
 
virtual void give3dBeamStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the stiffness matrix for 2d beams. More...
 
virtual void give2dPlateStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing 2d plate stiffness matrix. More...
 
virtual void give3dShellStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing 3d shell stiffness matrix. More...
 
virtual void giveMembraneRotStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing membrane stiffness matrix with added drilling stiffness. More...
 
virtual void give2dPlateSubSoilStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing subsoil stiffness matrix for plates. More...
 
virtual void createMaterialStatus (GaussPoint &iGP)
 
virtual double give (int aProperty, GaussPoint *gp)
 Returns the value of cross section property. More...
 
virtual int giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep)
 Returns the integration point corresponding value in Reduced form. More...
 
virtual MaterialgiveMaterial (IntegrationPoint *ip)
 Returns the material associated with the GP. More...
 
int giveMaterialNumber () const
 
void setMaterialNumber (int matNum)
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual InterfacegiveMaterialInterface (InterfaceType t, IntegrationPoint *ip)
 
virtual void giveFirstPKStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedFIncrement, TimeStep *tStep)
 Computes the First Piola-Kirchoff stress vector for a given deformation gradient and integration point. More...
 
virtual void giveCauchyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedFIncrement, TimeStep *tStep)
 Computes the Cauchy stress vector for a given increment of deformation gradient and given integration point. More...
 
virtual void giveEshelbyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedvF, TimeStep *tStep)
 Computes the Eshelby stress vector. More...
 
virtual void giveStiffnessMatrix_dPdF (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the material stiffness matrix dPdF of receiver in a given integration point, respecting its history. More...
 
virtual void giveStiffnessMatrix_dCde (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the material stiffness matrix dCde of receiver in a given integration point, respecting its history. More...
 
virtual void giveTemperatureVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
 
virtual int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp)
 Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp)
 Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int estimatePackSize (DataStream &buff, GaussPoint *gp)
 Estimates the necessary pack size to hold all packed data of receiver. More...
 
- Public Member Functions inherited from oofem::StructuralCrossSection
 StructuralCrossSection (int n, Domain *d)
 Constructor. More...
 
virtual ~StructuralCrossSection ()
 Destructor. More...
 
virtual void give3dBeamSubSoilStiffMtrx (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Method for computing subsoil stiffness matrix for 2d beams. More...
 
virtual FloatArrayimposeStressConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d)
 Returns modified gradient of stress vector, which is used to bring stresses back to yield surface. More...
 
virtual FloatArrayimposeStrainConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d)
 Returns modified gradient of strain vector, which is used to compute plastic strain increment. More...
 
virtual int testCrossSectionExtension (CrossSectExtension ext)
 Returns nonzero, if receiver implements required extension. More...
 
void giveRealStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
 Computes the real stress vector for given strain and integration point. More...
 
virtual void giveGeneralizedStress_3dBeamSubSoil (FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
 
- Public Member Functions inherited from oofem::CrossSection
 CrossSection (int n, Domain *d)
 Constructor. More...
 
virtual ~CrossSection ()
 Destructor. More...
 
int giveSetNumber () const
 
virtual bool hasProperty (CrossSectionProperty a)
 Returns true if the dictionary contains the requested property. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual int setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element)
 Sets up integration rule for the given element. More...
 
virtual int setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element)
 Sets up integration rule for the given element. More...
 
virtual double predictRelativeComputationalCost (GaussPoint *ip)
 Returns the weight representing relative computational cost of receiver The reference cross section is integral model in plane stress. More...
 
virtual double giveRelativeSelfComputationalCost ()
 Returns the weight representing relative computational cost of receiver The reference element is integral model in plane stress. More...
 
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
 
virtual contextIOResultType saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Stores integration point state to output stream. More...
 
virtual contextIOResultType restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Reads integration point state to output stream. More...
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
virtual void setDomain (Domain *d)
 Sets associated Domain. More...
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to stream, for given time step. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

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. More...
 
ScalarFunction widthExpr
 Expression for cross section width. More...
 
ScalarFunction areaExpr
 Expression for cross section area. More...
 
ScalarFunction iyExpr
 Expression for cross section inertia moment $I_y$. More...
 
ScalarFunction izExpr
 Expression for cross section inertia moment $I_z$. More...
 
ScalarFunction ixExpr
 Expression for cross section torsion moment $I_x$. More...
 
ScalarFunction shearAreayExpr
 Expression for cross section beam shear area $A_y$. More...
 
ScalarFunction shearAreazExpr
 Expression for cross section beam shear area $A_z$. More...
 
ScalarFunction drillingStiffnessExpr
 Expression for cross section beam drilling stiffness. More...
 
ScalarFunction relDrillingStiffnessExpr
 Expression for cross section relative drilling stiffness. More...
 
ScalarFunction drillingTypeExpr
 Expression for type of artificially added stiffness. More...
 
ScalarFunction directorxExpr
 Expression for director vector component in x-axis. More...
 
ScalarFunction directoryExpr
 Expression for director vector component in y-axis. More...
 
ScalarFunction directorzExpr
 Expression for director vector component in z-axis. More...
 
bool localFormulationFlag
 if set to true, all expressions are in element local cs, otherwise are expressed in global cs More...
 
- Protected Attributes inherited from oofem::SimpleCrossSection
int materialNumber
 
int czMaterialNumber
 
- Protected Attributes inherited from oofem::CrossSection
Dictionary propertyDictionary
 Dictionary for storing cross section parameters (like dimensions). More...
 
int setNumber
 
- Protected Attributes inherited from oofem::FEMComponent
int number
 Component number. More...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

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

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

Constructor.

Parameters
nCross section number.
dAssociated domain.

Definition at line 103 of file variablecrosssection.h.

Member Function Documentation

double oofem::VariableCrossSection::give ( CrossSectionProperty  a,
GaussPoint gp 
)
virtual

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 188 of file variablecrosssection.C.

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

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

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 195 of file variablecrosssection.C.

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

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

Reimplemented from oofem::SimpleCrossSection.

Definition at line 123 of file variablecrosssection.h.

std :: string oofem::VariableCrossSection::giveExpression ( CrossSectionProperty  aProperty)
protected
virtual const char* oofem::VariableCrossSection::giveInputRecordName ( ) const
inlinevirtual
Returns
Input record name of the receiver.

Reimplemented from oofem::SimpleCrossSection.

Definition at line 124 of file variablecrosssection.h.

References _IFT_VariableCrossSection_Name.

Member Data Documentation

ScalarFunction oofem::VariableCrossSection::areaExpr
protected

Expression for cross section area.

Definition at line 70 of file variablecrosssection.h.

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

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().

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().

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().

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().

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().

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().

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().

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().

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().

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().

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().

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().

ScalarFunction oofem::VariableCrossSection::thicknessExpr
protected

Expression for cross section thickness.

Definition at line 66 of file variablecrosssection.h.

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

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 documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:43 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011