|
OOFEM 3.0
|
#include <variablecrosssection.h>
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 |
| Material * | giveMaterial (IntegrationPoint *ip) const override |
| hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const | |
| int | giveMaterialNumber () const |
| void | setMaterialNumber (int matNum) |
| int | checkConsistency () override |
| Interface * | giveMaterialInterface (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 FloatArray * | imposeStressConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d) |
| virtual FloatArray * | imposeStrainConstrainsOnGradient (GaussPoint *gp, FloatArray *gradientStressVector3d) |
| int | testCrossSectionExtension (CrossSectExtension ext) override |
| Material * | giveMaterial (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. | |
| Domain * | giveDomain () 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 Interface * | giveInterface (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. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
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.
References localFormulationFlag, and oofem::SimpleCrossSection::SimpleCrossSection().
|
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.
| 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 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.
|
overridevirtual |
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 183 of file variablecrosssection.C.
References give(), oofem::GaussPoint::giveElement(), and oofem::GaussPoint::giveNaturalCoordinates().
Referenced by give().
|
inlineoverridevirtual |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 122 of file variablecrosssection.h.
|
protected |
Definition at line 145 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_TorsionConstantX, 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 |
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 123 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, ixExpr, iyExpr, izExpr, oofem::SimpleCrossSection::materialNumber, relDrillingStiffnessExpr, oofem::DynamicInputRecord::setField(), shearAreayExpr, shearAreazExpr, thicknessExpr, and widthExpr.
|
inlineoverridevirtual |
Reimplemented from oofem::SimpleCrossSection.
Definition at line 123 of file variablecrosssection.h.
References _IFT_VariableCrossSection_Name.
|
overridevirtual |
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(), IR_GIVE_OPTIONAL_FIELD, ixExpr, iyExpr, izExpr, oofem::SimpleCrossSection::materialNumber, relDrillingStiffnessExpr, 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(), and VariableCrossSection().
|
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().