A simple column buckling analysis
Moderators: silvia, selimgunay, Moderators
A simple column buckling analysis
Dear sir,
I am trying to do a simple column buckling analysis. I am getting some errors.
Can you kindly help me out.
My code:
import openseespy.opensees as ops
import openseespy.postprocessing.Get_Rendering as pst
ops.model('basic','-ndm',2,'-ndf',3)
ops.node(1,0,0)
ops.node(2,0,10000)
ops.geomTransf('Linear',1)
#element('elasticBeamColumn', eleTag, *eleNodes, Area, E_mod, Iz, transfTag, <'-mass', mass>, <'-cMass'>, <'-release', releaseCode>)
eleNodes = [1,2]
ops.element('elasticBeamColumn',1,*eleNodes,299,200000,960823.562,1)
ops.fix(1,1,1,0)
massv = [0,1,0]
ops.mass(2,*massv)
#timeSeries('Constant', tag, '-factor', factor=1.0)
ops.timeSeries('Constant',1,'-factor',1)
#pattern('Plain', patternTag, tsTag, '-fact', fact)
ops.pattern('Plain',1,1)
#load(nodeTag, *loadValues)
loadValues=[0,-1,0]
ops.load(2,*loadValues)
pst.plot_model()
ops.constraints('Plain')
ops.numberer('RCM')
ops.algorithm('Newton')
ops.system('BandSPD')
ops.analysis('Static')
a = ops.eigen(3)
ops.analyze(numIncr=1)
pst.plot_modeshape(1)
print(a)
I am trying to do a simple column buckling analysis. I am getting some errors.
Can you kindly help me out.
My code:
import openseespy.opensees as ops
import openseespy.postprocessing.Get_Rendering as pst
ops.model('basic','-ndm',2,'-ndf',3)
ops.node(1,0,0)
ops.node(2,0,10000)
ops.geomTransf('Linear',1)
#element('elasticBeamColumn', eleTag, *eleNodes, Area, E_mod, Iz, transfTag, <'-mass', mass>, <'-cMass'>, <'-release', releaseCode>)
eleNodes = [1,2]
ops.element('elasticBeamColumn',1,*eleNodes,299,200000,960823.562,1)
ops.fix(1,1,1,0)
massv = [0,1,0]
ops.mass(2,*massv)
#timeSeries('Constant', tag, '-factor', factor=1.0)
ops.timeSeries('Constant',1,'-factor',1)
#pattern('Plain', patternTag, tsTag, '-fact', fact)
ops.pattern('Plain',1,1)
#load(nodeTag, *loadValues)
loadValues=[0,-1,0]
ops.load(2,*loadValues)
pst.plot_model()
ops.constraints('Plain')
ops.numberer('RCM')
ops.algorithm('Newton')
ops.system('BandSPD')
ops.analysis('Static')
a = ops.eigen(3)
ops.analyze(numIncr=1)
pst.plot_modeshape(1)
print(a)
Re: A simple column buckling analysis
It looks like you have a pin condition at node 1 and no other boundary conditions, so the column is a rigid body mechanism. Add a fix to node 2.
Re: A simple column buckling analysis
Sorry for that. I have given a pinned BC at the second node now.
But still it gives an error.
ArpackSolver::Error with _saupd info = -3
NCV must be greater than NEV and less than or equal to N.
WARNING DirectIntegrationAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
But still it gives an error.
ArpackSolver::Error with _saupd info = -3
NCV must be greater than NEV and less than or equal to N.
WARNING DirectIntegrationAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
Re: A simple column buckling analysis
Try doing eigen with only one mode.
ops.eigen(1)
ops.eigen(1)
Re: A simple column buckling analysis
Now the error changes
It says starting vector is zero
ArpackSolver::Error with _saupd info = -9
Starting vector is zero.
WARNING StaticAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
It says starting vector is zero
ArpackSolver::Error with _saupd info = -9
Starting vector is zero.
WARNING StaticAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
Re: A simple column buckling analysis
Try adding more mass to node 2 (even though it's not used)
massv = [1,1,0]
massv = [1,1,0]
Re: A simple column buckling analysis
Yes. I added but the same error persists. I tried with one more mass -> massv = [1,1,1], then the error is:
ArpackSolver::Error with _saupd info = -9999
Could not build an Arnoldi factorization.IPARAM(5) the size of the current Arnoldi factorization: is 1factorization. The user is advised to check thatenough workspace and array storage has been allocated.
WARNING StaticAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
ArpackSolver::Error with _saupd info = -9999
Could not build an Arnoldi factorization.IPARAM(5) the size of the current Arnoldi factorization: is 1factorization. The user is advised to check thatenough workspace and array storage has been allocated.
WARNING StaticAnalysis::eigen() - EigenSOE failed in solve()
WANRING failed to do eigen analysis
Re: A simple column buckling analysis
Try using ops.eigen('fullGenLapack',1)
Re: A simple column buckling analysis
Yes, I tried I am getting this error:
FullGenEigenSolver::solve() - the eigenvalue 1 is numerically undetermined or infinite
FullGenEigenSolver::solve() - the eigenvalue 1 is numerically undetermined or infinite
Re: A simple column buckling analysis
GOT IT !!! Small mistake in boundary condition.
Thank you.
Thank you.
Re: A simple column buckling analysis
I am getting the answer with the following code.
But the value seems to be wrong, from calculation and from MASTAN2
Pcr = (pi)^2*E*I/L^2
The value is supposed to be 18545 N. But OpenSees is giving 5980 N.
The working code:
Kindly look into the matter
But the value seems to be wrong, from calculation and from MASTAN2
Pcr = (pi)^2*E*I/L^2
The value is supposed to be 18545 N. But OpenSees is giving 5980 N.
The working code:
Code: Select all
import openseespy.opensees as ops
import openseespy.postprocessing.Get_Rendering as pst
ops.model('basic','-ndm',2,'-ndf',3)
ops.node(1,0,0)
ops.node(2,0,10000)
ops.node(3,0,5000)
ops.geomTransf('Linear',1)
eleNodes1 = [1,3]
eleNodes2 = [3,2]
ops.element('elasticBeamColumn',1,*eleNodes1,299,200000,960823.562,1)
ops.element('elasticBeamColumn',2,*eleNodes2,299,200000,960823.562,1)
ops.fix(1,1,1,0)
ops.fix(2,1,0,0)
massv = [1,1,1]
ops.mass(2,*massv)
ops.timeSeries('Constant',1,'-factor',1)
ops.pattern('Plain',1,1)
loadValues=[0,-1,0]
ops.load(2,*loadValues)
pst.plot_model()
ops.constraints('Plain')
ops.numberer('RCM')
ops.algorithm('Newton')
ops.system('BandSPD')
ops.integrator('LoadControl')
ops.analysis('Static')
a=ops.eigen('fullGenLapack',1)
ops.analyze(1)
print(a)
Re: A simple column buckling analysis
So, you are trying to trick OpenSees in to calculating buckling loads via the eigenvalue solver. You can't use mass=1, you have to make the "mass" equal to the stability variable psi=L*sqrt(P/EI) ... I think that will work for a single column, but will become very cumbersome for larger models.