Creating huge model- resulting kernel error

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

Creating huge model- resulting kernel error

Post by Trish » Mon Dec 12, 2022 8:51 am

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.

Post Reply