50 #ifndef DruckerPrager_h 51 #define DruckerPrager_h 63 #include <material/nD/NDMaterial.h> 64 #include <utility/matrix/Vector.h> 65 #include <utility/matrix/Matrix.h> 127 int updateElasticParam(
void);
132 double Kiso(
double alpha1);
133 double Kisoprime(
double alpha1);
134 double T(
double alpha2);
135 double deltaH(
double dGamma);
139 const double one3= 1.0 / 3.0 ;
140 const double two3= 2.0 / 3.0 ;
141 const double root23= sqrt(2.0/3.0) ;
144 DruckerPrager(
int tag,
int classTag,
double bulk,
double shear,
145 double s_y,
double r,
double r_bar,
double Kinfinity,
double Kinit,
146 double d1,
double d2,
double H,
double t,
double massDen = 0.0,
double atm = 101.325e3);
158 int revertToLastCommit(
void);
162 const std::string &getType(
void)
const;
163 int getOrder(
void)
const;
175 void Print(std::ostream &,
int flag =0)
const;
182 void setup(
const int &elastFlag= 2);
185 double getRho(
void)
const;
186 void setRho(
const double &r);
220 double getMTo(
void)
const;
221 void setMTo(
const double &);
Vector mState
state vector for output
Definition: DruckerPrager.h:124
Vector mBeta_n1
backstress at step n+1
Definition: DruckerPrager.h:106
Matrix mCep
elastoplastic tangent stiffness matrix
Definition: DruckerPrager.h:119
Matrix mIIdev
4th Order Deviatoric Tensor
Definition: DruckerPrager.h:122
double getKinematicHardeningH(void) const
Kinematic hardening. Get H.
Definition: DruckerPrager.cpp:292
Float vector abstraction.
Definition: Vector.h:94
double mrho_bar
nonassociative flow term (failure surface and associativity)
Definition: DruckerPrager.h:88
double mG
shear modulus
Definition: DruckerPrager.h:85
Matrix mCe
elastic tangent stiffness matrix
Definition: DruckerPrager.h:118
Vector mBeta_n
backstress at step n, beta_np1_trial = beta_n
Definition: DruckerPrager.h:105
void updateMaterialStage(int)
Update material stage.
Definition: DruckerPrager.cpp:913
~DruckerPrager()
Destructor.
Definition: DruckerPrager.cpp:120
double mAlpha1_n
alpha1_n
Definition: DruckerPrager.h:110
void setKinematicHardeningH(const double &)
Kinematic hardening. Set H.
Definition: DruckerPrager.cpp:295
Communication parameters between processes.
Definition: Communicator.h:66
Base class response objects.
Definition: Response.h:81
void setYieldStress(const double &)
set yield stress.
Definition: DruckerPrager.cpp:253
double getYieldStress(void) const
get yield stress.
Definition: DruckerPrager.cpp:249
void setFailureSurfaceRhoBar(const double &)
Failure surface and associativity. Set nonassociative flow term.
Definition: DruckerPrager.cpp:269
void setShearModulus(const double &)
set shear modulus.
Definition: DruckerPrager.cpp:237
int revertToStart(void)
Revert the material to its initial state.
Definition: DruckerPrager.cpp:333
void Print(std::ostream &, int flag=0) const
Print stuff.
Definition: DruckerPrager.cpp:1106
Vector mEpsilon_n_p
plastic strain vector at step n, trail e_p
Definition: DruckerPrager.h:101
double getReferencePressure(void) const
get reference pressure.
Definition: DruckerPrager.cpp:241
double mAlpha1_n1
alpha1_n+1
Definition: DruckerPrager.h:111
double getBulkModulus(void) const
get bulk modulus.
Definition: DruckerPrager.cpp:225
double mPatm
reference stress first invariant (pressure)
Definition: DruckerPrager.h:83
int mElastFlag
Flag to determine elastic behavior 0 = elastic+no param update; 1 = elastic+param update; 2 = elastop...
Definition: DruckerPrager.h:115
double getFailureSurfaceRho(void) const
Failure surface and associativity. Get volumetric term.
Definition: DruckerPrager.cpp:257
int sendSelf(Communicator &)
Send the object.
Definition: DruckerPrager.cpp:970
double getIsotropicHardeningKo(void) const
Isotropic hardening. Get Ko.
Definition: DruckerPrager.cpp:279
int updateParameter(int parameterID, Information &info)
Updates the parameter identified by parameterID with info.
Definition: DruckerPrager.cpp:925
double msigma_y
yield stress
Definition: DruckerPrager.h:86
Drucker-Prager material.
Definition: DruckerPrager.h:76
void setTensionSofteningDelta(const double &)
Set tension softening delta.
Definition: DruckerPrager.cpp:308
double massDen
density
Definition: DruckerPrager.h:97
Vector mI1
2nd Order Identity Tensor
Definition: DruckerPrager.h:120
double getMTo(void) const
Get mTo.
Definition: DruckerPrager.cpp:312
Matrix mIIvol
IIvol = I1 tensor I1.
Definition: DruckerPrager.h:121
const Vector & getInitialGeneralizedStrain(void) const
Return the initial strain.
Definition: DruckerPrager.cpp:378
double mHard
isotropic hardening constant
Definition: DruckerPrager.h:93
double mtheta
isotropic hardening constant
Definition: DruckerPrager.h:94
Vector mEpsilon_n1_p
plastic strain vector at step n+1
Definition: DruckerPrager.h:102
double mKref
reference Bulk Modulus
Definition: DruckerPrager.h:81
void setFailureSurfaceRho(const double &)
Failure surface and associativity. Set volumetric term.
Definition: DruckerPrager.cpp:261
double mAlpha2_n1
alpha2_n+1
Definition: DruckerPrager.h:113
double mTo
initial tension cutoff strength
Definition: DruckerPrager.h:95
double mrho
volumetric term (failure surface and associativity)
Definition: DruckerPrager.h:87
double mdelta1
exponential hardening term for Drucker-Prager surface
Definition: DruckerPrager.h:91
void setReferencePressure(const double &)
set reference pressure.
Definition: DruckerPrager.cpp:245
void setMTo(const double &)
Set tension softening delta.
Definition: DruckerPrager.cpp:315
double mdelta2
Tension softening. Exponential hardening term for tension cutoff surface.
Definition: DruckerPrager.h:92
double mK
bulk modulus
Definition: DruckerPrager.h:84
double getKinematicHardeningTheta(void) const
Kinematic hardening. Get theta.
Definition: DruckerPrager.cpp:298
int commitState(void)
Commit the state of the material.
Definition: DruckerPrager.cpp:319
double getIsotropicHardeningDelta(void) const
Isotropic hardening. Get delta1.
Definition: DruckerPrager.cpp:285
const Vector & getState(void) const
Return vector of state variables for output.
Definition: DruckerPrager.cpp:799
double getShearModulus(void) const
get shear modulus.
Definition: DruckerPrager.cpp:233
void plastic_integrator(void)
Plasticity integration routine.
Definition: DruckerPrager.cpp:394
double mGref
reference Shear Modulus
Definition: DruckerPrager.h:82
int recvSelf(const Communicator &)
Receive the object.
Definition: DruckerPrager.cpp:1036
void setIsotropicHardeningKo(const double &)
Isotropic hardening. Set Ko.
Definition: DruckerPrager.cpp:282
double mKinf
nonlinear isotropic hardening term
Definition: DruckerPrager.h:89
void setIsotropicHardeningDelta(const double &)
Isotropic hardening. Set delsta1.
Definition: DruckerPrager.cpp:288
Base class for 2D and 3D materials.
Definition: NDMaterial.h:101
int getMaterialStage(void) const
return the material stage (0:elastic 1:plastic).
Definition: DruckerPrager.cpp:908
void setKinematicHardeningTheta(const double &)
Kinematic hardening. Set theta.
Definition: DruckerPrager.cpp:301
NDMaterial * getCopy(void) const
Virtual constructor.
Definition: DruckerPrager.cpp:348
double getIsotropicHardeningKinf(void) const
Isotropic hardening. Get Kinf.
Definition: DruckerPrager.cpp:273
double getTensionSofteningDelta(void) const
Get tension softening delta.
Definition: DruckerPrager.cpp:305
int setParameter(const std::vector< std::string > &, Parameter &)
Sets the value param to the parameter argv.
Definition: DruckerPrager.cpp:861
int getResponse(int responseID, Information &matInformation)
Returns material response.
Definition: DruckerPrager.cpp:838
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
void setIsotropicHardeningKinf(const double &)
Isotropic hardening. Set Kinf.
Definition: DruckerPrager.cpp:276
double mAlpha2_n
alpha2_n
Definition: DruckerPrager.h:112
double getRho(void) const
get density.
Definition: DruckerPrager.cpp:217
void setRho(const double &r)
set density.
Definition: DruckerPrager.cpp:221
void setBulkModulus(const double &)
set bulk modulus.
Definition: DruckerPrager.cpp:229
Matrix getValues(const std::string &, bool silent=false) const
Returns material response.
Definition: DruckerPrager.cpp:805
Matrix of floats.
Definition: Matrix.h:111
Parameter.
Definition: Parameter.h:68
double getFailureSurfaceRhoBar(void) const
Failure surface and associativity. Get nonassociative flow term.
Definition: DruckerPrager.cpp:265
void computeMTo(void)
Compute derived quantities.
Definition: DruckerPrager.cpp:54
void setInitialGeneralizedStrain(const Vector &)
Sets the initial strain value.
Definition: DruckerPrager.cpp:384
double mHprime
derivative of linear kinematic hardening term
Definition: DruckerPrager.h:108
double mKo
nonlinear isotropic hardening term
Definition: DruckerPrager.h:90