Search found 7 matches

by Trish
Mon Mar 20, 2023 7:26 am
Forum: OpenSeesPy
Topic: How to apply pore pressure
Replies: 0
Views: 10483

How to apply pore pressure

Dear,

I am working on a simple model as Prof. Scott suggests, to know how to apply pore pressure.
I created three layers, the middle one being a SSPBrickUP element and the other two SSPBrick, I want to initialize the model with gravity applying pore pressure of 10kPa on the porous nodes. For which model is working fine. When I applied an additional pore pressure of 10kPa, the load application was not correct. Below I am attaching my code. Kindly provide with me your suggestions.

Code: Select all

import opensees as ops
ops.wipe()
ops.model('basic','-ndm',3,'-ndf',3)

a = 1

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


c = 3
b = 2

ops.node(13,0,0,c)
ops.node(14,a,0,c)
ops.node(15,a,a,c)
ops.node(16,0,a,c)

ops.node(90,0,0,b)
ops.node(100,a,0,b)
ops.node(110,a,a,b)
ops.node(120,0,a,b)

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

ops.fix(13,1,1,0)
ops.fix(14,1,1,0)
ops.fix(15,1,1,0)
ops.fix(16,1,1,0)

ops.fix(90,1,1,0)
ops.fix(100,1,1,0)
ops.fix(110,1,1,0)
ops.fix(120,1,1,0)

ops.nDMaterial('ElasticIsotropic',1,10e6,0.3,1.64)

ops.element('SSPbrick',1,1,5,7,3,2,6,8,4,1,0,0,-9.81*1.64)
ops.element('SSPbrick',3,90,100,110,120,13,14,15,16,1,0,0,-9.81*1.64)

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

ops.node(9,0,0,b)
ops.node(10,a,0,b)
ops.node(11,a,a,b)
ops.node(12,0,a,b)

ops.node(20,0,0,a)
ops.node(40,0,a,a)
ops.node(60,a,0,a)
ops.node(80,a,a,a)

ops.nDMaterial('ElasticIsotropic',2,10e6,0.3,1.8)

f=0 

ops.fix(9,1,1,0,f)
ops.fix(10,1,1,0,f)
ops.fix(11,1,1,0,f)
ops.fix(12,1,1,0,f)

ops.fix(20,1,1,0,0)
ops.fix(40,1,1,0,0)
ops.fix(60,1,1,0,0)
ops.fix(80,1,1,0,0)

ops.element('SSPbrickUP',2,20,60,80,40,9,10,11,12,2,2.2e6,1,1e-5,1e-5,1e-5,0.67,1.5e-5,0,0,-9.81)

ops.equalDOF(2,20,1,2,3)
ops.equalDOF(4,40,1,2,3)
ops.equalDOF(6,60,1,2,3)
ops.equalDOF(8,80,1,2,3)

ops.equalDOF(90,9,1,2,3)
ops.equalDOF(100,10,1,2,3)
ops.equalDOF(110,11,1,2,3)
ops.equalDOF(120,12,1,2,3)

damp = 0.1
omega1 = 0.0157
omega2 =64.123
a1 = 2*damp/(omega1+omega2)
a0 = a1*omega1*omega2

# Create Analysis 
ops.constraints('Penalty',1e17,1e17)
ops.test('NormDispIncr',1e-4,20,1)
ops.algorithm('Newton')
ops.numberer('RCM')
ops.system('BandGen')
ops.integrator('Newmark',0.5,0.25)
ops.rayleigh(a0,0,a1,0)
ops.analysis('Transient')

t = 0

ops.timeSeries('Path',2,'-time',0+t,1000+t,2000+t,4000+t,'-values',0,10,10,10,'-factor',1)


ops.pattern('MultipleSupport',2)
ops.groundMotion(2,'Plain','-vel',2)

ops.imposedMotion(9,4,2)
ops.imposedMotion(10,4,2)
ops.imposedMotion(11,4,2)
ops.imposedMotion(12,4,2)

ops.imposedMotion(20,4,2)
ops.imposedMotion(40,4,2)
ops.imposedMotion(60,4,2)
ops.imposedMotion(80,4,2)

ops.analyze(200,10)

ops.loadConst('-time')

t = 2000

ops.timeSeries('Path',3,'-time',0+t,1000+t,2000+t,'-values',0,10,10,'-factor',1)


ops.pattern('MultipleSupport',3)
ops.groundMotion(3,'Plain','-vel',3)

ops.imposedMotion(9,4,3)
ops.imposedMotion(10,4,3)
ops.imposedMotion(11,4,3)
ops.imposedMotion(12,4,3)

ops.imposedMotion(20,4,3)
ops.imposedMotion(40,4,3)
ops.imposedMotion(60,4,3)
ops.imposedMotion(80,4,3)

ops.analyze(200,10)

the pore pressure result for nodes 9,10,11,12,20,40,60,80
2000 10 10 10 10 10 10 10 10
2010 -1499.95 -1499.95 -1499.95 -1499.95 -1499.95 -1499.95 -1499.95 -1499.95
2020 1510.1 1510.1 1510.1 1510.1 1510.1 1510.1 1510.1 1510.1
2030 -1499.85 -1499.85 -1499.85 -1499.85 -1499.85 -1499.85 -1499.85 -1499.85

Thank you for your time, Kindly ask me If I have to provide any additional information.
by Trish
Mon Mar 13, 2023 6:38 am
Forum: OpenSeesPy
Topic: stress state under gravity
Replies: 0
Views: 8288

stress state under gravity

Dear,

I tried to reproduce the example presented in the Brick u-p element.
Below I am presenting the code.

Code: Select all

import opensees as ops
ops.wipe()
ops.model('basic','-ndm',3,'-ndf',4)

a = 1

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

ops.nDMaterial('PressureDependMultiYield02',1,3,1.8,9e4,22e4,31,0.1,80,0.5,26,0.067,0.23,0.06,0.27)

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

ops.equalDOF(2,4,1,3)
ops.equalDOF(2,6,1,3)
ops.equalDOF(2,8,1,3)

ops.element('brickUP',1,1,5,7,3,2,6,8,4,1,2.2e6,1,1e-5,1e-5,1e-5,0,0,-9.81)

ops.recorder('Node','-file','TRAIL_PP_pressure_TX.txt','-time','-nodeRange',1,8,'-dof',4,'vel')
ops.recorder('Element','-ele',1,'-time','-file','TRAIL_PP_stress_TX.txt','-dT',0.01,'material',1,'stress')

damp = 0.1
omega1 = 0.0157
omega2 =64.123
a1 = 2*damp/(omega1+omega2)
a0 = a1*omega1*omega2

# Create Analysis 
ops.constraints('Penalty',1e18,1e18)
ops.test('NormDispIncr',1e-8,20,1)
ops.algorithm('KrylovNewton')
ops.numberer('Plain')
ops.system('ProfileSPD')
ops.integrator('Newmark',0.5,0.25)
ops.rayleigh(a0,0,a1,0)
ops.analysis('Transient')

ops.analyze(100,5)
Here in the results the pore pressure is correct which is 9.81kPa. where as the stress is not consistent. The results show sigma zz as -3.9224 kPa, s it should be -8kPa. Is it showing the average stress of top and bottom.

Kindly, clarify my doubt.

Thanks in advance.

Best regards,
Trish.
by Trish
Fri Feb 17, 2023 6:48 am
Forum: OpenSeesPy
Topic: Density for sspbrick element
Replies: 1
Views: 2062

Density for sspbrick element

Dear all,

Can any one help me how can I assign density to sspbrick element with nd material Elastic isotropic.

Thank you in advance.
by Trish
Thu Feb 16, 2023 8:32 am
Forum: OpenSeesPy
Topic: Converegnce Error when simulating Cylic Test
Replies: 0
Views: 8551

Converegnce Error when simulating Cylic Test

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.
by Trish
Tue Jan 17, 2023 2:16 am
Forum: OpenSeesPy
Topic: How to apply acceleration due to gravity
Replies: 1
Views: 1591

How to apply acceleration due to gravity

Hello all,

I would like to ask. How to apply acceleration due to gravity in openseespy. I am using SSP Brick Up element. Is it enough if I gave (0,0,-9.81) in the place of body forces for the element.

Thank you in advance for the reply.
by Trish
Mon Dec 12, 2022 8:51 am
Forum: OpenSeesPy
Topic: Creating huge model- resulting kernel error
Replies: 0
Views: 9634

Creating huge model- resulting kernel error

Hello all,

I am working on a model, with 30420 nodes and elements 27550. I imported the nodes through python and created nodes and elements. The model is working fine up to a certain number of elements (21761). If I increase the number of elements I am getting a kernel error.

I including my script here:

Code: Select all

ops.model('basic','-ndm',3,'-ndf',4)
with open("Nodes_X_Co.txt", "r") as NOdes_Trial_X:
	   lines_X = NOdes_Trial_X.readlines()
with open("Nodes_Y_Co.txt", "r") as NOdes_Trial_Y:
	   lines_Y = NOdes_Trial_Y.readlines()
with open("Nodes_Z_Co.txt", "r") as NOdes_Trial_Z:
	   lines_Z = NOdes_Trial_Z.readlines()
X_Co_trial = []
Y_Co_trial = []
Z_Co_trial = []
for l in range(0,len(lines_X)):
       X_Co_trial.append(lines_X[l].replace("\n", ""))
  for l in range(0,len(lines_Y)):
       Y_Co_trial.append(lines_Y[l].replace("\n", ""))
  for l in range(0,len(lines_Z)):
       Z_Co_trial.append(lines_Z[l].replace("\n", ""))
       
 for j in range(0,len(X_Co_trial)):
    
 X_Co = float(X_Co_trial[j])
 Y_Co = float(Y_Co_trial[j])
 Z_Co = float(Z_Co_trial[j])
 ops.node(j+1,X_Co,Y_Co,Z_Co)
 
 with open("Element_num_Reservoir.txt", "r") as ELement_Trial_num:
	   Element_lines_num = ELement_Trial_num.readlines()
	   
with open("Element_1_Reservoir.txt", "r") as ELement_Trial_1:
	   Element_lines_1 = ELement_Trial_1.readlines()
with open("Element_2_Reservoir.txt", "r") as ELement_Trial_2:
	   Element_lines_2 = ELement_Trial_2.readlines()
with open("Element_3_Reservoir.txt", "r") as ELement_Trial_3:
	   Element_lines_3 = ELement_Trial_3.readlines()
with open("Element_4_Reservoir.txt", "r") as ELement_Trial_4:
	   Element_lines_4 = ELement_Trial_4.readlines()
with open("Element_5_Reservoir.txt", "r") as ELement_Trial_5:
	   Element_lines_5 = ELement_Trial_5.readlines()
with open("Element_6_Reservoir.txt", "r") as ELement_Trial_6:
	   Element_lines_6 = ELement_Trial_6.readlines()
with open("Element_7_Reservoir.txt", "r") as ELement_Trial_7:
	   Element_lines_7 = ELement_Trial_7.readlines()
with open("Element_8_Reservoir.txt", "r") as ELement_Trial_8:
	   Element_lines_8 = ELement_Trial_8.readlines()

Element_num =[]
Element_1 =[]
Element_2= []
Element_3 =[]
Element_4 =[]
Element_5 =[]
Element_6 =[]
Element_7 =[]
Element_8 =[]

for l in range(0,len(Element_lines_num)):
       Element_num.append(Element_lines_num[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_1.append(Element_lines_1[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_2.append(Element_lines_2[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_3.append(Element_lines_3[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_4.append(Element_lines_4[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_5.append(Element_lines_5[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_6.append(Element_lines_6[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_7.append(Element_lines_7[l].replace("\n", ""))
for l in range(0,len(Element_lines_num)):
       Element_8.append(Element_lines_8[l].replace("\n", ""))

for j in range(0,len(Element_lines_num)):
    
    num = int(Element_num[j])
    Ele_1 = int(Element_1[j])
    Ele_2 = int(Element_2[j])
    Ele_3 = int(Element_3[j])
    Ele_4 = int(Element_4[j])
    Ele_5 = int(Element_5[j])
    Ele_6 = int(Element_6[j])
    Ele_7 = int(Element_7[j])
    Ele_8 = int(Element_8[j])
    
    ops.element('SSPbrickUP',num,Ele_1,Ele_2,Ele_3,Ele_4,Ele_5,Ele_6,Ele_7,Ele_8,1,2.2e6,1,1e-9,1e-9,1e-9,0.67,1.5e-5)
    
 #Elements mono-phase - Caprock 

with open("Element_num_Caprock.txt", "r") as ELement_Trial_num_C:
	   Element_lines_num_C = ELement_Trial_num_C.readlines()
with open("Element_1_Caprock.txt", "r") as ELement_Trial_1_C:
	   Element_lines_1_C = ELement_Trial_1_C.readlines()
with open("Element_2_Caprock.txt", "r") as ELement_Trial_2_C:
	   Element_lines_2_C = ELement_Trial_2_C.readlines()
with open("Element_3_Caprock.txt", "r") as ELement_Trial_3_C:
	   Element_lines_3_C = ELement_Trial_3_C.readlines()
with open("Element_4_Caprock.txt", "r") as ELement_Trial_4_C:
	   Element_lines_4_C = ELement_Trial_4_C.readlines()
with open("Element_5_Caprock.txt", "r") as ELement_Trial_5_C:
	   Element_lines_5_C = ELement_Trial_5_C.readlines()
with open("Element_6_Caprock.txt", "r") as ELement_Trial_6_C:
	   Element_lines_6_C = ELement_Trial_6_C.readlines()
with open("Element_7_Caprock.txt", "r") as ELement_Trial_7_C:
	   Element_lines_7_C = ELement_Trial_7_C.readlines()
with open("Element_8_Caprock.txt", "r") as ELement_Trial_8_C:
	   Element_lines_8_C = ELement_Trial_8_C.readlines()
Element_num_C =[]
Element_1_C =[]
Element_2_C= []
Element_3_C =[]
Element_4_C =[]
Element_5_C =[]
Element_6_C =[]
Element_7_C =[]
Element_8_C =[]

for l in range(0,len(Element_lines_num_C)):
       Element_num_C.append(Element_lines_num_C[l].replace("\n", ""))
for l in range(0,len(Element_lines_num_C)):
       Element_1_C.append(Element_lines_1_C[l].replace("\n", ""))
for l in range(0,len(Element_lines_num_C)):
       Element_2_C.append(Element_lines_2_C[l].replace("\n", ""))
for l in range(0,len(Element_lines_num_C)):
       Element_3_C.append(Element_lines_3_C[l].replace("\n", ""))
for l in range(0,len(Element_lines_num_C)):
       Element_4_C.append(Element_lines_4_C[l].replace("\n", ""))  
for l in range(0,len(Element_lines_num_C)):
       Element_5_C.append(Element_lines_5_C[l].replace("\n", ""))         
for l in range(0,len(Element_lines_num_C)):
       Element_6_C.append(Element_lines_6_C[l].replace("\n", ""))  
for l in range(0,len(Element_lines_num_C)):
       Element_7_C.append(Element_lines_7_C[l].replace("\n", ""))     
for l in range(0,len(Element_lines_num_C)):
       Element_8_C.append(Element_lines_8_C[l].replace("\n", ""))  

for j in range(0,len(Element_lines_num_C)):
    
    num_C = int(Element_num_C[j])
    Ele_1_C = int(Element_1_C[j])
    Ele_2_C = int(Element_2_C[j])
    Ele_3_C = int(Element_3_C[j])
    Ele_4_C = int(Element_4_C[j])
    Ele_5_C = int(Element_5_C[j])
    Ele_6_C = int(Element_6_C[j])
    Ele_7_C = int(Element_7_C[j])
    Ele_8_C = int(Element_8_C[j])
    
    ops.element('SSPbrickUP',num_C,Ele_1_C,Ele_2_C,Ele_3_C,Ele_4_C,Ele_5_C,Ele_6_C,Ele_7_C,Ele_8_C,1,2.2e6,1,1e-9,1e-9,1e-9,0.67,1.5e-5)
 
damp = 0.1
omega1 = 0.0157
omega2 =64.123
a1 = 2*damp/(omega1+omega2)
a0 = a1*omega1*omega2

ops.test('NormDispIncr',1e-4,20,1)
ops.algorithm('Newton')
ops.numberer('RCM')
ops.system('BandGen')
ops.integrator('Newmark',0.5,0.25)
ops.rayleigh(a0,0,a1,0)
ops.analysis('Transient')

ops.analyze(1,1)
    
I checked also if there are any errors in the numbering of the elements, the code is working fine in parts. I am having problem, when I increased number of elements.

Kindly, provide me with suggestions.

Thank you in advance.
by Trish
Mon May 16, 2022 2:02 am
Forum: OpenSeesPy
Topic: Implementing Bounding Cam Clay
Replies: 0
Views: 14311

Implementing Bounding Cam Clay

Hello,
I am trying to implement nDMaterial('BoundingCamClay'). I am getting an error as follows:
CTestNormDispIncr::test() - iteration: 1 current Norm: 64.3004 (max: 1e-06, Norm deltaR: nan)
CTestNormDispIncr::test() - iteration: 2 current Norm: nan (max: 1e-06, Norm deltaR: nan)
.......
WARNING: CTestNormDispIncr::test() - failed to converge
after: 20 iterations current Norm: nan (max: 1e-06, Norm deltaR: nan)
NewtonRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 100
OpenSees > analyze failed, returned: -3 error flag
My code is

Code: Select all

from openseespy.opensees import *
wipe() 
model('basic','-ndm',3,'-ndf',4)
node(1,1,0,0)
node(2,1,1,0)
node(3,0,1,0)
node(4,0,0,0)
node(5,1,0,1)
node(6,1,1,1)
node(7,0,1,1)
node(8,0,0,1)

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

nDMaterial('BoundingCamClay',1,1.8,1,4e3,1,5.4e4,0,0.13,0,1.5)

element('SSPbrickUP',1,1,2,3,4,5,6,7,8,1,2.2e6,1,1e-9,1e-9,1e-9,0.7,6e-5)

test('NormDispIncr',1e-6,20,1)
algorithm('Newton')
analysis('Transient')

t = 60*60
timeSeries('Path',1,'-time',0,24*t,48*t,72*t,96*t,120*t,144*t,'-values',0,10,20,40,80,20,5,'-factor',1)

p = 1/4
pattern('Plain',1,1)
load(5,0,0,-p,0)
load(6,0,0,-p,0)
load(7,0,0,-p,0)
load(8,0,0,-p,0)

analyze(5184,100)
Can any one make me realize, what is the mistake.The analysis is not converging from second step.
The model is working fine with nDMaterial-ElastoIsotropic, Manzari Dafalias and DruckerPrager. With Bounding Cam Clay I am facing this issue.

Thank you.