46#define _IFT_DustMaterial_Name "dustmat"
47#define _IFT_DustMaterial_alpha "alpha"
48#define _IFT_DustMaterial_beta "beta"
49#define _IFT_DustMaterial_lambda "lambda"
50#define _IFT_DustMaterial_theta "theta"
51#define _IFT_DustMaterial_ft "ft"
52#define _IFT_DustMaterial_hardeningType "hardeningtype"
53#define _IFT_DustMaterial_mStiff "mstiff"
54#define _IFT_DustMaterial_rEll "rell"
55#define _IFT_DustMaterial_x0 "x0"
56#define _IFT_DustMaterial_newtonTol "newtontol"
57#define _IFT_DustMaterial_newtonIter "newtoniter"
58#define _IFT_DustMaterial_wHard "whard"
59#define _IFT_DustMaterial_dHard "dhard"
290 double functionFc(
double rho,
double i1,
double q)
const;
328 void solveQ0(
double &answer)
const;
375 double functionH(
double q,
double tempQ)
const;
390 double functionI1(
double q,
double tempQ,
double i1,
double bulkModulus)
const;
397 double functionI1DQ(
double tempQ,
double bulkModulus)
const;
426 double computeDeltaGamma2(
double tempQ,
double q,
double i1,
double bulkModulus)
const;
444 double fTempR2(
double tempQ,
double q,
double i1,
double rho,
double bulkModulus,
double shearModulus)
const;
467 return LEMaterial.giveThermalDilatationVector(gp, tStep);
void letTempQBe(double v)
double shearModulus
Current shear modulus.
double giveVolumetricPlasticStrain() const
const FloatArrayF< 6 > & giveTempPlasticStrain() const
FloatArrayF< 6 > plasticStrain
Plastic strain.
stateFlagValues
Values of history variable stateFlag.
void saveContext(DataStream &stream, ContextMode mode) override
void letPlasticStrainBe(const FloatArrayF< 6 > &v)
void letTempPlasticStrainBe(const FloatArray &v)
void restoreContext(DataStream &stream, ContextMode mode) override
const FloatArrayF< 6 > & givePlasticStrain() const
void setYoungsModulus(double v)
int giveStateFlag() const
int giveTempStateFlag() const
double q
Hardening parameter q.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
double giveBulkModulus() const
void setShearModulus(double v)
double youngsModulus
Current Young's modulus.
void updateYourself(TimeStep *tStep) override
double bulkModulus
Current bulk modulus.
FloatArrayF< 6 > tempPlasticStrain
double giveYoungsModulus() const
void initTempStatus() override
DustMaterialStatus(GaussPoint *gp, double q0)
Constructor.
void setBulkModulus(double v)
double giveShearModulus() const
void letTempStateFlagBe(int v)
int stateFlag
Indicates the state (i.e. elastic, yielding, unloading) of the Gauss point.
const char * giveClassName() const override
void solveQ0(double &answer) const
double functionFe(double i1) const
int setIPValue(const FloatArray &value, GaussPoint *gp, InternalStateType type) override
DustMaterial(int n, Domain *d)
Constructor.
double newtonTol
Tollerance for iterative methods.
double yieldFunction2(double rho, double i1, double q) const
double x0
Parameter determining shape of yield surface (param X0 in original publication).
double functionI1DQ(double tempQ, double bulkModulus) const
double functionX(double q) const
double computeDeltaGamma2(double tempQ, double q, double i1, double bulkModulus) const
bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) const override
double yieldFunction1(double rho, double i1) const
double dHard
Parameter determining hardening law (parameter D in original publication).
int hardeningType
Parameter determining hardening type.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double alpha
Parameter determining shape of yield surface.
FloatArrayF< 6 > computePlastStrainDirM1(const FloatArrayF< 6 > &stressDeviator, double rho, double i1, double q) const
void performStressReturn(GaussPoint *gp, const FloatArrayF< 6 > &strain) const
const char * giveInputRecordName() const override
void performF2return(double i1, double rho, GaussPoint *gp) const
double theta
Parameter determining shape of yield surface.
double q0
Parameter determining shape of yield surface.
double functionHDQ(double tempQ) const
double beta
Parameter determining shape of yield surface.
double wHard
Parameter determining hardening law (parameter W in original publication).
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double rEll
Parameter determining shape of yield surface (param R in original publication).
double functionH(double q, double tempQ) const
double functionI1(double q, double tempQ, double i1, double bulkModulus) const
void computeQFromPlastVolEps(double &answer, double q, double deltaVolumetricPlasticStrain) const
double functionFeDI1(double i1) const
int newtonIter
Maximum number of iterations for iterative methods.
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
double fTempR2(double tempQ, double q, double i1, double rho, double bulkModulus, double shearModulus) const
void initializeFrom(InputRecord &ir) override
double mStiff
Parameter increasing stiffness (parameter M in original publication).
IsotropicLinearElasticMaterial LEMaterial
Pointer for linear elastic material.
double lambda
Parameter determining shape of yield surface.
double computeDeltaGamma2DQ(double tempQ, double q, double i1, double bulkModulus) const
double ft
Parameter determining shape of yield surface (param T in original publication).
FloatArrayF< 6 > computePlastStrainDirM2(const FloatArrayF< 6 > &stressDeviator, double rho, double i1, double q) const
double functionXDQ(double q) const
FloatArrayF< 6 > computePlastStrainDirM3(const FloatArrayF< 6 > &stressDeviator, double rho, double i1, double q) const
double functionFc(double rho, double i1, double q) const
void computeAndSetBulkAndShearModuli(double &bulkModulus, double &shearModulus, GaussPoint *gp) const
const char * giveClassName() const override
double yieldFunction3(double i1) const
FloatArrayF< 6 > giveThermalDilatationVector(GaussPoint *gp, TimeStep *tStep) const override
void performF1return(double i1, double rho, GaussPoint *gp) const
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
double functionFeDI1DI1(double i1) const
GaussPoint * gp
Associated integration point.
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
#define _IFT_DustMaterial_Name