|
OOFEM 3.0
|
#include <layeredcrosssection.h>
Public Member Functions | |
| LayeredCrossSection (int n, Domain *d) | |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| void | createMaterialStatus (GaussPoint &iGP) override |
| int | setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element) override |
| int | setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element) override |
| 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< 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< 6, 6 > | give3dDegeneratedShellStiffMtrx (MatResponseMode rMode, 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 |
| FloatArray * | imposeStressConstrainsOnGradient (GaussPoint *gp, FloatArray *) override |
| FloatArray * | imposeStrainConstrainsOnGradient (GaussPoint *gp, FloatArray *) override |
| double | give (CrossSectionProperty a, GaussPoint *gp) const override |
| double | give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local) const override |
| int | giveNumberOfLayers () const |
| int | giveLayer (GaussPoint *gp) const |
| double | computeIntegralThick () const |
| Returns the total thickness of all layers. | |
| void | setupLayerMidPlanes () |
| int | giveLayerMaterial (int layer) const |
| Material * | giveMaterial (IntegrationPoint *ip) const override |
| hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const | |
| int | giveInterfaceMaterialNum (int interface) |
| Material * | giveInterfaceMaterial (int interface) |
| int | checkConsistency () override |
| double | giveLayerMidZ (int layer) const |
| double | giveLayerThickness (int layer) const |
| int | giveNumIntegrationPointsInLayer () const |
| double | giveMidSurfaceZcoordFromBottom () const |
| double | giveMidSurfaceXiCoordFromBottom () const |
| void | giveInterfaceXiCoords (FloatArray &answer) const |
| const char * | giveInputRecordName () const override |
| const char * | giveClassName () const override |
| void | printYourself () override |
| Prints receiver state on stdout. Useful for debugging. | |
| GaussPoint * | giveSlaveGaussPoint (GaussPoint *gp, int layer, int igp) const |
| void | saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) override |
| void | restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) override |
| void | mapLayerGpCoordsToShellCoords (std::vector< std::unique_ptr< IntegrationRule > > &layerIntegrationRulesArray) |
| void | setupLayeredIntegrationRule (std::vector< std::unique_ptr< IntegrationRule > > &layerIntegrationRulesArray, Element *el, int numInPlanePoints) |
| int | giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep) override |
| double | give (int aProperty, GaussPoint *gp) const override |
| int | packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) override |
| int | unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) override |
| int | estimatePackSize (DataStream &buff, GaussPoint *ip) override |
| FloatArrayF< 9 > | giveFirstPKStress_3d (const FloatArrayF< 9 > &reducedvF, GaussPoint *gp, TimeStep *tStep) const override |
| FloatArrayF< 5 > | giveFirstPKStress_PlaneStrain (const FloatArrayF< 5 > &reducedvF, GaussPoint *gp, TimeStep *tStep) const override |
| FloatArrayF< 4 > | giveFirstPKStress_PlaneStress (const FloatArrayF< 4 > &reducedvF, GaussPoint *gp, TimeStep *tStep) const override |
| FloatArrayF< 1 > | giveFirstPKStress_1d (const FloatArrayF< 1 > &reducedvF, 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 mode, 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 mode, GaussPoint *gp, TimeStep *tStep) const override |
| FloatMatrixF< 1, 1 > | giveStiffnessMatrix_dPdF_1d (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override |
| void | giveCauchyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedFIncrement, TimeStep *tStep) override |
| void | giveStiffnessMatrix_dCde (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) 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 void | giveEshelbyStresses (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedvF, TimeStep *tStep) |
| virtual FloatMatrixF< 6, 6 > | give3dBeamSubSoilStiffMtrx (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const |
| int | testCrossSectionExtension (CrossSectExtension ext) override |
| Material * | giveMaterial (IntegrationPoint *ip) const override |
| virtual Interface * | giveMaterialInterface (InterfaceType t, IntegrationPoint *ip) |
| Public Member Functions inherited from oofem::CrossSection | |
| CrossSection (int n, Domain *d) | |
| virtual | ~CrossSection () |
| Destructor. | |
| int | giveSetNumber () const |
| virtual bool | hasProperty (CrossSectionProperty a) |
| virtual double | predictRelativeComputationalCost (GaussPoint *ip) |
| virtual double | giveRelativeSelfComputationalCost () |
| virtual double | predictRelativeRedistributionCost (GaussPoint *gp) |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| 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). | |
Static Public Member Functions | |
| static MaterialMode | giveCorrespondingSlaveMaterialMode (MaterialMode mode) |
Protected Member Functions | |
| double | giveArea () const |
| int | giveSlaveGPIndex (int ilayer, int igp) const |
Protected Attributes | |
| IntArray | layerMaterials |
| Material of each layer. | |
| IntArray | interfacerMaterials |
| Interface (cohesive zone) material for each interface. | |
| FloatArray | layerThicks |
| Thickness for each layer. | |
| FloatArray | layerWidths |
| Width for each layer. | |
| FloatArray | layerMidZ |
| z-coord of the mid plane for each layer | |
| FloatArray | layerRots |
| Rotation of the material in each layer. | |
| int | numberOfLayers = 0 |
| int | numberOfIntegrationPoints = 1 |
| number of integration points per layer (for 3D elements) | |
| IntArray | layerIntegrationPoints |
| double | midSurfaceZcoordFromBottom = 0. |
| double | midSurfaceXiCoordFromBottom = 0. |
| double | totalThick = 0. |
| double | area = 0. |
| double | beamShearCoeffxz = 1.0 |
| 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. | |
This class implements a layered cross section in a finite element problem. A cross section is an attribute of a domain. It is usually also attribute of many elements.
The attribute 'propertyDictionary' contains all the properties of a layered cross section, like thickness and width of each layer. The attribute 'layerMaterials' contains an array of Materials corresponding to each layer.
It uses master - slave GaussPoint approach, where master gp has more slaves gp. slave gp represent for each layer material point. It's coordinate sections contains z-coordinate (-1,1) from mid-section. The slaves are manage completely ( created, saved their context.,,,) from this class. Master gp only deletes slaves in destructor.
Tasks:
Definition at line 93 of file layeredcrosssection.h.
|
inline |
Definition at line 111 of file layeredcrosssection.h.
References oofem::StructuralCrossSection::StructuralCrossSection().
|
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.
Implements oofem::StructuralCrossSection.
Definition at line 1778 of file layeredcrosssection.C.
References oofem::FEMComponent::giveClassName(), oofem::FEMComponent::giveDomain(), giveLayerMaterial(), oofem::Domain::giveMaterial(), giveNumberOfLayers(), and OOFEM_WARNING.
| double oofem::LayeredCrossSection::computeIntegralThick | ( | ) | const |
Returns the total thickness of all layers.
Definition at line 1489 of file layeredcrosssection.C.
References totalThick.
Referenced by give(), give(), giveInterfaceXiCoords(), initializeFrom(), and mapLayerGpCoordsToShellCoords().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 1302 of file layeredcrosssection.C.
References oofem::Material::CreateStatus(), oofem::FEMComponent::domain, giveLayerMaterial(), giveSlaveGaussPoint(), layerIntegrationPoints, numberOfLayers, and oofem::GaussPoint::setMaterialStatus().
|
inlineoverridevirtual |
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.
| buff | Communication buffer. |
| ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 246 of file layeredcrosssection.h.
References OOFEM_ERROR.
|
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::CrossSection.
Definition at line 1614 of file layeredcrosssection.C.
References computeIntegralThick(), oofem::CS_Area, oofem::CS_BottomZCoord, oofem::CS_NumLayers, oofem::CS_Thickness, oofem::CS_TopZCoord, oofem::CrossSection::give(), giveArea(), midSurfaceZcoordFromBottom, numberOfLayers, and totalThick.
|
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::CrossSection.
Definition at line 1575 of file layeredcrosssection.C.
References computeIntegralThick(), oofem::CS_Area, oofem::CS_BottomZCoord, oofem::CS_NumLayers, oofem::CS_Thickness, oofem::CS_TopZCoord, oofem::CrossSection::give(), giveArea(), midSurfaceZcoordFromBottom, numberOfLayers, and totalThick.
Referenced by give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellRotStiffMtrx(), give3dShellStiffMtrx(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveGeneralizedStress_ShellRot(), giveSlaveGaussPoint(), and oofem::Delamination::initializeFrom().
|
overridevirtual |
Returns the value of cross section property.
| aProperty | Id of requested property. |
| gp | Integration point. |
Reimplemented from oofem::CrossSection.
Definition at line 1863 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FEMComponent::domain, oofem::Material::give(), oofem::FEMComponent::giveDomain(), oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), giveLayerThickness(), oofem::Domain::giveMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), numberOfLayers, and totalThick.
|
overridevirtual |
Computes the stiffness matrix for 2d beams.
| answer | The requested matrix. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step. |
Implements oofem::StructuralCrossSection.
Definition at line 840 of file layeredcrosssection.C.
References oofem::FloatMatrixF< N, M >::at(), beamShearCoeffxz, oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), oofem::StructuralMaterial::give2dBeamLayerStiffMtrx(), giveLayerMaterial(), giveSlaveGaussPoint(), layerIntegrationPoints, layerRots, layerThicks, layerWidths, numberOfLayers, and OOFEM_ERROR.
Referenced by giveCharMaterialStiffnessMatrix().
|
overridevirtual |
Method for computing 2d plate stiffness matrix.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 631 of file layeredcrosssection.C.
References oofem::FloatMatrixF< N, M >::at(), oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), giveLayerMaterial(), oofem::StructuralMaterial::givePlateLayerStiffMtrx(), giveSlaveGaussPoint(), layerIntegrationPoints, layerRots, layerThicks, layerWidths, M_PI, numberOfLayers, and oofem::unrotate().
Referenced by giveCharMaterialStiffnessMatrix().
|
overridevirtual |
Method for computing subsoil stiffness matrix for plates.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 913 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Computes the stiffness matrix for 2d beams.
| answer | The requested matrix. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step. |
Implements oofem::StructuralCrossSection.
Definition at line 896 of file layeredcrosssection.C.
References OOFEM_ERROR.
Referenced by giveCharMaterialStiffnessMatrix().
|
overridevirtual |
Method for computing 3d shell stiffness matrix on degenerated shell elements.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Reimplemented from oofem::StructuralCrossSection.
Definition at line 820 of file layeredcrosssection.C.
References oofem::FloatMatrixF< N, M >::at(), oofem::StructuralMaterial::give3dMaterialStiffnessMatrix(), and giveMaterial().
|
overridevirtual |
Method for computing 3d shell (with normal rotation) stiffness matrix.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 797 of file layeredcrosssection.C.
References oofem::FloatMatrix::assemble(), oofem::FloatMatrix::at(), oofem::CS_DrillingStiffness, give(), give3dShellStiffMtrx(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
|
overridevirtual |
Method for computing 3d shell stiffness matrix.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 707 of file layeredcrosssection.C.
References oofem::FloatMatrixF< N, M >::at(), oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), giveLayerMaterial(), oofem::StructuralMaterial::givePlateLayerStiffMtrx(), giveSlaveGaussPoint(), layerIntegrationPoints, layerRots, layerThicks, layerWidths, numberOfLayers, and oofem::unrotate().
Referenced by give3dShellRotStiffMtrx(), and giveCharMaterialStiffnessMatrix().
|
protected |
Definition at line 1640 of file layeredcrosssection.C.
References area.
|
inlineoverridevirtual |
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.
| answer | Contains the Cauchy stress. |
| gp | Integration point. |
| reducedFIncrement | Increment of the deformation gradient vector in reduced form. |
| tStep | Current time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 265 of file layeredcrosssection.h.
References OOFEM_ERROR.
|
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.
| answer | Contains result. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 598 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dBeamStiffMtrx(), give3dShellStiffMtrx(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), numberOfLayers, and OOFEM_ERROR.
|
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.
| answer | Contains result. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 1024 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), numberOfLayers, and OOFEM_ERROR.
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 219 of file layeredcrosssection.h.
|
static |
Definition at line 1549 of file layeredcrosssection.C.
Referenced by giveSlaveGaussPoint().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 1015 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 921 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FEMComponent::domain, oofem::dot(), oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), layerRots, M_PI, numberOfLayers, OOFEM_ERROR, and oofem::Tdot().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 965 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 972 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Computes the generalized stress vector for given strain and integration point.
| answer | Contains result. |
| gp | Integration point. |
| generalizedStrain | Strain vector in reduced generalized form. |
| tStep | Current time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 285 of file layeredcrosssection.C.
References oofem::FloatArrayF< N >::at(), beamShearCoeffxz, oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), oofem::GaussPoint::giveElement(), giveSlaveGaussPoint(), oofem::LayeredCrossSectionInterfaceType, layerIntegrationPoints, layerMaterials, layerRots, layerThicks, layerWidths, oofem::StructuralMaterialStatus::letTempStrainVectorBe(), numberOfLayers, and OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 342 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 540 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::FEMComponent::domain, oofem::GaussPoint::giveElement(), giveLayerMaterial(), giveMembraneRotStiffMtrx(), giveSlaveGaussPoint(), oofem::LayeredCrossSectionInterfaceType, layerIntegrationPoints, layerMaterials, layerThicks, oofem::StructuralMaterialStatus::letTempStrainVectorBe(), and numberOfLayers.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 349 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), oofem::GaussPoint::giveElement(), giveSlaveGaussPoint(), oofem::LayeredCrossSectionInterfaceType, layerIntegrationPoints, layerMaterials, layerRots, layerThicks, layerWidths, oofem::StructuralMaterialStatus::letTempStrainVectorBe(), M_PI, numberOfLayers, and OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 592 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 427 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::CS_BottomZCoord, oofem::CS_TopZCoord, oofem::FEMComponent::domain, give(), oofem::GaussPoint::giveElement(), giveSlaveGaussPoint(), oofem::LayeredCrossSectionInterfaceType, layerIntegrationPoints, layerMaterials, layerRots, layerThicks, layerWidths, oofem::StructuralMaterialStatus::letTempStrainVectorBe(), M_PI, numberOfLayers, and OOFEM_ERROR.
Referenced by giveGeneralizedStress_ShellRot().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 512 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::CS_DrillingStiffness, oofem::FEMComponent::domain, give(), giveGeneralizedStress_Shell(), layerMaterials, and oofem::StructuralMaterialStatus::letTempStrainVectorBe().
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::CrossSection.
Definition at line 1288 of file layeredcrosssection.C.
References _IFT_LayeredCrossSection_interfacematerials, _IFT_LayeredCrossSection_layermaterials, _IFT_LayeredCrossSection_layerRotations, _IFT_LayeredCrossSection_midsurf, _IFT_LayeredCrossSection_nlayerintegrationpoints, _IFT_LayeredCrossSection_nlayers, _IFT_LayeredCrossSection_thicks, _IFT_LayeredCrossSection_widths, oofem::CrossSection::giveInputRecord(), interfacerMaterials, layerIntegrationPoints, layerMaterials, layerRots, layerThicks, layerWidths, midSurfaceZcoordFromBottom, numberOfLayers, and oofem::DynamicInputRecord::setField().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 218 of file layeredcrosssection.h.
References _IFT_LayeredCrossSection_Name.
|
inline |
Definition at line 188 of file layeredcrosssection.h.
References oofem::IntArray::at(), oofem::FEMComponent::giveDomain(), giveInterfaceMaterialNum(), and oofem::Domain::giveMaterial().
|
inline |
Definition at line 184 of file layeredcrosssection.h.
References oofem::IntArray::at().
Referenced by giveInterfaceMaterial().
| void oofem::LayeredCrossSection::giveInterfaceXiCoords | ( | FloatArray & | answer | ) | const |
Definition at line 1658 of file layeredcrosssection.C.
References oofem::FloatArray::at(), computeIntegralThick(), giveLayerMidZ(), giveLayerThickness(), giveNumberOfLayers(), and oofem::FloatArray::resize().
|
overridevirtual |
Returns the integration point corresponding value in Reduced form.
| answer | contain corresponding ip value, zero sized if not available |
| ip | Integration point. |
| type | Determines the type of internal variable. |
| tStep | Time step. |
Reimplemented from oofem::CrossSection.
Definition at line 1799 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FloatArray::at(), oofem::FEMComponent::domain, oofem::FEMComponent::giveDomain(), oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), oofem::giveInternalStateValueType(), oofem::Material::giveIPValue(), giveLayerMaterial(), oofem::Domain::giveMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::ISVT_SCALAR, oofem::ISVT_TENSOR_S3, oofem::ISVT_TENSOR_S3E, oofem::ISVT_VECTOR, layerRots, M_PI, numberOfLayers, oofem::Vec3(), and oofem::Vec6().
| int oofem::LayeredCrossSection::giveLayer | ( | GaussPoint * | gp | ) | const |
Definition at line 1596 of file layeredcrosssection.C.
References oofem::FloatArray::at(), giveNumberOfLayers(), and OOFEM_ERROR.
|
inline |
Definition at line 178 of file layeredcrosssection.h.
References oofem::IntArray::at().
Referenced by checkConsistency(), createMaterialStatus(), give(), give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveCharMaterialStiffnessMatrix(), giveCharMaterialStiffnessMatrix_dPdF(), giveFirstPKStress_3d(), giveGeneralizedStress_MembraneRot(), giveIPValue(), giveMaterial(), giveRealStress_3d(), giveRealStress_PlaneStress(), giveStiffnessMatrix_3d(), giveStiffnessMatrix_dPdF_3d(), and giveStiffnessMatrix_PlaneStress().
|
inline |
Definition at line 199 of file layeredcrosssection.h.
References oofem::FloatArray::at().
Referenced by giveInterfaceXiCoords(), and mapLayerGpCoordsToShellCoords().
|
inline |
Definition at line 203 of file layeredcrosssection.h.
References oofem::FloatArray::at().
Referenced by give(), giveInterfaceXiCoords(), oofem::Delamination::initializeFrom(), and mapLayerGpCoordsToShellCoords().
|
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 1330 of file layeredcrosssection.C.
References oofem::_3dDegShell, oofem::_Cube, oofem::_Wedge, oofem::FEMComponent::domain, oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::GaussPoint::hasSlaveGaussPoint(), layerMaterials, and numberOfLayers.
Referenced by give3dDegeneratedShellStiffMtrx(), and giveRealStress_3dDegeneratedShell().
|
overridevirtual |
Method for computing membrane stiffness matrix with added drilling stiffness.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 903 of file layeredcrosssection.C.
References oofem::assemble(), and giveStiffnessMatrix_PlaneStress().
Referenced by giveGeneralizedStress_MembraneRot().
|
inline |
Definition at line 212 of file layeredcrosssection.h.
|
inline |
Definition at line 209 of file layeredcrosssection.h.
| int oofem::LayeredCrossSection::giveNumberOfLayers | ( | ) | const |
Definition at line 1634 of file layeredcrosssection.C.
References numberOfLayers.
Referenced by checkConsistency(), giveInterfaceXiCoords(), giveLayer(), oofem::Delamination::initializeFrom(), and setupLayeredIntegrationRule().
|
inline |
Definition at line 206 of file layeredcrosssection.h.
Referenced by setupLayeredIntegrationRule().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 199 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 58 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FloatArrayF< N >::at(), oofem::FEMComponent::domain, oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), layerRots, M_PI, numberOfLayers, and OOFEM_ERROR.
|
overridevirtual |
Reimplemented from oofem::StructuralCrossSection.
Definition at line 101 of file layeredcrosssection.C.
References oofem::_3dDegShell, oofem::FloatArrayF< N >::at(), oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), layerRots, M_PI, numberOfLayers, and OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 146 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 153 of file layeredcrosssection.C.
References oofem::FloatArrayF< N >::at(), oofem::FEMComponent::domain, oofem::GaussPoint::giveElement(), giveLayerMaterial(), giveSlaveGaussPoint(), oofem::LayeredCrossSectionInterfaceType, layerIntegrationPoints, layerMaterials, layerThicks, oofem::StructuralMaterialStatus::letTempStrainVectorBe(), and numberOfLayers.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 206 of file layeredcrosssection.C.
References OOFEM_ERROR.
| GaussPoint * oofem::LayeredCrossSection::giveSlaveGaussPoint | ( | GaussPoint * | gp, |
| int | layer, | ||
| int | igp ) const |
Definition at line 1421 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::CS_BottomZCoord, oofem::CS_TopZCoord, give(), giveCorrespondingSlaveMaterialMode(), oofem::GaussIntegrationRule::giveLineCoordsAndWeights(), giveSlaveGPIndex(), layerIntegrationPoints, layerThicks, midSurfaceZcoordFromBottom, numberOfLayers, and OOFEM_ERROR.
Referenced by createMaterialStatus(), give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveRealStress_PlaneStress(), giveStiffnessMatrix_PlaneStress(), restoreIPContext(), and saveIPContext().
|
protected |
Definition at line 1406 of file layeredcrosssection.C.
References layerIntegrationPoints.
Referenced by giveSlaveGaussPoint().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 278 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Method for computing the stiffness matrix.
| answer | Stiffness matrix. |
| mode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 213 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FEMComponent::domain, oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), layerRots, M_PI, numberOfLayers, OOFEM_ERROR, and oofem::unrotate().
|
inlineoverridevirtual |
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.
| answer | Contains result. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 267 of file layeredcrosssection.h.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 1118 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
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.
| answer | Contains result. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
Implements oofem::StructuralCrossSection.
Definition at line 1047 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::FEMComponent::domain, oofem::IntegrationRule::giveIntegrationDomain(), oofem::GaussPoint::giveIntegrationRule(), giveLayerMaterial(), oofem::GaussPoint::giveNumber(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), layerRots, M_PI, numberOfLayers, OOFEM_ERROR, and oofem::unrotate().
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 1111 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 1085 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 271 of file layeredcrosssection.C.
References OOFEM_ERROR.
|
overridevirtual |
Implements oofem::StructuralCrossSection.
Definition at line 248 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, giveLayerMaterial(), giveSlaveGaussPoint(), layerIntegrationPoints, layerThicks, and numberOfLayers.
Referenced by giveMembraneRotStiffMtrx().
|
overridevirtual |
Returns modified gradient of strain vector, which is used to compute plastic strain increment. Imposes zeros on places, where zero strain occurs or energetically connected stress is prescribed to be zero.
| gp | Integration point. |
| gradientStressVector3d | General 3d stress gradient. |
Reimplemented from oofem::StructuralCrossSection.
Definition at line 1166 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveMaterialMode(), oofem::FloatArray::giveSize(), oofem::StructuralCrossSection::imposeStrainConstrainsOnGradient(), and OOFEM_ERROR.
|
overridevirtual |
Returns modified gradient of stress vector, which is used to bring stresses back to yield surface. Method imposes zeros on places, where zero stress occurs. if energetically connected strain is zero, we do not impose zero there, because stress exist and must be taken into account when computing yield function. In such case a problem is assumed to be full 3d with some explicit strain equal to 0. On the other hand, if some stress is imposed to be zero, we understand such case as subspace of 3d case (like a classical plane stress problem, with no tracing of e_z, sigma_z)
| gp | Integration point. |
| gradientStressVector3d | General 3d stress gradient. |
Reimplemented from oofem::StructuralCrossSection.
Definition at line 1126 of file layeredcrosssection.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveMaterialMode(), oofem::FloatArray::giveSize(), oofem::StructuralCrossSection::imposeStressConstrainsOnGradient(), and OOFEM_ERROR.
|
overridevirtual |
Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::CrossSection.
Definition at line 1199 of file layeredcrosssection.C.
References _IFT_LayeredCrossSection_interfacematerials, _IFT_LayeredCrossSection_layermaterials, _IFT_LayeredCrossSection_layerRotations, _IFT_LayeredCrossSection_midsurf, _IFT_LayeredCrossSection_nintegrationpoints, _IFT_LayeredCrossSection_nlayerintegrationpoints, _IFT_LayeredCrossSection_nlayers, _IFT_LayeredCrossSection_shearcoeff_xz, _IFT_LayeredCrossSection_thicks, _IFT_LayeredCrossSection_widths, _IFT_SimpleCrossSection_drillStiffness, _IFT_SimpleCrossSection_drillType, _IFT_SimpleCrossSection_relDrillStiffness, area, beamShearCoeffxz, computeIntegralThick(), oofem::CS_DrillingStiffness, oofem::CS_DrillingType, oofem::CS_RelDrillingStiffness, oofem::CrossSection::initializeFrom(), interfacerMaterials, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, layerIntegrationPoints, layerMaterials, layerRots, layerThicks, layerWidths, midSurfaceXiCoordFromBottom, midSurfaceZcoordFromBottom, numberOfIntegrationPoints, numberOfLayers, OOFEM_WARNING, oofem::CrossSection::propertyDictionary, setupLayerMidPlanes(), and totalThick.
|
overridevirtual |
Check for symmetry of stiffness matrix. Default implementation returns true. It can be moved to base Cross section class in the future.
| rMode | Response mode of material. |
Implements oofem::StructuralCrossSection.
Definition at line 1646 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, and numberOfLayers.
| void oofem::LayeredCrossSection::mapLayerGpCoordsToShellCoords | ( | std::vector< std::unique_ptr< IntegrationRule > > & | layerIntegrationRulesArray | ) |
Definition at line 1692 of file layeredcrosssection.C.
References oofem::FloatArray::at(), computeIntegralThick(), giveLayerMidZ(), giveLayerThickness(), midSurfaceZcoordFromBottom, and numberOfLayers.
Referenced by setupLayeredIntegrationRule().
|
inlineoverridevirtual |
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.
| buff | Communication buffer. |
| tStep | Solution step. |
| ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 236 of file layeredcrosssection.h.
References OOFEM_ERROR.
|
overridevirtual |
Prints receiver state on stdout. Useful for debugging.
Reimplemented from oofem::CrossSection.
Definition at line 1496 of file layeredcrosssection.C.
References layerMaterials, layerThicks, layerWidths, midSurfaceZcoordFromBottom, numberOfIntegrationPoints, and oofem::CrossSection::propertyDictionary.
|
overridevirtual |
Reads integration point state to output stream.
| stream | Output stream. |
| mode | Determines amount of info required in stream (state, definition, ...). |
| gp | integration point. |
| throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::CrossSection.
Definition at line 1532 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, giveSlaveGaussPoint(), layerIntegrationPoints, layerMaterials, numberOfLayers, oofem::CrossSection::restoreIPContext(), and oofem::Material::restoreIPContext().
|
overridevirtual |
Stores integration point state to output stream.
| stream | Output stream. |
| mode | Determines amount of info required in stream (state, definition, ...). |
| gp | integration point. |
| throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::CrossSection.
Definition at line 1515 of file layeredcrosssection.C.
References oofem::FEMComponent::domain, giveSlaveGaussPoint(), layerIntegrationPoints, layerMaterials, numberOfLayers, oofem::CrossSection::saveIPContext(), and oofem::Material::saveIPContext().
|
overridevirtual |
Sets up integration rule for the given element. Default behavior is just to call the Gauss integration rule, but for example the layered and fibered crosssections need to do their own thing.
| irule | Integration rule to set up. |
| npoints | Number of integration points. |
| element | Element which the integration rule belongs to. |
Reimplemented from oofem::CrossSection.
Definition at line 1355 of file layeredcrosssection.C.
References oofem::_Cube, oofem::_Wedge, oofem::cbrt(), oofem::Element::giveIntegrationDomain(), oofem::Element::giveMaterialMode(), numberOfIntegrationPoints, oofem::IntegrationRule::setUpIntegrationPoints(), oofem::IntegrationRule::SetUpPointsOnCubeLayers(), and oofem::IntegrationRule::SetUpPointsOnWedgeLayers().
|
overridevirtual |
Sets up integration rule for the given element. Default behavior is just to call the Gauss integration rule, but for example the layered and fibered crosssections need to do their own thing.
| irule | Integration rule to set up. |
| npointsXY | Number of integration points in xi-eta. |
| npointsZ | Number of integration points in zeta. |
| element | Element which the integration rule belongs to. |
Reimplemented from oofem::CrossSection.
Definition at line 1392 of file layeredcrosssection.C.
References oofem::_3dDegShell, oofem::Element::giveIntegrationDomain(), oofem::Element::giveMaterialMode(), oofem::max(), numberOfIntegrationPoints, OOFEM_ERROR, and oofem::IntegrationRule::SetUpPointsOn3dDegShellLayers().
| void oofem::LayeredCrossSection::setupLayeredIntegrationRule | ( | std::vector< std::unique_ptr< IntegrationRule > > & | layerIntegrationRulesArray, |
| Element * | el, | ||
| int | numInPlanePoints ) |
Definition at line 1674 of file layeredcrosssection.C.
References giveNumberOfLayers(), giveNumIntegrationPointsInLayer(), mapLayerGpCoordsToShellCoords(), and oofem::nLayers.
| void oofem::LayeredCrossSection::setupLayerMidPlanes | ( | ) |
Definition at line 1316 of file layeredcrosssection.C.
References layerMidZ, layerThicks, midSurfaceZcoordFromBottom, and numberOfLayers.
Referenced by initializeFrom().
|
inlineoverridevirtual |
Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer.
| buff | Communication buffer. |
| tStep | Solution step. |
| ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 241 of file layeredcrosssection.h.
References OOFEM_ERROR.
|
protected |
Definition at line 108 of file layeredcrosssection.h.
Referenced by giveArea(), and initializeFrom().
|
protected |
Definition at line 109 of file layeredcrosssection.h.
Referenced by give2dBeamStiffMtrx(), giveGeneralizedStress_Beam2d(), and initializeFrom().
|
protected |
Interface (cohesive zone) material for each interface.
Definition at line 97 of file layeredcrosssection.h.
Referenced by giveInputRecord(), and initializeFrom().
|
protected |
Definition at line 104 of file layeredcrosssection.h.
Referenced by createMaterialStatus(), give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveInputRecord(), giveRealStress_PlaneStress(), giveSlaveGaussPoint(), giveSlaveGPIndex(), giveStiffnessMatrix_PlaneStress(), initializeFrom(), restoreIPContext(), and saveIPContext().
|
protected |
Material of each layer.
Definition at line 96 of file layeredcrosssection.h.
Referenced by giveGeneralizedStress_Beam2d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveGeneralizedStress_ShellRot(), giveInputRecord(), giveMaterial(), giveRealStress_PlaneStress(), initializeFrom(), printYourself(), restoreIPContext(), and saveIPContext().
|
protected |
z-coord of the mid plane for each layer
Definition at line 100 of file layeredcrosssection.h.
Referenced by setupLayerMidPlanes().
|
protected |
Rotation of the material in each layer.
Definition at line 101 of file layeredcrosssection.h.
Referenced by give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveFirstPKStress_3d(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveInputRecord(), giveIPValue(), giveRealStress_3d(), giveRealStress_3dDegeneratedShell(), giveStiffnessMatrix_3d(), giveStiffnessMatrix_dPdF_3d(), and initializeFrom().
|
protected |
Thickness for each layer.
Definition at line 98 of file layeredcrosssection.h.
Referenced by give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveInputRecord(), giveRealStress_PlaneStress(), giveSlaveGaussPoint(), giveStiffnessMatrix_PlaneStress(), initializeFrom(), printYourself(), and setupLayerMidPlanes().
|
protected |
Width for each layer.
Definition at line 99 of file layeredcrosssection.h.
Referenced by give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveInputRecord(), initializeFrom(), and printYourself().
|
protected |
Definition at line 106 of file layeredcrosssection.h.
Referenced by initializeFrom().
|
protected |
Definition at line 105 of file layeredcrosssection.h.
Referenced by give(), give(), giveInputRecord(), giveSlaveGaussPoint(), initializeFrom(), mapLayerGpCoordsToShellCoords(), printYourself(), and setupLayerMidPlanes().
|
protected |
number of integration points per layer (for 3D elements)
Definition at line 103 of file layeredcrosssection.h.
Referenced by initializeFrom(), printYourself(), setupIntegrationPoints(), and setupIntegrationPoints().
|
protected |
Definition at line 102 of file layeredcrosssection.h.
Referenced by createMaterialStatus(), give(), give(), give(), give2dBeamStiffMtrx(), give2dPlateStiffMtrx(), give3dShellStiffMtrx(), giveCharMaterialStiffnessMatrix(), giveCharMaterialStiffnessMatrix_dPdF(), giveFirstPKStress_3d(), giveGeneralizedStress_Beam2d(), giveGeneralizedStress_MembraneRot(), giveGeneralizedStress_Plate(), giveGeneralizedStress_Shell(), giveInputRecord(), giveIPValue(), giveMaterial(), giveNumberOfLayers(), giveRealStress_3d(), giveRealStress_3dDegeneratedShell(), giveRealStress_PlaneStress(), giveSlaveGaussPoint(), giveStiffnessMatrix_3d(), giveStiffnessMatrix_dPdF_3d(), giveStiffnessMatrix_PlaneStress(), initializeFrom(), isCharacteristicMtrxSymmetric(), mapLayerGpCoordsToShellCoords(), restoreIPContext(), saveIPContext(), and setupLayerMidPlanes().
|
protected |
Definition at line 107 of file layeredcrosssection.h.
Referenced by computeIntegralThick(), give(), give(), give(), and initializeFrom().