35#ifndef latticeplasticitydamage_h
36#define latticeplasticitydamage_h
43#define _IFT_LatticePlasticityDamage_Name "latticeplastdam"
44#define _IFT_LatticePlasticityDamage_tol "tol"
45#define _IFT_LatticePlasticityDamage_iter "iter"
46#define _IFT_LatticePlasticityDamage_sub "sub"
47#define _IFT_LatticePlasticityDamage_ft "ft"
48#define _IFT_LatticePlasticityDamage_fc "fc"
49#define _IFT_LatticePlasticityDamage_angle1 "angle1"
50#define _IFT_LatticePlasticityDamage_angle2 "angle2"
51#define _IFT_LatticePlasticityDamage_flow "flow"
52#define _IFT_LatticePlasticityDamage_stype "stype"
53#define _IFT_LatticePlasticityDamage_wf "wf"
54#define _IFT_LatticePlasticityDamage_ft1 "ft1"
55#define _IFT_LatticePlasticityDamage_wf1 "wf1"
56#define _IFT_LatticePlasticityDamage_ahard "ahard"
57#define _IFT_LatticePlasticityDamage_damage "damage"
119 const char *
giveClassName()
const override {
return "LatticePlasticityDamageStatus"; }
195 const char *
giveClassName()
const override {
return "LatticePlasticityDamage"; }
237 const double tempKappa,
LatticeLinearElastic(int n, Domain *d)
LatticeMaterialStatus(GaussPoint *g)
double giveTempKappaDTwo() const
void updateYourself(TimeStep *) override
LatticePlasticityDamageStatus(int n, Domain *d, GaussPoint *g)
Constructor.
void initTempStatus() override
double giveKappaDTwo() const
const char * giveClassName() const override
int giveCompressionFlag() const
void setTempDamage(double newDamage)
void setTempKappaDTwo(double newKappa)
double giveKappaDOne() const
double giveDamage() const
double giveTempKappaDOne() const
double giveTempDamage() const
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
double giveKappaP() const
void restoreContext(DataStream &stream, ContextMode mode) override
void setTempKappaP(double newKappa)
double giveTempKappaP() const
void setTempKappaDOne(double newKappa)
void setCompressionFlag(int flag)
void saveContext(DataStream &stream, ContextMode mode) override
double fc
compressive strength
FloatArrayF< 6 > giveLatticeStress3d(const FloatArrayF< 6 > &jump, GaussPoint *gp, TimeStep *tStep) override
double performRegularReturn(FloatArrayF< 3 > &stress, LatticePlasticityDamage_ReturnResult &returnResult, double yieldValue, GaussPoint *gp, TimeStep *tStep) const
double computeYieldStress(double kappaP, GaussPoint *gp)
double flowAngleTwo
frictional angle of the plastic potential
double computeDDHardeningDDKappa(const double kappa, GaussPoint *gp) const
double computeDHardeningDKappa(const double kappa, GaussPoint *gp) const
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *atTime) override
LatticePlasticityDamage_ReturnResult
double ftOneRatio
ratio of tensile stress value for bilinear stress-crack opening curve
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
bool hasMaterialModeCapability(MaterialMode mode) const override
double flowAngleOne
frictional angle of the plastic potential
double yieldTol
yield tolerance
virtual double giveTensileStrength(GaussPoint *gp, TimeStep *tStep) const
double computeHardening(const double kappa, GaussPoint *gp) const
FloatMatrixF< 4, 4 > computeJacobian(const FloatArrayF< 3 > &sigma, const double tempKappa, const double deltaLambda, GaussPoint *gp, TimeStep *tStep) const
double ft
tensile strength
virtual double giveCompressiveStrength(GaussPoint *gp, TimeStep *tStep) const
virtual double computeDamageParam(double kappaOne, double kappaTwo, GaussPoint *gp, TimeStep *tStep) const
int softeningType
softening type determines the type of softening. 0 is exponential and 1 is bilinear.
double give(int aProperty, GaussPoint *gp) const override
const char * giveClassName() const override
int giveIntVarCompFullIndx(IntArray &answer, InternalStateType type, MaterialMode mmode)
FloatMatrixF< 3, 3 > computeDMMatrix(const FloatArrayF< 3 > &sigma, const double deltaLambda, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArrayF< 6 > giveReducedStrain(GaussPoint *gp, TimeStep *tStep) const
double frictionAngleTwo
frictional angle of the yield surface
InternalStateValueType giveIPValueType(InternalStateType type)
FloatArrayF< 3 > computeMVector(const FloatArrayF< 3 > &sigma, const double deltaLambda, GaussPoint *gp, TimeStep *tStep) const
double aHard
hardening parameter
int numberOfSubIncrements
int giveIPValueSize(InternalStateType type, GaussPoint *gp)
bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) const override
double frictionAngleOne
frictional angle of the yield surface
double computeDuctilityMeasure(FloatArray &stress, double ductilityParameter) const
FloatMatrixF< 6, 6 > give3dLatticeStiffnessMatrix(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
const char * giveInputRecordName() const override
double computeYieldValue(const FloatArrayF< 3 > &sigma, const double tempKappa, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 6 > performPlasticityReturn(GaussPoint *gp, const FloatArrayF< 6 > &reducedStrain, TimeStep *tStep) const
double wf
determines the softening -> corresponds to crack opening (not strain) when tension stress vanishes
FloatArrayF< 3 > computeFVector(const FloatArrayF< 3 > &sigma, const double deltaLambda, GaussPoint *gp, TimeStep *tStep) const
const double computeEquivalentStress(const FloatArray &tempSigma) const
double wfOne
crack opening value for bilinear stress-crack opening curve
int newtonIter
maximum number of iterations for stress return
LatticePlasticityDamage(int n, Domain *d)
Constructor.
void initializeFrom(InputRecord &ir) override
void performDamageEvaluation(GaussPoint *gp, FloatArrayF< 6 > &reducedStrain, TimeStep *tStep) const
double initialYieldStress
#define _IFT_LatticePlasticityDamage_Name
InternalStateValueType
Determines the type of internal variable.