|
OOFEM 3.0
|
#include <structuralinterfacematerial.h>
Public Member Functions | |
| StructuralInterfaceMaterial (int n, Domain *d) | |
| virtual double | giveFirstPKTraction_1d (double jump, double reducedF, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatArrayF< 2 > | giveFirstPKTraction_2d (const FloatArrayF< 2 > &jump, const FloatMatrixF< 2, 2 > &reducedF, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatArrayF< 3 > | giveFirstPKTraction_3d (const FloatArrayF< 3 > &jump, const FloatMatrixF< 3, 3 > &F, GaussPoint *gp, TimeStep *tStep) const |
| virtual double | giveEngTraction_1d (double jump, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatArrayF< 2 > | giveEngTraction_2d (const FloatArrayF< 2 > &jump, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatArrayF< 3 > | giveEngTraction_3d (const FloatArrayF< 3 > &jump, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 1, 1 > | give1dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 2, 2 > | give2dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 3, 3 > | give3dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 1, 1 > | give1dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 2, 2 > | give2dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| virtual FloatMatrixF< 3, 3 > | give3dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 1, 1 > | give1dStiffnessMatrix_dTdj_Num (GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 2, 2 > | give2dStiffnessMatrix_dTdj_Num (GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 3, 3 > | give3dStiffnessMatrix_dTdj_Num (GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 1, 1 > | give1dStiffnessMatrix_Eng_Num (GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 2, 2 > | give2dStiffnessMatrix_Eng_Num (GaussPoint *gp, TimeStep *tStep) const |
| FloatMatrixF< 3, 3 > | give3dStiffnessMatrix_Eng_Num (GaussPoint *gp, TimeStep *tStep) const |
| virtual bool | hasAnalyticalTangentStiffness () const =0 |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| virtual FloatArray | giveInterfaceStrength () |
| int | giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override |
| Public Member Functions inherited from oofem::Material | |
| Material (int n, Domain *d) | |
| virtual | ~Material ()=default |
| Destructor. | |
| virtual bool | isCharacteristicMtrxSymmetric (MatResponseMode rMode) const |
| virtual void | giveCharacteristicMatrix (FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const |
| Returns characteristic matrix of the receiver. | |
| virtual void | giveCharacteristicVector (FloatArray &answer, FloatArray &flux, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const |
| Returns characteristic vector of the receiver. | |
| virtual double | giveCharacteristicValue (MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const |
| Returns characteristic value of the receiver. | |
| virtual double | give (int aProperty, GaussPoint *gp) const |
| virtual bool | hasProperty (int aProperty, GaussPoint *gp) const |
| virtual void | modifyProperty (int aProperty, double value, GaussPoint *gp) |
| double | giveCastingTime () const |
| virtual bool | isActivated (TimeStep *tStep) const |
| virtual bool | hasMaterialModeCapability (MaterialMode mode) const |
| virtual bool | hasCastingTimeSupport () const |
| virtual int | setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type) |
| void | printYourself () override |
| Prints receiver state on stdout. Useful for debugging. | |
| virtual void | saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
| virtual void | restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
| int | checkConsistency () override |
| virtual void | restoreConsistency (GaussPoint *gp) |
| virtual int | initMaterial (Element *element) |
| virtual MaterialStatus * | giveStatus (GaussPoint *gp) const |
| virtual int | packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) |
| virtual int | unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) |
| virtual int | estimatePackSize (DataStream &buff, GaussPoint *ip) |
| virtual double | predictRelativeComputationalCost (GaussPoint *gp) |
| virtual double | predictRelativeRedistributionCost (GaussPoint *gp) |
| virtual std::unique_ptr< MaterialStatus > | CreateStatus (GaussPoint *gp) const |
| virtual void | initTempStatus (GaussPoint *gp) const |
| 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. | |
| virtual const char * | giveClassName () const =0 |
| virtual const char * | giveInputRecordName () const =0 |
| 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 | |
| bool | useNumericalTangent |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::Material | |
| Dictionary | propertyDictionary |
| double | castingTime |
| int | preCastingTimeMat |
| Material existing before casting time - optional parameter, zero by default. | |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
Abstract base class for all "structural" interface models. It declares common services provided by all interface material models. The implementation of these services is partly left on derived classes, which will implement constitutive model dependent part.
Structural material introduces following basic stress/strain modes
Generally speaking, there are following major tasks, covered by declared services.
Definition at line 74 of file structuralinterfacematerial.h.
| oofem::StructuralInterfaceMaterial::StructuralInterfaceMaterial | ( | int | n, |
| Domain * | d ) |
Constructor. Creates material with given number, belonging to given domain.
Definition at line 41 of file structuralinterfacematerial.C.
References oofem::Material::Material(), and useNumericalTangent.
Referenced by oofem::BondCEBMaterial::BondCEBMaterial(), oofem::CebFipSlip90Material::CebFipSlip90Material(), oofem::CohesiveInterfaceMaterial::CohesiveInterfaceMaterial(), oofem::ExpCZMaterial::ExpCZMaterial(), oofem::IntMatBilinearCZ::IntMatBilinearCZ(), oofem::IntMatBilinearCZElastic::IntMatBilinearCZElastic(), oofem::IntMatBilinearCZFagerstrom::IntMatBilinearCZFagerstrom(), oofem::IntMatBilinearCZJansson::IntMatBilinearCZJansson(), oofem::IntMatCoulombContact::IntMatCoulombContact(), oofem::IntMatDummyCZ::IntMatDummyCZ(), oofem::IntMatElastic::IntMatElastic(), oofem::IntMatIsoDamage::IntMatIsoDamage(), oofem::IsoInterfaceDamageMaterial::IsoInterfaceDamageMaterial(), oofem::IsoInterfaceDamageMaterial_2::IsoInterfaceDamageMaterial_2(), oofem::LinkSlip::LinkSlip(), and oofem::SimpleInterfaceMaterial::SimpleInterfaceMaterial().
|
virtual |
Gives the tangent: \( \frac{\partial T}{\partial j} \). Where T is the first PK traction and j is the spatial jump between the two sides, x(+) - x(-)
| answer | The computed tangent from the last evaluated first-PK-stress. |
| rMode | Material mode. |
| gp | Gauss point. |
| tStep | Time step. |
Definition at line 126 of file structuralinterfacematerial.C.
References give3dStiffnessMatrix_dTdj_Num().
Referenced by oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_dTdj().
| FloatMatrixF< 1, 1 > oofem::StructuralInterfaceMaterial::give1dStiffnessMatrix_dTdj_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 192 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), oofem::FloatMatrixF< N, M >::at(), giveFirstPKTraction_1d(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTempF(), and oofem::StructuralInterfaceMaterialStatus::giveTempJump().
Referenced by oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_dTdj().
|
virtual |
Reimplemented in oofem::CebFipSlip90Material.
Definition at line 91 of file structuralinterfacematerial.C.
References give3dStiffnessMatrix_Eng().
Referenced by oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_Eng().
| FloatMatrixF< 1, 1 > oofem::StructuralInterfaceMaterial::give1dStiffnessMatrix_Eng_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 267 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), giveEngTraction_1d(), oofem::Material::giveStatus(), and oofem::StructuralInterfaceMaterialStatus::giveTempJump().
Referenced by oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_Eng().
|
virtual |
Definition at line 134 of file structuralinterfacematerial.C.
References give3dStiffnessMatrix_dTdj_Num().
Referenced by oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_dTdj().
| FloatMatrixF< 2, 2 > oofem::StructuralInterfaceMaterial::give2dStiffnessMatrix_dTdj_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 210 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), giveFirstPKTraction_2d(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTempF(), oofem::StructuralInterfaceMaterialStatus::giveTempJump(), and oofem::FloatMatrixF< N, M >::setColumn().
Referenced by oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_dTdj().
|
virtual |
Reimplemented in oofem::IntMatIsoDamage.
Definition at line 99 of file structuralinterfacematerial.C.
References give2dStiffnessMatrix_Eng_Num(), give3dStiffnessMatrix_Eng(), oofem::FloatMatrix::printYourself(), and oofem::FloatMatrix::subtract().
Referenced by oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_Eng().
| FloatMatrixF< 2, 2 > oofem::StructuralInterfaceMaterial::give2dStiffnessMatrix_Eng_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 283 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), giveEngTraction_2d(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTempJump(), and oofem::FloatMatrixF< N, M >::setColumn().
Referenced by oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_Eng(), and give2dStiffnessMatrix_Eng().
|
virtual |
Reimplemented in oofem::IntMatBilinearCZ, oofem::IntMatBilinearCZElastic, oofem::IntMatBilinearCZFagerstrom, oofem::IntMatBilinearCZJansson, oofem::IntMatDummyCZ, and oofem::IntMatElastic.
Definition at line 141 of file structuralinterfacematerial.C.
References give3dStiffnessMatrix_dTdj_Num(), and OOFEM_WARNING.
Referenced by oofem::XfemStructuralElementInterface::computeCohesiveTangent(), oofem::Shell7BaseXFEM::computeCohesiveTangentAt(), oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_dTdj(), and give3dStiffnessMatrix_Eng().
| FloatMatrixF< 3, 3 > oofem::StructuralInterfaceMaterial::give3dStiffnessMatrix_dTdj_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 239 of file structuralinterfacematerial.C.
References giveFirstPKTraction_3d(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTempF(), oofem::StructuralInterfaceMaterialStatus::giveTempJump(), and oofem::FloatMatrixF< N, M >::setColumn().
Referenced by give1dStiffnessMatrix_dTdj(), give2dStiffnessMatrix_dTdj(), oofem::IntMatBilinearCZ::give3dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_dTdj(), and give3dStiffnessMatrix_dTdj().
|
virtual |
Reimplemented in oofem::BondCEBMaterial, oofem::CohesiveInterfaceMaterial, oofem::IntMatCoulombContact, oofem::IntMatIsoDamage, oofem::IntMatPhaseField, oofem::IsoInterfaceDamageMaterial, oofem::IsoInterfaceDamageMaterial_2, oofem::LinkSlip, and oofem::SimpleInterfaceMaterial.
Definition at line 118 of file structuralinterfacematerial.C.
References give3dStiffnessMatrix_dTdj().
Referenced by give1dStiffnessMatrix_Eng(), give2dStiffnessMatrix_Eng(), and oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_Eng().
| FloatMatrixF< 3, 3 > oofem::StructuralInterfaceMaterial::give3dStiffnessMatrix_Eng_Num | ( | GaussPoint * | gp, |
| TimeStep * | tStep ) const |
Definition at line 310 of file structuralinterfacematerial.C.
References giveEngTraction_3d(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTempJump(), and oofem::FloatMatrixF< N, M >::setColumn().
Referenced by oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_Eng().
|
virtual |
Reimplemented in oofem::CebFipSlip90Material.
Definition at line 168 of file structuralinterfacematerial.C.
References giveEngTraction_3d().
Referenced by give1dStiffnessMatrix_Eng_Num(), and oofem::StructuralInterfaceCrossSection::giveEngTraction_1d().
|
virtual |
Definition at line 175 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), and giveEngTraction_3d().
Referenced by give2dStiffnessMatrix_Eng_Num(), and oofem::StructuralInterfaceCrossSection::giveEngTraction_2d().
|
virtual |
Reimplemented in oofem::BondCEBMaterial, oofem::CohesiveInterfaceMaterial, oofem::IntMatCoulombContact, oofem::IntMatIsoDamage, oofem::IsoInterfaceDamageMaterial, oofem::IsoInterfaceDamageMaterial_2, oofem::LinkSlip, and oofem::SimpleInterfaceMaterial.
Definition at line 182 of file structuralinterfacematerial.C.
References oofem::eye(), and giveFirstPKTraction_3d().
Referenced by give3dStiffnessMatrix_Eng_Num(), giveEngTraction_1d(), giveEngTraction_2d(), and oofem::StructuralInterfaceCrossSection::giveEngTraction_3d().
|
virtual |
Computes the first Piola-Kirchoff traction vector for given total jump/gap and integration point. The total gap is computed from the displacement field at the given time step. 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.
| answer | Contains result. |
| gp | Integration point. |
| reducedF | Deformation gradient in in reduced form. |
| tStep | Current time step (most models are able to respond only when tStep is current time step). |
Definition at line 149 of file structuralinterfacematerial.C.
References oofem::diag(), and giveFirstPKTraction_3d().
Referenced by give1dStiffnessMatrix_dTdj_Num(), and oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_1d().
|
virtual |
Definition at line 155 of file structuralinterfacematerial.C.
References oofem::FloatArrayF< N >::at(), and giveFirstPKTraction_3d().
Referenced by give2dStiffnessMatrix_dTdj_Num(), and oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_2d().
|
inlinevirtual |
Reimplemented in oofem::IntMatBilinearCZ, oofem::IntMatBilinearCZElastic, oofem::IntMatBilinearCZFagerstrom, oofem::IntMatBilinearCZFagerstromRate, oofem::IntMatBilinearCZJansson, oofem::IntMatDummyCZ, oofem::IntMatElastic, and oofem::IntMatIsoDamage.
Definition at line 98 of file structuralinterfacematerial.h.
References OOFEM_ERROR.
Referenced by oofem::Shell7BaseXFEM::computeCohesiveForces(), oofem::XfemStructuralElementInterface::computeGlobalCohesiveTractionVector(), give3dStiffnessMatrix_dTdj_Num(), giveEngTraction_3d(), giveFirstPKTraction_1d(), giveFirstPKTraction_2d(), oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_3d(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), and oofem::Shell7BaseXFEM::recoverShearStress().
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::Material.
Definition at line 84 of file structuralinterfacematerial.C.
Referenced by oofem::IntMatBilinearCZFagerstrom::giveInputRecord().
|
inlinevirtual |
Reimplemented in oofem::IntMatBilinearCZFagerstrom, and oofem::IntMatBilinearCZJansson.
Definition at line 139 of file structuralinterfacematerial.h.
References oofem::Vec1().
Referenced by oofem::Shell7BaseXFEM::giveFailedInterfaceNumber().
|
overridevirtual |
Returns the integration point corresponding value in Reduced form.
| answer | Contain corresponding ip value, zero sized if not available. |
| gp | Integration point to which the value refers. |
| type | Determines the type of internal variable. |
| tStep | Determines the time step. |
Reimplemented from oofem::Material.
Definition at line 48 of file structuralinterfacematerial.C.
References oofem::FloatArray::at(), oofem::StructuralInterfaceMaterialStatus::giveDamage(), oofem::StructuralInterfaceMaterialStatus::giveF(), oofem::StructuralInterfaceMaterialStatus::giveFirstPKTraction(), oofem::StructuralInterfaceMaterialStatus::giveJump(), oofem::StructuralInterfaceMaterialStatus::giveNormal(), oofem::Material::giveStatus(), oofem::StructuralInterfaceMaterialStatus::giveTraction(), oofem::FloatArray::resize(), and oofem::to_voigt_form_33().
Referenced by oofem::Shell7BaseXFEM::giveMaxCZDamages().
|
pure virtual |
Tells if the model has implemented analytical tangent stiffness. If not, the tangent must be computed numerically.
Implemented in oofem::BondCEBMaterial, oofem::CebFipSlip90Material, oofem::CohesiveInterfaceMaterial, oofem::IntMatBilinearCZ, oofem::IntMatBilinearCZElastic, oofem::IntMatBilinearCZFagerstrom, oofem::IntMatBilinearCZFagerstromRate, oofem::IntMatBilinearCZJansson, oofem::IntMatCoulombContact, oofem::IntMatDummyCZ, oofem::IntMatElastic, oofem::IntMatIsoDamage, oofem::IntMatPhaseField, oofem::IsoInterfaceDamageMaterial, oofem::IsoInterfaceDamageMaterial_2, oofem::LinkSlip, and oofem::SimpleInterfaceMaterial.
Referenced by oofem::XfemStructuralElementInterface::computeCohesiveTangent(), oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_Eng(), oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_Eng(), oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_dTdj(), and oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_Eng().
|
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::Material.
Definition at line 77 of file structuralinterfacematerial.C.
References _IFT_StructuralInterfaceMaterial_useNumericalTangent, IR_GIVE_OPTIONAL_FIELD, and useNumericalTangent.
| bool oofem::StructuralInterfaceMaterial::useNumericalTangent |
Definition at line 144 of file structuralinterfacematerial.h.
Referenced by oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give1dStiffnessMatrix_Eng(), oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give2dStiffnessMatrix_Eng(), oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_dTdj(), oofem::StructuralInterfaceCrossSection::give3dStiffnessMatrix_Eng(), initializeFrom(), and StructuralInterfaceMaterial().