Hi,
I am also trying to use MCC and at some point the analysis stops with flag:
CC_Ev: Invalid Input of 2
The model properties are copied pasted from the lecture notes of Prof Boris Jeremic.
Do you have any idea what is going wrong?
Antonios
Cam Clay
Moderator: Moderators
Tcl script
#########################################################
# This file is created from GID pre- and post-processor #
# using "geoOpenSees.gid" Problem Type #
#########################################################
model BasicBuilder -ndm 3 -ndf 3
node 1 0.000 0.000 0.000
node 2 1.000 0.000 0.000
node 3 0.000 1.000 0.000
node 4 1.000 1.000 0.000
node 5 0.000 0.000 1.000
node 6 1.000 0.000 1.000
node 7 0.000 1.000 1.000
node 8 1.000 1.000 1.000
# Elastic material
nDMaterial ElasticIsotropic3D 1 2.0e7 0.2 0.8e3
## Cam-Clay, Plastic Volumetric Hardening
set rho 1.5
set e0 1.2
set lambda 0.20
set kappa 0.05
set Kc 8.0
set M 0.9
set v 0.3
set p0 100
set mc "$rho $e0 $lambda $kappa $Kc $M $v"
set mp "MaterialConstant 7 $mc InternalScalar 1 $p0"
set el "elnp 4 7 5 2"
set yf "Cam-Clay 0 6 1 1"
set pf "Cam-Clay 0 6 1 1"
set se "Cam-Clay 6 3 4 2 1"
nDMaterial NewTemplate3Dep 2 -MaterialParameter $mp \
-ElasticState $el \
-YieldFunction $yf \
-PlasticFlow $pf \
-ScalarEvolution $se
# Define Elements
# element quad 1 3 1 2 4 1.0 "PlaneStrain" 2
# Define Elements
set bulk_f 2.2e6
set n_por 0.333
set bulk [expr $bulk_f/$n_por]
set gravX 0.0
set gravY 0.0
set press 0.0
element stdBrick 1 5 7 8 6 1 3 4 2 2
fix 1 1 1 1
fix 2 0 1 1
fix 3 1 0 1
fix 4 0 0 1
fix 5 1 1 1
fix 6 0 1 1
fix 7 1 0 1
fix 8 0 0 1
puts "Test2"
set Timeseries "Constant"
# set Timeseries "Linear"
# pattern UniformExcitation 1 1 -accel $Timeseries;
pattern Plain 1 $Timeseries {
load 4 0. -500. 0.
load 3 0. -500. 0.
load 7 0. -500. 0.
load 8 0. -500. 0.
}
set gamma 0.6
test NormDispIncr 1.0e-4 200 1;
test EnergyIncr 1.0e-4 200 1;
integrator Newmark $gamma [expr pow($gamma+0.5, 2)/4] 0.00 0.0 0.002 0.0
constraints Transformation
algorithm Newton
numberer RCM
system ProfileSPD
puts "Test2.a"
# create the analysis object
analysis Transient
puts "Test2.b"
# Recorders
recorder Node -file output_disp.txt -time -dof 1 2 disp
puts "Test2.c"
recorder Element -file stress_1.txt -time -eleRange 1 1 material 1 stress
recorder Element -file strain_1.txt -time -eleRange 1 1 material 1 strain
puts "Test3"
# perform analysis
set startT [clock seconds]
analyze 1000 0.01
set endT [clock seconds]
puts "Execution time: [expr $endT-$startT] seconds."
# This file is created from GID pre- and post-processor #
# using "geoOpenSees.gid" Problem Type #
#########################################################
model BasicBuilder -ndm 3 -ndf 3
node 1 0.000 0.000 0.000
node 2 1.000 0.000 0.000
node 3 0.000 1.000 0.000
node 4 1.000 1.000 0.000
node 5 0.000 0.000 1.000
node 6 1.000 0.000 1.000
node 7 0.000 1.000 1.000
node 8 1.000 1.000 1.000
# Elastic material
nDMaterial ElasticIsotropic3D 1 2.0e7 0.2 0.8e3
## Cam-Clay, Plastic Volumetric Hardening
set rho 1.5
set e0 1.2
set lambda 0.20
set kappa 0.05
set Kc 8.0
set M 0.9
set v 0.3
set p0 100
set mc "$rho $e0 $lambda $kappa $Kc $M $v"
set mp "MaterialConstant 7 $mc InternalScalar 1 $p0"
set el "elnp 4 7 5 2"
set yf "Cam-Clay 0 6 1 1"
set pf "Cam-Clay 0 6 1 1"
set se "Cam-Clay 6 3 4 2 1"
nDMaterial NewTemplate3Dep 2 -MaterialParameter $mp \
-ElasticState $el \
-YieldFunction $yf \
-PlasticFlow $pf \
-ScalarEvolution $se
# Define Elements
# element quad 1 3 1 2 4 1.0 "PlaneStrain" 2
# Define Elements
set bulk_f 2.2e6
set n_por 0.333
set bulk [expr $bulk_f/$n_por]
set gravX 0.0
set gravY 0.0
set press 0.0
element stdBrick 1 5 7 8 6 1 3 4 2 2
fix 1 1 1 1
fix 2 0 1 1
fix 3 1 0 1
fix 4 0 0 1
fix 5 1 1 1
fix 6 0 1 1
fix 7 1 0 1
fix 8 0 0 1
puts "Test2"
set Timeseries "Constant"
# set Timeseries "Linear"
# pattern UniformExcitation 1 1 -accel $Timeseries;
pattern Plain 1 $Timeseries {
load 4 0. -500. 0.
load 3 0. -500. 0.
load 7 0. -500. 0.
load 8 0. -500. 0.
}
set gamma 0.6
test NormDispIncr 1.0e-4 200 1;
test EnergyIncr 1.0e-4 200 1;
integrator Newmark $gamma [expr pow($gamma+0.5, 2)/4] 0.00 0.0 0.002 0.0
constraints Transformation
algorithm Newton
numberer RCM
system ProfileSPD
puts "Test2.a"
# create the analysis object
analysis Transient
puts "Test2.b"
# Recorders
recorder Node -file output_disp.txt -time -dof 1 2 disp
puts "Test2.c"
recorder Element -file stress_1.txt -time -eleRange 1 1 material 1 stress
recorder Element -file strain_1.txt -time -eleRange 1 1 material 1 strain
puts "Test3"
# perform analysis
set startT [clock seconds]
analyze 1000 0.01
set endT [clock seconds]
puts "Execution time: [expr $endT-$startT] seconds."
Hi Avytin,
I believe that the scalar evolution should not have the 6 (M) at the beginning based on the tcl c++ and cam clay evolution rule.
If you change the scalar evolution line to this, it should work:
set se "Cam-Clay 3 4 2 1"
which are lambda, kappa, e0, p0.
Robbie
TCL C++:
else if ( strcmp(argv[0],"Cam-Clay") == 0 ) {
int a[4] = {0,0,0,0};
for (int j = 0; j < 4; j++) {
loc++;
if (Tcl_GetInt(interp, argv[loc], &a[j]) != TCL_OK) {
opserr << "Warning: TclNewTemplate3Dep - invalid input " << argv[loc] << endln;
exit (1);
}
}
ISS[i] = new CC_Ev(a[0], a[1], a[2], a[3]);
loc++;
CC_Ev::CC_Ev(int lambda_index_in,
int kappa_index_in,
int e0_index_in,
int p0_index_in)
I believe that the scalar evolution should not have the 6 (M) at the beginning based on the tcl c++ and cam clay evolution rule.
If you change the scalar evolution line to this, it should work:
set se "Cam-Clay 3 4 2 1"
which are lambda, kappa, e0, p0.
Robbie
TCL C++:
else if ( strcmp(argv[0],"Cam-Clay") == 0 ) {
int a[4] = {0,0,0,0};
for (int j = 0; j < 4; j++) {
loc++;
if (Tcl_GetInt(interp, argv[loc], &a[j]) != TCL_OK) {
opserr << "Warning: TclNewTemplate3Dep - invalid input " << argv[loc] << endln;
exit (1);
}
}
ISS[i] = new CC_Ev(a[0], a[1], a[2], a[3]);
loc++;
CC_Ev::CC_Ev(int lambda_index_in,
int kappa_index_in,
int e0_index_in,
int p0_index_in)