I tried with argument names prefixed with *, however after executing the command Python is restarted and ofcourse opensees is exited. Below is the code
The script runs without any error message, but ops is exited and line number in Anaconda console returns 1, it seems python has restarted and all namespaces are lost.
I have manually checked by typing SFI_MVLEM command, it is indeed exiting.
# ------------------------------------------------------------------------
# This file is to check SFI MVLEM
# -----------------------------------------------------------------------
import math
import openseespy.opensees as ops
import numpy as np
ops.wipe()
ndm = int(2)
ndf = int(3)
ops.model('basic', '-ndm', ndm, '-ndf', ndf)
# ---------------------------------------------------------------------------
# Geometry
# Node 1 is base
# ----------------------------------------------------------------------------
nodelist = []
nodelist = [[1,0.0,0.0],
[2,3100.,0.0],
[3,6100.,0.0],
[4,9100.,0.0],
[5,12100.,0.0]]
for nodes in nodelist:
ops.node(int(nodes[0]),nodes[1],nodes[2])
#------------------------------------------
# Fixity
# Node 1 must be restrained for translation
#-------------------------------------------
ops.fix(1,1,1,1)
#-------------------------------------------
# Material specs
# Steel 02 for rebars
# ConcreteCM for concrete
# FSAM for shear walls
#-------------------------------------------
rebarMatTagD = 100
rebarMatTagH = 101
FyD = 324.0 # MPa
FyH = 430.0 # MPa
E0 = 200000.0 # MPa
b = 0.05
params = [15.,0.925,0.15]
#------------------------------------------
# Reinforcement
#------------------------------------------
ops.uniaxialMaterial('Steel02',
rebarMatTagD,
FyD,
E0,
b,
*params)
ops.uniaxialMaterial('Steel02',
rebarMatTagH,
FyH,
E0,
b,
*params)
#-------------------------------------------
# Web concrete
#-------------------------------------------
concMatTagWeb= 300
fpcc = -30
epcc = -0.002
Ec = 5700*(-fpcc)**0.5
rc = max(-fpcc/6.68-1.85,1)
xcrn = 2
ft = 0.36*(-fpcc)**0.5
et = 2*ft/Ec
rt = 1.0
xcrp = 10000
ops.uniaxialMaterial('ConcreteCM',
concMatTagWeb,
fpcc,
epcc,
Ec,
rc,
xcrn,
ft,
et,
rt,
xcrp,
'-GapClose', 0)
#-------------------------------------------
# Flange concrete
#-------------------------------------------
concMatTagFlange= 301
fpcc = -30
epcc = -0.002
Ec = 5700*(-fpcc)**0.5
rc = max(-fpcc/6.68-1.85,1)
xcrn = 2
ft = 0.36*(-fpcc)**0.5
et = 2*ft/Ec
rt = 1.0
xcrp = 10000
ops.uniaxialMaterial('ConcreteCM',
concMatTagFlange,
fpcc,
epcc,
Ec,
rc,
xcrn,
ft,
et,
rt,
xcrp,
'-GapClose', 0)
# --------------------------------------------
# FSAM materials
#---------------------------------------------
fsamMatTagWeb = 1001
rho = 0
sxTag = rebarMatTagH
syTag = rebarMatTagD
concTag = concMatTagWeb
roux = 2*math.pi*16**2/4/180/300
rouy = 2*math.pi*16**2/4/200/300
nu = 0.7
alfadow = 0.01
ops.nDMaterial('FSAM',
fsamMatTagWeb,
rho,
sxTag,
syTag,
concTag,
roux,
rouy,
nu,
alfadow)
fsamMatTagFlange = 1002
rho = 0
sxTag = rebarMatTagD
syTag = rebarMatTagD
concTag = concMatTagFlange
roux = 2*math.pi*10**2/4/150/500
rouy = 10*math.pi*32**2/4/500/800
ops.nDMaterial('FSAM',
fsamMatTagFlange,
rho,
sxTag,
syTag,
concTag,
roux,
rouy,
nu,
alfadow)
#-------------------------------------------
# Member incidences
#-------------------------------------------
t = [500.,300.,300.,300.,300.,300.,500.]
w = [800.,1920.,1920.,1920.,1920.,1920.,800.]
m = [fsamMatTagFlange,fsamMatTagWeb,fsamMatTagWeb,fsamMatTagWeb,fsamMatTagWeb,fsamMatTagWeb,fsamMatTagFlange]
for i, nodes in enumerate(nodelist):
if(i>=len(nodelist)-1):
break
eletag = int(i+1)
nodeconnect = [int(nodelist[0]),int(nodelist[i+1][0])]
ops.element('SFI_MVLEM',
eletag,
*nodeconnect,
7,
0.4,
'-thick',*t,
'-width',*w,
'-mat',*m)
SFI_MVLEM
Moderators: silvia, selimgunay, Moderators