OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class implementing cross section model in finite element problem. More...
#include <variablecrosssection.h>
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 Material * | giveMaterial (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 Interface * | giveMaterialInterface (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 FloatArray * | imposeStressConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d) |
Returns modified gradient of stress vector, which is used to bring stresses back to yield surface. More... | |
virtual FloatArray * | imposeStrainConstrainsOnGradient (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... | |
Domain * | giveDomain () 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 Interface * | giveInterface (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... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
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.
|
inline |
Constructor.
n | Cross section number. |
d | Associated domain. |
Definition at line 103 of file variablecrosssection.h.
|
virtual |
Returns the value of cross section property at given point.
The default implementation assumes constant properties stored in propertyDictionary.
a | Id of requested property. |
gp | Integration point |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 188 of file variablecrosssection.C.
References oofem::GaussPoint::giveElement(), and oofem::GaussPoint::giveNaturalCoordinates().
|
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.
a | Id of requested property. |
coords | local or global coordinates (determined by local parameter) of point of interest |
elem | reference to underlying element containing given point |
gp | Integration point |
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.
|
inlinevirtual |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 123 of file variablecrosssection.h.
|
protected |
Definition at line 150 of file variablecrosssection.C.
References areaExpr, oofem::CS_Area, 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_TorsionMomentX, oofem::CS_Width, directorxExpr, directoryExpr, directorzExpr, drillingStiffnessExpr, drillingTypeExpr, oofem::FEMComponent::giveNumber(), ixExpr, iyExpr, izExpr, OOFEM_ERROR, relDrillingStiffnessExpr, shearAreayExpr, shearAreazExpr, thicknessExpr, and widthExpr.
Referenced by give().
|
protected |
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 128 of file variablecrosssection.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_thick, _IFT_SimpleCrossSection_width, areaExpr, directorxExpr, directoryExpr, directorzExpr, drillingStiffnessExpr, drillingTypeExpr, oofem::CrossSection::giveInputRecord(), ixExpr, iyExpr, izExpr, oofem::SimpleCrossSection::materialNumber, relDrillingStiffnessExpr, oofem::DynamicInputRecord::setField(), shearAreayExpr, shearAreazExpr, thicknessExpr, and widthExpr.
|
inlinevirtual |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 124 of file variablecrosssection.h.
References _IFT_VariableCrossSection_Name.
|
virtual |
Initializes receiver acording to object description stored in input record.
Calls CrossSection initializeFrom service and reads the values of
ir | Record to read off. |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 53 of file variablecrosssection.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_thick, _IFT_SimpleCrossSection_width, areaExpr, directorxExpr, directoryExpr, directorzExpr, drillingStiffnessExpr, drillingTypeExpr, oofem::InputRecord::hasField(), oofem::CrossSection::initializeFrom(), IR_GIVE_OPTIONAL_FIELD, ixExpr, iyExpr, izExpr, oofem::SimpleCrossSection::materialNumber, relDrillingStiffnessExpr, oofem::ScalarFunction::setValue(), shearAreayExpr, shearAreazExpr, thicknessExpr, and widthExpr.
|
protected |
Expression for cross section area.
Definition at line 70 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for director vector component in x-axis.
Definition at line 88 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for director vector component in y-axis.
Definition at line 90 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for director vector component in z-axis.
Definition at line 92 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section beam drilling stiffness.
Definition at line 82 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for type of artificially added stiffness.
Definition at line 86 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section torsion moment $I_x$.
Definition at line 76 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section inertia moment $I_y$.
Definition at line 72 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section inertia moment $I_z$.
Definition at line 74 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
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().
|
protected |
Expression for cross section relative drilling stiffness.
Definition at line 84 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section beam shear area $A_y$.
Definition at line 78 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section beam shear area $A_z$.
Definition at line 80 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section thickness.
Definition at line 66 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().
|
protected |
Expression for cross section width.
Definition at line 68 of file variablecrosssection.h.
Referenced by giveExpression(), giveInputRecord(), and initializeFrom().