|
OOFEM
2.1
|
This class implements a rheologic chain model describing a viscoelastic material. More...
#include <rheoChM.h>
Inheritance diagram for oofem::RheoChainMaterial:
Collaboration diagram for oofem::RheoChainMaterial:Public Member Functions | |
| RheoChainMaterial (int n, Domain *d) | |
| virtual | ~RheoChainMaterial () |
| virtual void | giveCharacteristicMatrix (FloatMatrix &answer, MatResponseForm form, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
| Computes the stiffness matrix of receiver in given integration point, respecting its history. | |
| virtual void | giveRealStressVector (FloatArray &answer, MatResponseForm form, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) |
| Computes the real stress vector for given total strain and integration point. | |
| virtual void | giveThermalDilatationVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep) |
| Returns a vector of coefficients of thermal dilatation in direction of each material principal (local) axis. | |
| virtual double | giveEModulus (GaussPoint *gp, TimeStep *atTime) |
| Evaluation of the incremental modulus. | |
| virtual void | computeCharCoefficients (FloatArray &answer, GaussPoint *gp, double atTime) |
| Evaluation of the moduli of individual units. | |
| virtual void | updateYourself (GaussPoint *gp, TimeStep *tStep) |
| Update of MatStatus to the newly reached (equilibrium) state. | |
| virtual int | hasNonLinearBehaviour () |
| Returns nonzero if receiver is non linear. | |
| virtual int | hasMaterialModeCapability (MaterialMode mode) |
| Tests if material supports material mode. | |
| virtual const char * | giveClassName () const |
| virtual classType | giveClassID () const |
| Returns classType id of receiver. | |
| virtual IRResultType | initializeFrom (InputRecord *ir) |
| Initializes receiver according to object description stored in input record. | |
| 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 void | give3dMaterialStiffnessMatrix (FloatMatrix &answer, MatResponseForm form, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
| Computes full 3d material stiffness matrix at given integration point, time, respecting load history in integration point. | |
| virtual void | computeStressIndependentStrainVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
| Computes reduced strain vector in given integration point, generated by internal processes in material, which are independent on loading in particular integration point. | |
| virtual void | giveShrinkageStrainVector (FloatArray &answer, MatResponseForm form, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
| Computes, for the given integration point, the strain vector induced by stress-independent shrinkage. | |
| virtual void | giveEigenStrainVector (FloatArray &answer, MatResponseForm form, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
| Computes, for the given integration point, the strain vector induced by the stress history (typically creep strain). | |
| virtual MaterialStatus * | CreateStatus (GaussPoint *gp) const |
| Creates new copy of associated status and inserts it into given integration point. | |
Protected Member Functions | |
| virtual int | hasIncrementalShrinkageFormulation () |
| If only incremental shrinkage strain formulation is provided, then total shrinkage strain must be tracked in status in order to be able to compute total value. | |
| void | generateLogTimeScale (FloatArray &answer, double from, double to, int nsteps) |
| Generates discrete times starting from time "from" to time "to" uniformly distributed in log time scale. | |
| const FloatArray & | giveDiscreteTimes () |
| virtual double | computeCreepFunction (GaussPoint *gp, double ofAge, double atTime)=0 |
| Evaluation of the creep compliance function. | |
| void | computeDiscreteRelaxationFunction (FloatArray &answer, GaussPoint *gp, const FloatArray &atTimes, double t0, double tr) |
| Evaluation of the relaxation function at given times. | |
| void | giveUnitComplianceMatrix (FloatMatrix &answer, MatResponseForm form, GaussPoint *gp, TimeStep *tStep) |
| Evaluation of elastic compliance matrix for unit Young's modulus. | |
| void | giveUnitStiffnessMatrix (FloatMatrix &answer, MatResponseForm form, GaussPoint *gp, TimeStep *tStep) |
| Evaluation of elastic stiffness matrix for unit Young's modulus. | |
| void | updateEparModuli (GaussPoint *gp, double atTime) |
| Update of partial moduli of individual chain units. | |
| double | giveEparModulus (int iChain) |
| Access to partial modulus of a given unit. | |
| virtual void | computeCharTimes () |
| Evaluation of characteristic times. | |
| double | giveCharTime (int) |
| Access to the characteristic time of a given unit. | |
| virtual double | giveCharTimeExponent (int i) |
| Exponent to be used with the char time of a given unit, usually = 1.0. | |
| LinearElasticMaterial * | giveLinearElasticMaterial () |
| Access to the underlying linear elastic material with unit Young's modulus. | |
| double | giveEndOfTimeOfInterest () |
| Access to the time up to which the response should be accurate. | |
| virtual void | givePlaneStressStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing plane stress stiffness matrix of receiver. | |
| virtual void | givePlaneStrainStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing plane strain stiffness matrix of receiver. | |
| virtual void | give1dStressStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing 1d stiffness matrix of receiver. | |
| virtual void | give2dBeamLayerStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing 2d beam layer stiffness matrix of receiver. | |
| virtual void | give2dPlateLayerStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing 2d plate layer stiffness matrix of receiver. | |
| virtual void | give3dShellLayerStiffMtrx (FloatMatrix &answer, MatResponseForm, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
| Method for computing 3d shell layer stiffness matrix of receiver. | |
| void | computeTrueStressIndependentStrainVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
| Computes, for the given integration point, the strain vector induced by stress-independent internal processes in the material. | |
Protected Attributes | |
| int | nUnits |
| Number of (Maxwell or Kelvin) units in the rheologic chain. | |
| double | relMatAge |
| Physical age of the material at simulation time = 0. | |
| double | nu |
| Poisson's ratio (assumed to be constant, unaffected by creep). | |
| double | EparValTime |
| Time for which the partial moduli of individual units have been evaluated. | |
| double | begOfTimeOfInterest |
| Time from which the model should give a good approximation. Optional field. Default value is 0.1 [day]. | |
| double | endOfTimeOfInterest |
| Time (age???) up to which the model should give a good approximation. | |
| LinearElasticMaterial * | linearElasticMaterial |
| Associated linearElasticMaterial, with E = 1. | |
| FloatArray | EparVal |
| Partial moduli of individual units. | |
| FloatArray | charTimes |
| Characteristic times of individual units (relaxation or retardation times). | |
| FloatArray | discreteTimeScale |
| Times at which the errors are evaluated if the least-square method is used. | |
| double | timeFactor |
| Scaling factor transforming the simulation time units into days (gives the number of simulation time units in one day, e.g. | |
This class implements a rheologic chain model describing a viscoelastic material.
It serves as the parent class for Maxwell and Kelvin chains.
| oofem::RheoChainMaterial::RheoChainMaterial | ( | int | n, |
| Domain * | d | ||
| ) |
Definition at line 46 of file rheoChM.C.
References EparValTime, linearElasticMaterial, nUnits, and relMatAge.
| oofem::RheoChainMaterial::~RheoChainMaterial | ( | ) | [virtual] |
Definition at line 56 of file rheoChM.C.
References linearElasticMaterial.
| virtual void oofem::RheoChainMaterial::computeCharCoefficients | ( | FloatArray & | answer, |
| GaussPoint * | gp, | ||
| double | atTime | ||
| ) | [inline, virtual] |
Evaluation of the moduli of individual units.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::MaxwellChainMaterial, and oofem::KelvinChainMaterial.
Definition at line 149 of file rheoChM.h.
Referenced by updateEparModuli().
| void oofem::RheoChainMaterial::computeCharTimes | ( | ) | [protected, virtual] |
Evaluation of characteristic times.
Reimplemented in oofem::MPSMaterial, and oofem::B3SolidMaterial.
Definition at line 391 of file rheoChM.C.
References _error, a, oofem::FloatArray::at(), begOfTimeOfInterest, charTimes, giveEndOfTimeOfInterest(), nUnits, relMatAge, and oofem::FloatArray::resize().
Referenced by giveCharTime(), and initializeFrom().
| virtual double oofem::RheoChainMaterial::computeCreepFunction | ( | GaussPoint * | gp, |
| double | ofAge, | ||
| double | atTime | ||
| ) | [protected, pure virtual] |
Evaluation of the creep compliance function.
Implemented in oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::KelvinChainSolidMaterial, oofem::MaxwellChainMaterial, oofem::B3Material, oofem::CebFip78Material, and oofem::DoublePowerLawMaterial.
Referenced by computeDiscreteRelaxationFunction().
| void oofem::RheoChainMaterial::computeDiscreteRelaxationFunction | ( | FloatArray & | answer, |
| GaussPoint * | gp, | ||
| const FloatArray & | atTimes, | ||
| double | t0, | ||
| double | tr | ||
| ) | [protected] |
Evaluation of the relaxation function at given times.
This functions solves numerically an integral equation of the form
where
is stress-independent deformation, for the case where
is kept at constant value in time.
| [out] | answer | Array with evaluated relaxation function. |
| gp | Integration point. | |
| t0 | Age of material when load is applied. | |
| tr | Age of material when relaxation has begun ??? | |
| atTimes | At which times the relaxation function will be evaluated. |
Definition at line 159 of file rheoChM.C.
References oofem::FloatArray::at(), computeCreepFunction(), oofem::FloatArray::giveSize(), oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by oofem::MaxwellChainMaterial::computeCharCoefficients().
| void oofem::RheoChainMaterial::computeStressIndependentStrainVector | ( | FloatArray & | answer, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep, | ||
| ValueModeType | mode | ||
| ) | [virtual] |
Computes reduced strain vector in given integration point, generated by internal processes in material, which are independent on loading in particular integration point.
Default implementation takes into account temperature induced strains and eigenstrains.
| answer | Returned strain vector. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
| mode | Determines response mode (Total or incremental). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 351 of file rheoChM.C.
References oofem::FloatArray::add(), computeTrueStressIndependentStrainVector(), giveEigenStrainVector(), oofem::FloatArray::giveSize(), and oofem::ReducedForm.
Referenced by computeTrueStressIndependentStrainVector(), oofem::KelvinChainSolidMaterial::updateYourself(), and oofem::KelvinChainMaterial::updateYourself().
| void oofem::RheoChainMaterial::computeTrueStressIndependentStrainVector | ( | FloatArray & | answer, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep, | ||
| ValueModeType | mode | ||
| ) | [protected] |
Computes, for the given integration point, the strain vector induced by stress-independent internal processes in the material.
Takes into account only temperature and shrinkage-induced strains.
| answer | Returned strain vector. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
| mode | Determines response mode (Total or incremental). |
Definition at line 332 of file rheoChM.C.
References oofem::FloatArray::add(), computeStressIndependentStrainVector(), giveShrinkageStrainVector(), and oofem::ReducedForm.
Referenced by computeStressIndependentStrainVector(), and oofem::MaxwellChainMaterial::updateYourself().
| MaterialStatus * oofem::RheoChainMaterial::CreateStatus | ( | GaussPoint * | gp | ) | const [virtual] |
Creates new copy of associated status and inserts it into given integration point.
| gp | Integration point where newly created status will be stored. |
Reimplemented from oofem::Material.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::MaxwellChainMaterial, and oofem::KelvinChainSolidMaterial.
| void oofem::RheoChainMaterial::generateLogTimeScale | ( | FloatArray & | answer, |
| double | from, | ||
| double | to, | ||
| int | nsteps | ||
| ) | [protected] |
Generates discrete times starting from time "from" to time "to" uniformly distributed in log time scale.
The time interval (to-from) is divided to nsteps intervals. We return times starting from ("from" + first increment)
| answer | Resulting array of discrete times. |
| from | Starting time |
| to | End time |
| nsteps | Number of discrete steps. |
Definition at line 213 of file rheoChM.C.
References oofem::FloatArray::at(), oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by giveDiscreteTimes().
| void oofem::RheoChainMaterial::give1dStressStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing 1d stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to 1d stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix.
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 502 of file rheoChM.C.
References oofem::StructuralMaterial::give1dStressStiffMtrx(), giveEModulus(), giveLinearElasticMaterial(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::give2dBeamLayerStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing 2d beam layer stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to 2d beam layer stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix.
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 516 of file rheoChM.C.
References oofem::StructuralMaterial::give2dBeamLayerStiffMtrx(), giveEModulus(), giveLinearElasticMaterial(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::give2dPlateLayerStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing 2d plate layer stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to 2d plate layer stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix.
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 530 of file rheoChM.C.
References oofem::StructuralMaterial::give2dPlateLayerStiffMtrx(), giveEModulus(), giveLinearElasticMaterial(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::give3dMaterialStiffnessMatrix | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [virtual] |
Computes full 3d material stiffness matrix at given integration point, time, respecting load history in integration point.
| answer | Computed results. |
| form | Material response form. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 460 of file rheoChM.C.
References oofem::StructuralMaterial::give3dMaterialStiffnessMatrix(), giveEModulus(), giveLinearElasticMaterial(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::give3dShellLayerStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing 3d shell layer stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to 3d shell layer stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix.
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 544 of file rheoChM.C.
References oofem::StructuralMaterial::give3dShellLayerStiffMtrx(), giveEModulus(), giveLinearElasticMaterial(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::giveCharacteristicMatrix | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [virtual] |
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.
| answer | Contains result. |
| form | Material response form. |
| mode | Material response mode. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 445 of file rheoChM.C.
References giveEModulus(), giveUnitStiffnessMatrix(), and oofem::FloatMatrix::times().
| double oofem::RheoChainMaterial::giveCharTime | ( | int | i | ) | [protected] |
Access to the characteristic time of a given unit.
Definition at line 375 of file rheoChM.C.
References _error, oofem::FloatArray::at(), charTimes, computeCharTimes(), oofem::FloatArray::isNotEmpty(), and nUnits.
Referenced by oofem::KelvinChainSolidMaterial::computeBetaMu(), oofem::MPSMaterial::computeBetaMu(), oofem::KelvinChainMaterial::computeCharCoefficients(), oofem::MaxwellChainMaterial::computeCharCoefficients(), oofem::B3SolidMaterial::computeCharCoefficients(), oofem::MPSMaterial::computeCharCoefficients(), oofem::KelvinChainSolidMaterial::computeLambdaMu(), oofem::MPSMaterial::computeLambdaMu(), oofem::KelvinChainMaterial::giveEigenStrainVector(), oofem::MaxwellChainMaterial::giveEigenStrainVector(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), oofem::KelvinChainMaterial::updateYourself(), and oofem::MaxwellChainMaterial::updateYourself().
| virtual double oofem::RheoChainMaterial::giveCharTimeExponent | ( | int | i | ) | [inline, protected, virtual] |
Exponent to be used with the char time of a given unit, usually = 1.0.
Definition at line 266 of file rheoChM.h.
Referenced by oofem::MaxwellChainMaterial::computeCharCoefficients(), oofem::MaxwellChainMaterial::giveEigenStrainVector(), oofem::MaxwellChainMaterial::giveEModulus(), and oofem::MaxwellChainMaterial::updateYourself().
| virtual classType oofem::RheoChainMaterial::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::MPSMaterial, oofem::B3SolidMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainMaterial, oofem::KelvinChainSolidMaterial, oofem::B3Material, oofem::CebFip78Material, and oofem::DoublePowerLawMaterial.
Definition at line 158 of file rheoChM.h.
References oofem::RheoChainMaterialClass.
| virtual const char* oofem::RheoChainMaterial::giveClassName | ( | ) | const [inline, virtual] |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainMaterial, oofem::KelvinChainSolidMaterial, oofem::B3Material, oofem::CebFip78Material, and oofem::DoublePowerLawMaterial.
| const FloatArray & oofem::RheoChainMaterial::giveDiscreteTimes | ( | ) | [protected] |
Definition at line 226 of file rheoChM.C.
References begOfTimeOfInterest, discreteTimeScale, generateLogTimeScale(), giveEndOfTimeOfInterest(), oofem::FloatArray::isNotEmpty(), and MNC_NPOINTS.
Referenced by oofem::KelvinChainMaterial::computeCharCoefficients(), oofem::MaxwellChainMaterial::computeCharCoefficients(), oofem::B3SolidMaterial::computeCharCoefficients(), oofem::KelvinChainMaterial::initializeFrom(), and initializeFrom().
| virtual void oofem::RheoChainMaterial::giveEigenStrainVector | ( | FloatArray & | answer, |
| MatResponseForm | form, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep, | ||
| ValueModeType | mode | ||
| ) | [inline, virtual] |
Computes, for the given integration point, the strain vector induced by the stress history (typically creep strain).
| answer | Computed strains. |
| form | Material response form. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is the current time step). |
| mode | Determines response mode. |
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::MaxwellChainMaterial, and oofem::KelvinChainSolidMaterial.
Definition at line 199 of file rheoChM.h.
Referenced by computeStressIndependentStrainVector().
| virtual double oofem::RheoChainMaterial::giveEModulus | ( | GaussPoint * | gp, |
| TimeStep * | atTime | ||
| ) | [inline, virtual] |
Evaluation of the incremental modulus.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainMaterial, and oofem::KelvinChainSolidMaterial.
Definition at line 146 of file rheoChM.h.
Referenced by give1dStressStiffMtrx(), give2dBeamLayerStiffMtrx(), give2dPlateLayerStiffMtrx(), give3dMaterialStiffnessMatrix(), give3dShellLayerStiffMtrx(), giveCharacteristicMatrix(), givePlaneStrainStiffMtrx(), givePlaneStressStiffMtrx(), and giveRealStressVector().
| double oofem::RheoChainMaterial::giveEndOfTimeOfInterest | ( | ) | [protected] |
Access to the time up to which the response should be accurate.
Definition at line 600 of file rheoChM.C.
References endOfTimeOfInterest, oofem::FEMComponent::giveDomain(), oofem::EngngModel::giveEndOfTimeOfInterest(), oofem::Domain::giveEngngModel(), and timeFactor.
Referenced by oofem::B3SolidMaterial::computeCharTimes(), oofem::MPSMaterial::computeCharTimes(), computeCharTimes(), and giveDiscreteTimes().
| double oofem::RheoChainMaterial::giveEparModulus | ( | int | iChain | ) | [protected] |
Access to partial modulus of a given unit.
Definition at line 291 of file rheoChM.C.
References oofem::FloatArray::at(), and EparVal.
Referenced by oofem::KelvinChainSolidMaterial::giveEigenStrainVector(), oofem::KelvinChainSolidMaterial::giveEModulus(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), oofem::KelvinChainMaterial::updateYourself(), and oofem::MaxwellChainMaterial::updateYourself().
| LinearElasticMaterial * oofem::RheoChainMaterial::giveLinearElasticMaterial | ( | ) | [protected] |
Access to the underlying linear elastic material with unit Young's modulus.
Reimplemented in oofem::MaxwellChainMaterial, oofem::KelvinChainSolidMaterial, and oofem::KelvinChainMaterial.
Definition at line 588 of file rheoChM.C.
References oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), linearElasticMaterial, and nu.
Referenced by give1dStressStiffMtrx(), give2dBeamLayerStiffMtrx(), give2dPlateLayerStiffMtrx(), give3dMaterialStiffnessMatrix(), give3dShellLayerStiffMtrx(), givePlaneStrainStiffMtrx(), givePlaneStressStiffMtrx(), giveUnitComplianceMatrix(), giveUnitStiffnessMatrix(), restoreIPContext(), and saveIPContext().
| void oofem::RheoChainMaterial::givePlaneStrainStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing plane strain stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to plane strain stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix. Note: as already described, if zero strain component is imposed (Plane strain, ..) this condition must be taken into account in geometrical relations, and corresponding component has to be included in reduced vector. (So plane strain conditions are
, but relations for
and
are included).
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 488 of file rheoChM.C.
References giveEModulus(), giveLinearElasticMaterial(), oofem::StructuralMaterial::givePlaneStrainStiffMtrx(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::givePlaneStressStiffMtrx | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| MatResponseMode | mmode, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected, virtual] |
Method for computing plane stress stiffness matrix of receiver.
Default implementation computes 3d stiffness matrix using give3dMaterialStiffnessMatrix and reduces it to plane stress stiffness using reduce method described above. However, this reduction is quite time consuming and if it is possible, it is recommended to overload this method and provide direct method for computing particular stiffness matrix.
| answer | Stiffness matrix. |
| form | Material response form. |
| mmode | Material response mode. |
| gp | Integration point, which load history is used. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Definition at line 475 of file rheoChM.C.
References giveEModulus(), giveLinearElasticMaterial(), oofem::StructuralMaterial::givePlaneStressStiffMtrx(), and oofem::FloatMatrix::times().
| void oofem::RheoChainMaterial::giveRealStressVector | ( | FloatArray & | answer, |
| MatResponseForm | form, | ||
| GaussPoint * | gp, | ||
| const FloatArray & | reducedStrain, | ||
| TimeStep * | tStep | ||
| ) | [virtual] |
Computes the real stress vector for given total strain and integration point.
The total strain is defined as strain computed directly from displacement field at given time. The stress independent parts (temperature, eigenstrains) are subtracted in constitutive driver. 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. |
| form | Material response form. |
| gp | Integration point. |
| reducedStrain | Strain vector in reduced form. |
| tStep | Current time step (most models are able to respond only when atTime is current time step). |
Implements oofem::StructuralMaterial.
Definition at line 86 of file rheoChM.C.
References oofem::FloatArray::add(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::beProductOf(), oofem::GaussPoint::giveCrossSection(), giveEModulus(), oofem::StructuralMaterial::giveFullCharacteristicVector(), giveShrinkageStrainVector(), oofem::FloatArray::giveSize(), oofem::Material::giveStatus(), oofem::StructuralMaterialStatus::giveStrainVector(), oofem::StructuralMaterial::giveStressDependentPartOfStrainVector(), oofem::StructuralMaterialStatus::giveStressVector(), giveUnitStiffnessMatrix(), hasIncrementalShrinkageFormulation(), oofem::Material::initGpForNewStep(), oofem::Material::initTempStatus(), oofem::StructuralMaterialStatus::letTempStrainVectorBe(), oofem::StructuralMaterialStatus::letTempStressVectorBe(), oofem::ReducedForm, oofem::FloatArray::resize(), oofem::RheoChainMaterialStatus::setShrinkageStrainVector(), and oofem::FloatArray::times().
| virtual void oofem::RheoChainMaterial::giveShrinkageStrainVector | ( | FloatArray & | answer, |
| MatResponseForm | form, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep, | ||
| ValueModeType | mode | ||
| ) | [inline, virtual] |
Computes, for the given integration point, the strain vector induced by stress-independent shrinkage.
| answer | Returned strain vector. |
| form | Material response form. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when tStep is current time step). |
| mode | Determines response mode (Total or incremental). |
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainSolidMaterial, and oofem::B3Material.
Definition at line 182 of file rheoChM.h.
References oofem::FloatArray::resize().
Referenced by computeTrueStressIndependentStrainVector(), and giveRealStressVector().
| virtual void oofem::RheoChainMaterial::giveThermalDilatationVector | ( | FloatArray & | answer, |
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [inline, virtual] |
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local) axis.
| answer | Vector of thermal dilatation coefficients. |
| gp | Integration point. |
| tStep | Time step (most models are able to respond only when atTime is current time step). |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, and oofem::B3Material.
Definition at line 142 of file rheoChM.h.
References oofem::FloatArray::resize().
| void oofem::RheoChainMaterial::giveUnitComplianceMatrix | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected] |
Evaluation of elastic compliance matrix for unit Young's modulus.
Definition at line 272 of file rheoChM.C.
References oofem::GaussPoint::giveCrossSection(), and giveLinearElasticMaterial().
Referenced by oofem::KelvinChainSolidMaterial::giveEigenStrainVector(), oofem::MaxwellChainMaterial::giveEigenStrainVector(), oofem::B3SolidMaterial::giveEigenStrainVector(), and oofem::MPSMaterial::giveEigenStrainVector().
| void oofem::RheoChainMaterial::giveUnitStiffnessMatrix | ( | FloatMatrix & | answer, |
| MatResponseForm | form, | ||
| GaussPoint * | gp, | ||
| TimeStep * | tStep | ||
| ) | [protected] |
Evaluation of elastic stiffness matrix for unit Young's modulus.
Definition at line 247 of file rheoChM.C.
References oofem::GaussPoint::giveCrossSection(), and giveLinearElasticMaterial().
Referenced by giveCharacteristicMatrix(), giveRealStressVector(), oofem::KelvinChainSolidMaterial::updateYourself(), and oofem::MaxwellChainMaterial::updateYourself().
| virtual int oofem::RheoChainMaterial::hasIncrementalShrinkageFormulation | ( | ) | [inline, protected, virtual] |
If only incremental shrinkage strain formulation is provided, then total shrinkage strain must be tracked in status in order to be able to compute total value.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainSolidMaterial, and oofem::B3Material.
Definition at line 209 of file rheoChM.h.
Referenced by giveRealStressVector().
| int oofem::RheoChainMaterial::hasMaterialModeCapability | ( | MaterialMode | mode | ) | [virtual] |
Tests if material supports material mode.
| mode | Required material mode. |
Reimplemented from oofem::StructuralMaterial.
| virtual int oofem::RheoChainMaterial::hasNonLinearBehaviour | ( | ) | [inline, virtual] |
Returns nonzero if receiver is non linear.
Reimplemented from oofem::Material.
Reimplemented in oofem::MaxwellChainMaterial, oofem::KelvinChainMaterial, and oofem::KelvinChainSolidMaterial.
| IRResultType oofem::RheoChainMaterial::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::MPSMaterial, oofem::B3SolidMaterial, oofem::KelvinChainMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainSolidMaterial, oofem::B3Material, oofem::CebFip78Material, and oofem::DoublePowerLawMaterial.
Definition at line 568 of file rheoChM.C.
References begOfTimeOfInterest, computeCharTimes(), endOfTimeOfInterest, giveDiscreteTimes(), oofem::IFT_RheoChainMaterial_begoftimeofinterest, oofem::IFT_RheoChainMaterial_endoftimeofinterest, oofem::IFT_RheoChainMaterial_n, oofem::IFT_RheoChainMaterial_relmatage, oofem::IFT_RheoChainMaterial_timefactor, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, nu, relMatAge, and timeFactor.
| contextIOResultType oofem::RheoChainMaterial::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 636 of file rheoChM.C.
References oofem::CIO_OK, giveLinearElasticMaterial(), oofem::Material::restoreIPContext(), and THROW_CIOERR.
| contextIOResultType oofem::RheoChainMaterial::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 612 of file rheoChM.C.
References _error, oofem::CIO_OK, giveLinearElasticMaterial(), oofem::Material::saveIPContext(), and THROW_CIOERR.
| void oofem::RheoChainMaterial::updateEparModuli | ( | GaussPoint * | gp, |
| double | atTime | ||
| ) | [protected] |
Update of partial moduli of individual chain units.
Definition at line 301 of file rheoChM.C.
References computeCharCoefficients(), EparVal, EparValTime, and TIME_DIFF.
Referenced by oofem::KelvinChainSolidMaterial::giveEModulus(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), oofem::B3SolidMaterial::giveEModulus(), oofem::MPSMaterial::giveEModulus(), and oofem::MaxwellChainMaterial::updateYourself().
| virtual void oofem::RheoChainMaterial::updateYourself | ( | GaussPoint * | gp, |
| TimeStep * | tStep | ||
| ) | [inline, virtual] |
Update of MatStatus to the newly reached (equilibrium) state.
Reimplemented from oofem::Material.
Reimplemented in oofem::MPSMaterial, oofem::B3SolidMaterial, oofem::MaxwellChainMaterial, oofem::KelvinChainMaterial, and oofem::KelvinChainSolidMaterial.
double oofem::RheoChainMaterial::begOfTimeOfInterest [protected] |
Time from which the model should give a good approximation. Optional field. Default value is 0.1 [day].
Definition at line 109 of file rheoChM.h.
Referenced by oofem::B3SolidMaterial::computeCharTimes(), oofem::MPSMaterial::computeCharTimes(), computeCharTimes(), giveDiscreteTimes(), and initializeFrom().
FloatArray oofem::RheoChainMaterial::charTimes [protected] |
Characteristic times of individual units (relaxation or retardation times).
Definition at line 118 of file rheoChM.h.
Referenced by oofem::B3SolidMaterial::computeCharCoefficients(), oofem::MPSMaterial::computeCharCoefficients(), oofem::B3SolidMaterial::computeCharTimes(), oofem::MPSMaterial::computeCharTimes(), computeCharTimes(), and giveCharTime().
Times at which the errors are evaluated if the least-square method is used.
Definition at line 120 of file rheoChM.h.
Referenced by giveDiscreteTimes().
double oofem::RheoChainMaterial::endOfTimeOfInterest [protected] |
Time (age???) up to which the model should give a good approximation.
Definition at line 111 of file rheoChM.h.
Referenced by oofem::B3SolidMaterial::computeCharTimes(), oofem::MPSMaterial::computeCharTimes(), giveEndOfTimeOfInterest(), and initializeFrom().
FloatArray oofem::RheoChainMaterial::EparVal [protected] |
Partial moduli of individual units.
Definition at line 115 of file rheoChM.h.
Referenced by oofem::KelvinChainSolidMaterial::giveEModulus(), oofem::KelvinChainMaterial::giveEModulus(), oofem::B3SolidMaterial::giveEModulus(), oofem::MPSMaterial::giveEModulus(), giveEparModulus(), and updateEparModuli().
double oofem::RheoChainMaterial::EparValTime [protected] |
Time for which the partial moduli of individual units have been evaluated.
Definition at line 106 of file rheoChM.h.
Referenced by RheoChainMaterial(), and updateEparModuli().
Associated linearElasticMaterial, with E = 1.
Definition at line 113 of file rheoChM.h.
Referenced by giveLinearElasticMaterial(), RheoChainMaterial(), and ~RheoChainMaterial().
double oofem::RheoChainMaterial::nu [protected] |
Poisson's ratio (assumed to be constant, unaffected by creep).
Definition at line 104 of file rheoChM.h.
Referenced by giveLinearElasticMaterial(), and initializeFrom().
int oofem::RheoChainMaterial::nUnits [protected] |
Number of (Maxwell or Kelvin) units in the rheologic chain.
Definition at line 100 of file rheoChM.h.
Referenced by oofem::KelvinChainMaterial::computeCharCoefficients(), oofem::MaxwellChainMaterial::computeCharCoefficients(), oofem::B3SolidMaterial::computeCharCoefficients(), oofem::MPSMaterial::computeCharCoefficients(), oofem::B3SolidMaterial::computeCharTimes(), oofem::MPSMaterial::computeCharTimes(), computeCharTimes(), giveCharTime(), oofem::KelvinChainSolidMaterial::giveEigenStrainVector(), oofem::KelvinChainMaterial::giveEigenStrainVector(), oofem::MaxwellChainMaterial::giveEigenStrainVector(), oofem::KelvinChainSolidMaterial::giveEModulus(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), RheoChainMaterial(), oofem::KelvinChainSolidMaterial::updateYourself(), oofem::KelvinChainMaterial::updateYourself(), and oofem::MaxwellChainMaterial::updateYourself().
double oofem::RheoChainMaterial::relMatAge [protected] |
Physical age of the material at simulation time = 0.
Definition at line 102 of file rheoChM.h.
Referenced by computeCharTimes(), oofem::MPSMaterial::computeEquivalentTime(), oofem::B3SolidMaterial::computeFlowTermViscosity(), oofem::MPSMaterial::computeFlowTermViscosity(), oofem::B3Material::computeShrinkageStrainVector(), oofem::B3SolidMaterial::computeShrinkageStrainVector(), oofem::B3SolidMaterial::computeSolidifiedVolume(), oofem::MPSMaterial::computeSolidifiedVolume(), oofem::B3Material::computeTotalAverageShrinkageStrainVector(), oofem::B3SolidMaterial::computeTotalAverageShrinkageStrainVector(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), oofem::B3SolidMaterial::giveEModulus(), initializeFrom(), RheoChainMaterial(), and oofem::MaxwellChainMaterial::updateYourself().
double oofem::RheoChainMaterial::timeFactor [protected] |
Scaling factor transforming the simulation time units into days (gives the number of simulation time units in one day, e.g.
86400 if the simulation works with seconds as the time units)
Definition at line 127 of file rheoChM.h.
Referenced by oofem::KelvinChainSolidMaterial::computeBetaMu(), oofem::B3SolidMaterial::computeFlowTermViscosity(), oofem::KelvinChainSolidMaterial::computeLambdaMu(), oofem::B3SolidMaterial::computeMicroPrestress(), oofem::B3Material::computeShrinkageStrainVector(), oofem::B3SolidMaterial::computeShrinkageStrainVector(), oofem::B3SolidMaterial::computeSolidifiedVolume(), oofem::B3Material::computeTotalAverageShrinkageStrainVector(), oofem::B3SolidMaterial::computeTotalAverageShrinkageStrainVector(), oofem::KelvinChainMaterial::giveEigenStrainVector(), oofem::MaxwellChainMaterial::giveEigenStrainVector(), oofem::B3SolidMaterial::giveEigenStrainVector(), oofem::KelvinChainMaterial::giveEModulus(), oofem::MaxwellChainMaterial::giveEModulus(), oofem::B3SolidMaterial::giveEModulus(), giveEndOfTimeOfInterest(), initializeFrom(), oofem::KelvinChainMaterial::updateYourself(), and oofem::MaxwellChainMaterial::updateYourself().