what is the limit of the element number ?

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

Moderators: silvia, selimgunay, Moderators

Post Reply
liushuhao
Posts: 88
Joined: Thu Jul 02, 2009 4:13 am
Location: HangZhou,ZheJiang,China

what is the limit of the element number ?

Post by liushuhao »

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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

the solver is not a suitable cchoice for a large model .. use a sparse solver SparseSPD or Umfpack.
liushuhao
Posts: 88
Joined: Thu Jul 02, 2009 4:13 am
Location: HangZhou,ZheJiang,China

Post by liushuhao »

thanks fmk
as I know , it depends on the "system ,numberer and constraints " , am i right ,I have tried different combination again and again,but failed .can you suggest one combination ?thanks
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

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]
liushuhao
Posts: 88
Joined: Thu Jul 02, 2009 4:13 am
Location: HangZhou,ZheJiang,China

Post by liushuhao »

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 !
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

i can't explain it as i don't know how the models differ!
liushuhao
Posts: 88
Joined: Thu Jul 02, 2009 4:13 am
Location: HangZhou,ZheJiang,China

Post by liushuhao »

thanks fmk
while i found it seems that the OS can calculate more elements when I use stdBrick than Brick8N .why ?
another question, how can I get the Gusspoint coordinates of the stdBrick ?
I really want to use stdBrick elements , did you release the 2.2.1 version ?
liushuhao
Posts: 88
Joined: Thu Jul 02, 2009 4:13 am
Location: HangZhou,ZheJiang,China

Post by liushuhao »

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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

you need to start looking at the source code.

+- 1/sqrt(3)

[url]
http://opensees.berkeley.edu/cgi-bin/cv ... web-markup
[/url]
Post Reply