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, Z88I4.TXT and Z88I5.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)
Z88I5.TXT (surface and pressure loads), if needed
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).