48#define keep_track_of_dissipated_energy
53#define _IFT_RankineMat_Name "rankmat"
54#define _IFT_RankineMat_sig0 "sig0"
55#define _IFT_RankineMat_h "h"
56#define _IFT_RankineMat_a "a"
57#define _IFT_RankineMat_plasthardtype "plasthardtype"
58#define _IFT_RankineMat_delsigy "delsigy"
59#define _IFT_RankineMat_yieldtol "yieldtol"
60#define _IFT_RankineMat_gf "gf"
61#define _IFT_RankineMat_ep "ep"
62#define _IFT_RankineMat_damlaw "damlaw"
63#define _IFT_RankineMat_param1 "param1"
64#define _IFT_RankineMat_param2 "param2"
65#define _IFT_RankineMat_param3 "param3"
66#define _IFT_RankineMat_param4 "param4"
67#define _IFT_RankineMat_param5 "param5"
71class RankineMatStatus;
179 TimeStep *tStep,
double gprime)
const;
227#ifdef keep_track_of_dissipated_energy
291#ifdef keep_track_of_dissipated_energy
GaussPoint * gp
Associated integration point.
void computeWork_PlaneStress(GaussPoint *gp, double gf)
FloatArray tempEffStress
Effective stress (final).
void initTempStatus() override
double giveTempDamage() const
double tempStressWork
Non-equilibrated density of total work done by stresses on strain increments.
FloatArray tempPlasticStrain
Plastic strain (final).
double giveStressWork()
Returns the density of total work of stress on strain increments.
void setTangentShearStiffness(double value)
void saveContext(DataStream &stream, ContextMode mode) override
void setTempDissWork(double w)
Sets the density of dissipated work to given value.
FloatArray plasticStrain
Plastic strain (initial).
double giveDamage() const
void setTempDamage(double value)
void letEffectiveStressBe(FloatArray values)
double tempKappa
Cumulative plastic strain (final).
double giveTempCumulativePlasticStrain() const
const char * giveClassName() const override
void updateYourself(TimeStep *tStep) override
void setTempStressWork(double w)
Sets the density of total work of stress on strain increments to given value.
double giveTempDissWork()
Returns the density of temp dissipated work.
const FloatArray & giveTempEffectiveStress() const
double giveTangentShearStiffness()
const FloatArray & givePlasticStrain() const
double tempDamage
Damage (final).
const FloatArray & givePlasDef()
double giveDKappa(int i) const
double tempDissWork
Non-equilibrated density of dissipated work.
const FloatArray & giveEffectiveStress() const
void letTempEffectiveStressBe(FloatArray values)
double giveTempStressWork()
Returns the temp density of total work of stress on strain increments.
void setTempCumulativePlasticStrain(double value)
double stressWork
Density of total work done by stresses on strain increments.
void letTempPlasticStrainBe(FloatArray values)
double kappa
Cumulative plastic strain (initial).
double giveCumulativePlasticStrain() const
double damage
Damage (initial).
RankineMatStatus(GaussPoint *g)
double giveDissWork()
Returns the density of dissipated work.
void computeWork_1d(GaussPoint *gp, double gf)
void setDKappa(double val1, double val2)
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void restoreContext(DataStream &stream, ContextMode mode) override
FloatArray effStress
Effective stress (initial).
double tanG
Tangent shear stiffness (needed for tangent matrix).
double dissWork
Density of dissipated work.
void initializeFrom(InputRecord &ir) override
virtual double computeCumPlastStrain(GaussPoint *gp, TimeStep *tStep) const
LinearElasticMaterial * giveLinearElasticMaterial()
Returns a reference to the basic elastic material.
double param3
coefficient required when damlaw=2
double a
Parameter that controls damage evolution (a=0 turns damage off).
double H0
Initial hardening modulus.
double evalYieldStress(const double kappa) const
double computeDamage(GaussPoint *gp, TimeStep *tStep) const
double md
Exponent in hardening law–Used only if plasthardtype=2.
LinearElasticMaterial * linearElasticMaterial
Reference to the basic elastic material.
double computeDamageParamPrime(double tempKappa) const
double param1
coefficient required when damlaw=1 or 2
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double ep
Total strain at peak stress sig0–Used only if plasthardtype=2.
FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double yieldtol
Relative tolerance in yield condition.
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double delSigY
Final increment of yield stress (at infinite cumulative plastic strain).
double evalPlasticModulus(const double kappa) const
FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &reducesStrain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
int damlaw
type of damage law (0=exponential, 1=exponential and damage starts after peak stress sig0)
double param5
coefficient required when damlaw=2
int plasthardtype
Type of plastic hardening (0=linear, 1=exponential).
const char * giveClassName() const override
RankineMat(int n, Domain *d)
bool hasMaterialModeCapability(MaterialMode mode) const override
double evalYieldFunction(const FloatArray &sigPrinc, const double kappa) const
FloatArrayF< 1 > giveRealStressVector_1d(const FloatArrayF< 1 > &totalStrain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
FloatMatrixF< 3, 3 > evaluatePlaneStressStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep, double gprime) const
double sig0
Initial (uniaxial) yield stress.
const char * giveInputRecordName() const override
double param4
coefficient required when damlaw=2
void computeEta(FloatArray &answer, RankineMatStatus *status)
Computes derivatives of final kappa with respect to final strain.
FloatMatrixF< 1, 1 > give1dStressStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double param2
coefficient required when damlaw=1 or 2
double nu
Poisson's ratio.
bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) const override
double computeDamageParam(double tempKappa) const
void performPlasticityReturn(GaussPoint *gp, const FloatArray &totalStrain) const
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
#define _IFT_RankineMat_Name