PressureDependMultiYield-Example 1: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
(Created page with '{{CommandManualMenu}} {| | style="color:black; font-size: 150%; " | <center>'''Elastic Pressure Dependent Dry Level Dynamic '''</center> |} == Input File == <syntaxhighlight...')
 
No edit summary
 
Line 8: Line 8:
== Input File ==
== Input File ==
<syntaxhighlight lang="tcl">
<syntaxhighlight lang="tcl">
clear all;
#Created by Zhaohui Yang (zhyang@ucsd.edu)
#elastic pressure dependent material
#plane strain,  single element,  dynamic analysis (input motion: sinusoidal acceleration at base)
#SI units (m, s, KN, ton)
#
#        4    3
#        -------
#        |    |
#        |    |
#        |    |
#        1-------2  (nodes 1 and 2 fixed)
#        ^    ^
#          <--> input motion: sinusoidal acceleration at base
wipe
#
#some user defined variables
#
set accMul  9.81    ;
set massDen  2.      ;# mass density
set massProportionalDamping  0.0 ;
set stiffnessProportionalDamping 0.001 ;
set fangle 31.4        ;#friction angle
set ptangle 26.5        ;#phase transformation angle
set E1      90000.0      ;#Young's modulus
set poisson1 0.40 ;
set G [expr $E1/(2*(1+$poisson1))] ;
set B [expr $E1/(3*(1-2*$poisson1))] ;
set press  0 ;# isotropic consolidation pressure on quad element(s)
set period  1      ;# Period of applied sinusoidal load
set deltaT  0.01  ;# time step for analysis
set numSteps 2000  ;# Number of analysis steps
set gamma    0.5    ;# Newmark integration parameter
set unitWeightX 0.0                    ;#unit weight in X direction
set unitWeightY [expr -9.81*($massDen)] ;#unit weight in Y direction
#############################################################


a1=load('acce.out');
#create the ModelBuilder
d1=load('disp.out');
model basic -ndm 2 -ndf 2
s1=load('stress1.out');
e1=load('strain1.out');
s5=load('stress3.out');
e5=load('strain3.out');


fs=[0.5, 0.2, 4, 6];
# define material and properties
accMul = 9.81;
nDMaterial PressureDependMultiYield 2 2 $massDen $G $B  $fangle .1 80 0.5 \
                                        $ptangle 0.17 0.4 10  10 0.015 1.0
nDMaterial FluidSolidPorous 1 2 2 2.2e6


%integration point 1 p-q
# define the nodes
po=(s1(:,2)+s1(:,3)+s1(:,4))/3;
node 1   0.0 0.0
for i=1:size(s1,1)
node 2   1.0 0.0
    qo(i)=(s1(i,2)-s1(i,3))^2 + (s1(i,3)-s1(i,4))^2 +(s1(i,2)-s1(i,4))^2 + 6.0* s1(i,5)^2;
node 3  1.0 1.0
    qo(i)=sign(s1(i,5))*1/3.0*qo(i)^0.5;
node 4   0.0 1.0
end
figure(1); clf;
%integration point 1 stress-strain
subplot(2,1,1), plot(e1(:,4),s1(:,5),'r');
title ('Integration point 1 shear stress \tau_x_y VS. shear strain \epsilon_x_y');
xLabel('Shear strain \epsilon_x_y');
yLabel('Shear stress \tau_x_y (kPa)');


subplot(2,1,2), plot(-po,qo,'r');
# define the element      thick  material      maTag  press      gravity
title ('Integration point 1 confinement p VS. deviatoric q relation');
element quad  1  1 2 3 4  1.0  "PlaneStrain"    2  $press      $unitWeightX  $unitWeightY
xLabel('confinement p (kPa)');
yLabel('q (kPa)');
set(gcf,'paperposition',fs);
saveas(gcf,'SS_PQ1','jpg');


%integration point 3 p-q
updateMaterialStage -material 2 -stage 0
po=(s5(:,2)+s5(:,3)+s5(:,4))/3;
for i=1:size(s5,1)
    qo(i)=(s5(i,2)-s5(i,3))^2 + (s5(i,3)-s5(i,4))^2 +(s5(i,2)-s5(i,4))^2 + 6.0* s5(i,5)^2;
    qo(i)=sign(s5(i,5))*1/3.0*qo(i)^0.5;
end


figure(4); clf;
# fix the base in vertical direction
%integration point 3 stress-strain
fix 1 1 1
subplot(2,1,1), plot(e5(:,4),s5(:,5),'r');
fix 2 1 1
title ('Integration point 3 shear stress \tau_x_y VS. shear strain \epsilon_x_y');
xLabel('Shear strain \epsilon_x_y');
yLabel('Shear stress \tau_x_y (kPa)');


subplot(2,1,2), plot(-po,qo,'r');
#############################################################
title ('Integration point 3 confinement p VS. deviatoric q relation');
# GRAVITY APPLICATION (elastic behavior)
xLabel('confinement p (kPa)');
# create the SOE, ConstraintHandler, Integrator, Algorithm and Numberer
yLabel('q (kPa)');
system ProfileSPD
set(gcf,'paperposition',fs);
test NormDispIncr 1.e-12 25 0
saveas(gcf,'SS_PQ5','jpg');
constraints Transformation
integrator LoadControl 1 1 1 1
algorithm Newton
numberer RCM


figure(2); clf;
# create the Analysis
%node 3 displacement relative to node 1
analysis Static
subplot(2,1,1),plot(d1(:,1),d1(:,6),'r');
title ('Lateral displacement at element top');
xLabel('Time (s)');
yLabel('Displacement (m)');
set(gcf,'paperposition',fs);
saveas(gcf,'D','jpg');


#analyze
analyze 2


s=accMul*sin(0:pi/50:40*pi);
# switch the material to elastic pressure dependent
s1=interp1(0:0.01:20,s,a1(:,1));
updateMaterialStage -material 2 -stage 2


figure(1); clf;
#analyze
%node 3 relative acceleration
analyze 1
subplot(2,1,1),plot(a1(:,1),s1+a1(:,5),'r');
title ('Lateral acceleration at element top');
xLabel('Time (s)');
yLabel('Acceleration (m/s^2)');
set(gcf,'paperposition',fs);
saveas(gcf,'A','jpg');


#############################################################
# NOW APPLY LOADING SEQUENCE AND ANALYZE (plastic)
# rezero time
setTime 0.0
wipeAnalysis
equalDOF 3 4  1 2    ;#tie nodes 3 and 4
pattern UniformExcitation 1 1 -accel "Sine 0 2000 $period -factor $accMul"
# create the Analysis
constraints Penalty 1.0e18 1.0e18  ;# Transformation;  #
test NormDispIncr 1.e-12 25 0
algorithm Newton
numberer RCM
system ProfileSPD
rayleigh $massProportionalDamping 0.0 $stiffnessProportionalDamping 0.
integrator Newmark $gamma  [expr pow($gamma+0.5, 2)/4]
analysis VariableTransient
#create the recorder
recorder Node -file disp.out  -time  -node 1 2 3 4 -dof 1 2 -dT  0.01 disp
recorder Node -file acce.out  -time  -node 1 2 3 4 -dof 1 2 -dT 0.01 accel
recorder Element -ele 1 -time -file stress1.out -dT 0.01 material 1 stress
recorder Element -ele 1 -time -file strain1.out -dT 0.01 material 1 strain
recorder Element -ele 1 -time -file stress3.out -dT 0.01 material 3 stress
recorder Element -ele 1 -time -file strain3.out -dT 0.01 material 3 strain
#analyze
set startT [clock seconds]
analyze $numSteps $deltaT [expr $deltaT/100] $deltaT 10
set endT [clock seconds]
puts "Execution time: [expr $endT-$startT] seconds."
wipe  #flush ouput stream
</syntaxhighlight>
</syntaxhighlight>



Latest revision as of 01:21, 10 August 2012




Elastic Pressure Dependent Dry Level Dynamic


Input File

#Created by Zhaohui Yang (zhyang@ucsd.edu)
#elastic pressure dependent material
#plane strain,  single element,  dynamic analysis (input motion: sinusoidal acceleration at base)
#SI units (m, s, KN, ton)
#
#         4     3
#         -------
#         |     |
#         |     |
#         |     |
#        1-------2   (nodes 1 and 2 fixed)
#         ^     ^
#          <--> input motion: sinusoidal acceleration at base
wipe
#
#some user defined variables
#
set accMul   9.81     ;
set massDen  2.       ;# mass density
set massProportionalDamping   0.0 ;
set stiffnessProportionalDamping 0.001 ;
set fangle 31.4         ;#friction angle
set ptangle 26.5        ;#phase transformation angle
set E1      90000.0      ;#Young's modulus
set poisson1 0.40 ;
set G [expr $E1/(2*(1+$poisson1))] ;
set B [expr $E1/(3*(1-2*$poisson1))] ;
set press   0 ;# isotropic consolidation pressure on quad element(s)
set period   1      ;# Period of applied sinusoidal load
set deltaT   0.01   ;# time step for analysis
set numSteps 2000   ;# Number of analysis steps
set gamma    0.5    ;# Newmark integration parameter
set unitWeightX 0.0                     ;#unit weight in X direction
set unitWeightY [expr -9.81*($massDen)] ;#unit weight in Y direction
#############################################################

#create the ModelBuilder
model basic -ndm 2 -ndf 2

# define material and properties
nDMaterial PressureDependMultiYield 2 2 $massDen $G $B  $fangle .1 80 0.5 \
                                        $ptangle 0.17 0.4 10  10 0.015 1.0
nDMaterial FluidSolidPorous 1 2 2 2.2e6

# define the nodes
node 1   0.0 0.0
node 2   1.0 0.0
node 3   1.0 1.0
node 4   0.0 1.0

# define the element      thick  material      maTag   press      gravity
element quad  1  1 2 3 4  1.0   "PlaneStrain"     2   $press      $unitWeightX  $unitWeightY

updateMaterialStage -material 2 -stage 0

# fix the base in vertical direction
fix 1 1 1
fix 2 1 1

#############################################################
# GRAVITY APPLICATION (elastic behavior)
# create the SOE, ConstraintHandler, Integrator, Algorithm and Numberer
system ProfileSPD
test NormDispIncr 1.e-12 25 0
constraints Transformation
integrator LoadControl 1 1 1 1
algorithm Newton
numberer RCM

# create the Analysis
analysis Static

#analyze
analyze 2

# switch the material to elastic pressure dependent
updateMaterialStage -material 2 -stage 2

#analyze
analyze 1

#############################################################
# NOW APPLY LOADING SEQUENCE AND ANALYZE (plastic)
# rezero time
setTime 0.0
wipeAnalysis

equalDOF 3 4   1 2    ;#tie nodes 3 and 4

pattern UniformExcitation 1 1 -accel "Sine 0 2000 $period -factor $accMul"

# create the Analysis
constraints Penalty 1.0e18 1.0e18  ;# Transformation;  #
test NormDispIncr 1.e-12 25 0
algorithm Newton
numberer RCM
system ProfileSPD
rayleigh $massProportionalDamping 0.0 $stiffnessProportionalDamping 0.
integrator Newmark $gamma  [expr pow($gamma+0.5, 2)/4]
analysis VariableTransient

#create the recorder
recorder Node -file disp.out   -time  -node 1 2 3 4 -dof 1 2 -dT  0.01 disp
recorder Node -file acce.out  -time  -node 1 2 3 4 -dof 1 2 -dT 0.01 accel
recorder Element -ele 1 -time -file stress1.out -dT 0.01 material 1 stress
recorder Element -ele 1 -time -file strain1.out -dT 0.01 material 1 strain
recorder Element -ele 1 -time -file stress3.out -dT 0.01 material 3 stress
recorder Element -ele 1 -time -file strain3.out -dT 0.01 material 3 strain

#analyze
set startT [clock seconds]
analyze $numSteps $deltaT [expr $deltaT/100] $deltaT 10
set endT [clock seconds]
puts "Execution time: [expr $endT-$startT] seconds."

wipe  #flush ouput stream


MATLAB Plotting File

clear all;

a1=load('acce.out');
d1=load('disp.out');
s1=load('stress1.out');
e1=load('strain1.out');
s5=load('stress3.out');
e5=load('strain3.out');

fs=[0.5, 0.2, 4, 6];
accMul = 9.81;

%integration point 1 p-q
po=(s1(:,2)+s1(:,3)+s1(:,4))/3;
for i=1:size(s1,1)
    qo(i)=(s1(i,2)-s1(i,3))^2 + (s1(i,3)-s1(i,4))^2 +(s1(i,2)-s1(i,4))^2 + 6.0* s1(i,5)^2;
    qo(i)=sign(s1(i,5))*1/3.0*qo(i)^0.5;
end
figure(1); clf;
%integration point 1 stress-strain
subplot(2,1,1), plot(e1(:,4),s1(:,5),'r');
title ('Integration point 1 shear stress \tau_x_y VS. shear strain \epsilon_x_y');
xLabel('Shear strain \epsilon_x_y');
yLabel('Shear stress \tau_x_y (kPa)');

subplot(2,1,2), plot(-po,qo,'r');
title ('Integration point 1 confinement p VS. deviatoric q relation');
xLabel('confinement p (kPa)');
yLabel('q (kPa)');
set(gcf,'paperposition',fs);
saveas(gcf,'SS_PQ1','jpg');

%integration point 3 p-q
po=(s5(:,2)+s5(:,3)+s5(:,4))/3;
for i=1:size(s5,1)
    qo(i)=(s5(i,2)-s5(i,3))^2 + (s5(i,3)-s5(i,4))^2 +(s5(i,2)-s5(i,4))^2 + 6.0* s5(i,5)^2;
    qo(i)=sign(s5(i,5))*1/3.0*qo(i)^0.5;
end

figure(4); clf;
%integration point 3 stress-strain
subplot(2,1,1), plot(e5(:,4),s5(:,5),'r');
title ('Integration point 3 shear stress \tau_x_y VS. shear strain \epsilon_x_y');
xLabel('Shear strain \epsilon_x_y');
yLabel('Shear stress \tau_x_y (kPa)');

subplot(2,1,2), plot(-po,qo,'r');
title ('Integration point 3 confinement p VS. deviatoric q relation');
xLabel('confinement p (kPa)');
yLabel('q (kPa)');
set(gcf,'paperposition',fs);
saveas(gcf,'SS_PQ5','jpg');

figure(2); clf;
%node 3 displacement relative to node 1
subplot(2,1,1),plot(d1(:,1),d1(:,6),'r');
title ('Lateral displacement at element top');
xLabel('Time (s)');
yLabel('Displacement (m)'); 
set(gcf,'paperposition',fs);
saveas(gcf,'D','jpg');


s=accMul*sin(0:pi/50:40*pi);
s1=interp1(0:0.01:20,s,a1(:,1));

figure(1); clf;
%node 3 relative acceleration
subplot(2,1,1),plot(a1(:,1),s1+a1(:,5),'r');
title ('Lateral acceleration at element top');
xLabel('Time (s)');
yLabel('Acceleration (m/s^2)');
set(gcf,'paperposition',fs);
saveas(gcf,'A','jpg');


Displacement Output File


Stress-Strain Output File (Integration Point 1)


Stress-Strain Output File (Integration Point 3)


Acceleration Output File



Return to: