|
OOFEM 3.0
|
#include <latticecrosssection.h>
Public Member Functions | |
| LatticeCrossSection (int n, Domain *d) | |
| virtual | ~LatticeCrossSection () |
| Destructor. | |
| void | initializeFrom (InputRecord &ir) override |
| int | testCrossSectionExtension (CrossSectExtension ext) override |
| double | giveLatticeStress1d (double strain, GaussPoint *gp, TimeStep *tStep) const |
| FloatArrayF< 3 > | giveLatticeStress2d (const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const |
| FloatArrayF< 6 > | giveLatticeStress3d (const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 1, 1 > | give1dStiffnessMatrix (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 3, 3 > | give2dStiffnessMatrix (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 6, 6 > | give3dStiffnessMatrix (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| LatticeStructuralMaterial * | giveLatticeMaterial () const |
| int | checkConsistency () 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 | packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override |
| int | unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override |
| int | estimatePackSize (DataStream &buff, GaussPoint *gp) override |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| virtual double | give (int aProperty, GaussPoint *gp) 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) |
| virtual double | give (CrossSectionProperty a, GaussPoint *gp) const |
| virtual double | give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local=true) const |
| virtual bool | isCharacteristicMtrxSymmetric (MatResponseMode rMode) const |
| 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) |
| void | giveInputRecord (DynamicInputRecord &input) override |
| virtual void | saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
| virtual void | restoreIPContext (DataStream &stream, ContextMode mode, 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). | |
Public Attributes | |
| CrossSectExtension | crossSectionType |
Private Attributes | |
| int | materialNum |
Additional Inherited Members | |
| 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. | |
Base class for all structural lattice cross section models. Keeps track of the lattice material, the geometric thickness (for 2d elements)
Definition at line 61 of file latticecrosssection.h.
|
inline |
Constructor. Creates cross section with given number, belonging to given domain.
| n | Cross section number. |
| d | Domain to which new cross section will belong. |
Definition at line 69 of file latticecrosssection.h.
References oofem::CrossSection::CrossSection(), crossSectionType, oofem::CS_LatticeStructuralCapability, and materialNum.
|
inlinevirtual |
Destructor.
Definition at line 75 of file latticecrosssection.h.
|
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.
Reimplemented from oofem::FEMComponent.
Definition at line 54 of file latticecrosssection.C.
References oofem::FEMComponent::giveClassName(), oofem::FEMComponent::giveDomain(), materialNum, and OOFEM_WARNING.
|
overridevirtual |
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 170 of file latticecrosssection.C.
References giveLatticeMaterial().
|
overridevirtual |
Returns the value of cross section property.
| aProperty | Id of requested property. |
| gp | Integration point. |
Reimplemented from oofem::CrossSection.
Definition at line 142 of file latticecrosssection.C.
References giveMaterial().
| FloatMatrixF< 1, 1 > oofem::LatticeCrossSection::give1dStiffnessMatrix | ( | MatResponseMode | rMode, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Definition at line 97 of file latticecrosssection.C.
References oofem::LatticeStructuralMaterial::give1dLatticeStiffnessMatrix(), giveLatticeMaterial(), oofem::LatticeStructuralMaterial::hasAnalyticalTangentStiffness(), and OOFEM_ERROR.
| FloatMatrixF< 3, 3 > oofem::LatticeCrossSection::give2dStiffnessMatrix | ( | MatResponseMode | rMode, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Definition at line 108 of file latticecrosssection.C.
References oofem::LatticeStructuralMaterial::give2dLatticeStiffnessMatrix(), giveLatticeMaterial(), oofem::LatticeStructuralMaterial::hasAnalyticalTangentStiffness(), and OOFEM_ERROR.
| FloatMatrixF< 6, 6 > oofem::LatticeCrossSection::give3dStiffnessMatrix | ( | MatResponseMode | rMode, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Definition at line 119 of file latticecrosssection.C.
References oofem::LatticeStructuralMaterial::give3dLatticeStiffnessMatrix(), giveLatticeMaterial(), oofem::LatticeStructuralMaterial::hasAnalyticalTangentStiffness(), and OOFEM_ERROR.
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 126 of file latticecrosssection.h.
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 127 of file latticecrosssection.h.
References _IFT_LatticeCrossSection_Name.
|
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 131 of file latticecrosssection.C.
References oofem::FloatArray::at(), giveLatticeMaterial(), oofem::FEMComponent::giveNumber(), and oofem::FloatArray::resize().
| LatticeStructuralMaterial * oofem::LatticeCrossSection::giveLatticeMaterial | ( | ) | const |
Definition at line 48 of file latticecrosssection.C.
References oofem::FEMComponent::giveDomain(), and materialNum.
Referenced by estimatePackSize(), give1dStiffnessMatrix(), give2dStiffnessMatrix(), give3dStiffnessMatrix(), giveIPValue(), giveLatticeStress1d(), giveLatticeStress2d(), giveLatticeStress3d(), packUnknowns(), and unpackAndUpdateUnknowns().
| double oofem::LatticeCrossSection::giveLatticeStress1d | ( | double | strain, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Computes the real stress vector for given strain and 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 result. |
| gp | Integration point. |
| reduthiscedF | Deformation gradient in reduced form. |
| tStep | Current time step (most models are able to respond only when tStep is current time step). |
Definition at line 79 of file latticecrosssection.C.
References giveLatticeMaterial().
| FloatArrayF< 3 > oofem::LatticeCrossSection::giveLatticeStress2d | ( | const FloatArrayF< 3 > & | strain, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Definition at line 84 of file latticecrosssection.C.
References giveLatticeMaterial().
| FloatArrayF< 6 > oofem::LatticeCrossSection::giveLatticeStress3d | ( | const FloatArrayF< 6 > & | strain, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep ) const |
Definition at line 89 of file latticecrosssection.C.
References giveLatticeMaterial().
|
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 147 of file latticecrosssection.C.
References oofem::FEMComponent::giveDomain(), oofem::GaussPoint::giveElement(), oofem::Element::giveMaterial(), and giveMaterialNumber().
Referenced by give().
|
inline |
Definition at line 118 of file latticecrosssection.h.
References materialNum.
Referenced by giveMaterial().
|
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 67 of file latticecrosssection.C.
References _IFT_LatticeCrossSection_Material, _IFT_LatticeCrossSection_thickness, oofem::CS_Thickness, oofem::InputRecord::hasField(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, materialNum, and oofem::CrossSection::propertyDictionary.
|
overridevirtual |
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 158 of file latticecrosssection.C.
References giveLatticeMaterial().
|
inline |
Definition at line 119 of file latticecrosssection.h.
References materialNum.
|
inlineoverridevirtual |
Returns nonzero, if receiver implements required extension.
| ext | Required extension. |
Reimplemented from oofem::CrossSection.
Definition at line 79 of file latticecrosssection.h.
References crossSectionType.
|
overridevirtual |
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 164 of file latticecrosssection.C.
References giveLatticeMaterial().
| CrossSectExtension oofem::LatticeCrossSection::crossSectionType |
Definition at line 134 of file latticecrosssection.h.
Referenced by LatticeCrossSection(), and testCrossSectionExtension().
|
private |
Definition at line 136 of file latticecrosssection.h.
Referenced by checkConsistency(), giveLatticeMaterial(), giveMaterialNumber(), initializeFrom(), LatticeCrossSection(), and setMaterialNumber().