2.2 THE ITERATION SOLVER Z88I1/Z88I2
NOTE:
Always compare FEA calculations with analytical
rough calculations, results of experiments, plausibility considerations
and other tests without exeption !
The principal task of every FEA program is the calculation of
the displacements. That's the job of Z88I1 and Z88I2. The calculated
deflections are the starting point for a stress calculation with
Z88D or nodal force calculation with Z88E.
For large structures launch the iteration solver Z88I1 and Z88I2.
Z88F is the right solver for small to medium
structures.
The iteration solver uses only the so-called non- zero elements
- this results in an absolute minimum for storage - and features
two parts:
Iteration solver Part 1: Z88I1 builds the following pointers for the lower part of the total stiffness matrix GS:
A structure IJ will be assembled and then be sorted by a QSORT
algorithm (an idea of Frank Koch). However, this step may need
very much memory. Because of pure integer operations the computing
speed is quite satisfying, though.
Example (ref. Schwarz, H.R: Methode der finiten Elemente) : Let
the lower part of GS be:
GS(1,1) | |||||
GS(2,1) | GS(2,2) | ||||
GS(3,2) | GS(3,3) | ||||
GS(4,1) | GS(4,4) | ||||
GS(5,1) | GS(5,3) | GS(5,5) | |||
GS(6,2) | GS(6,4) | GS(6,6) |
GS results in the following vector of non- zero elements:
GS(1,1) | GS(2,1) | GS(2,2) | GS(3,2) | GS(3,3) | GS(4,1) | GS(4,4) |
GS(5,1) | GS(5,3) | GS(5,5) | GS(6,2) | GS(6,4) | GS(6,6) |
IEZ will result in:
1 | 1 | 2 | 2 | 3 | 1 | 4 | 1 | 3 | 5 | 2 | 4 | 6 |
and IP:
1 | 3 | 5 | 7 | 10 | 13 |
The structure IJ holds MAXSOR elemente, ref. Memory definition
file Z88.DYN. You must allocate 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 (for intermediate sorting)
to about 1/4 to 1/10 of MAXSOR. For example:
MAXSOR 5000000
MAXPUF 500000
Z88I1 stores both the pointer vectors in a binary file Z88O4.BNY,
which may become quite large.
Z88I1 tells you how much memory for GS (= MAXGS) and for KOI (=
MAXKOI) you must allocate; adjust this in Z88.DYN. See an example
of Z88.DYN:
COMMON START
MAXGS 600000 adjust this before
running Z88I2
MAXKOI 132000 adjust this before running Z88I2
MAXK 11000
MAXE 33000
MAXNFG 32000
MAXNEG 32
MAXSOR 5000000 adjust this before running Z88I1
MAXPUF 500000 adjust this before running Z88I1
COMMON END
Thus proceed for large structures for Z88 in 3 or more steps:
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.
Iteration solver Part 2: Z88I2 computes the element stiffnes
matrices, compiles the total stiffness matrix, incorporates the
boundary conditions, scales the system of equations and solves
the (huge) system of equations by the conjugate gradient algorithm.
Preconditioning is done for better convergence. Choose your favorite
preconditioner: Either a SOR step or a so- called incomplete
Cholesky decomposition. Default is SOR preconditioning,
needs lesser memory, too. Choose incomplete Cholesky decomposition
(shiftet incomplete Cholesky decomposition SIC) only in
special cases.
(1) Conjugate Gradients with SOR preconditioning
Windows: Z88I2 > Mode > Precon: Overrelaxation, Compute > Go
UNIX: z88i2 -s (console) or Solver: Z88I2 -S (Z88COM)
(2) Conjugate Gradients with SIC preconditioning
Windows: Z88I2 > Mode > Precon: Inco. Cholesky decom., Compute > Go
UNIX: z88i2 -c (console) or Solver: Z88I2 -C (Z88COM)
In addition you must supply three entries in the parameter file Z88I4.TXT:
Note: The files Z88I1.TXT, Z88I2 and Z88I4.TXT mentioned here
are described more precisely in chapter 3.
Input files:
Z88I1.TXT (general structure data)
Z88I2.TXT (boundary conditions, constraints)
Z88I4.TXT (parameter file for the iteration
solver part 2: Z88I2)
Output files:
Z88O0.TXT (processed structure data for documentation)
Z88O1.TXT (processed boundary conditions for documentation)
Z88O2.TXT (deflections)
In addition two binary files Z88O1.BNY and Z88O3.BNY are generated.
These binary files are later used by Z88D (stress processor) and
Z88E (nodal force processor).