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
mesh
generator (NET START, NET END), a common section for all modules
(COMMON START,
COMMON 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.
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 -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 -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 sparse matrix solvers
Z88I1 (part 1) and Z88I2 (part 2) or Z88PAR (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
sparse matrix solvers is quite tricky
because you must define memory MAXIEZ for the assembly of the sparse
matrix.
There is no way to pre-determine the needed memory but Z88I1 tells you
if MAXIEZ
was too small. Then, increase MAXIEZ in Z88.DYN and run Z88I1 again.
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 and Z88PAR.
3rd: if Z88I1 stopped
because of lack of MAXIEZ increase MAXIEZ in Z88.DYN and run Z88I1
again. 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.
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.
There are no limits for the size
of the structures for
Z88. The maximum size is limited only by virtual memory of your
computer and
your imagination! However, for very large structures you may use Z88
with 64
Bit integers and pointers (i.e. the 64 Bit Z88 versions for Windows
Server or
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!
Caution UNIX: If Z88 modules refuse to start, check the permissions of
the .LOG
files. The .LOG files record the memory needs. Some more memory is
needed for
the program, local arrays and stack which one can neglect for Windows
or UNIX.
The Z88 32 Bit versions for
Windows and LINUX deal with
The Z88 64 Bit versions for
Windows and LINUX deal 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 with quad precision at my institute at the
Critical for the memory are Z88F, Z88I1 and Z88I2.
If
these modules run, then the rest will run, too. Attention Z88PAR: This
solver
deals heavily with dynamic memory when running, thus, this solver may
run out
of memory during operation. If this happens, launch Z88I2 instead.
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 Z88I1.
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
MAXRBD Maximum
number of boundary conditions (used only by Z88O)
MAXIEZ For the
sparse matrix solver part 1 i.e. Z88I1 only. Z88I1 uses an array with
the size of MAXIEZ. There is no way to pre-determine the
needed memory but Z88I1 tells you if MAXIEZ was too small. In this case
you
must increase MAXIEZ and launch Z88I1 again.
MAXGP Maximum
number of Gauss points (used only by Z88O)
COMMON 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.