Hello,
Do I need to explicitly assign nodal masses for eigen value analysis in Opensees?? Or whether if I assign densities to the element types in the model along with the lumped mass option, then nodal masses (for dead load along the vertical axis) are automatically calculated based on statically equivalent nodal gravity loads??
Regards
Tushar
Nodal Mass for eigen value analysis
Moderators: silvia, selimgunay, Moderators
Re: Nodal Mass for eigen value analysis
no .. nodal mass for beam elements .. densirty for the continuum elements.
Re: Nodal Mass for eigen value analysis
Thank you for the response. So for shell elements in the model (that I am using to model a thin plate structure), I can assign the density of the plate fiber section without having to assign nodal masses of the four corner nodes making up the shell element. And for elastic beam-column sections, I need to individually assign nodal masses for the two connecting nodes.
Regards
Tushar
Regards
Tushar
-
- Posts: 52
- Joined: Fri Mar 17, 2017 11:01 am
- Location: IIT Patna
Re: Nodal Mass for eigen value analysis
tguha wrote:
> Thank you for the response. So for shell elements in the model (that I am
> using to model a thin plate structure), I can assign the density of the
> plate fiber section without having to assign nodal masses of the four
> corner nodes making up the shell element. And for elastic beam-column
> sections, I need to individually assign nodal masses for the two connecting
> nodes.
>
> Regards
> Tushar
Hi how to assign the nodal masses manually for elastic beamcolumn. I have done 2d analysis where am getting the time periods exactly. But in 3d my time periods are not matching. I used match with SAP2000 results. I am using rigid diaphragm in the nalaysis and amnot suing any shell for defining the slab. Does this make the difference in time periods from Opnesees to SAP2000?
> Thank you for the response. So for shell elements in the model (that I am
> using to model a thin plate structure), I can assign the density of the
> plate fiber section without having to assign nodal masses of the four
> corner nodes making up the shell element. And for elastic beam-column
> sections, I need to individually assign nodal masses for the two connecting
> nodes.
>
> Regards
> Tushar
Hi how to assign the nodal masses manually for elastic beamcolumn. I have done 2d analysis where am getting the time periods exactly. But in 3d my time periods are not matching. I used match with SAP2000 results. I am using rigid diaphragm in the nalaysis and amnot suing any shell for defining the slab. Does this make the difference in time periods from Opnesees to SAP2000?
Re: Nodal Mass for eigen value analysis
procedure to define mass on plates
ListaEles: a list of plate elements
esp: thickness
d: density
mx: 1 active mass X, 0 deactivate mass X
my: 1 active mass Y, 0 deactivate mass Y
mz: 1 active mass Z, 0 deactivate mass Z
proc SurfaceMass {ListaEles esp d mx my mz} {
if {[llength ListaEles]==0} {puts "\ncargaEles: The element list is empty. -1 returned\n"; return -1}
set ns ""
foreach ele $ListaEles {
set nodos [eleNodes $ele]
set N2 [lindex $nodos 1]
set N4 [lindex $nodos 3]
set dx [expr [nodeCoord $N4 1]-[nodeCoord $N2 1]]
set dy [expr [nodeCoord $N4 2]-[nodeCoord $N2 2]]
set dz [expr [nodeCoord $N4 3]-[nodeCoord $N2 3]]
set Aele1 [expr abs($dy*$dz)]
set Aele2 [expr abs($dx*$dz)]
set Aele3 [expr abs($dx*$dy)]
set Aele [expr max($Aele1,$Aele2,$Aele3)]
foreach nodo $nodos {
set m [expr $Aele*$esp*$d/4.0]
set i [lsearch -exact $ns $nodo]
if $i>0 {
set mold [lindex $ms $i]
set m [expr $m+$mold]
set ms [lreplace $ms $i $i $m]
} else {
set ns [lappend ns $nodo]
set ms [lappend ms $m]
}
}
}
set j 0
set Mt 0
foreach vm $ms {
set vns [lindex $ns $j]
set Mt [expr $Mt+$vm]
mass $vns [expr $mx*$vm] [expr $my*$vm] [expr $mz*$vm] 0.0 0.0 0.0
set j [expr $j+1]
}
puts "Totl mass on plates:$Mt"
}
ListaEles: a list of plate elements
esp: thickness
d: density
mx: 1 active mass X, 0 deactivate mass X
my: 1 active mass Y, 0 deactivate mass Y
mz: 1 active mass Z, 0 deactivate mass Z
proc SurfaceMass {ListaEles esp d mx my mz} {
if {[llength ListaEles]==0} {puts "\ncargaEles: The element list is empty. -1 returned\n"; return -1}
set ns ""
foreach ele $ListaEles {
set nodos [eleNodes $ele]
set N2 [lindex $nodos 1]
set N4 [lindex $nodos 3]
set dx [expr [nodeCoord $N4 1]-[nodeCoord $N2 1]]
set dy [expr [nodeCoord $N4 2]-[nodeCoord $N2 2]]
set dz [expr [nodeCoord $N4 3]-[nodeCoord $N2 3]]
set Aele1 [expr abs($dy*$dz)]
set Aele2 [expr abs($dx*$dz)]
set Aele3 [expr abs($dx*$dy)]
set Aele [expr max($Aele1,$Aele2,$Aele3)]
foreach nodo $nodos {
set m [expr $Aele*$esp*$d/4.0]
set i [lsearch -exact $ns $nodo]
if $i>0 {
set mold [lindex $ms $i]
set m [expr $m+$mold]
set ms [lreplace $ms $i $i $m]
} else {
set ns [lappend ns $nodo]
set ms [lappend ms $m]
}
}
}
set j 0
set Mt 0
foreach vm $ms {
set vns [lindex $ns $j]
set Mt [expr $Mt+$vm]
mass $vns [expr $mx*$vm] [expr $my*$vm] [expr $mz*$vm] 0.0 0.0 0.0
set j [expr $j+1]
}
puts "Totl mass on plates:$Mt"
}