what is the limit of the element number ?
Moderators: silvia, selimgunay, Moderators
what is the limit of the element number ?
hello all!
I have a super huge model using stdBrick element , before analyze it , I want to test how many elements it can calculate using OpenSees2.2.0.exe
the codes are following:
###################################################
####################################################
wipe ;
model basic -ndm 3 -ndf 3
source LibUnits.tcl
set Econ [expr 2.55*1e4*$MPa]
set s [expr 2.5*$ton/$m3 ] ; #
set vp 0.2
nDMaterial ElasticIsotropic 1 $Econ $vp $s
set eleArgs "1"
set element stdBrick
set nx 20
set ny 28
set nz 50
set eleNum [expr $nx*$ny*$nz]
set nn [expr ($nz+1)*($nx+1)*($ny+1) ] ; # # mesh generation
block3D $nx $ny $nz 1 1 $element $eleArgs {
1 0 0 0
2 0.5 0 0
3 0.5 0.5 0
4 0 0.5 0
5 0 0 5
6 0.5 0 5
7 0.5 0.5 5
8 0 0.5 5
}
# recorder Node -file $eleNum.out -node $nn -time -dof 2 disp
# recorder plot 2Node.out CenterNodeDisp 625 10 625 450 -columns 1 2
#recorder display ShakingBeam 0 0 500 500 -wipe
#prp -100 100 120.5
#vup 0 1 0
#display 1 0 100
set load [expr -4*$KN]
set dis [expr -0.000889695 ]
set lt "load"
# set lt "dis"
if {$lt=="load"} {
pattern Plain 1 Linear {
load $nn 0.0 $load 0.0
}
}
if {$lt=="dis"} {
pattern Plain 1 Linear {
sp $nn 2 $dis
}
}
# boundary conditions
fixZ 0.0 1 1 1
puts "
set Nstep 1 ; # apply gravity in 10 steps
set DGravity [expr 1./$Nstep ]; # first load increment;
integrator LoadControl $DGravity; # determine the next time step for an analysis
test NormUnbalance 1.0e-6 350 1
algorithm Linear
#algorithm Newton
# set sys UmfPack
# set sys ProfileSPD
set sys SparseGeneral
# set sys SparseSymmetric
set nbr Plain
# set nbr AMD
#set nbr RCM
# set cts Plain
# set cts {Penalty 1.0e12 1.0e12}
set cts Transformation
# set cts Lagrange
system $sys
numberer $nbr
constraints $cts
# constraints Penalty 1.0e12 1.0e12
analysis Static; # define type of analysis static or transient
set startT [clock seconds]
analyze $Nstep
set endT [clock seconds]
puts "
system : $sys ,numberer $nbr , constraints :$cts
完成时间: [expr $endT-$startT] 秒 。 "
print node $nn
it seems that the limit is
26,000 stdBrick elements , 28,917 nodes , 3*28917 dofs
I use
system : ProfileSPD ,numberer Plain , constraints :Transformation
(it seems it is best )
so , any one has done the work like me ? or if I want to calculate more elements , how can I do this ? thanks !!
## source cantibeamstdBrcik.tcl
I have a super huge model using stdBrick element , before analyze it , I want to test how many elements it can calculate using OpenSees2.2.0.exe
the codes are following:
###################################################
####################################################
wipe ;
model basic -ndm 3 -ndf 3
source LibUnits.tcl
set Econ [expr 2.55*1e4*$MPa]
set s [expr 2.5*$ton/$m3 ] ; #
set vp 0.2
nDMaterial ElasticIsotropic 1 $Econ $vp $s
set eleArgs "1"
set element stdBrick
set nx 20
set ny 28
set nz 50
set eleNum [expr $nx*$ny*$nz]
set nn [expr ($nz+1)*($nx+1)*($ny+1) ] ; # # mesh generation
block3D $nx $ny $nz 1 1 $element $eleArgs {
1 0 0 0
2 0.5 0 0
3 0.5 0.5 0
4 0 0.5 0
5 0 0 5
6 0.5 0 5
7 0.5 0.5 5
8 0 0.5 5
}
# recorder Node -file $eleNum.out -node $nn -time -dof 2 disp
# recorder plot 2Node.out CenterNodeDisp 625 10 625 450 -columns 1 2
#recorder display ShakingBeam 0 0 500 500 -wipe
#prp -100 100 120.5
#vup 0 1 0
#display 1 0 100
set load [expr -4*$KN]
set dis [expr -0.000889695 ]
set lt "load"
# set lt "dis"
if {$lt=="load"} {
pattern Plain 1 Linear {
load $nn 0.0 $load 0.0
}
}
if {$lt=="dis"} {
pattern Plain 1 Linear {
sp $nn 2 $dis
}
}
# boundary conditions
fixZ 0.0 1 1 1
puts "
set Nstep 1 ; # apply gravity in 10 steps
set DGravity [expr 1./$Nstep ]; # first load increment;
integrator LoadControl $DGravity; # determine the next time step for an analysis
test NormUnbalance 1.0e-6 350 1
algorithm Linear
#algorithm Newton
# set sys UmfPack
# set sys ProfileSPD
set sys SparseGeneral
# set sys SparseSymmetric
set nbr Plain
# set nbr AMD
#set nbr RCM
# set cts Plain
# set cts {Penalty 1.0e12 1.0e12}
set cts Transformation
# set cts Lagrange
system $sys
numberer $nbr
constraints $cts
# constraints Penalty 1.0e12 1.0e12
analysis Static; # define type of analysis static or transient
set startT [clock seconds]
analyze $Nstep
set endT [clock seconds]
puts "
system : $sys ,numberer $nbr , constraints :$cts
完成时间: [expr $endT-$startT] 秒 。 "
print node $nn
it seems that the limit is
26,000 stdBrick elements , 28,917 nodes , 3*28917 dofs
I use
system : ProfileSPD ,numberer Plain , constraints :Transformation
(it seems it is best )
so , any one has done the work like me ? or if I want to calculate more elements , how can I do this ? thanks !!
## source cantibeamstdBrcik.tcl
the limit on virtual address space is 2GB on windows. you can adjust this if you want to play with your system:
[url]
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
[/url]
the model takes up 674MB, the analysis apart from the solver takes memory usage up to 710MB. after this comes memory neeeded by the solver. Umfpack takes usage up to 2GB, SparseSPD 1.78GB, Mumps 1.75GB.
it is not the model that is taking up all the memory, but the solver. if you modified the shape of your mesh the number of elements & nodes you could have before the problem would not run would go up or down.
i will include a CG ele-by-ele solver i have in the next release. in the meantime you could always try the parallel version of the code (use Mumps solver)
[/url]
[url]
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
[/url]
the model takes up 674MB, the analysis apart from the solver takes memory usage up to 710MB. after this comes memory neeeded by the solver. Umfpack takes usage up to 2GB, SparseSPD 1.78GB, Mumps 1.75GB.
it is not the model that is taking up all the memory, but the solver. if you modified the shape of your mesh the number of elements & nodes you could have before the problem would not run would go up or down.
i will include a CG ele-by-ele solver i have in the next release. in the meantime you could always try the parallel version of the code (use Mumps solver)
[/url]
thanks fmk .
I have tried so many times . now it can solve a bridge model with 104,158 nodes successfully ,
I used
system SparseSPD , numberer AMD, constraints Plain
and I also print the last node 104,158 , it is
Node: 104158
Coordinates : 291.983 6.3 14
Disps: 0.000156146 1.0934e-005 -0.000110803
unbalanced Load: 0 0 0
ID : 306627 306628 306629
. then I divided more elements for the same model ,it has 122,723 nodes
I have tried several combination , at last I found that when I use "system SparseSPD numberer Plain constraints Plain "
it solved successfully in a shorter time , with neither warnings nor errors .(and others failed )
while the results seemed wrong :
Node: 122723
Coordinates : 291.983 6.3 14
Disps: -48.9482 0.00829702 -7943.71
unbalanced Load: 0 0 0
ID : 366066 366067 366068
although the node tag is different , the two nodes have the same coordinates , it means they are the same node .
further more , I know the first one is right , because the previous results are similar .
so what's the matter ?
can you explain it for me ? i need your help ,thanks !
I have tried so many times . now it can solve a bridge model with 104,158 nodes successfully ,
I used
system SparseSPD , numberer AMD, constraints Plain
and I also print the last node 104,158 , it is
Node: 104158
Coordinates : 291.983 6.3 14
Disps: 0.000156146 1.0934e-005 -0.000110803
unbalanced Load: 0 0 0
ID : 306627 306628 306629
. then I divided more elements for the same model ,it has 122,723 nodes
I have tried several combination , at last I found that when I use "system SparseSPD numberer Plain constraints Plain "
it solved successfully in a shorter time , with neither warnings nor errors .(and others failed )
while the results seemed wrong :
Node: 122723
Coordinates : 291.983 6.3 14
Disps: -48.9482 0.00829702 -7943.71
unbalanced Load: 0 0 0
ID : 366066 366067 366068
although the node tag is different , the two nodes have the same coordinates , it means they are the same node .
further more , I know the first one is right , because the previous results are similar .
so what's the matter ?
can you explain it for me ? i need your help ,thanks !
dear fmk
can you tell me how can I get the Gausspoints of the stdBrick element ?
annother question, I have found that the Gausspoints of the Brick8N element are different from othe FEA software , I want to get the stresss of the nodes from the Gausspoints , I want to know the relationship between the GPTS and nodes in the stdBrick / Brick8N element ,thanks
can you tell me how can I get the Gausspoints of the stdBrick element ?
annother question, I have found that the Gausspoints of the Brick8N element are different from othe FEA software , I want to get the stresss of the nodes from the Gausspoints , I want to know the relationship between the GPTS and nodes in the stdBrick / Brick8N element ,thanks
you need to start looking at the source code.
+- 1/sqrt(3)
[url]
http://opensees.berkeley.edu/cgi-bin/cv ... web-markup
[/url]
+- 1/sqrt(3)
[url]
http://opensees.berkeley.edu/cgi-bin/cv ... web-markup
[/url]