49#define _IFT_ConcreteDPM_Name "concretedpm"
50#define _IFT_ConcreteDPM_fc "fc"
51#define _IFT_ConcreteDPM_ft "ft"
52#define _IFT_ConcreteDPM_ecc "ecc"
53#define _IFT_ConcreteDPM_kinit "kinit"
54#define _IFT_ConcreteDPM_ahard "ahard"
55#define _IFT_ConcreteDPM_bhard "bhard"
56#define _IFT_ConcreteDPM_chard "chard"
57#define _IFT_ConcreteDPM_dhard "dhard"
58#define _IFT_ConcreteDPM_asoft "asoft"
59#define _IFT_ConcreteDPM_dilation "dilation"
60#define _IFT_ConcreteDPM_yieldtol "yieldtol"
61#define _IFT_ConcreteDPM_newtoniter "newtoniter"
62#define _IFT_ConcreteDPM_wf "wf"
63#define _IFT_ConcreteDPM_gf "gf"
64#define _IFT_ConcreteDPM_href "href"
65#define _IFT_ConcreteDPM_helem "helem"
75#define SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT
143#ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT
178 return sqrt(.5 * ( 2. * dev [ 0 ] * dev [ 0 ] + 2. * dev [ 1 ] * dev [ 1 ] + 2. * dev [ 2 ] * dev [ 2 ] +
179 dev [ 3 ] * dev [ 3 ] + dev [ 4 ] * dev [ 4 ] + dev [ 5 ] * dev [ 5 ] ) );
207#ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT
467#ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT
539 double tempKappa)
const;
570 double tempKappa)
const;
584 double tempKappa)
const;
605 double tempKappa)
const;
615 double deltaLambda)
const;
623 double tempKappa)
const;
631 double tempKappa)
const;
639 double tempKappa)
const;
647 double tempKappa)
const;
657 double tempKappa)
const;
666 double tempKappa)
const;
676 double tempKappa)
const;
void saveContext(DataStream &stream, ContextMode mode) override
double giveDeviatoricPlasticStrainNorm()
double giveTempKappaP() const
void letTempPlasticStrainBe(const FloatArrayF< 6 > &v)
void letTempDamageBe(double v)
const char * giveClassName() const override
ConcreteDPMStatus(GaussPoint *gp)
Constructor.
void letDeltaEquivStrainBe(double v)
double giveDamage() const
state_flag_values
Values of history variable state_flag.
@ ConcreteDPM_VertexCompressionDamage
@ ConcreteDPM_VertexTensionDamage
@ ConcreteDPM_PlasticDamage
@ ConcreteDPM_VertexTension
@ ConcreteDPM_VertexCompression
FloatArrayF< 6 > tempPlasticStrain
void letTempKappaDBe(double v)
void letTempVertexTypeBe(const int type)
double giveTempVolumetricPlasticStrain() const
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
double giveKappaD() const
double giveVolumetricPlasticStrain() const
double giveDeltaEquivStrain() const
int setIPValue(const FloatArray &value, InternalStateType type)
double giveKappaP() const
void letEquivStrainBe(double v)
double giveTempKappaD() const
int giveTempVertexType() const
void initTempStatus() override
void letTempEpslocBe(double v)
void letPlasticStrainBe(const FloatArrayF< 6 > &v)
int giveStateFlag() const
const FloatArrayF< 6 > & giveTempPlasticStrain() const
void letTempStateFlagBe(int v)
void letTempKappaPBe(double v)
const FloatArrayF< 6 > & givePlasticStrain() const
void restoreContext(DataStream &stream, ContextMode mode) override
void letTempVolumetricPlasticStrainBe(double v)
double giveEpsLoc() const
double giveEquivStrain() const
void updateYourself(TimeStep *tStep) override
FloatArrayF< 6 > plasticStrain
void letDeltaLambdaBe(double v)
double tempVolumetricPlasticStrain
int giveTempStateFlag() const
void letTempEquivStrainBe(double v)
void letKappaDBe(double v)
double giveTempDamage() const
double kM
Elastic bulk modulus.
void initDamaged(double kappa, const FloatArrayF< 6 > &elasticStrain, GaussPoint *gp) const
ConcreteDPMStatus * giveConcreteDPMStatus(GaussPoint *gp) const
IsotropicLinearElasticMaterial linearElasticMaterial
Linear elastic material.
double mQ
The dilation parameter of the plastic potential.
double ASoft
Parameter of the ductilityMeasure of the damage model.
double computeDDKappaDDeltaLambdaDKappa(double sig, double rho, double theta, double tempKappa) const
const char * giveClassName() const override
std::tuple< double, double, double > computeTrialCoordinates(const FloatArrayF< 6 > &stress, GaussPoint *gp) const
Compute the trial coordinates.
void restoreConsistency(GaussPoint *gp) override
double computeDFDKappa(double sig, double rho, double theta, double tempKappa) const
double yieldTol
Yield tolerance for the plasticity model.
FloatArrayF< 6 > computeDCosThetaDStress(const FloatArrayF< 6 > &stress) const
Computes the derivative of costheta with respect to the stress.
double helem
Element size (to be used in fracture energy approach (crack band).
double computeHardeningOne(double tempKappa) const
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
void checkForVertexCase(double &answer, double sig, double tempKappa, GaussPoint *gp) const
FloatMatrixF< 6, 6 > computeDDRhoDDStress(const FloatArrayF< 6 > &stress) const
Computes the second derivative of rho with the respect to the stress.
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatMatrixF< 3, 3 > computeAMatrix(double sig, double rho, double theta, double tempKappa, double deltaLambda) const
double dilationConst
Control parameter for te volumetric plastic flow of the plastic potential.
FloatArrayF< 6 > computeDRhoDStress(const FloatArrayF< 6 > &stress) const
Computes the derivative of rho with respect to the stress.
void performVertexReturn(FloatArrayF< 6 > &stress, double apexStress, GaussPoint *gp) const
double gM
Elastic shear modulus.
double computeTempKappa(double kappaInitial, double sigTrial, double rhoTrial, double sig) const
FloatArrayF< 2 > computeDDKappaDDeltaLambdaDInv(double sig, double rho, double theta, double tempKappa) const
virtual double computeDuctilityMeasure(double sig, double rho, double theta) const
double computeYieldValue(double sig, double rho, double theta, double tempKappa) const
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double computeDKappaDDeltaLambda(double sig, double rho, double theta, double tempKappa) const
double computeInverseDamage(double dam, GaussPoint *gp) const
Compute the damage-driving variable from given damage.
void restoreContext(DataStream &stream, ContextMode mode) override
void computeDSigDStress(FloatArrayF< 6 > &answer) const
Computes the derivative of sig with respect to the stress.
ConcreteDPM(int n, Domain *d)
Constructor.
void initializeFrom(InputRecord &ir) override
double AHard
Parameter of the ductilityMeasure of the plasticity model.
double computeRatioPotential(double sig, double tempKappa) const
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double nu
Elastic Poisson's ration.
double m
Plastic multiplier of the plasticity model.
double computeDuctilityMeasureDamage(const FloatArrayF< 6 > &strain, GaussPoint *gp) const
Compute the ductility measure for the damage model.
double ef
Hardening variable of plasticity model.
const char * giveInputRecordName() const override
FloatArrayF< 2 > computeDDGDInvDKappa(double sig, double rho, double tempKappa) const
std::pair< double, double > computeDamage(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const
double CHard
Parameter of the ductilityMeasure of the plasticity model.
int newtonIter
Maximum number of iterations for stress return.
double computeDRDCosTheta(double theta, double ecc) const
Compute the derivative of R with respect to costheta.
FloatArrayF< 2 > computeDGDInv(double sig, double rho, double tempKappa) const
FloatArrayF< 2 > computeDDuctilityMeasureDInv(double sig, double rho, double theta, double tempKappa) const
FloatArrayF< 2 > computeDFDInv(double sig, double rho, double theta, double tempKappa) const
int setIPValue(const FloatArray &value, GaussPoint *gp, InternalStateType type) override
double href
Stress and its deviatoric part.
virtual double computeDamageParam(double kappa, GaussPoint *gp) const
Compute damage parameter.
void assignStateFlag(GaussPoint *gp) const
Assign state flag.
double computeHardeningOnePrime(double tempKappa) const
double DHard
Parameter of the ductilityMeasure of the plasticity model.
void performPlasticityReturn(GaussPoint *gp, FloatArrayF< 6 > &strain) const
virtual double computeEquivalentStrain(const FloatArrayF< 6 > &elasticStrain, GaussPoint *gp, TimeStep *tStep) const
Compute equivalent strain value.
double eM
Elastic Young's modulus.
double BHard
Parameter of the ductilityMeasure of the plasticity model.
double yieldHardInitial
Parameter of the hardening law of the plasticity model.
bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) const override
void saveContext(DataStream &stream, ContextMode mode) override
FloatMatrixF< 2, 2 > computeDDGDDInv(double sig, double rho, double tempKappa) const
void performRegularReturn(FloatArrayF< 6 > &stress, GaussPoint *gp, double theta) const
GaussPoint * gp
Associated integration point.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
static FloatArrayF< 6 > computeDeviator(const FloatArrayF< 6 > &s)
#define _IFT_ConcreteDPM_Name