1.4
DYNAMIC MEMORY Z88
HEADER
FILE Z88.DYN AND FILECHECKER Z88V
All Z88 modules allocate
memory dynamically. Although Z88 is delivered with default values in Z88.DYN
the user may and should modify the values for best operation of Z88. The file
Z88.DYN is there to be modified .
The language is defined
also in Z88.DYN. Enter
into a line, best located between DYNAMIC START and NET START, the key word ENGLISH
or GERMAN.
Z88.DYN starts with the key
DYNAMIC START and ends with DYNAMIC END. There is a section for the net
generator (NET START, NET END), a common section for all modules (COMMON START,
COMMON END), a section for the plot program (PLOT START, PLOT END) and an
additional section for the Cuthill McKee program (CUTKEE START, CUTKEE END).
Blank lines or comments are optional, only the uppercased keywords are recognized.
After the keyword follows an integer value, separated by at least one blank.
The order of the keywords is optional.
You can check the memory
needs defined in Z88.DYN for the memory critical modules Z88F, Z88I1 and Z88I2 with the Filechecker Z88V. Add approx. 200 K to the results
for each program module, which is negligible under Windows and under UNIX.
A proper modification is definitely a good idea.
However, do not request unnecessarily much memory since this causes speed
losses , especially when using virtual memory.
Test the memory needs for
large structures. Proceed as follows depending on the solver:
The direct Cholesky
solver Z88F:
Windows:
Z88F > Mode > Test Mode ,
Compute > Go
UNIX:
z88f -t (console) or Z88F with
option -T (Z88COM)
If you get here e.g. GS=
100,000, then enter, let's say, 120,000 for MAXGS in Z88.DYN but not 1,000,000
! Then you estimate the total memory needs as described below or use Z88V.
Thus proceed for large structures for Z88 in 2 steps:
1st: State MAXGS
Windows:
Z88F > Mode > Test Mode ,
Compute > Go
UNIX:
z88f -t (console) or Z88F with
option -T (Z88COM)
2nd: Correct Z88.DYN if necessary, state memory needs of
Z88F with Z88V
(See the necessary memory
MAXGS and MAXKOI, Windows. Looks similar on UNIX systems)
The iteration solver
Z88I1 (part 1) and Z88I2 (part 2)
There's no test mode
available because the first part of the iteration solver Z88I1 detects the
memory needs for the second part Z88I2:
(See the necessary
memory MAXGS and MAXKOI, Windows. Looks similar on UNIX systems)
However, the procedure for
the iterations solver is quite tricky because you must define memory MAXSOR for
the assembly of the sparse matrix. There is no way to pre- determine the needed
memory but Z88I1 tells you if MAXSOR was too small. Then, increase MAXSOR in
Z88.DYN and run Z88I1 again. Adjust MAXPUF to about 1/4 to 1/10 of MAXSOR. For
example:
MAXSOR 5000000
MAXPUF
500000
Thus proceed for large
structures for Z88 in 3 or more steps:
1st: run Z88I1
2nd: if Z88I1 completed
properly, read off the values for MAXGS and MAXKOI and adjust Z88.DYN, if
necessary. Now memory
is proper adjusted for Z88I2.
3rd: if Z88I1 stopped
because of lack of MAXSOR increase MAXSOR in Z88.DYN and run Z88I1 again.
Adjust MAXPUF to about 1/4 to 1/10 of MAXSOR. Repeat this step until Z88I1
completes properly.
Make sure that your swap space
is sufficient. Adjust if necessary:
Windows:
Start > Settings > Control Panel > System > Performance >
Virtual Memory > Change. You choose the size of the permanent swap file
depending on your own ideas. Hint: the actual Z88 version for Windows is compiled
using 32 Bit integers and pointers. This should be sufficient for Windows XP.
But very large structures with 2 ~ 3 mio. of DOF could cause the internally
used integers and pointers to overflow because 232 is only about
+/-2 billions!
UNIX:
Depending on the
various UNIX operating systems the swap partition can be easily extended
dynamically or an additional swap file must be created or the swap area must be
deleted and a new swap area created with extended size.
I recommend a size between 100 and 1000 MByte. The exact value depends on the
actual size of your structures. If you get an error message "not enough
dynamic memory" from a Z88 computing unit (mostly from Z88F), then
increase the swap space.
There are
no limits for the size of the structures for Z88. The maximum size is limited
only by the virtual memory of your computer and your imagination! However, for very large structures you may compile Z88 with 64 Bit
integers and pointers (ref. 1.3.2) to avoid overflows of internal loop counters
etc.
The Z88 modules check
whether the predefined memory is sufficient for the current problem or if
limits are reached and stop if necessary.
At commentless breakdown of
a Z88 module check the accompanying .LOG file. Often the value for MAXKOI was
too small !
Respect UNIX: If Z88 modules refuse to start,
check the permissions of the .LOG files.
The delivered FEA example
files work perfectly well with the delivered standard values in Z88.DYN. You
will modify Z88.DYN if you want to calculate your own, large structures.
The .LOG files record the
memory needs. Some more memory is needed for the program, local arrays and
stack which one can neglect for WindowsNT/95 or UNIX.
Z88 normally deals with
However, on several UNIX machines
you may compile (compiler switches and compiler directive FR_XQUAD) the solver
modules using
Attention: 64 Bit Integers are
usefull for very large structures i.e. > 2 ~ 3 mio. of DOF for avoiding
internal overflows. However, using 128 Bit floats is much more time-consuming
than 64 Bit floats. Test runs with a SUN FIRE V890 and a SGI ORIGIN 2000 with
quad precision at my institute at the University of Bayreuth caused five to ten
times more CPU time than double precision! Thus, I recommend using 64 bit
integers and 64 bit floats on larger computers.
Critical for the memory are Z88F, Z88I1 and Z88I2. If these
modules run, then the rest will run, too. If in doubt, free your machine's
memory by closing other unused programs.
The general description
follows for Z88.DYN.
DYNAMIC START
Adjusting Language: ENGLISH
or GERMAN. If nothing is entered or the entry is wrong, English language
is used automatically.
Section Net Generator:
NET START
MAXSE Maximum number of internal nodes for FE net generation. Must be clearly
higher than produced FE nodes.
MAXESS Maximum number of super elements
MAXKSS Maximum number of super nodes
MAXAN Maximum number of nodes which can meet a super element. The
default of 15 has proven well even for complex space structures with Hexahedrons
No.10. May be increased in case of doubt.
NET END
Common Data:
COMMON START
MAXGS Maximum number of entries in the total stiffness matrix. Actual
number GS is recorded by Z88F and Z88I1.
MAXKOI Maximum number of entries in the coincidence vector = number
nodes per element * number of finite elements. Example: 200 finite elements
No.10 = 20 nodes per element * 200 = 4000. At mixed structures take the element
type with most nodes and multiply by the number of elements. Required number of
NKOI is recorded by Z88F and Z88I2.
MAXK Maximum number of nodes in the structure.
MAXE Maximum number of elements in the structure.
MAXNFG Maximum number of degrees of freedom in the structure.
MAXNEG Maximum number of material info lines for the structure.
MAXPR Maximum number of surface and
pressure loads
MAXSOR For the iteration solver part 1 i.e. Z88I1 only. Z88I1 uses a
sorting vector with the size of MAXSOR. There is no way to pre- determine the
needed memory but Z88I1 tells you if MAXSOR was too small. In this case you
must increase MAXSOR and launch Z88I1 again.
MAXPUF For the iteration solver part 1 i.e. Z88I1 only. This value tells
Z88I1 when to start another sorting. Adjust MAXPUF to about 1/4 to 1/10 of
MAXSOR.
COMMON END
For plot program Z88P:
PLOT START
MFACCOMMON The following values from COMMON multiply by this factor:
MAXKOI, MAXE, MAXK. Standard factor is 2. Useful for checks of input files
which were produced by the net generator.
MAXGP Maximum number of Gauss points for stress plots. Example: 200
finite elements No.10, integration order 3: 3 * 3 * 3 = 27 Gauss points per
element resulting in 27 * 200 = 5400 Gauss points in summary.
PLOT END
For the Cuthill- McKee
program:
CUTKEE START
MAXGRA maximum degree of nodes
MAXNDL steps of the algorithm
CUTKEE END
DYNAMIC END
You may state with Z88V which amount of memory the various
Z88 modules will request.
(About to show the
memory defined by Z88.DYN, Windows Z88)