Why can the model only add 3mm displacement?
Moderators: silvia, selimgunay, Moderators
Why can the model only add 3mm displacement?
My model can only be loaded with a displacement of 3mm under the required direction load, otherwise it will not converge.
Can you help me find the reason?
This is a simple reinforced concrete column model with 3 nodes and 2 elements
wipe
model BasicBuilder -ndm 3 -ndf 6
set PI [expr 2.0*asin(1.0)]
#设置单位
set N 1.0
set m 1.0
set kg 1.0
set sec 1.0
set mm [expr $m*0.001]
set kN [expr $N*1000]
set Pa [expr $N/$m]
set kPa [expr $Pa*1000]
set MPa [expr $Pa*1e6]
set m2 [expr $m*$m]
set mm2 [expr $mm*$mm]
set mm4 [expr $mm*$mm*$mm*$mm]
set m3 [expr $m*$m*$m]
set m4 [expr $m*$m*$m*$m]
set p [expr $kg/$m3] ;# density
set a [expr $m/($sec*$sec)] ;#accelerated speed
set ps 0.018 ;#钢筋体积配箍率
set fyh [expr 241*$MPa] ;#箍筋的屈服强度
set fc [expr 42.4*$MPa] ;#混凝土抗压强度
set h [expr 0.426*$m] ;#箍筋肢距
set sh [expr 0.1*$m] ;#箍筋间距
set K0 [expr 1.0+$ps*$fyh/$fc] ;#箍筋对混凝土强度的提高系数
set fpc0 [expr $K0*$fc] ;#混凝土28天抗压强度
set epsc0 [expr 0.002*$K0] ;#约束混凝土极限抗压强度对应的应变值
set E0 [expr 2*$fpc0/$epsc0]
set fpcu0 [expr 0.2*$fpc0] ;#混凝土退化强度
set Z0 [expr 0.5/((3+0.29*$fc)/(145*$fc-1000)+0.75*$ps*sqrt($h/$sh)-0.002*$K0)] ;#应变软化斜率系数
#set epsU0 [expr (1.0-$fpcu0/($K0*$fc))+$epsc0]
set epsU0 [expr (-0.004-0.9*($ps*$fyh)/300)]
set ft0 [expr 0.01*$fpc0]
set Ets0 [expr $ft0/0.002]
set lambda0 0.1
#定义核心混凝土
#Concrete
#uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 1 [expr -$fpc0] [expr -$epsc0] [expr -$fpcu0] [expr -$epsU0] $lambda0 $ft0 $Ets0
set K1 1 ;#箍筋对混凝土强度的提高系数
set fpc1 [expr $K0*$fc] ;#混凝土28天抗压强度
set epsc1 [expr 0.002*$K1] ;#约束混凝土极限抗压强度对应的应变值
set E1 [expr 2*$fpc1/$epsc1]
set fpcu1 [expr 0.2*$fpc1] ;#混凝土退化强度
set Z1 [expr 0.5/((3+0.29*$fc)/(145*$fc-1000))] ;#应变软化斜率系数
set epsU1 -0.004
set ft1 [expr 0.01*$fpc1]
set Ets1 [expr $ft1/0.002]
set lambda1 0.1
#定义无约束混凝土
#Concrete
#uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 2 [expr -$fpc1] [expr -$epsc1] [expr -$fpcu1] [expr -$epsU1] $lambda1 $ft1 $Ets1
#定义钢筋+钢筋的直径和面
set Fy [expr 412*$MPa]
set E [expr 2.0e11*$Pa]
#uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4 $sigInit>
uniaxialMaterial Steel02 3 $Fy $E 0.0006 18 0.925 0.15
set d [expr 0.018*$m]
set A [expr $d*$d/4*$PI]
puts "material finish"
set Lcolumn1 [expr 0.54*$m]
set Lcolumn2 [expr 3.24*$m]
node 1 0.0 0.0 0.0
node 2 0.0 0.0 $Lcolumn1
node 3 0.0 0.0 $Lcolumn2
fix 1 1 1 1 1 1 1
fix 3 0 0 0 0 0 0
#墩的截面
set b [expr 0.5*$m]
set h [expr 0.34*$m]
set A1 [expr $b*$h]
set cover 0.037
set y1 [expr $b/2.0-$cover]
set y2 [expr $b/2.0-$cover-1.42]
set z1 [expr $h/2.0-$cover]
section Fiber 1 {
patch rect 1 10 10 [expr $b/2.0-$cover] [expr $h/2.0-$cover] [expr $cover-$b/2.0] [expr $cover-$h/2.0]
patch rect 2 10 1 [expr $b/2.0] [expr $cover-$h/2.0] [expr -$b/2.0] [expr -$h/2.0]
patch rect 2 2 1 [expr $b/2.0] [expr $h/2.0-$cover] [expr $b/2.0-$cover] [expr $cover-$h/2.0]
patch rect 2 2 1 [expr $cover-$b/2.0] [expr $h/2.0-$cover] [expr -$b/2.0] [expr $cover-$h/2.0]
patch rect 2 10 1 [expr $b/2.0] [expr $h/2.0] [expr -$b/2.0] [expr $h/2.0-$cover]
layer straight 3 3 $A $y1 $z1 $y1 [expr -$z1]
layer straight 3 2 $A $y2 $z1 $y2 [expr -$z1]
layer straight 3 3 $A [expr -$y1] $z1 [expr -$y1] [expr -$z1]
layer straight 3 2 $A [expr -$y2] $z1 [expr -$y2] [expr -$z1]
}
section Fiber 2 {
patch rect 2 10 10 [expr $b/2.0] [expr $h/2.0] [expr -$b/2.0] [expr -$h/2.0]
layer straight 3 3 $A $y1 $z1 $y1 [expr -$z1]
layer straight 3 2 $A $y2 $z1 $y2 [expr -$z1]
layer straight 3 3 $A [expr -$y1] $z1 [expr -$y1] [expr -$z1]
layer straight 3 2 $A [expr -$y2] $z1 [expr -$y2] [expr -$z1]
}
puts "section finish"
geomTransf Linear 1 0 -1 0
#define elements
set nP 5
#element dispBeamColumn eleTag iNode jNode numIntgrPts secTag transfTag <-mass massDens> <-cMass> <-integration intType>
element nonlinearBeamColumn 1 1 2 $nP 2 1
element nonlinearBeamColumn 2 2 3 $nP 1 1
puts "element finish"
set N 0.1
set fcd 18.4e6
set P [expr $N*$fcd*$A1]
pattern Plain 1 Linear {
load 3 0.0 0.0 [expr -$P] 0.0 0.0 0.0
}
puts "Gravity finish"
constraints Plain
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-6 200
algorithm Newton
integrator LoadControl 0.01
analysis Static
analyze 100
loadConst -time 0.0
pattern Plain 2 Linear {
load 3 1 1 0.0 0.0 0.0 0.0
}
integrator DisplacementControl 3 1 0.004
analyze 1
Can you help me find the reason?
This is a simple reinforced concrete column model with 3 nodes and 2 elements
wipe
model BasicBuilder -ndm 3 -ndf 6
set PI [expr 2.0*asin(1.0)]
#设置单位
set N 1.0
set m 1.0
set kg 1.0
set sec 1.0
set mm [expr $m*0.001]
set kN [expr $N*1000]
set Pa [expr $N/$m]
set kPa [expr $Pa*1000]
set MPa [expr $Pa*1e6]
set m2 [expr $m*$m]
set mm2 [expr $mm*$mm]
set mm4 [expr $mm*$mm*$mm*$mm]
set m3 [expr $m*$m*$m]
set m4 [expr $m*$m*$m*$m]
set p [expr $kg/$m3] ;# density
set a [expr $m/($sec*$sec)] ;#accelerated speed
set ps 0.018 ;#钢筋体积配箍率
set fyh [expr 241*$MPa] ;#箍筋的屈服强度
set fc [expr 42.4*$MPa] ;#混凝土抗压强度
set h [expr 0.426*$m] ;#箍筋肢距
set sh [expr 0.1*$m] ;#箍筋间距
set K0 [expr 1.0+$ps*$fyh/$fc] ;#箍筋对混凝土强度的提高系数
set fpc0 [expr $K0*$fc] ;#混凝土28天抗压强度
set epsc0 [expr 0.002*$K0] ;#约束混凝土极限抗压强度对应的应变值
set E0 [expr 2*$fpc0/$epsc0]
set fpcu0 [expr 0.2*$fpc0] ;#混凝土退化强度
set Z0 [expr 0.5/((3+0.29*$fc)/(145*$fc-1000)+0.75*$ps*sqrt($h/$sh)-0.002*$K0)] ;#应变软化斜率系数
#set epsU0 [expr (1.0-$fpcu0/($K0*$fc))+$epsc0]
set epsU0 [expr (-0.004-0.9*($ps*$fyh)/300)]
set ft0 [expr 0.01*$fpc0]
set Ets0 [expr $ft0/0.002]
set lambda0 0.1
#定义核心混凝土
#Concrete
#uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 1 [expr -$fpc0] [expr -$epsc0] [expr -$fpcu0] [expr -$epsU0] $lambda0 $ft0 $Ets0
set K1 1 ;#箍筋对混凝土强度的提高系数
set fpc1 [expr $K0*$fc] ;#混凝土28天抗压强度
set epsc1 [expr 0.002*$K1] ;#约束混凝土极限抗压强度对应的应变值
set E1 [expr 2*$fpc1/$epsc1]
set fpcu1 [expr 0.2*$fpc1] ;#混凝土退化强度
set Z1 [expr 0.5/((3+0.29*$fc)/(145*$fc-1000))] ;#应变软化斜率系数
set epsU1 -0.004
set ft1 [expr 0.01*$fpc1]
set Ets1 [expr $ft1/0.002]
set lambda1 0.1
#定义无约束混凝土
#Concrete
#uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 2 [expr -$fpc1] [expr -$epsc1] [expr -$fpcu1] [expr -$epsU1] $lambda1 $ft1 $Ets1
#定义钢筋+钢筋的直径和面
set Fy [expr 412*$MPa]
set E [expr 2.0e11*$Pa]
#uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4 $sigInit>
uniaxialMaterial Steel02 3 $Fy $E 0.0006 18 0.925 0.15
set d [expr 0.018*$m]
set A [expr $d*$d/4*$PI]
puts "material finish"
set Lcolumn1 [expr 0.54*$m]
set Lcolumn2 [expr 3.24*$m]
node 1 0.0 0.0 0.0
node 2 0.0 0.0 $Lcolumn1
node 3 0.0 0.0 $Lcolumn2
fix 1 1 1 1 1 1 1
fix 3 0 0 0 0 0 0
#墩的截面
set b [expr 0.5*$m]
set h [expr 0.34*$m]
set A1 [expr $b*$h]
set cover 0.037
set y1 [expr $b/2.0-$cover]
set y2 [expr $b/2.0-$cover-1.42]
set z1 [expr $h/2.0-$cover]
section Fiber 1 {
patch rect 1 10 10 [expr $b/2.0-$cover] [expr $h/2.0-$cover] [expr $cover-$b/2.0] [expr $cover-$h/2.0]
patch rect 2 10 1 [expr $b/2.0] [expr $cover-$h/2.0] [expr -$b/2.0] [expr -$h/2.0]
patch rect 2 2 1 [expr $b/2.0] [expr $h/2.0-$cover] [expr $b/2.0-$cover] [expr $cover-$h/2.0]
patch rect 2 2 1 [expr $cover-$b/2.0] [expr $h/2.0-$cover] [expr -$b/2.0] [expr $cover-$h/2.0]
patch rect 2 10 1 [expr $b/2.0] [expr $h/2.0] [expr -$b/2.0] [expr $h/2.0-$cover]
layer straight 3 3 $A $y1 $z1 $y1 [expr -$z1]
layer straight 3 2 $A $y2 $z1 $y2 [expr -$z1]
layer straight 3 3 $A [expr -$y1] $z1 [expr -$y1] [expr -$z1]
layer straight 3 2 $A [expr -$y2] $z1 [expr -$y2] [expr -$z1]
}
section Fiber 2 {
patch rect 2 10 10 [expr $b/2.0] [expr $h/2.0] [expr -$b/2.0] [expr -$h/2.0]
layer straight 3 3 $A $y1 $z1 $y1 [expr -$z1]
layer straight 3 2 $A $y2 $z1 $y2 [expr -$z1]
layer straight 3 3 $A [expr -$y1] $z1 [expr -$y1] [expr -$z1]
layer straight 3 2 $A [expr -$y2] $z1 [expr -$y2] [expr -$z1]
}
puts "section finish"
geomTransf Linear 1 0 -1 0
#define elements
set nP 5
#element dispBeamColumn eleTag iNode jNode numIntgrPts secTag transfTag <-mass massDens> <-cMass> <-integration intType>
element nonlinearBeamColumn 1 1 2 $nP 2 1
element nonlinearBeamColumn 2 2 3 $nP 1 1
puts "element finish"
set N 0.1
set fcd 18.4e6
set P [expr $N*$fcd*$A1]
pattern Plain 1 Linear {
load 3 0.0 0.0 [expr -$P] 0.0 0.0 0.0
}
puts "Gravity finish"
constraints Plain
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-6 200
algorithm Newton
integrator LoadControl 0.01
analysis Static
analyze 100
loadConst -time 0.0
pattern Plain 2 Linear {
load 3 1 1 0.0 0.0 0.0 0.0
}
integrator DisplacementControl 3 1 0.004
analyze 1
-
- Posts: 916
- Joined: Mon Sep 09, 2013 8:50 pm
- Location: University of California, Berkeley
Re: Why can the model only add 3mm displacement?
Your column seems to be more than 3 meters long, so 3 mm corresponds to 0.1% drift, which is too small. Does it start to yield at this point? If so, the noncovergence could be related to the steel02 post-yield transition parameters. You can try the default values and see what you get
Re: Why can the model only add 3mm displacement?
I have the same problem. Have you found the answer?
-
- Posts: 2
- Joined: Sun Jan 07, 2024 11:12 pm
Re: Why can the model only add 3mm displacement?
I think ensuring that material properties, especially those related to concrete and steel, are accurately determined is the most important thing.geometry dash lite
-
- Posts: 3
- Joined: Mon Jan 08, 2024 11:35 pm
Re: Why can the model only add 3mm displacement?
When it reaches this stage, does it begin to yield? If this is the case, the noncovergence could be connected to the characteristics of the steel02 post-yield transition mechanism. You are free to experiment with the default settings and see what results you obtain.
-
- Posts: 2
- Joined: Thu Mar 02, 2023 4:16 am
Re: Why can the model only add 3mm displacement?
Double-check the material properties, especially those related to concrete and steel. Ensure that the material properties, such as Young's modulus, yield strength, and other parameters, are consistent with your expectations.
-
- Posts: 1
- Joined: Wed Feb 14, 2024 7:29 pm
Re: Why can the model only add 3mm displacement?
I think this is based on the developer's settings. Providing the best information. Furthermore, each program needs to follow a certain coding algorithm to develop and improve.