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,
Z88X, Z88N and Z88P
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 Test (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 Test (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.
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.
All operating systems:
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 !
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
Floating point numbers with Doubles = 8 bytes
Integers with Longs= 4 bytes.
However, on some UNIX machines you may compile (compiler directives
FR_XQUAD and FR_XLOLO) the solver modules using
Floating point numbers with long Doubles = 16 bytes
Integers with long Longs = 8 bytes.
For specialists only!
Critical for the memory are Z88F
, Z88I1, Z88I2, Z88P, Z88X
and Z88N. To the modules Z88D, Z88E and Z88V applies: If Z88F
or Z88I1 and Z88I2 run, then these modules 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.
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)