Drucker Prager: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{CommandManualMenu}}
This command is used to construct an multi dimensional material object that has a Drucker-Prager yield criterium.
This command is used to construct an multi dimensional material object that has a Drucker-Prager yield criterium.


{|  
{|  
| style="background:yellow; color:black; width:800px" | '''nDmaterial DruckerPrager $matTag $k $G $sigmaY $rho $rhoBar $Kinf $Ko $delta1 $delta2 $H $theta '''
| style="background:yellow; color:black; width:800px" | '''nDMaterial DruckerPrager $matTag $k $G $sigmaY $rho $rhoBar $Kinf $Ko $delta1 $delta2 $H $theta $density <$atmPressure>'''
|}
|}
----
This Code has been Developed by: <span style="color:blue">[http://www.ce.washington.edu/people/faculty/bios/mackenzie_p.html Peter Mackenzie, U Washington]</span> and the great <span style="color:blue">[http://www.ce.washington.edu/people/faculty/bios/arduino_p.html  Pedro Arduino, U Washington]</span>
----


{|
{|
Line 25: Line 18:
|  '''$rho ''' || frictional strength parameter
|  '''$rho ''' || frictional strength parameter
|-
|-
|  '''$rhoBar ''' || non-associative parameter
|  '''$rhoBar ''' || controls evolution of plastic volume change,  0 &le; $rhoBar &le; $rho
|-
|  '''$Kinf ''' || nonlinear isotropic strain hardening parameter,  $Kinf &ge; 0
|-
|-
|  '''$Kinf ''' || nonlinear isotropic strain hardening parameter
|  '''$Ko ''' || nonlinear isotropic strain hardening parameter,  $Ko &ge; 0
|-
|-
|  '''$Ko ''' || nonlinear isotropic strain hardening parameter
|  '''$delta1 ''' || nonlinear isotropic strain hardening parameter,  $delta1 &ge; 0
|-
|-
|  '''$delta1 ''' || nonlinear isotropic strain hardening parameter
|  '''$delta2 ''' || tension softening parameter,  $delta2 &ge; 0
|-
|-
|  '''$delta2 ''' || tension softening parameter
|  '''$H ''' || linear strain hardening parameter,  $H &ge; 0
|-
|-
|  '''$H ''' || linear kinematic strain hardening parameter
|  '''$theta ''' || controls relative proportions of isotropic and kinematic hardening,  0 &le; $theta &le; 1
|-
|-
|  '''$theta ''' || linear kinematic strain hardening parameter
|  '''$density ''' || mass density of the material
|-
|-
|  '''<$atmPressure> ''' || optional atmospheric pressure for update of elastic bulk and shear moduli (default = 101 kPa)
|}
|}


The material formulations for the Drucker-Prager object are "ThreeDimensional," "PlaneStrain," "Plane Stress," "AxiSymmetric".
 
 
The material formulations for the Drucker-Prager object are "ThreeDimensional" and "PlaneStrain"
 
----
 
This code has been Developed by: <span style="color:blue">[http://www.ce.washington.edu/people/faculty/bios/mackenzie_p.html Peter Mackenzie, U Washington]</span> and the great <span style="color:blue">[http://www.ce.washington.edu/people/faculty/bios/arduino_p.html  Pedro Arduino, U Washington]</span>


----  
----  


EXAMPLE
==Theory==


An example like [[ZeroLengthContactNTS2D]] would be nice
The yield condition for the Drucker-Prager model can be expressed as


----
:::<math> f\left(\mathbf{\sigma}, q^{iso}, \mathbf{q}^{kin}\right) = \left\| \mathbf{s} + \mathbf{q}^{kin} \right\| + \rho I_1 + \sqrt{\frac{2}{3}} q^{iso} - \sqrt{\frac{2}{3}} \sigma_Y^{} \leq 0
</math>
 
in which
 
:::<math> \mathbf{s} = \mathrm{dev} (\mathbf{\sigma}) = \mathbf{\sigma} - \frac{1}{3} I_1 \mathbf{1}
</math>
 
is the deviatoric stress tensor,
 
:::<math> I_1 = \mathrm{tr}(\mathbf{\sigma})
</math>
 
is the first invariant of the stress tensor, and the parameters <math>\rho_{}^{}</math> and <math>\sigma_Y^{}</math> are positive material constants.
 
The isotropic hardening stress is defined as
 
:::<math> q^{iso} = \theta H \alpha^{iso} + (K_{\infty} - K_o) \exp(-\delta_1 \alpha^{iso})
</math>
 
The kinematic hardening stress (or back-stress) is defined as
 
:::<math> \mathbf{q}^{kin} = -(1 - \theta) \frac{2}{3} H \mathbb{I}^{dev} : \mathbf{\alpha}^{kin}
</math>
 
The yield condition for the tension cutoff yield surface is defined as
 
:::<math> f_2(\mathbf{\sigma}, q^{ten}) = I_1 + q^{ten} \leq 0
</math>
 
where
 
:::<math> q^{ten} = T_o \exp(-\delta_2^{} \alpha^{ten})
</math>
 
and
 
:::<math> T_o = \sqrt{\frac{2}{3}} \frac{\sigma_Y}{\rho}
</math>
 
Further, general, information on theory for the Drucker-Prager yield criterion can be found at wikipedia [http://en.wikipedia.org/wiki/Drucker_Prager_yield_criterion here]
 
==Notes==
The valid queries to the Drucker-Prager material when creating an ElementRecorder are 'strain' and 'stress' (as with all nDmaterial) as well as 'state'.  The query 'state' records a vector of state variables during a particular analysis.  The columns of this vector are as follows.  (Note:  If the option '-time' is included in the creation of the recorder, the first column will be the time variable for each recorded point and the columns below are shifted accordingly.)
::Column 1 - First invariant of the stress tensor, <math> I_1 = \mathrm{tr}(\mathbf{\sigma}) </math>.
::Column 2 - The following tensor norm, <math> \left\| \mathbf{s} + \mathbf{q}^{kin} \right\| </math>, where <math>\mathbf{s}</math> is the deviatoric stress tensor and <math>\mathbf{q}^{kin}</math> is the back-stress tensor.
::Column 3 - First invariant of the plastic strain tensor, <math> \mathrm{tr}(\mathbf{\varepsilon}^p) </math>.
::Column 4 - Norm of the deviatoric plastic strain tensor, <math> \left\| \mathbf{e}^p \right\| </math>.
 
 
The Drucker-Prager strength parameters <math> \rho </math> and <math> \sigma_Y </math> can be related to the Mohr-Coulomb friction angle, <math> \phi </math>, and cohesive intercept, <math> c </math>, by evaluating the yield surfaces in a deviatoric plane as described by Chen and Saleeb (1994).  By relating the two yield surfaces in triaxial compression, the following expressions are determined
 
:::<math> \rho = \frac{2 \sqrt{2} \sin \phi}{\sqrt{3} (3 - \sin \phi)}
</math>
 
:::<math> \sigma_Y = \frac{6 c \cos \phi}{\sqrt{2} (3 - \sin \phi)}
</math>
 
==Example==
 
This example provides the input file and corresponding results for a confined triaxial compression (CTC) test using a single 8-node brick element and the Drucker-Prager constitutive model.  A schematic representation of this test is shown below, (a) depicts the application of hydrostatic pressure, and (b) depicts the application of the deviator stress.  Also shown is the stress path resulting from this test plotted on the meridian plane.  As shown, the element is loaded until failure, at which point the model can no longer converge, as this is a stress-controlled analysis.
 
[[Image:CtcTest.png]]  [[Image:CtcResults.png]]
 
<source lang="tcl">
#########################################################
# #
# File is generated for the purposes of testing the #
# Drucker-Prager model --> conventional triaxial #
# compression test #
# #
#  Created:  03.16.2009 CRM #
#  Updated:  12.02.2011 CRM #
# #
# ---> Basic units used are kN and meters #
# #
#########################################################
 
#-------------------------------------------------------
# create the modelBuilder and build the model
#-------------------------------------------------------
wipe
 
model BasicBuilder -ndm 3 -ndf 3
 
#--create the nodes
node 1 1.0 0.0 0.0
node 2 1.0 1.0 0.0
node 3 0.0 1.0 0.0
node 4 0.0 0.0 0.0
node 5 1.0 0.0 1.0
node 6 1.0 1.0 1.0
node 7 0.0 1.0 1.0
node 8 0.0 0.0 1.0
 
#--triaxial test boundary conditions
fix 1 0 1 1
fix 2 0 0 1
fix 3 1 0 1
fix 4 1 1 1
fix 5 0 1 0
fix 6 0 0 0
fix 7 1 0 0
fix 8 1 1 0
 
#--define material parameters for the model
#---bulk modulus
set k      27777.78
#---shear modulus
set G      9259.26
#---yield stress
set sigY    5.0
#---failure surface and associativity
set rho    0.398
set rhoBar  0.398
#---isotropic hardening
set Kinf    0.0
set Ko     0.0
set delta1  0.0
#---kinematic hardening
set H     0.0
set theta  1.0
#---tension softening
set delta2  0.0
#---mass density
        set mDen    1.7
 
#--material models
#   type         tag  k  G  sigY  rho  rhoBar  Kinf  Ko  delta1  delta2  H  theta  density
nDMaterial DruckerPrager 2    $k  $G  $sigY  $rho  $rhoBar  $Kinf  $Ko  $delta1  $delta2  $H  $theta  $mDen
 
#--create the element
# type tag  nodes matID  bforce1  bforce2  bforce3
element stdBrick 1    1 2 3 4 5 6 7 8  2      0.0      0.0      0.0
 
puts "model Built..."
 
#-------------------------------------------------------
# create the recorders
#-------------------------------------------------------
set step 0.1
 
# record nodal displacements
recorder Node -file displacements1.out -time -dT $step -nodeRange 1 8 -dof 1 2 3 disp
 
# record the element stress, strain, and state at one of the Gauss points
recorder Element -ele 1 -time -file stress1.out  -dT $step  material 2 stress
recorder Element -ele 1 -time -file strain1.out  -dT $step  material 2 strain
recorder Element -ele 1 -time -file state1.out  -dT $step  material 2 state
 
puts "recorders set..."
 
#-------------------------------------------------------
# create the loading
#-------------------------------------------------------
 
#--pressure magnitude
set p 10.0
set pNode [expr -$p/4]
 
#--loading object for hydrostatic pressure
pattern Plain 1 {Series -time {0 10 100} -values {0 1 1} -factor 1} {
load 1  $pNode 0.0 0.0
load 2  $pNode $pNode 0.0
load 3  0.0 $pNode  0.0
load 5  $pNode  0.0 0.0
load 6  $pNode $pNode 0.0
load 7 0.0 $pNode 0.0
}
 
#--loading object deviator stress
pattern Plain 2 {Series -time {0 10 100} -values {0 1 5} -factor 1} {
load 5  0.0 0.0 $pNode
load 6  0.0 0.0 $pNode
load 7  0.0 0.0 $pNode
load 8  0.0 0.0 $pNode
}
 
#-------------------------------------------------------
# create the analysis
#-------------------------------------------------------
 
integrator LoadControl 0.1
numberer RCM
system SparseGeneral
constraints Transformation
test NormDispIncr 1e-5 10 1
algorithm Newton
analysis Static
 
puts "starting the hydrostatic analysis..."
set startT [clock seconds]
analyze 1000


THEORY:
set endT [clock seconds]
puts "triaxial shear application finished..."
puts "loading analysis execution time: [expr $endT-$startT] seconds."


The theory for Drucker-Prager can be found at wikipedia [http://en.wikipedia.org/wiki/Drucker_Prager_yield_criterion here]
wipe
</source>


----
==References==


REFERENCES;
Drucker, D. C. and Prager, W., "Soil mechanics and plastic analysis for limit design." Quarterly of Applied Mathematics, vol. 10, no. 2, pp. 157–165, 1952.


Drucker, D. C. and Prager, W., "Soil mechanics and plastic analysis for limit design. Quarterly of Applied Mathematics, vol. 10, no. 2, pp. 157–165, 1952.
Chen, W. F. and Saleeb, A. F., Constitutive Equations for Engineering Materials Volume I: Elasticity and Modeling. Elsevier Science B.V., Amsterdam, 1994.

Latest revision as of 19:58, 16 March 2016




This command is used to construct an multi dimensional material object that has a Drucker-Prager yield criterium.

nDMaterial DruckerPrager $matTag $k $G $sigmaY $rho $rhoBar $Kinf $Ko $delta1 $delta2 $H $theta $density <$atmPressure>
$matTag integer tag identifying material
$k bulk modulus
$G shear modulus
$sigmaY yield stress
$rho frictional strength parameter
$rhoBar controls evolution of plastic volume change, 0 ≤ $rhoBar ≤ $rho
$Kinf nonlinear isotropic strain hardening parameter, $Kinf ≥ 0
$Ko nonlinear isotropic strain hardening parameter, $Ko ≥ 0
$delta1 nonlinear isotropic strain hardening parameter, $delta1 ≥ 0
$delta2 tension softening parameter, $delta2 ≥ 0
$H linear strain hardening parameter, $H ≥ 0
$theta controls relative proportions of isotropic and kinematic hardening, 0 ≤ $theta ≤ 1
$density mass density of the material
<$atmPressure> optional atmospheric pressure for update of elastic bulk and shear moduli (default = 101 kPa)


The material formulations for the Drucker-Prager object are "ThreeDimensional" and "PlaneStrain"


This code has been Developed by: Peter Mackenzie, U Washington and the great Pedro Arduino, U Washington


Theory

The yield condition for the Drucker-Prager model can be expressed as

<math> f\left(\mathbf{\sigma}, q^{iso}, \mathbf{q}^{kin}\right) = \left\| \mathbf{s} + \mathbf{q}^{kin} \right\| + \rho I_1 + \sqrt{\frac{2}{3}} q^{iso} - \sqrt{\frac{2}{3}} \sigma_Y^{} \leq 0

</math>

in which

<math> \mathbf{s} = \mathrm{dev} (\mathbf{\sigma}) = \mathbf{\sigma} - \frac{1}{3} I_1 \mathbf{1}

</math>

is the deviatoric stress tensor,

<math> I_1 = \mathrm{tr}(\mathbf{\sigma})

</math>

is the first invariant of the stress tensor, and the parameters <math>\rho_{}^{}</math> and <math>\sigma_Y^{}</math> are positive material constants.

The isotropic hardening stress is defined as

<math> q^{iso} = \theta H \alpha^{iso} + (K_{\infty} - K_o) \exp(-\delta_1 \alpha^{iso})

</math>

The kinematic hardening stress (or back-stress) is defined as

<math> \mathbf{q}^{kin} = -(1 - \theta) \frac{2}{3} H \mathbb{I}^{dev} : \mathbf{\alpha}^{kin}

</math>

The yield condition for the tension cutoff yield surface is defined as

<math> f_2(\mathbf{\sigma}, q^{ten}) = I_1 + q^{ten} \leq 0

</math>

where

<math> q^{ten} = T_o \exp(-\delta_2^{} \alpha^{ten})

</math>

and

<math> T_o = \sqrt{\frac{2}{3}} \frac{\sigma_Y}{\rho}

</math>

Further, general, information on theory for the Drucker-Prager yield criterion can be found at wikipedia here

Notes

The valid queries to the Drucker-Prager material when creating an ElementRecorder are 'strain' and 'stress' (as with all nDmaterial) as well as 'state'. The query 'state' records a vector of state variables during a particular analysis. The columns of this vector are as follows. (Note: If the option '-time' is included in the creation of the recorder, the first column will be the time variable for each recorded point and the columns below are shifted accordingly.)

Column 1 - First invariant of the stress tensor, <math> I_1 = \mathrm{tr}(\mathbf{\sigma}) </math>.
Column 2 - The following tensor norm, <math> \left\| \mathbf{s} + \mathbf{q}^{kin} \right\| </math>, where <math>\mathbf{s}</math> is the deviatoric stress tensor and <math>\mathbf{q}^{kin}</math> is the back-stress tensor.
Column 3 - First invariant of the plastic strain tensor, <math> \mathrm{tr}(\mathbf{\varepsilon}^p) </math>.
Column 4 - Norm of the deviatoric plastic strain tensor, <math> \left\| \mathbf{e}^p \right\| </math>.


The Drucker-Prager strength parameters <math> \rho </math> and <math> \sigma_Y </math> can be related to the Mohr-Coulomb friction angle, <math> \phi </math>, and cohesive intercept, <math> c </math>, by evaluating the yield surfaces in a deviatoric plane as described by Chen and Saleeb (1994). By relating the two yield surfaces in triaxial compression, the following expressions are determined

<math> \rho = \frac{2 \sqrt{2} \sin \phi}{\sqrt{3} (3 - \sin \phi)}

</math>

<math> \sigma_Y = \frac{6 c \cos \phi}{\sqrt{2} (3 - \sin \phi)}

</math>

Example

This example provides the input file and corresponding results for a confined triaxial compression (CTC) test using a single 8-node brick element and the Drucker-Prager constitutive model. A schematic representation of this test is shown below, (a) depicts the application of hydrostatic pressure, and (b) depicts the application of the deviator stress. Also shown is the stress path resulting from this test plotted on the meridian plane. As shown, the element is loaded until failure, at which point the model can no longer converge, as this is a stress-controlled analysis.

#########################################################
#							#
# File is generated for the purposes of testing the	#
#	Drucker-Prager model --> conventional triaxial 	#
#				 compression test	#
#							#
#   Created:  03.16.2009 CRM				#
#   Updated:  12.02.2011 CRM				#
#							#
# ---> Basic units used are kN and meters		#
#							#
#########################################################

#-------------------------------------------------------
# create the modelBuilder and build the model
#-------------------------------------------------------
wipe

model BasicBuilder -ndm 3 -ndf 3

#--create the nodes
node 1	1.0	0.0	0.0
node 2	1.0	1.0	0.0
node 3 	0.0	1.0	0.0	
node 4	0.0	0.0	0.0
node 5	1.0	0.0	1.0
node 6 	1.0	1.0	1.0
node 7 	0.0	1.0	1.0
node 8 	0.0	0.0	1.0

#--triaxial test boundary conditions
fix 1 	0 1 1
fix 2 	0 0 1
fix 3	1 0 1
fix 4 	1 1 1
fix 5	0 1 0
fix 6 	0 0 0
fix 7	1 0 0
fix 8 	1 1 0

#--define material parameters for the model
#---bulk modulus
	set k       27777.78
#---shear modulus
	set G       9259.26
#---yield stress
	set sigY    5.0
#---failure surface and associativity
	set rho     0.398
	set rhoBar  0.398
#---isotropic hardening
	set Kinf    0.0
	set Ko 	    0.0
	set delta1  0.0
#---kinematic hardening
	set H 	    0.0
	set theta   1.0
#---tension softening
	set delta2  0.0
#---mass density
        set mDen    1.7

#--material models
#	   type	         tag  k   G   sigY   rho   rhoBar   Kinf   Ko   delta1   delta2   H   theta   density 
nDMaterial DruckerPrager 2    $k  $G  $sigY  $rho  $rhoBar  $Kinf  $Ko  $delta1  $delta2  $H  $theta  $mDen

#--create the element
#	type	 tag  nodes		matID  bforce1  bforce2  bforce3
element stdBrick 1    1 2 3 4 5 6 7 8   2      0.0      0.0      0.0

puts "model Built..."

#-------------------------------------------------------
# create the recorders
#-------------------------------------------------------
set step 0.1

# record nodal displacements
recorder Node -file displacements1.out -time -dT $step -nodeRange 1 8 -dof 1 2 3 disp

# record the element stress, strain, and state at one of the Gauss points
recorder Element -ele 1 -time -file stress1.out  -dT $step  material 2 stress
recorder Element -ele 1 -time -file strain1.out  -dT $step  material 2 strain
recorder Element -ele 1 -time -file state1.out   -dT $step  material 2 state

puts "recorders set..."

#-------------------------------------------------------
# create the loading
#-------------------------------------------------------

#--pressure magnitude
set p 10.0
set pNode [expr -$p/4] 

#--loading object for hydrostatic pressure
pattern Plain 1 {Series -time {0 10 100} -values {0 1 1} -factor 1} { 
	load 1  $pNode 	0.0	0.0
	load 2  $pNode	$pNode	0.0
	load 3  0.0	$pNode  0.0
	load 5  $pNode  0.0	0.0
	load 6  $pNode	$pNode	0.0
	load 7 	0.0	$pNode	0.0
}

#--loading object deviator stress
pattern Plain 2 {Series -time {0 10 100} -values {0 1 5} -factor 1} { 
	load 5  0.0	0.0	$pNode
	load 6  0.0	0.0	$pNode
	load 7  0.0	0.0	$pNode
	load 8  0.0	0.0	$pNode
}

#-------------------------------------------------------
# create the analysis
#-------------------------------------------------------

integrator LoadControl 0.1
numberer RCM
system SparseGeneral
constraints Transformation
test NormDispIncr 1e-5 10 1
algorithm Newton
analysis Static

puts "starting the hydrostatic analysis..."
set startT [clock seconds]
analyze 1000

set endT [clock seconds]
puts "triaxial shear application finished..."
puts "loading analysis execution time: [expr $endT-$startT] seconds."

wipe

References

Drucker, D. C. and Prager, W., "Soil mechanics and plastic analysis for limit design." Quarterly of Applied Mathematics, vol. 10, no. 2, pp. 157–165, 1952.

Chen, W. F. and Saleeb, A. F., Constitutive Equations for Engineering Materials Volume I: Elasticity and Modeling. Elsevier Science B.V., Amsterdam, 1994.