MDOF Mass-Spring model

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
esi_opensees
Posts: 93
Joined: Mon Apr 14, 2008 10:53 pm

MDOF Mass-Spring model

Post by esi_opensees » Fri Oct 03, 2014 3:51 am

Hi,

I am going to model a 2-story shear building using Mass-Spring model. The real mode is: http://opensees.berkeley.edu/wiki/index ... hear_frame

when I convert it to Mass-Spring model, I face with this error: ArpackSolver : Error with_ saupd info = -9999
Would you please guide me?
Here is the script:

# units: in, kips

wipe

#input
set m [expr 100.0/386.0]
set numModes 2

# create data directory
file mkdir modes;

#---------------------------------
#model builder
model BasicBuilder -ndm 2 -ndf 3

# nodal coordinates:
node 1 0. 0. ;
node 2 0. 0. ;
node 3 0. 0. ;

# Single point constraints -- Boundary Conditions
fix 1 1 1 1;

equalDOF 1 2 3 1

# assign mass
mass 2 $m 0. 0. ;
mass 3 [expr $m/2.] 0. 0. ;

#k1=4EIc/h^3 =12.86 , k2=2EIc/h^3 =6.43
uniaxialMaterial Elastic 1 12.8600823
uniaxialMaterial Elastic 2 6.430041152

# define elements:
element zeroLength 1 1 2 -mat 1 -dir 1
element zeroLength 2 2 3 -mat 2 -dir 1


# record eigenvectors
#----------------------
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 6 -dof 1 2 3 "eigen $k"
}

# perform eigen analysis
#-----------------------------
set lambda [eigen $numModes];

# calculate frequencies and periods of the structure
#---------------------------------------------------
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

puts "periods are $T"

# write the output file cosisting of periods
#--------------------------------------------
set period "modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods

# Run a one step gravity load with no loading (to record eigenvectors)
#-----------------------------------------------------------------------
integrator LoadControl 0 1 0 0

# Convergence test
# tolerance maxIter displayCode
test EnergyIncr 1.0e-10 100 0

# Solution algorithm
algorithm Newton

# DOF numberer
numberer RCM

# Constraint handler
constraints Transformation


# System of equations solver
system ProfileSPD

analysis Static
set res [analyze 1]
if {$res < 0} {
puts "Modal analysis failed"
}

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: MDOF Mass-Spring model

Post by fmk » Fri Oct 03, 2014 7:56 am

your nodes have not enough constraints with ndf of 3 .. use an ndf of 1.

esi_opensees
Posts: 93
Joined: Mon Apr 14, 2008 10:53 pm

Re: MDOF Mass-Spring model

Post by esi_opensees » Fri Oct 03, 2014 10:29 am

Thank you very much for your attention; I changed the manuscript as follows; but it gives error message, yet. Would you please guide me?

wipe

#input
set m [expr 100.0/386.0]
set numModes 2

# create data directory
file mkdir modes;

#---------------------------------
#model builder
model BasicBuilder -ndm 2 -ndf 1

# nodal coordinates:
node 1 0. 0. ;
node 2 0. 0. ;
node 3 0. 0. ;

# Single point constraints -- Boundary Conditions
fix 1 1 ;

equalDOF 1 2 3 1

# assign mass
mass 2 $m ;
mass 3 [expr $m/2.] ;

#k1=4EIc/h^3 =12.86 , k2=2EIc/h^3 =6.43
uniaxialMaterial Elastic 1 12.8600823
uniaxialMaterial Elastic 2 6.430041152

# define elements:
element zeroLength 1 1 2 -mat 1 -dir 1
element zeroLength 2 2 3 -mat 2 -dir 1


# record eigenvectors
#----------------------
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 3 -dof 1 "eigen $k"
}

# perform eigen analysis
#-----------------------------
set lambda [eigen $numModes];

# calculate frequencies and periods of the structure
#---------------------------------------------------
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

puts "periods are $T"

# write the output file cosisting of periods
#--------------------------------------------
set period "modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods

# Run a one step gravity load with no loading (to record eigenvectors)
#-----------------------------------------------------------------------
integrator LoadControl 0 1 0 0

# Convergence test
# tolerance maxIter displayCode
test EnergyIncr 1.0e-10 100 0

# Solution algorithm
algorithm Newton

# DOF numberer
numberer RCM

# Constraint handler
constraints Transformation


# System of equations solver
system ProfileSPD

analysis Static
set res [analyze 1]
if {$res < 0} {
puts "Modal analysis failed"
}

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: MDOF Mass-Spring model

Post by fmk » Fri Oct 03, 2014 10:51 am

set ndm 1 and provide 1 coordinate for the nodes

esi_opensees
Posts: 93
Joined: Mon Apr 14, 2008 10:53 pm

Re: MDOF Mass-Spring model

Post by esi_opensees » Fri Oct 03, 2014 11:24 am

Thanks again.

Now, for a 2 dof system I got ONE period; how can I get 2 periods?

wipe

#input
set m [expr 100.0/386.0]
set numModes 1

# create data directory
file mkdir modes;

#---------------------------------
#model builder
model BasicBuilder -ndm 1 -ndf 1

# nodal coordinates:
node 1 0. ;
node 2 0. ;
node 3 0. ;

# Single point constraints -- Boundary Conditions
fix 1 1 ;

#equalDOF 1 2 3 1

# assign mass
mass 2 $m ;
mass 3 [expr $m/2.] ;

#k1=4EIc/h^3 =12.86 , k2=2EIc/h^3 =6.43
uniaxialMaterial Elastic 1 12.8600823
uniaxialMaterial Elastic 2 6.430041152

# define elements:
element zeroLength 1 1 2 -mat 1 -dir 1
element zeroLength 2 2 3 -mat 2 -dir 1


# record eigenvectors
#----------------------
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 3 -dof 1 "eigen $k"
}

# perform eigen analysis
#-----------------------------
set lambda [eigen $numModes];

# calculate frequencies and periods of the structure
#---------------------------------------------------
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

puts "periods are $T"

# write the output file cosisting of periods
#--------------------------------------------
set period "modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods

# Run a one step gravity load with no loading (to record eigenvectors)
#-----------------------------------------------------------------------
integrator LoadControl 0 1 0 0

# Convergence test
# tolerance maxIter displayCode
test EnergyIncr 1.0e-10 100 0

# Solution algorithm
algorithm Newton

# DOF numberer
numberer RCM

# Constraint handler
constraints Transformation


# System of equations solver
system ProfileSPD

analysis Static
set res [analyze 1]
if {$res < 0} {
puts "Modal analysis failed"
}

Post Reply