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)