You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Opensees verison == 3.3.0.1.1
p-y curve is linear, instead of multilinear
Hi,
I have created a simple spring model (one end fixed, other end free). A gradually increasing force was applied at the free end. Reaction and Displacements obtained were plotted. The material of the spring is defined as uniaxial Multi-Linear. Was expecting a multi-linear p-y plot. But the result is only a linear plot.
Please see the code snippet below, to recreate the model and analysis.
My question is -> Why am i getting a linear plot even though my material model is multilinear? And what can i do to get the multi-linear plot from this spring example. Thanks.
import openseespy.opensees as op
p-y values used for defining u1, f1 for ElasticMultiLinear material model
p = [0, 10599.12, 18293.92, 22678.72, 24839.90, 25828.98, 26266.23, 26456.58, 26538.88, 26574.36] # units = N/m2
p_force = [item * 8 * 0.5 for item in p]
y = [0, 0.012, 0.025, 0.038, 0.050, 0.063, 0.075, 0.088, 0.10, 0.113]
# Defining u and f for ElasticMultiLinear material model
u = y
f = p
# cleaning existing stuff
op.wipe()
# spring nodes created with 1 dim, 1 dof
op.model('basic', '-ndm', 1, '-ndf', 1) # 1DOF because spring is in X-direction only.
op.node(1, 0.0) # spring node 1 # this will be connected to pile node
op.node(100 + 1, 0.0) # spring node 2 # this node will be fixed
# adding DOFs to these spring nodes (i.e. spring nodes created above)
op.fix(1, 0) # restraint for spring node 1
op.fix(100 + 1, 1) # restraint for spring node 2
# create spring material objects
op.uniaxialMaterial('ElasticMultiLinear', 2, 0.0, '-strain', *u, '-stress', *f)
# create zero length element for springs - adding spring '1001' between spring node '1' and '101'
op.element('zeroLength', 1000 + 1, 1, 100 + 1, '-mat', 2, '-dir', 1, 3)
# create pile nodes
op.model('basic', '-ndm', 1, '-ndf', 1)
op.node(200 + 1, 0.0)
# fixing DOF at pile node - cfixity at pile head (location of loading)
op.fix(200 + 1, 0) # this pile nodes is kept free to move along X-direction, as force is applied on this pile node
# define equal dof between pile and spring nodes
op.equalDOF(200 + 1, 1, 1)
# create recorders
timeStep = 1
# record displacements at pile nodes
op.recorder('Node', '-file', 'pileDisp.out', '-time', '-dT', timeStep, '-nodeRange', 201, 200 + 1, '-dof', 1, 'disp')
# record reaction force in the p-y springs
op.recorder('Node', '-file', 'reaction.out', '-time', '-dT', timeStep, '-nodeRange', 1, 1, '-dof', 1, 'reaction')
# record element forces in pile elements
op.recorder('Element', '-file', 'pileForce.out', '-time', '-dT', timeStep, '-eleRange', 201, 200 + 1,
'globalForce')
# create loading
op.setTime(0.0)
# apply point load at the pile node
values = [0.0, 0.01, 1.0, 1.0]
time = [0.0, 0.01, 100, 150] # when load = 300000
node_tag = 200 + 1
load_values = [100000]
op.timeSeries('Path', 1, '-values', *values, '-time', *time, '-factor', 1.0)
op.pattern('Plain', 10, 1)
op.load(node_tag, *load_values)
# create and run analysis
op.integrator('LoadControl', 0.05)
op.numberer('RCM')
op.system('SparseGeneral')
op.constraints('Transformation')
op.test('NormDispIncr', 1e-5, 20, 1)
op.algorithm('Newton')
op.analysis('Static')
print("Starting Load Application...")
op.analyze(15000)
The attached image shows the plot created from output of this script (plotted in orange, plotted reaction vs pile displacement) and the original p-force vs y is plotted in blue (multilinear)
The text was updated successfully, but these errors were encountered:
Opensees verison == 3.3.0.1.1
p-y curve is linear, instead of multilinear
Hi,
I have created a simple spring model (one end fixed, other end free). A gradually increasing force was applied at the free end. Reaction and Displacements obtained were plotted. The material of the spring is defined as uniaxial Multi-Linear. Was expecting a multi-linear p-y plot. But the result is only a linear plot.
Please see the code snippet below, to recreate the model and analysis.
My question is -> Why am i getting a linear plot even though my material model is multilinear? And what can i do to get the multi-linear plot from this spring example. Thanks.
The attached image shows the plot created from output of this script (plotted in orange, plotted reaction vs pile displacement) and the original p-force vs y is plotted in blue (multilinear)
The text was updated successfully, but these errors were encountered: