Converegnce Error when simulating Cylic Test

Forum for asking and answering questions related to use of the OpenSeesPy module

Moderators: silvia, selimgunay, Moderators

Post Reply
Trish
Posts: 7
Joined: Thu Feb 24, 2022 1:44 am

Converegnce Error when simulating Cylic Test

Post by Trish » Thu Feb 16, 2023 8:32 am

Dear all,

I want to simulate Undrained Cylic Triaxial test using single element SSPBrickUP. I am attaching my code below as also the error when I applied Cyclic load.

Code: Select all

import opensees as ops
ops.wipe()

ops.model('basic','-ndm',3,'-ndf',4)

ops.node(1,1,0,0)
ops.node(2,1,1,0)
ops.node(3,0,1,0)
ops.node(4,0,0,0)
ops.node(5,1,0,1)
ops.node(6,1,1,1)
ops.node(7,0,1,1)
ops.node(8,0,0,1)

ops.fix(1,0,1,1,1)
ops.fix(2,0,0,1,1)
ops.fix(3,1,0,1,1)
ops.fix(4,1,1,1,1)
ops.fix(5,0,1,0,1)
ops.fix(6,0,0,0,1)
ops.fix(7,1,0,0,1)
ops.fix(8,1,1,0,1)

tag =1
ndm = 3
#loadStage = 0 # optional
ISMAX = 60
Mc = 1
m = 1.33
Nc = 0.88
mN =1
e_incl = 1.1
lamb = 0.102
kappa =0.014 
v = 0.2
C = 20
x = 2.5
z = 0 # dont know
ki = 7.5
h0 = 120
ad = 20
DepsBar = 0.05 # dont know
zlim = 0.2#dont know
s_eln = 1
OCR = 0
OCRm =3.1
init_p = 8100
init_q = 6300
init_anisotropy_el2pl = 1
init_alpha_trx = 0
Si = 3.1
epsBar = 0 #dont know
epsHat = 0 #dont know
PCmultiplier = 0 # dont know
pmin = 1
TOLERANCE = 1e-7
STOL =1e-2
dTmin = 1e-10
GElSt = 8400 # dont know
pRefElSt =  1 #dont know
vElSt = 0.2 #dont know
rho = 1.8
ops.nDMaterial('SANICLAY_B',tag,ndm,ISMAX,Mc,m,Nc,mN,e_incl,lamb,kappa,v,C,x,z,ki,h0,ad,DepsBar,zlim,s_eln,OCR,OCRm,init_p,init_q,init_anisotropy_el2pl,init_alpha_trx,Si,epsBar,epsHat,PCmultiplier,pmin,TOLERANCE,STOL,dTmin,GElSt,pRefElSt,vElSt,rho) 

ops.element('SSPbrickUP',1,1,2,3,4,5,6,7,8,1,2.2e6,1,1e-9,1e-9,1e-9,0.67,1.5e-5)

damp = 0.02
omega1 = 0.2
omega2 = 20
a1 = 2*damp/(omega1+omega2)
a0 = a1*omega1*omega2

# Create Analysis 
#ops.constraints('Transformation')
ops.constraints('Penalty',1e14,1e14)
ops.test('NormDispIncr',1e-3,20,1)
ops.algorithm('SecantNewton')
ops.numberer('RCM')
ops.system('SparseSYM')
ops.integrator('Newmark',0.5,0.25)
ops.rayleigh(a1,a0,0,0)
ops.analysis('Transient')

p = 8100
q = 6300
pre_r = (3*p-q)/12
pre_a = (p +(2/3)*q)/4

ops.timeSeries('Path',1,'-time',0,5000,10000,1e10,'-values',0,1,1,1,'-factor',1,'-useLast')
ops.pattern('Plain',1,1)

ops.load(1,-pre_r,pre_r,0,0)
ops.load(2,-pre_r,-pre_r,0,0)
ops.load(3,pre_r,-pre_r,0,0)
ops.load(4,pre_r,pre_r,0,0)
ops.load(5,-pre_r,pre_r,-pre_a,0)
ops.load(6,-pre_r,-pre_r,-pre_a,0)
ops.load(7,pre_r,-pre_r,-pre_a,0)
ops.load(8,pre_r,pre_r,-pre_a,0)

ops.analyze(500,100)

ops.updateMaterialStage('-material',1,'-stage',1)
ops.analyze(1000,1)

ops.remove('sp',1,4)
ops.remove('sp',2,4)
ops.remove('sp',3,4)
ops.remove('sp',4,4)
ops.remove('sp',5,4)
ops.remove('sp',6,4)
ops.remove('sp',7,4)
ops.remove('sp',8,4)

ops.analyze(1000,1)

q = 1450
pre_a = 1450/4

t1 = 52000
q = 1450
pre_a = 1450/4

t1 = 52000

ops.timeSeries('Path',2,'-time',0+t1,10000+t1,20000+t1,'-values',0,1,1,'-factor',1,'-useLast')
ops.pattern('Plain',2,2)

ops.load(5,0,0,-pre_a,0)
ops.load(6,0,0,-pre_a,0)
ops.load(7,0,0,-pre_a,0)
ops.load(8,0,0,-pre_a,0)

ops.analyze(200,100)

ops.loadConst('-time')

q = 5250
pre_a =  q/4

tel = 72000

t_tol = 100000
period = 100000/10

ops.timeSeries('Trig',10,0+tel,t_tol+tel,period,'-factor',1)
ops.pattern('Plain',10,10)

ops.load(5,0,0,-pre_a,0)
ops.load(6,0,0,-pre_a,0)
ops.load(7,0,0,-pre_a,0)
ops.load(8,0,0,-pre_a,0)

ops.analyze(1000,100)

THE ERROR FOR THE LAST ANALYSIS.

Code: Select all


WARNING: CTestNormDispIncr::test() - failed to converge 
after: 20 iterations  current Norm: 35286.2 (max: 0.001, Norm deltaR: 12063.2)
AcceleratedNewton::solveCurrentStep() -The ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 73700
OpenSees > analyze failed, returned: -3 error flag

Kindly, check my code and provide me with solutions to improve my simulation result.

Thank you in advance.

Post Reply