|
OOFEM
2.1
|
Abstract base class for all microplane models. More...
#include <microplanematerial.h>
Inheritance diagram for oofem::MicroplaneMaterial:
Collaboration diagram for oofem::MicroplaneMaterial:Public Member Functions | |
| MicroplaneMaterial (int n, Domain *d) | |
| Constructor. | |
| virtual | ~MicroplaneMaterial () |
| Destructor. | |
| virtual void | giveRealMicroplaneStressVector (FloatArray &answer, Microplane *mplane, const FloatArray &strain, TimeStep *tStep)=0 |
| Computes real stress vector on given microplane (the meaning of values depends on particular implementation, e.g, can contain volumetric, deviatoric normal stresses and shear stresses on microplane) for given increment of microplane strains. | |
| double | computeNormalStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the length of normal strain vector on given microplane. | |
| double | computeNormalVolumetricStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the normal volumetric component of macro strain on given microplane. | |
| double | computeNormalDeviatoricStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the normal deviatoric component of macro strain on given microplane. | |
| double | computeShearMStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the shear component (in m direction) of macro strain on given microplane. | |
| double | computeShearLStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the shear component (in l direction) of macro strain on given microplane. | |
| void | computeStrainVectorComponents (FloatArray &answer, Microplane *mplane, const FloatArray ¯oStrain) |
| Computes the vector of all micro stress components (Ev, En, Em, El) of macro strain vector on given microplane. | |
| virtual void | giveMicroplaneNormal (FloatArray &answer, Microplane *mplane) |
| Computes normal of given microplane. | |
| virtual double | giveMicroplaneIntegrationWeight (Microplane *mplane) |
| Returns microplane integration weight. | |
| Microplane * | giveMicroplane (int i, GaussPoint *masterGp) |
| Returns i-th microplane belonging to master-macro-integration point. )-based indexing. | |
| virtual void | initializeData (int numberOfMicroplanes) |
| Initializes internal data (integration weights, microplane normals and computes projection tensors). | |
| virtual MaterialMode | giveCorrespondingSlaveMaterialMode (MaterialMode masterMode) |
| Returns corresponding material mode for microplane according to macro integration mode. | |
| virtual contextIOResultType | saveIPContext (DataStream *stream, ContextMode mode, GaussPoint *gp) |
| Stores integration point state to output stream. | |
| virtual contextIOResultType | restoreIPContext (DataStream *stream, ContextMode mode, GaussPoint *gp) |
| Reads integration point state to output stream. | |
| virtual IRResultType | initializeFrom (InputRecord *ir) |
| Initializes receiver according to object description stored in input record. | |
| virtual int | giveInputRecordString (std::string &str, bool keyword=true) |
| Setups the input record string of receiver. | |
| virtual const char * | giveClassName () const |
| virtual classType | giveClassID () const |
| Returns classType id of receiver. | |
| virtual IntegrationPointStatus * | giveMicroplaneStatus (GaussPoint *gp) |
Protected Member Functions | |
| virtual MaterialStatus * | CreateMicroplaneStatus (GaussPoint *gp)=0 |
| virtual void | initTempStatus (GaussPoint *gp) |
| Initializes temporary variables stored in integration point status at the beginning of new time step. | |
Protected Attributes | |
| int | numberOfMicroplanes |
| Number of microplanes. | |
| double | microplaneWeights [MAX_NUMBER_OF_MICROPLANES] |
| Integration weights of microplanes. | |
| double | microplaneNormals [MAX_NUMBER_OF_MICROPLANES][3] |
| Normals of microplanes. | |
| double | Kronecker [6] |
| Kronecker's delta. | |
| double | N [MAX_NUMBER_OF_MICROPLANES][6] |
| Normal projection tensors for all microplanes. | |
| double | M [MAX_NUMBER_OF_MICROPLANES][6] |
| Shear projection tensors (m direction) for all microplanes. | |
| double | L [MAX_NUMBER_OF_MICROPLANES][6] |
| Shear projection tensors (l direction) for all microplanes. | |
Abstract base class for all microplane models.
This class provides methods for setting up the integration weights and normals for particular microplanes. Also projection tensors are computed in advance (see method initializeData) and stored. Methods for computing macro strain projections onto particular microplanes and for homogenization of stress vector are provided.
Definition at line 56 of file microplanematerial.h.
| oofem::MicroplaneMaterial::MicroplaneMaterial | ( | int | n, |
| Domain * | d | ||
| ) | [inline] |
Constructor.
Creates Microplane Material belonging to domain d, with number n.
Definition at line 93 of file microplanematerial.h.
References numberOfMicroplanes.
| virtual oofem::MicroplaneMaterial::~MicroplaneMaterial | ( | ) | [inline, virtual] |
Destructor.
Definition at line 95 of file microplanematerial.h.
| double oofem::MicroplaneMaterial::computeNormalDeviatoricStrainComponent | ( | Microplane * | mplane, |
| const FloatArray & | macroStrain | ||
| ) |
Computes the normal deviatoric component of macro strain on given microplane.
Definition at line 243 of file microplanematerial.C.
References computeNormalStrainComponent(), and computeNormalVolumetricStrainComponent().
| double oofem::MicroplaneMaterial::computeNormalStrainComponent | ( | Microplane * | mplane, |
| const FloatArray & | macroStrain | ||
| ) |
Computes the length of normal strain vector on given microplane.
Definition at line 221 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and N.
Referenced by oofem::MDM::computeDamageOnPlane(), and computeNormalDeviatoricStrainComponent().
| double oofem::MicroplaneMaterial::computeNormalVolumetricStrainComponent | ( | Microplane * | mplane, |
| const FloatArray & | macroStrain | ||
| ) |
Computes the normal volumetric component of macro strain on given microplane.
Definition at line 236 of file microplanematerial.C.
References oofem::FloatArray::at().
Referenced by computeNormalDeviatoricStrainComponent().
| double oofem::MicroplaneMaterial::computeShearLStrainComponent | ( | Microplane * | mplane, |
| const FloatArray & | macroStrain | ||
| ) |
Computes the shear component (in l direction) of macro strain on given microplane.
Definition at line 266 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and L.
Referenced by oofem::MDM::computeDamageOnPlane().
| double oofem::MicroplaneMaterial::computeShearMStrainComponent | ( | Microplane * | mplane, |
| const FloatArray & | macroStrain | ||
| ) |
Computes the shear component (in m direction) of macro strain on given microplane.
Definition at line 251 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and M.
Referenced by oofem::MDM::computeDamageOnPlane().
| void oofem::MicroplaneMaterial::computeStrainVectorComponents | ( | FloatArray & | answer, |
| Microplane * | mplane, | ||
| const FloatArray & | macroStrain | ||
| ) |
Computes the vector of all micro stress components (Ev, En, Em, El) of macro strain vector on given microplane.
Definition at line 281 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), L, M, N, oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().
| virtual MaterialStatus* oofem::MicroplaneMaterial::CreateMicroplaneStatus | ( | GaussPoint * | gp | ) | [protected, pure virtual] |
Implemented in oofem::MDM, and oofem::M4Material.
Referenced by giveMicroplaneStatus().
| virtual classType oofem::MicroplaneMaterial::giveClassID | ( | ) | const [inline, virtual] |
Returns classType id of receiver.
Intended for run time type checking. Every derived class have to overload this method.
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM, oofem::M4Material, and oofem::MicroplaneMaterial_Bazant.
Definition at line 174 of file microplanematerial.h.
References oofem::MicroplaneMaterialClass.
| virtual const char* oofem::MicroplaneMaterial::giveClassName | ( | ) | const [inline, virtual] |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM, oofem::M4Material, and oofem::MicroplaneMaterial_Bazant.
Definition at line 173 of file microplanematerial.h.
| MaterialMode oofem::MicroplaneMaterial::giveCorrespondingSlaveMaterialMode | ( | MaterialMode | masterMode | ) | [virtual] |
Returns corresponding material mode for microplane according to macro integration mode.
Definition at line 79 of file microplanematerial.C.
Referenced by giveMicroplane().
| int oofem::MicroplaneMaterial::giveInputRecordString | ( | std::string & | str, |
| bool | keyword = true |
||
| ) | [virtual] |
Setups the input record string of receiver.
| str | String to be filled by input record. |
| keyword | Determines if record keyword should be printed. |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM.
Definition at line 319 of file microplanematerial.C.
References numberOfMicroplanes.
| Microplane * oofem::MicroplaneMaterial::giveMicroplane | ( | int | i, |
| GaussPoint * | masterGp | ||
| ) |
Returns i-th microplane belonging to master-macro-integration point. )-based indexing.
Definition at line 44 of file microplanematerial.C.
References _error, oofem::GaussPoint::gaussPointArray, giveCorrespondingSlaveMaterialMode(), oofem::GaussPoint::giveIntegrationRule(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveSlaveGaussPoint(), oofem::GaussPoint::numberOfGp, and numberOfMicroplanes.
Referenced by oofem::MDM::computeLocalDamageTensor(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initTempStatus(), restoreIPContext(), and saveIPContext().
| double oofem::MicroplaneMaterial::giveMicroplaneIntegrationWeight | ( | Microplane * | mplane | ) | [virtual] |
Returns microplane integration weight.
| mplane | Microplane. |
Definition at line 213 of file microplanematerial.C.
References oofem::GaussPoint::giveNumber(), and microplaneWeights.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().
| void oofem::MicroplaneMaterial::giveMicroplaneNormal | ( | FloatArray & | answer, |
| Microplane * | mplane | ||
| ) | [virtual] |
Computes normal of given microplane.
| answer | Normal of given microplane. |
| mplane | Microplane, which normal will be computed. |
Definition at line 202 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), microplaneNormals, and oofem::FloatArray::resize().
| IntegrationPointStatus * oofem::MicroplaneMaterial::giveMicroplaneStatus | ( | GaussPoint * | gp | ) | [virtual] |
Definition at line 89 of file microplanematerial.C.
References CreateMicroplaneStatus(), oofem::GaussPoint::giveMaterialStatus(), oofem::FEMComponent::giveNumber(), and oofem::GaussPoint::setMaterialStatus().
Referenced by oofem::M4Material::giveRealMicroplaneStressVector(), initTempStatus(), restoreIPContext(), and saveIPContext().
| virtual void oofem::MicroplaneMaterial::giveRealMicroplaneStressVector | ( | FloatArray & | answer, |
| Microplane * | mplane, | ||
| const FloatArray & | strain, | ||
| TimeStep * | tStep | ||
| ) | [pure virtual] |
Computes real stress vector on given microplane (the meaning of values depends on particular implementation, e.g, can contain volumetric, deviatoric normal stresses and shear stresses on microplane) for given increment of microplane strains.
| answer | Computed result. |
| mplane | Pointer to microplane object, for which response is computed. |
| strain | Strain vector. |
| tStep | Time step. |
Implemented in oofem::MDM, and oofem::M4Material.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().
| void oofem::MicroplaneMaterial::initializeData | ( | int | numberOfMicroplanes | ) | [virtual] |
Initializes internal data (integration weights, microplane normals and computes projection tensors).
| numberOfMicroplanes | Number of required microplanes. |
Reimplemented in oofem::MDM.
Definition at line 332 of file microplanematerial.C.
References _error, oofem::FloatArray::at(), oofem::FloatArray::beVectorProductOf(), Kronecker, L, M, microplaneNormals, microplaneWeights, N, and numberOfMicroplanes.
Referenced by initializeFrom().
| IRResultType oofem::MicroplaneMaterial::initializeFrom | ( | InputRecord * | ir | ) | [virtual] |
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.
| ir | Input record to initialize from. |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM, and oofem::M4Material.
Definition at line 305 of file microplanematerial.C.
References oofem::IFT_MicroplaneMaterial_nmp, initializeData(), IR_GIVE_FIELD, oofem::IRRT_OK, and numberOfMicroplanes.
| void oofem::MicroplaneMaterial::initTempStatus | ( | GaussPoint * | gp | ) | [protected, virtual] |
Initializes temporary variables stored in integration point status at the beginning of new time step.
Temporary history variables (they describe state of material during solution of time step) are initialized according to history variables, which describe state corresponding to previous equilibrium solution. Default implementation simply extracts status from integration point and calls its initTempStatus method.
Reimplemented from oofem::Material.
Definition at line 112 of file microplanematerial.C.
References giveMicroplane(), giveMicroplaneStatus(), oofem::Material::giveStatus(), oofem::MaterialStatus::initTempStatus(), and numberOfMicroplanes.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().
| contextIOResultType oofem::MicroplaneMaterial::restoreIPContext | ( | DataStream * | stream, |
| ContextMode | mode, | ||
| GaussPoint * | gp | ||
| ) | [virtual] |
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::Material.
Definition at line 167 of file microplanematerial.C.
References oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::restoreContext(), oofem::Material::restoreIPContext(), and THROW_CIOERR.
| contextIOResultType oofem::MicroplaneMaterial::saveIPContext | ( | DataStream * | stream, |
| ContextMode | mode, | ||
| GaussPoint * | gp | ||
| ) | [virtual] |
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::Material.
Definition at line 132 of file microplanematerial.C.
References _error, oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::saveContext(), oofem::Material::saveIPContext(), and THROW_CIOERR.
double oofem::MicroplaneMaterial::Kronecker[6] [protected] |
Kronecker's delta.
Definition at line 68 of file microplanematerial.h.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), and initializeData().
double oofem::MicroplaneMaterial::L[MAX_NUMBER_OF_MICROPLANES][6] [protected] |
Shear projection tensors (l direction) for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 84 of file microplanematerial.h.
Referenced by computeShearLStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), and oofem::MDM::initializeData().
double oofem::MicroplaneMaterial::M[MAX_NUMBER_OF_MICROPLANES][6] [protected] |
Shear projection tensors (m direction) for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 79 of file microplanematerial.h.
Referenced by computeShearMStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), and oofem::MDM::initializeData().
double oofem::MicroplaneMaterial::microplaneNormals[MAX_NUMBER_OF_MICROPLANES][3] [protected] |
Normals of microplanes.
Definition at line 65 of file microplanematerial.h.
Referenced by giveMicroplaneNormal(), initializeData(), and oofem::MDM::initializeData().
double oofem::MicroplaneMaterial::microplaneWeights[MAX_NUMBER_OF_MICROPLANES] [protected] |
Integration weights of microplanes.
Definition at line 63 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), giveMicroplaneIntegrationWeight(), initializeData(), and oofem::MDM::initializeData().
double oofem::MicroplaneMaterial::N[MAX_NUMBER_OF_MICROPLANES][6] [protected] |
Normal projection tensors for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 74 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), computeNormalStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), oofem::MDM::initializeData(), and oofem::MDM::transformStrainToPDC().
int oofem::MicroplaneMaterial::numberOfMicroplanes [protected] |
Number of microplanes.
Definition at line 60 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), oofem::MDM::CreateStatus(), giveInputRecordString(), oofem::MDM::giveIntVarCompFullIndx(), oofem::MDM::giveIPValueSize(), giveMicroplane(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), oofem::MDM::initializeData(), initializeFrom(), initTempStatus(), MicroplaneMaterial(), restoreIPContext(), and saveIPContext().