38 #include "../sm/Materials/structuralmaterial.h" 39 #include "../sm/Materials/structuralms.h" 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" 71 class RankineMatStatus;
233 #ifdef keep_track_of_dissipated_energy 293 virtual void updateYourself(
TimeStep *tStep);
298 #ifdef keep_track_of_dissipated_energy 299 double giveStressWork() {
return stressWork; }
318 void computeWork_PlaneStress(
GaussPoint *gp,
double gf);
319 void computeWork_1d(
GaussPoint *gp,
double gf);
325 #endif // rankinemat_h
FloatArray plasticStrain
Plastic strain (initial).
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
This class implements an isotropic elastoplastic material with Rankine yield condition, associated flow rule and linear isotropic softening, and with isotropic damage that leads to softening.
virtual void giveRealStressVector_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducesStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
double tempKappa
Cumulative plastic strain (final).
const FloatArray & giveEffectiveStress() const
double tanG
Tangent shear stiffness (needed for tangent matrix).
int damlaw
type of damage law (0=exponential, 1=exponential and damage starts after peak stress sig0) ...
double giveTempCumulativePlasticStrain()
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double damage
Damage (initial).
void evaluatePlaneStressStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep, double gprime)
Executive method used by local and gradient version.
double sig0
Initial (uniaxial) yield stress.
const FloatArray & giveTempEffectiveStress() const
This class implements a structural material status information.
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
void setDKappa(double val1, double val2)
double yieldtol
Relative tolerance in yield condition.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
LinearElasticMaterial * giveLinearElasticMaterial()
Returns a reference to the basic elastic material.
double evalYieldStress(const double kappa)
MaterialMode
Type representing material mode of integration point.
MatResponseMode
Describes the character of characteristic material matrix.
double giveTangentShearStiffness()
double a
Parameter that controls damage evolution (a=0 turns damage off).
double ep
Total strain at peak stress sig0–Used only if plasthardtype=2.
This class is a abstract base class for all linear elastic material models in a finite element proble...
void setTempDissWork(double w)
Sets the density of dissipated work to given value.
double delSigY
Final increment of yield stress (at infinite cumulative plastic strain)
FloatArray effStress
Effective stress (initial).
double giveTempDissWork()
Returns the density of temp dissipated work.
void setTempCumulativePlasticStrain(double value)
virtual int hasNonLinearBehaviour()
Returns nonzero if receiver is non linear.
void letEffectiveStressBe(FloatArray values)
const FloatArray & givePlasticStrain() const
const FloatArray & givePlasDef()
virtual const char * giveInputRecordName() const
double computeDamage(GaussPoint *gp, TimeStep *tStep)
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
virtual int hasMaterialModeCapability(MaterialMode mode)
Tests if material supports material mode.
double param3
coefficient required when damlaw=2
#define _IFT_RankineMat_Name
double giveCumulativePlasticStrain()
Abstract base class representing a material status information.
Class representing vector of real numbers.
void setTempDamage(double value)
Implementation of matrix containing floating point numbers.
void performPlasticityReturn(GaussPoint *gp, const FloatArray &totalStrain)
double param1
coefficient required when damlaw=1 or 2
IRResultType
Type defining the return values of InputRecord reading operations.
int plasthardtype
Type of plastic hardening (0=linear, 1=exponential)
virtual void givePlaneStressStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Method for computing plane stress stiffness matrix of receiver.
double tempStressWork
Non-equilibrated density of total work done by stresses on strain increments.
virtual void give1dStressStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Method for computing 1d stiffness matrix of receiver.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
double param4
coefficient required when damlaw=2
FloatArray tempEffStress
Effective stress (final).
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
LinearElasticMaterial * linearElasticMaterial
Reference to the basic elastic material.
double md
Exponent in hardening law–Used only if plasthardtype=2.
double computeDamageParamPrime(double tempKappa)
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double E
Young's modulus.
double evalYieldFunction(const FloatArray &sigPrinc, const double kappa)
Abstract base class for all "structural" constitutive models.
void setTangentShearStiffness(double value)
double kappa
Cumulative plastic strain (initial).
FloatArray tempPlasticStrain
Plastic strain (final).
virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &totalStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
double computeDamageParam(double tempKappa)
double dissWork
Density of dissipated work.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual const char * giveClassName() const
double param2
coefficient required when damlaw=1 or 2
void letTempPlasticStrainBe(FloatArray values)
virtual void computeCumPlastStrain(double &kappa, GaussPoint *gp, TimeStep *tStep)
RankineMat(int n, Domain *d)
the oofem namespace is to define a context or scope in which all oofem names are defined.
double param5
coefficient required when damlaw=2
virtual void initTempStatus(GaussPoint *gp)
Initializes temporary variables stored in integration point status at the beginning of new time step...
void computeEta(FloatArray &answer, RankineMatStatus *status)
Computes derivatives of final kappa with respect to final strain.
double evalPlasticModulus(const double kappa)
double nu
Poisson's ratio.
void setTempStressWork(double w)
Sets the density of total work of stress on strain increments to given value.
void letTempEffectiveStressBe(FloatArray values)
virtual const char * giveClassName() const
double H0
Initial hardening modulus.
Class representing integration point in finite element program.
double giveTempStressWork()
Returns the temp density of total work of stress on strain increments.
Class representing solution step.
double tempDamage
Damage (final).
double tempDissWork
Non-equilibrated density of dissipated work.
double giveDissWork()
Returns the density of dissipated work.