Home

Feat3d Finite Element Analysis Tools in 3 Dimensions User Manual

image

Contents

1. Jacobi method precond precision D D storage techn 14123 IA12 F Jacobi method precond precision S S storage techn IA127 IA12 F Jacobi method precond precision S S storage techn gt 1 02 d 0 IA12A IA12 F Jacobi method precond precision S S storage techn IA133 IA13 F Jacobi method precond precision S D storage techn IA137 IA13 F Jacobi method precond precision S D storage techn IA13A IA13 F Jacobi method precond precision S D storage techn IA213 IA21 F Jacobi method smooth precision D D storage techn IA217 IA21 F Jacobi method smooth precision D D storage techn IA21A 21 Jacobi method smooth precision D D storage techn IA223 IA22 F Jacobi method smooth precision S S storage techn IA227 IA22 F Jacobi method smooth precision S S storage techn IA22A IA22 F Jacobi method smooth precision S S storage techn IA233 IA23 F Jacobi method smooth precision S D storage techn 14237 IA23 F Jacobi method smooth precision S D storage techn IA23A IA23 F Jacobi method smooth precision S D storage techn 017 01 G S method solver precision D D storage techn 7 IBOIA IB01 F G S method solver precision D D storage techn A IB027 IB02 F G S method solver precision S S storage techn 7 IBO2A IB02 F G S method solver precision S S storage techn A IB037 IB03 F G S method solver precision S D
2. 3 ARRAY A7 TOO SHORT 16X ERROR OCCURED WHILE PROCESSING BLOCK 8 WRONG VALUE IN ARRAY SPECIFIED 16X ERROR OCCURED WHILE PROCESSING BLOCK I3 8 WRONG VALUE IN ARRAY KB SPECIFIED 16X ERROR OCCURED WHILE PROCESSING BLOCK 8 NOT ENOUGH SPACE FOR KCOL 16X ERROR OCCURED WHILE PROCESSING ELEMENT 16 8 ICUB I13 INVALID S IELTYP I3 INVALID 1 AT LEAST ONE OF THE VECTORS TOO SMALL OR INVALID NUMBER 1 VERTICES NOT ORDERED IN COUNTERCLOCKWISE SENSE 1 DESIRED DERIVATIVE NOT AVAILABLE 1 ELEMENT HAS VANISHING AREA 1 FIRST PARAMETER LARGER THAN SECOND 1 AT LEAST ONE PARAMETER OUTSIDE OF VALID RANGE 1 VALUE OF NVE INVALID 1 ONE OF THE VALUES NEL NVT NBCT LESS OR EQUAL 0 11 KNPR 16 CONTAINS INVALID VALUE 12 DCORVG 1 16 CONTAINS INVALID PARAMETER D12 5 8 TWO VERTICES WITH THE SAME NUMBER 16X ERROR OCCURED IN ELEMENT 16 8 INVALID ZERO ENTRY IN KVERT IN ELEMENT 16 8 ENTRY IN KVERT LARGER THAN NVT 16X ERROR OCCURED IN ELEMENT 16 16X ERROR OCCURED List of error message file FEAT MSG 77 157 158 159 160 161 162 163 164 170 8 LAST ENTRY IN KVERT NOT ZERO BUT NVE 3 16X ERROR OCCURED IN ELEMENT 16 8 VERTICES NOT ORDERED IN COUNTERCLOCKWISE SENSE 16X ERROR OCCURED IN ELEMENT I6 8 ELEMENT HAS VANISHING ARE
3. PARAMETER NNBAS 27 NNDER 10 NNCUBP 36 NNVE 8 NNEE 12 NNAE 6 PARAMETER NNDIM 3 Q2 0 5D0 Q8 0 125D0 CHARACTER FMT 15 SUB 6 CPARAM 120 DIMENSION DU DIMENSION KVERT NNVE KEDGE NNEE DCORVG 3 DIMENSION KDFG NNBAS KDFL NNBAS COMMON OUTPUT M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 88 Sample Program COMMON ERRCTL IER ICHECK COMMON CHAR SUB FMT 3 CPARAM COMMON ELEM DX NNVE DY NNVE DZ NNVE DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVE NNVE IEL NDIM COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP COMMON COAUX1 KDFG KDFL IDFL SAVE OUTPUT ERRCTL CHAR ELEM TRIAD CUB COAUX1 C SUB PQL2U IER 0 C IELTYP 1 CALL ELE ODO 0DO 0DO IELTYP IF IER NE O GOTO 99999 IDFL NDFL IER LT O GOTO 99999 CALL CB3H ICUB IER NE O GOTO 99999 DO 1 IDER 1 NNDER 1 BDER IDER FALSE BDER 1 TRUE BDER 2 TRUE BDER 3 TRUE BDER 4 TRUE C ERRL2 0D0 ERRH1 0D0 DNL2 0DO DNH1 0DO C ICUBP ICUB CALL 000 000 000 2 IF ILINT EQ 2 THEN DJAC 1 3 0DO DJAC 2 3 0DO DJAC 3 1 20DO DJAC 3 2 0DO ENDIF C DO 100 IEL 1 NEL C CALL NDFGL IEL 1 IELTYP KVERT KEDGE KAREA KDFG KDFL IF IER LT O GOTO 99999 C DO 110 IVE 1 NVE JP KVERT IVE
4. 3 1 FEAT3D Subprograms Group A 27 DOUBLE PRECISION FUNCTION COEFFN X Y Z IA IB IDA BFIRST IMPLICIT REAL 8 A C H 0 U W Z LOGICAL PARAMETER NNARR 299 NNVE 8 NNDIM 3 NNBAS 21 NNDER 10 DIMENSION VWORK 1 KWORK 1 COMMON COAUXN KLU1 KLU2 KLU3 COMMON ELEM DX NNVE DY NNVE DZ NNVE DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVECNNVE IEL NDIM COMMON COAUX1 KDFG NNBAS NNBAS IDFL COMMON NWORK IWORK IWMAX CNNARR DWORK 1 EQUIVALENCE DWORK 1 VWORK 1 KWORK 1 SAVE COAUXN ELEM COAUX1 IF IB EQ 2 THEN U1 0DO DO 1 JDOFE 1 IDFL IEQ KDFG JDOFE ILO KDFL JDOFE U1 U1 DWORK L KLU1 IEQ 1 DBAS 1 ILO 1 1 CONTINUE COEFFN U1 ELSE IF IB EQ 3 THEN U2 0D0 DO 2 JDOFE 1 IDFL IEQ KDFG JDOFE ILO KDFL JDOFE U2 U2 DWORK L KLU2 IEQ 1 DBAS 1 ILO 1 2 CONTINUE COEFFN U2 ELSE IF IB EQ 4 THEN U3 0D0 DO 3 JDOFE 1 IDFL IEQ KDFG JDOFE ILO KDFL JDOFE U3 U3 DWORK L KLU3 IEQ 1 DBAS 1 ILO 1 3 CONTINUE COEFFN U3 ELSE IF IA EQ 1 AND IB EQ 1 AND IDA EQ 0 THEN BDER 1 TRUE ELSE WRITE ERROR COEFFN IA IB IDA IA IB IDA STOP ENDIF END 28 Description of the Subprograms Parameters Input LA KDIA KDIAS NDIA KCOL KLD NA NEQ NBLOC ICLEAR KOFF KVERT KEDGE KAREA DCORVG DCORMG DCORAG KNPR ELE ELEn ELE3 COEFF BCON C
5. Here we give a short list of the subprograms needed in the package which should be replaced by coded routines if they are available DOUBLE PRECISION DCOPY Copies a vector DSCAL Scales a vector by a constant DAXPY Forms linear combination y y ax DNRM2 Calculates the mean square norm of a vector IDAMAX Finds the index of the first element with maximum modulus DDOT Forms the inner product of two vectors REAL SCOPY SSCAL SAXPY Same tasks as above SNRM2 ISAMAX SDOT For the remaining basic linear algebra tasks which are not directly supported by the BLAS like clearing a vector filling with zeroes see Section 3 2 we use unrolled loops unless we work on vector machines For adapting FEAT3D to a new machine typically only the L routines have to be optimized 2 COMMON PROGRAM SEGMENTS In this section we give an example for standard declarations and give an explanation of the internally used COMMON blocks Compared to FEAT2D there are changes due to the space dimension in the COMMON blocks TRIAA TRIAD and ELEM Among the quantities in PARAMETER statements the values of NNVE NNDER and NNBAS have changed 2 1 Type declarations IMPLICIT DOUBLE PRECISION 0 0 2 LOGICAL CHARACTER SUB 6 FMT 15 CPARAM 120 The quantities of type CHARACTER are used in COMMON CHAR described below 2 2 PARAMETER statements PARAMETER NNWORK 300000 PARAMETER NNARR 299 21 NNDER 10 PARAMETER NNBAS 27
6. ILEV NET 11 CONTINUE ISYMMA 0 C C Calculate the pointer vectors for the stiffness matrix C Storage technique 7 symmetry of the matrix is neglected C This makes it easier to implement boundary conditions C CALL XMAP7 KLCOLA KLLDA KNA KNEQ E011 ISYMMA NROW IF IER NE O GOTO 99999 C Allocate solution vector DU in the correct length NEQ determined by XAP7 NEQ KNEQ NLEV CALL ZNEW NEQ 1 LU 1 DU 9 IF IER NE O GOTO 99999 C C C Calculation of the stiffness matrix C Number is returned in LA 1 C Number of cubature formula read as a parameter C ICLR 1 CALL KLA KLCOLA KLLDA KNA KNEQ NBLCA ICLR EO11 COEFFA BCONA ICUBA ILINT BSNGLA CARRDA IF IER NE O GOTO 99999 CALL XMOWAT KLA KLCOLA KLLDA 69 CARRDA 1 IF IER NE O GOTO 99999 C C Calculation of the right hand side vector C Number is returnes in LF 1 C Number of cubature formula read in as a parameter C LF 1 0 CALL XVBO LF 1 KNEQ NLMAX NBLCF ICLR1 E011 RHS BCONF KBF KBFN ICUBF ILINT BSNGLF CARRDF Sample Program 83 IF 0 GOTO 99999 CALL XOWA LF 1 DF 69 CARRDF 1 NLMAX 1 IF IER NE O GOTO 99999 10 1 0 CALL 2 1 1001 DU 22 IF IER NE O GOTO 99999 User provided program for implementation of boundary conditions Determine dof s where boundary conditions have t
7. Iterative solvers of linear systems of equations Versions for solution smoothing iterations and preconditioning J Reserved for eigenvalue problems K Unused L FEAT2D Basic linear algebra applications Matrix vector and vector vector operations M Multigrid components Prolongations and restrictions N Auxiliary routines Correspondence of local and global quantities 0 FEAT2D FEATSD Input Output General Concepts and Notation Reserved for postprocessing routines Comparison to exact solutions etc Unused FEAT2D Reorganization Compression of zero entries in stiffness matrices Reordering of matrices with respect to different storage techniques Generation of subdivisions Unused Unused Calculation of vectors corresponding to linear forms FEAT2D Error handling Selective dump of contents of COMMON blocks and arrays allocated on the workspace FEAT2D FEAT3D Direct communication with Z routines Preparation of parameter lists for routines A W Check of size and data type of arrays allocated on the workspace FEAT2D External subroutines Preparation of parameter lists for routines A W FEAT2D Handling of the pseudodynamic memory management Machine dependent system routines 1 2 Symbolic names and reserved starting letters 5 1 2 Symbolic names and reserved starting letters All routines are written in standard FORTRAN77 Correspondingly the names of variables and arrays are restricted to 6 alphanume
8. Names of the subprograms The subprogram names are of the form RCns where n stands for the data type 1 DOUBLE PRECISION 2 REAL and s refers to the storage technique All of the subprograms deal with block matrices In the X routines the numbers of all NBLOC matrices are passed LA NBLOC in the R routines only one starting address is given DA 1 or VA 1 and the offsets relative to the starting address KOFF NBLOC If at a certain position the entries of all block matrices possess a modulus below a given tolerance TOL the entries are removed and the common pointer vectors are updated Parameters Input LA Ix4 DIMENSION LA NBLOC Numbers of block matrices KLD Ix4 DIMENSION KLD NEQ 1 Pointer to start of rows KDIAS I 4 DIMENSION KDIAS NDIA 1 Pointer to start of diagonal rows NEQ I 4 Number of equations NBLOC I 4 Number of block matrices TOL R 8 Entries are deleted if modulus is less than TOL in all blocks IDISP 4 IDISP 1 Free space on DWORK is released after compression used X routines only 1 C 6 DIMENSION ARR1 NBLOC Names for block matrices in DA VA ARR2 C 6 Name for column pointer matrix KCOL ARR1 and ARR2 used for messages only Output DA R 8 DIMENSION DA NA Double precision matrix VA R 4 DIMENSION VA NA Single precision matrix 60 Description of the Subprograms KCOL DIMENSION KCOL NA Column pointer KDIA I 4 DIMENSION KDIA NDIA Diagonal offset pointer KDIAS I 4
9. DB R 8 DIMENSION DB DD R 8 DIMENSION DD Starting addresses of vectors containing the solution and the right hand side DD is used as auxiliary vector only KOFFX I 4 DIMENSION KOFFX NLEV I 4 DIMENSION KOFFB NLEV KOFFD I 4 DIMENSION KOFFD NLEV KOFFD 1 4 actual starting address of DX on level ILEV is DX 1 KOFFX ILEV analogously for DB and DD Total space required for all vectors is NEQM DX 1 KOFFX NLMAX contains initial solution DB 1 NLMAX contains right hand side 38 Description of the Subprograms KNEQ 1 4 Number of equations for all levels NLMAX I 4 Iteration uses levels NLMIN through NLMAX NLMIN 4 NLMAX is the finest level NIT I 4 Maximum number of iterations One iteration is considered as completed after reaching the finest level again EPS R 8 Desired precision IREL 0 Stop if RES lt EPS IREL 1 Stop if RES RESO lt EPS and a minimum of ITE iterations is performed KPRSM I 4 Number of pre smoothing steps for all levels KPOSM I 4 Number of post smoothing steps for all levels ICYCLE I 4 lt 0 special cycle types not yet implemented 0 F Cycle 1 V Cycle 2 W Cycle gt 2 Cycle of higher order DAX SUBR DAX DX DAX NEQ A1 A2 Returns DAX A1 A DX A2 DAX DPROL SUBR DPROL DX1 DX2 Returns DX2 Prolongation DX1 to higher level DREST SUBR DREST DD1 DD2 Returns DD2 Restriction DD1 to lower level DPRSM SUBR DPRSM DX DB DD NEQ NPRSM Returns DX after N
10. DIMENSION KAEL 2 NAT Array containing the numbers of the elements meeting at a face KAEL is generated by subroutine SBAEL DIMENSION KVED 2 NET Array containing the numbers of the vertices meeting at an edge DIMENSION KAED NEAR NET Array containing the numbers of the faces meeting at an edge DIMENSION KVAR 4 NAT Array containing the numbers of the vertices meeting at a face General Concepts and Notation LEAR DIMENSION KEAR 4 NAT Array containing the numbers of the edges meeting at a face LEVE DIMENSION KEVE NVEL NVT Array containing the numbers of the elements meeting at a vertex LAVE DIMENSION KAVE NVAR NVT Array containing the numbers of the faces meeting at a vertex LNPR DIMENSION KNPR NVT Array containing information about the location of vertices KNPR IP 0 if IP is the number of an interior vertex IBCT if IP is the number of a vertex on boundary component IBCT LBCT DIMENSION KBCT NBCT 1 Pointer vector for the array KVBD KBCT IBCT points to the position of the first entry in these arrays belonging to boundary component IBCT and KBCT NBCT 1 is set to NVBD 1 LVBD DIMENSION KVBD NVBD Array containing the numbers of the vertices on the boundary All num bers are stored on a one dimensional array LEBD DIMENSION KEBD NEBD Same as KVBD but for the edges on the boundary To each vertex IVT in KVBD there corresponds an entry in KEBD which is just the number of the boundary edge following
11. NNCUBP 36 NNVE 8 NNAE 6 NNDIM 3 Explanation NNWORK Maximum number of DOUBLE PRECISION elements on the workspace Only used in the main program for dimensioning and initialization NNARR Maximum number of arrays allocated on the workspace see description of pseudodynamic memory management FEAT2D manual NNAB Maximum number of additive terms in integrands of bilinear forms or linear forms see description of routines AB and VB Section 3 1 NNDER Maximum number of combinations of derivatives applied to basis functions NNDER 10 means derivatives up to the order 2 see description of element routines Section 3 1 NNBAS Maximum number of local degrees of freedom Set to 27 for triquadratic basis functions NNCUBP Maximum number of cubature points in numerical integration formulas Set to 36 NNVE Maximum number of vertices per element Set to 8 NNAE Maximum number of faces per element Set to 6 NNDIM Maximum number of coupled basis functions 18 2 3 EQUIVALENCE statement 19 2 3 EQUIVALENCE statement DIMENSION VWORK 1 KWORK 1 EQUIVALENCE DWORK 1 VWORK 1 1 Used only in X Y and Z routines and possibly in the main program to keep arrays of type DOUBLE PRECISION REAL and INTEGER on the same workspace vector see the description of the pseudodynamic memory management FEAT2D manual 2 4 COMMON BLOCKS Here we give a complete list and explanation of all the COMMON blocks u
12. DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVECNNVE IEL NDIM COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP 3 1 FEAT3D Subprograms Group E 33 List of available elements Name IELTYP 44 04 Comment E010 10 1 constant 011 11 8 trilinear continuous E013 13 27 triquadratic continuous E030 30 6 rotated trilinear discontinuous mean values on element faces as nodal values E031 31 6 rotated trilinear discontinuous function values at midpoints of faces as nodal values 34 Description of the Subprograms Group G Normalized output for graphics packages This group contains subroutines writing grid information or user supplied data in the special format that is needed by certain graphic packages The first one which is supported is the MOVIE BYU graphic package 7 The subroutine XGOWSM writes FEAT3D grid data in MOVIE BYU format onto file and the subroutine XGOWFM writes a MOVIE BYU function file SUBROUTINE XGOWFM LNR MFILE CFILE SUBROUTINE XGOWSM MFILE CFILE Parameters Input LNR 1 4 Function array handle XGOWFM only MFILE I 4 Unit number C 15 File name Output C 15 File containing grid or function data in MOVIE BYU format The other graphic package which is supported in FEAT3D is the ADVANCE VISUALIZATION SYSTEM AVS 8 SUBROUTINE XAVSUC NUNIT CFILE NEL NVT KVERT DCORVG NCOMP NLANG COMLAB UNILAB LU Paramet
13. IEL Sample Program 89 110 KVE IVE JP DX IVE DCORVG 1 JP DY IVE DCORVG 2 JP DZ IVE DCORVG 3 JP CONTINUE IF ILINT EQ 2 THEN DJ11 DX 2 DX 4 Q2 DJ12 DY 2 DY 4 Q2 DJ13 DZ 1 DZ 5 Q2 DJAC 1 1 DX 1 DX 2 Q2 DJAC 2 1 2 DY 1 DY 2 Q2 DJAC 1 2 DX 1 DX 4 Q2 DJAC 2 2 2 CCDY 1 DY 4 Q2 DJAC 3 3 DZ 1 DZ 5 Q2 DETJ DJAC 3 3 DJAC 1 1 DJAC 2 2 DJAC 2 1 DJAC 1 2 ELSE IF ILINT EQ 1 THEN DJ11 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ12 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ13 DZ 1 DZ 2 DZ 3 DZ 4 DZ b DZ 6 DZ 7 DZ 8 Q8 DJAC 1 1 DX 1 4DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJAC 2 1 2 C DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJAC 3 1 2 DZ 1 02 2 07 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJAC 1 2 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJAC 2 2 2 C DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJAC 3 2 2 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJAC 1 3 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJAC 2 3 2 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJAC 3 3 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q
14. Numbers of vertices of elements I 4 DIMENSION KEDGE NNEE NEL Numbers of edges of elements if necessary I 4 DIMENSION KAREA NNAE NEL Numbers of faces of elements if necessary Output I 4 DIMENSION KDIA NDIA Diagonal offset pointer in AP3 KDIAS I 4 DIMENSION KDIA NDIA 1 Pointer to start of new diagonal row in AP3 NDIA I 4 Number of diagonal rows in matrix KCOL 1 4 DIMENSION KCOL NA Column pointer in AP7 and AP9 KLD I 4 DIMENSION KLD NEQ 1 Pointer to start of new row in AP7 and AP9 NA I 4 Number of entries in matrix 4 Number of equations 24 Description of the Subprograms Parameters in COMMON blocks COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD Information about the subdivision TRIAA is only needed in XAP3 XAP7 and XAP9 List of available subprograms SUBROUTINE XAP3 LDIA LDIAS NDIA NA NEQ ELE ISYMM SUBROUTINE AP3 KDIA KDIAS NDIA NA NEQ ELE ISYMM KVERT KEDGE KAREA KDIAH SUBROUTINE XAP7 LCOL LLD NA NEQ ELE ISYMM NEROW SUBROUTINE AP7 KCOL KLD NA NEQ ELE ISYMM NEROW KVERT KEDGE KAREA SUBROUTINE XAP9 LCOL LLD NA NEQ ELE1 ELE2 SUBROUTINE AP9 KCOL KLD NA NEQ ELE1 ELE2 KVERT KEDGE KAREA 3 1
15. preconditioning SSOR method preconditioning Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Matrix vector multiplication transposed matrix Clear vector on workspace Copy vector on workspace Change data type of vector on workspace 72 List of FEAT2D subprograms used in FEAT3D Routine ZDISP ZFREE ZINIT ZLEN ZLENS ZNEW ZTIME ZTYPE Filename ZDISP F ZFREE F ZINIT F ZLEN F ZLENS F ZNEW F ZTIME F ZTYPE F Short descriptio
16. 13X 110 5X MAXIMUM OF CORRECTION D12 3 14 5X RATE OF CONVERGENCE 4X D12 3 4 IWORK NWORK 16X ERROR OCCURED WHILE PROCESSING ARRAY A7 75 76 List of error message file FEAT MSG 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 130 131 132 140 141 150 151 152 153 154 155 156 oOo OOO PPP Pe 5 ITYPE 13 INVALID PROCESSING ARRAY A7 4 NNARR EXCEEDED PROCESSING ARRAY A7 5 NWORK MUST BE INCREASED BY 18 16X ERROR OCCURED WHILE PROCESSING ARRAY A7 5 LNR 13 INVALID PROCESSING ARRAY A7 4 WRONG VALUE OF ILONG PROCESSING ARRAY A7 8 ITYPE I3 INVALID 6 DATA TYPES OF SOURCE ARRAY A7 13 AND 36X TARGET ARRAY 7 13 DO NOT MATCH 6 SOURCE ARRAY A7 13 LARGER THAN TARGET ARRAY A7 G I3 1 FILENAME CONTAINS MORE THAN 60 CHARACTERS 8 WHILE READING FROM UNIT I3 8 WHILE WRITING ONTO UNIT I3 9 FILE gt COULD NOT BE OPENED AS UNIT I3 16X ERROR OCCURED WHILE 16X ERROR OCCURED WHILE 16X ERROR OCCURED WHILE 16X ERROR OCCURED WHILE 3 WRONG DATA TYPE OF ARRAY A7 16X ERROR OCCURED WHILE READING FROM UNIT I3 3 WRONG DATA TYPE OF ARRAY A7 16X ERROR OCCURED WHILE PROCESSING BLOCK
17. DJ63 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ71 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 DJ72 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ73 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ81 DX 1 DX 2 DX 3 4 DX 5 DX 6 DX 7 DX 8 DJ82 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ83 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 ENDIF DO 200 ICUBP 1 NCUBP XI1 DXI ICUBP 1 XI2 DXI ICUBP 2 XI3 DXI ICUBP 3 IF ILINT EQ 0 THEN DJAC 1 1 2DJ21 DJ51 XI24DJ61 XI34 DJ81 XI2 XI3 DJAC 1 2 2DJ314DJ51 XI1 DJ71 XI3 DJ81 XI1 XI3 DJAC 1 3 2DJA414 DJ61 XI14DJ71 XI24 DJ81 XI1 XI2 DJAC 2 1 2DJ22 DJ52 XI24DJ62 XI34 DJ82 XI2 XI3 DJAC 2 2 DJ324DJ52 XI11 DJ72 XI3 DJ82 XI1 XI3 DJAC 2 3 2DJ42 DJ62 XI14DJ72 XI24 DJ82 XI1 XI2 DJAC 3 1 2DJ23 DJ53 XI24DJ63 XI34 DJ83 XI2 XI3 DJAC 3 2 2DJ334DJ53 XI1 DJ73 XI3 DJ83 XI1 XI3 DJAC 3 3 2DJ43 DJ63 XI14DJ73 XI24 DJ83 XI1 XI2 DETJ DJAC 1 1 DJAC 2 2 XDJAC 3 3 DJAC 3 2 XDJAC 2 3 DJAC 2 1 DJAC 1 2 DJAC 3 3 DJAC 3 2 DJAC 1 3 DJAC 3 1 DJAC 1 2 DJAC 2 3 DJAC 2 2 DJAC 1 3 ENDIF C DETJ ABS DETJ OM DOMEGA ICUBP ABS DETJ CALL ELE XI1 XI2 XI3 3 IF IER LT O GOTO 99999 IF ILINT EQ 2 THEN XX DJ11 DJAC 1 1 XI1 DJAC 1 2 X1I2 DJ12 DJAC 2 1 XI1 DJAC 2 2 XI2 ZZ DJ13 DJAC 3 3 XI3 ELS
18. IND SUBROUTINE LLI2 VX NX XNORM IND Scaling of a vector SUBROUTINE XLSC1 LX NX A SUBROUTINE LSC1 DX NX A SUBROUTINE XLSC2 LX NX A SUBROUTINE LSC2 VX NX A Scalar product of two vectors SUBROUTINE XLSP1 LX LY NX SP SUBROUTINE LSP1 DX DY NX SP SUBROUTINE XLSP2 LX LY NX SP SUBROUTINE LSP2 VX VY NX SP Vector multiply and add SUBROUTINE XLVM1 LX1 LX2 LX NX A1 A2 SUBROUTINE LVM1 DX1 DX2 DX NX A1 A2 SUBROUTINE XLVM2 LX1 LX2 LX NX A1 A2 SUBROUTINE LVM2 VX1 VX2 VX NX A1 A2 SUBROUTINE XLVM3 LX1 LX2 LX NX A1 A2 SUBROUTINE LVM3 DX1 VX2 DX NX A1 A2 3 2 FEAT2D Subprograms Group L 55 2 Matrix vector operations The subroutines of this subgroup form matrix vector products of a given matrix or its transpose and a given vector A linear combination of the result of this operation and the preceding contents of the output vector is returned to the calling routine Versions for DOUBLE and SINGLE precision are provided and also the mixed type DOUBLE PRECISION matrix REAL vectors is supported Names of the subprograms The names of the programs in this subgroup have the form LcXns or LWSns Here the character c stands for A in subprograms forming the matrix vector product A X and for T if the transpose of the matrix A is used n characterizes the data type of the arguments namely 1 DOUBLE PRECISION matrix DOUBLE PRECISION vectors 2 REAL matrix REAL vectors 3 REAL matrix DOUBLE PRECISION vectors The
19. Parameters Input MFILE 4 Output unit 40 Description of the Subprograms CCFILE C DIMENSION CCFILE NLEV Output file names for all levels I 4 1 Formatted I O 0 Unformatted I O Explanation The routines XMOWS XMORS write or read mesh information for all levels to from files in FEAT3D format XMOWAn and XMORAn write or read the matrices for all levels to from files in FEAT3D format corresponding to the routines XMABOn 3 1 FEAT3D Subprograms Group N 41 Group N Auxiliary routines for global and local numbers of d o f The functions and subroutines are used as auxiliary routines e g during the assembly of element and global stiffness matrices They return information about the local and global size of the problem depending on the data of the triangulation and on the type of element in use The dimensions of the arrays describing the subdivision are passed in COMMON TRIAD Parameters in COMMON blocks COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD List of available subprograms INTEGER FUNCTION NDFL IELTYP INTEGER FUNCTION NDFG IELTYP SUBROUTINE NDFGL IEL IPAR IELTYP KVERT KEDGE KAREA KDFG KDFL The first two routines return the number of d o f on each element Local and on the whole domain Global depending on the element number IELTYP The correspondence of local and global d o f s on element IEL of the triangulation is calc
20. Sample Program TRIA 6 TRIA 7 TRIA 8 TRIA 9 DATA CARRDA DA 1 DA 2 DA 3 2 4 DA 5 gt DA 6 DA 7 DA 8 2 9 2 DATA CARRDF DF 1 7 2 2 DF 3 DF 4 DF 5 gt DF 6 DF 7 8 9 2 C OPEN 18 FILE FEAT PRT CLOSE 18 STATUS DELETE Initialization Default names are used for output devices C CALL ZINIT NNWORK feat3d msg C C Structure of bilinear and linear forms C KABA 1 1 1 2 KABA 2 1 1 2 KABA 1 2 1 3 KABA 2 2 1 3 KABA 1 3 1 4 KABA 2 3 1 4 KABA 1 4 1 1 KABA 2 4 1 1 C KBF 1 1 1 C CALL ZTIME TIME1 C Dpen data file for input MDATA 79 OPEN MDATA FILE TEST1 DAT CALL GDAT MDATA CFILE ICUBA NIT EPS NPRSM NPOSM OMPOS OMPRS IPOSM IPRSM ICUBP C C C Read in coarse grid from file TRIAQ opened as unit 55 MUNITT 55 CALL XORSC MUNITT CFILE IF IER NE O GOTO 99999 No use of divergence free elements is made NDIM 1 Sample Program 81 Q Q Generate grid information from coarse grid data CALL XSBOX 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 PARX PARY PARZ Construct ISE 1 ISA 0 ISVEL 0 ISEEL 0 TSAEL 0 IDISPT 1 Q OQ 0 0 O OQ o ISE 0 I
21. algorithm which are not part of the FEAT3D package First we recall the list of the multigrid related COMMON blocks see also section 1 3 The first two of them contain the mesh information for all levels in full correspondence with the blocks TRIAD and TRIAA The parameters in the remaining blocks are described below Parameters in COMMON blocks see Section 1 3 PARAMETER NNLEV 9 COMMON MGTRD KNEL NNLEV KNVT NNLEV KNET NNLEV KNAT NNLEV KNVE NNLEV KNEE NNLEV NNLEV KNVEL NNLEV KNEEL NNLEV KNVED NNLEV KNVAR CNNLEV KNEAR CNNLEV KNBCT NNLEV KNVBD NNLEV KNEBD CNNLEV KNABD NNLEV COMMON MGTRA KLCVG NNLEV KLCMG NNLEV KLCAG NNLEV KLVERT NNLEV KLEDGE NNLEV KLAREA NNLEV KLADJ NNLEV KLVEL NNLEV KLEEL NNLEV KLAEL NNLEV KLVED NNLEV KLAED NNLEV KLVAR NNLEV KLEAR CNNLEV KLEVE NNLEV KLAVE NNLEV KLNPR NNLEV KLBCT NNLEV KLVBD NNLEV KLEBD NNLEV KLABD NNLEV COMMON MGPAR ILEV NLEV NLMIN NLMAX ICYCLE KPRSM NNLEV KPOSM NNLEV COMMON MGTIME TTMG TTS TTE TTD TTP TTR IMTIME Input ILEV Number of currently active level NLEV Total number of mesh levels NLMIN Minimum and maximum level used for the NLMAX multigrid iteration NLMIN need not be 1 36 Description of the Subprograms ICYCLE Cycle type F Cycle V Cycle W Cycle higher order rarel
22. at each face array KAEL ISVEL I 4 1 Determine numbers of elements meeting at each vertex array KVEL IDISP 4 1 Release all unused arrays on DWORK on return PARX SUBR Subroutines for PARY SUBR the parameterization 46 Description of the Subprograms PARZ SUBR of the domain SEBD SUBR Subroutines for the control SABD SUBR ofthe refinement The remaining parameters ISVED ISAED ISAED ISVAR ISEAR ISEVE ISAVE ISVBD ISEBD ISABD are provided to build up special information for the refined mesh in the present version they are all set to 0 SUBROUTINE XSBOX NFINE ISCAD ISE ISA ISVEL ISEEL ISAEL ISVED ISAED ISVAR ISEAR ISEVE ISAVE ISVBD ISEBD ISABD IDISP PARX PARY PARZ SEDB SADB The following programs are invoked by XSBOX and are not discussed in detail here Generation of adjacent element information KADJ from coarse grid SUBROUTINE XSBCA IDISP SUBROUTINE SBCA KVERT KADJ Generation of uniform subdivision makes use of SBVEL SBE SBEEL SBA and SBAEL SUBROUTINE XSBO NFINE ISE ISA ISVEL ISEEL ISAEL IDISP SUBROUTINE SBO DCORVG DCOREG KVERT KADJ KEDGE KNPR KVEL NFINE NNEL NNVT PARX PARY PARZ SEDB SADB Determine KVEL and NVEL SUBROUTINE SBVEL KVERT KVEL IPAR Determination of KEDGE and NET SUBROUTINE SBE KVERT KVEL KEDGE Determination of KEEL and NEEL SUBROUTINE SBEEL KEDGE KEEL IPAR Determination of KAREA and NAT SUBROUTINE SBA KADJ KAREA Determination of KAEL SUBR
23. final character s is used to reference the storage technique for the matrix see Section 1 4 Subroutines forming the matrix vector product A z SUBROUTINE LAX13 DA KDIA KDIAS NDIA NEQ DX DAX A1 A2 SUBROUTINE LAX14 DA KDIA KDIAS NDIA NEQ DX DAX A1 A2 SUBROUTINE LAX17 DA KCOL KLD NEQ DX DAX A1 A2 SUBROUTINE LAX18 DA KCOL KLD NEQ DX DAX A1 A2 SUBROUTINE LAX19 DA KCOL KLD NEQ DX DAX A1 A2 SUBROUTINE LAX1A DA KCOL KLD KOP NEQ DX DAX A1 A2 Subroutines forming the matrix vector product x SUBROUTINE LTX13 DA KDIA KDIAS NDIA NEQ DX DTX A1 A2 SUBROUTINE LTX17 DA KCOL KLD NEQ DX DTX A1 A2 SUBROUTINE LTX19 DA KCOL KLD NEQ DX DTX A1 A2 SUBROUTINE LTX1A DA KCOL KLD KOP NEQ DX DTX A1 A2 Weighted scalar product of two vectors x y SUBROUTINE LWS13 DA KDIA KDIAS NDIA DX DY NX SP SUBROUTINE LWS14 DA KDIA KDIAS NDIA DX DY NX SP SUBROUTINE LWS17 DA KCOL KLD DX DY NX SP SUBROUTINE LWS18 DA KCOL KLD DX DY NX SP SUBROUTINE LWS1A DA KCOL KLD KOP DX DY NX SP 56 Description of the Subprograms Group 0 Input Output The programs of group 0 are used for Input Output The first subgroup contains routines that are used for protocol and error messages and for subprogram tracing These subpro grams are only active if the I O files MERR MPRT MSYS and MTRC as well as the message file FEAT MSG have been successively opened by the program ZINIT The second subgroup deals with normalized I O for single arrays Subgroup 1 Me
24. indicate new row DA 100 200 400 6DO 800 KOL 1 2 4 2 3 3 4 KLD 1 4 6 8 9 NA 8 Underlined numbers indicate new row Modified example for storage technique 9 rectangular matrix Technique 9 wo DA 100 200 7DO 900 200 4DO 910 600 500 900 500 800 KCOL 1 2 4 5 Ir 3 5 Modified example for technique A Operator technique 14 General Concepts and Notation Row 2 and 3 of the matrix have the same structure and are stored only once Technique A DA KCOL KLD KOP NA NOP O bk or A ere 200 100 4 0 100 100 100 200 WON 1 3 2 N Oo o 1 1 0 1 8 3 1 5 Messages error handling and consistency checks 15 1 5 Messages error handling and consistency checks The COMMON blocks described below contain the necessary information to display protocol and error messages The DATA statements are part of the BLOCK DATA subprogram ZVALUE and indicate the default values CHARACTER SUB 6 FMT 15 CPARAM 120 COMMON OUTPUT M MT MKEYB MTERM MERR MSYS MTRC IRECL8 COMMON ERRCTL IER ICHECK COMMON CHAR SUB FMT 3 CPARAM DATA M 2 MT 2 MKEYB 5 MTERM 6 IER 0 ICHECK 1 DATA MERR 11 MPROT 12 M SYS 13 MTRC 14 IRECL8 128 1 Messages The FORMAT statements for all messages displayed
25. of edges if necessary DCORAG R 8 DIMENSION DCORAG 3 NAT Coordinates of midpoints of faces if necessary KVERT I 4 DIMENSION KVERTC NNVE NEL Numbers of vertices of elements KEDGE I 4 DIMENSION KEDGE NNEE NEL Numbers of edges of elements if necessary KAREA I 4 DIMENSION KAREA NNAE NEL Numbers of midpoints of faces if necessary KADJ Ix4 DIMENSION KADJ NNAE NEL Numbers of adjacent elements KNPR Ix4 DIMENSION KNPR NVT Nodal properties Output KVEL Ix4 DIMENSION KVEL NVEL NVT Numbers of elements meeting at a vertex KEEL Ix4 DIMENSION KEEL NEEL NMT Numbers of elements meeting at an edge KAEL Ix4 DIMENSION KAEL 2 NAT Numbers of elements meeting at a face KVED Ix4 DIMENSION KVED 2 NET Numbers of vertices meeting at an edge KAED Ix4 DIMENSION KAED NEAR NAT Numbers of faces meeting at an edge KVAR I 4 DIMENSION KVAR 4 NAT Numbers of vertices meeting at a face KEAR I 4 DIMENSION KEAR 2 NAT 3 1 FEAT3D Subprograms Group 8 45 Numbers of edges meeting at face KEVE Ix4 DIMENSION KEVE NVEL NVT Numbers of elements meeting at a vertex KAVE Ix4 DIMENSION KAVE NVAR NVT Numbers of faces meeting at a vertex KVBD Ix4 DIMENSION KVBD NVBD Vertices on the boundary KEBD Ix4 DIMENSION KEBD NEBD Edges on the boundary KABD Ix4 DIMENSION KABD NABD Areas on the boundary KBCT Ix4 DIMENSION KBCT NBCT 1 Pointer vector for KVBD and KEBD Parameters in COMMON blocks COMMON TRIAD NEL NVT NET NAT
26. of the subprograms of group S For the description of the arrays and parameters see Section 1 3 SUBROUTINE XORSC MFILE CFILE Contents of the input file for XORSC FORMAT used for input NET and NAT usually are 0 Comment line Comment line NEL NVT NBCT NVE NEE NAE Comment line DCORVGCIDIM IVT IDIM 1 3 IVT 1 NVT Comment line KVERT IVE IEL IVE 1 NVE IEL 1 NEL Comment line KNPR IVT IVT 1 NVT 3 1 FEAT3D Subprograms Group 0 43 Example Unit cube with a hole 0 1 V 0 3 0 7 Coarse grid TRIA2 Unit cube with a hole 6 16 28 12 6 DCORVG ODO 1DO 1DO ODO 3D0 700 700 3D0 3D0 700 700 3DO ODO 1DO 1DO ODO KVERT O O O O OP OU P OI O 13 1 O N KNPR 4 N ODO ODO 1DO 1DO 3D0 3D0 TDO TDO 3D0 3D0 TDO TDO ODO ODO 1DO 1DO 3 4 15 16 oN 13 14 15 16 1111222 NEL NVT NBCT NVE NEE NAE ODO ODO ODO ODO 3D0 3D0 3D0 3D0 700 700 700 TDO 1DO 1DO 1DO 1DO 6 7 8 10 11 12 14 10 9 15 11 10 16 12 11 13 9 12 222221111 Names of the subprograms The following programs are used to read and write complete subdivisions generated by one or more of the subprograms of group S XOWS checks which of the arrays describing a triangulation are really generated an
27. or 9 For storage techniques 3 and 7 it is assumed that the test and the trial space coincide and only one element subprogram is passed as a parameter Storage technique 9 is reserved for general rectangular matrices where the test and trial space may be different The program XAP3 first determines the number of equations NEQ and then allocates three INTEGER vectors KDIA KDIAS and a help vector of length 2 NEQ 1 After determination of the number of diagonal rows NDIA these arrays are compressed The corresponding routines XAP7 and XAP9 first determine the number of equations NEQ and allocate KLD on the workspace in the correct length NEQ 1 Then they reserve the remaining free space of DWORK to calculate the column pointer KCOL After completion the free space of DWORK is released The user may speed up the calculation of KCOL by proposing a number NEROW for the estimated average number of nonzero entries per row of the matrix NEROW should be carefully chosen Parameters Input ELE SUB Name of the element subprogram in and ELEn SUB n 1 2 Names of the element subprograms for the test and trial space in this order in AP9 1 4 1 symmetry of matrix assumed only pointers for upper triangular part generated storage techniques 4 and 8 I 4 Estimated maximum number of nonzero elements per row For NEROW 0 the default value 27 is chosen in AP7 and AP9 KVERT I 4 DIMENSION KVERT NNVE NEL
28. provided SUBROUTINE WERR IERO SUBO Parameters Input IERO 144 Number of error see file FEAT MSG SUBO C 6 Name of calling routine Explanation The error indicator IERO is copied to IER in COMMON ERRCTL and the error message routine OERR is invoked to display the corresponding error message on unit MERR and or MTERM Arguments for the message are passed via CPARAM in COMMON CHAR 62 Description of the Subprograms Group Z Handling of the pseudo dynamic memory management Machine dependent system routines 1 Pseudodynamic memory management The first subgroup of subprograms has been described in detail in the FEAT2D manual section on the pseudodynamic memory management For completeness we list again the subprogram names and the parameter lists SUBROUTINE ZCLEAR LNR ARR SUBROUTINE ZCPY LNR1 ARR1 LNR2 ARR2 SUBROUTINE ZCTYPE ITYPE LNR ARR SUBROUTINE ZDISP ILONG LNR ARR SUBROUTINE ZFREE ITYPE IFREE SUBROUTINE ZLEN LNR LENGTH SUBROUTINE ZLEN8 LNR LENGTH SUBROUTINE ZNEWCILONG ITYPE LNR ARR SUBROUTINE ZTYPE LNR LTYPE 2 Initialization of the BLANK COMMON and of I O devices SUBROUTINE ZINIT NNWORK CMSG CERR CPRT CSYS CTRC CHARACTER CMSG CERR CPRT CSYS COMMON NWORK IWORK IWMAX L NNARR DWORK 1 COMMON OUTPUT M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 3 Machine dependent system routines The group Z of FEAT2D routines is also intended for system dependent subpro
29. subprograms The name and the date of their version is written to the file connected with the unit MTRC The user may want his own subprograms to be traced in the same manner as it is done for the FEAT3D routines Then the first executable statements of a program unit should look as follows SUB nnnnnn IF ICHECK GE 997 CALL OTRCC nnnnnn date IER 0 Here nnnnnn stands for the name of the routine and date is a string containing the date of the last update in the form mm dd yy Clearly the COMMON blocks ERRCTL and CHAR must also be defined FEAT3D routines are traced in this way for values ICHECK 997 998 or 999 For the value 997 only the most important subprograms are traced for the value 999 even elementary auxiliary subroutines If the user decides to trace only his own subprograms he has to use values for ICHECK smaller than 997 For fully tested programs one should choose 0 1 6 BLAS routines 17 1 6 BLAS routines Many of the subprograms of the subgroup L deal with elementary linear algebra like forming the dot product or calculating linear combinations of two vectors In order to speed up execution time on many of the larger machines in particular on vector computers these tasks are realized by calling the Basic Linear Algebra Subprograms BLAS Since most of the matrix operations in the package are for extremely sparse matrices we only use the BLAS routines of level 1 vector operations
30. techn 8 LWS29 LWS2 F Weighted scalar product precision S S storage techn 9 LWS2A LWS2 F Weighted scalar product precision S S storage techn A LWS33 LWS3 F Weighted scalar product precision S D storage techn 3 LWS34 LWS3 F Weighted scalar product precision S D storage techn 4 LWS37 LWS3 F Weighted scalar product precision S D storage techn 7 LWS38 LWS3 F Weighted scalar product precision S D storage techn 8 LWS39 LWS3 F Weighted scalar product precision S D storage techn 9 LWS3A LWS3 F Weighted scalar product precision S D storage techn OERR OERR F Write error messages OFO OFO F Open file OMSG OMSG F Write messsages and notes ORAO XORA F Auxiliary routine for ORAn XORA ORAL ORA F Read array normalized double precision 70 List of FEAT2D subprograms used in FEAT3D Routine Filename Short description ORA2 ORA F Read array normalized single precision Read array normalized integer OTRC OTRC F Trace programs OWAO XOWA F Auxiliary routine for OWAn OWA1 Write array normalized double precision OWA2 OWA F Write array normalized single precision OWA3 OWA F Write array normalized integer RC13 RC13 F Compress block matrices storage techn 3 double precision RC17 RC17 F Compress block matrices storage techn 7 double precision RC19 RC19 F Compress block matrices storage techn 9 double precision RC23 RC23 F Compress block mat
31. the I O files for FEAT3D IRECL8 denotes the maximum record length for format free I O machine dependent The value ICHECK in the error control block is set to 1 i e as a default only elementary consistency checks are performed but no subprogram tracing 3 2 FEAT2D Subprograms 51 3 2 FEAT2D Subprograms Group I Iterative methods for linear equations The subprograms of group I deal with iterative methods for linear systems of equations Several versions for each algorithm are provided differing in the data type of the matrix and the vector and in the assumed storage technique for the matrix Further we distinguish whether an algorithm is used for 0 Solution of a linear system up to a certain accuracy 1 Preconditioning scaling SSOR preconditioning ILU 2 Smoothing i e performing of a fixed number of iteration steps independent of the accuracy as used in multigrid algorithms 3 Approximate solution of a linear system i e reducing the starting residual by certain number of digits The numbers 0 1 2 and 3 again occur in the names of the subprograms below Names of the subprograms The names of the programs in this subgroup have the form Iatns Here a denotes the iterative algorithm namely Jacobi method B Gauss Seidel method C Successive overrelaxation SOR D Symmetric successive overrelaxation SSOR E Preconditioned Conjugate gradient algorithm PCG F Incomplete Cholesky decomposi
32. 8 DETJ DJAC 1 1 DJAC 2 2 DJAC 3 3 DJAC 3 2 DJAC 2 3 DJAC 2 1 DJAC 1 2 DJAC 3 3 DJAC 3 2 DJAC 1 3 DJAC 3 1 DJAC 1 2 DJAC 2 3 DJAC 2 2 DJAC 1 3 ELSE DJ11 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ12 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ13 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ21 DX 1 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ22 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ23 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ31 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ32 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 DJ33 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ41 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ42 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8 43 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ51 DX 1 DX 2 DX 3 DX 4 DX 5 DX 6 DX 7 DX 8 Q8 DJ52 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 08 DJ53 DZ 1 DZ 2 DZ 3 DZ 4 DZ 5 DZ 6 DZ 7 DZ 8 Q8 DJ61 DX 1 DX 2 DX 3 DX 4 5 DX 6 DX 7 DX 8 Q8 90 Sample Program DJ62 DY 1 DY 2 DY 3 DY 4 DY 5 DY 6 DY 7 DY 8 Q8
33. 9 10 11 12 13 14 15 16 12 13 14 15 16 N Oo N FAP O N or ON 0 10 1 KEDGE KEDGE IEE IEL IEE 1 NNEE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 6 16 17 7 18 19 20 10 21 22 23 14 16 24 25 17 26 27 28 19 29 22 30 4 5 24 25 8 31 27 32 12 1 13 21 29 5 6 16 24 9 18 26 31 3 15 23 30 8 7 17 25 11 20 28 32 9 18 26 31 12 10 19 27 11 20 28 32 KAREA KAREA IAE IEL IAE 1 NNAE 1 2 3 4 5 6 7 8 9 10 3 11 12 13 14 15 9 16 17 18 14 19 5 20 21 2 8 13 18 22 23 4 10 15 19 24 22 6 11 16 20 24 KADJ KADJ IAE IEL IAE 1 NNAE 0 5 2 6 4 7 0 5 3 6 1 7 0 5 4 6 2 7 0 5 3 6 1 7 0 12 3 4 7 0 12 3 4 7 5 1 2 3 4 6 KNPR KNPR IVT IVT 1 NVT 1 1111 t 1 4 o 0 O Multigrid data In this last subsection we present two COMMON blocks that are needed in multigrid appli cations They contain the grid information of TRIAA and TRIAD for NNLEV at most refinement levels The meaning of the variables can be deduced straightforward from the contents of TRIAA and TRIAD for further information see Section 3 1 1 4 Storage techniques for matrices 11 PARAMETER NNLEV 9 COMMON MGTRD KNEL NNLEV KNVT NNLEV KNET NNLEV KNAT NNLEV KNVE NNLEV KNEE NNLEV KNAE NNLEV KNVEL NNLEV KNEEL CNNLEV KNVED NNLEV KNVAR CNNLEV KNEAR CNNLEV KNBCT NNLEV KNVBD NNLEV KNEBD CNNLEV KNABD NNLEV COMMON MGTRA KLCVG NNLEV KLCMG NNLEV KLCAG NNLEV KLVERT NNL
34. A 16X ERROR OCCURED IN ELEMENT 16 8 LAST ENTRY IN KADJ NOT ZERO BUT NVE 3 16X ERROR OCCURED IN ELEMENT 16 8 ENTRY IN KADJ LARGER THAN NEL 16X ERROR OCCURED IN ELEMENT 16 8 NO JOINING EDGE BETWEEN TWO NEIGHBORED ELEMENTS 16X ERROR OCCURED IN ELEMENT I6 8 BOUNDARY EDGE FORMED BY VERTICES ON DIFFERENT BOUNDARY COMPONENTS 16X ERROR OCCURED IN ELEMENT I6 1 CANNOT PROCEED PARAMETERS OF BOUNDARY VERTICES NOT AVAILABLE 1 WRONG DATA TYPE OF AT LEAST ONE ARRAY E SAMPLE PROGRAM Q OQ OQ OO PROGRAM SAMPLE Sample program Demonstration of FEAT3D multigrid solver conforming finite elements Problem 2u u u u f XX yy ZZ Exact solution u X 2 Y 2 Z 2 Inhomogeneneous Dirichlet boundary conditions implemented Trilinear hexahedral element Domain Unit cube Standard declarations and parameter settings IMPLICIT DOUBLE PRECISION 0 0 2 LOGICAL B PARAMETER NNARR 299 NNLEV 9 NNWORK 6500000 PARAMETER NNVE 8 NNDIM 3 21 NNBAS 27 NNDER 10 NBLCA 1 means that the stiffness matrix only consists of one block analogously NBLCF stands for the right hand side PARAMETER NBLCA 1 NBLCF 1 PARAMETER NBLA1 NBLCA NNLEV NBLF1 NBLCF
35. AP9 F CB3H F 010 E011 F E011 F E013 F E013 F E030 F E030 F E031 F E031 F GORSM F GOWSM F MO11 F MP311 F MP330 F MP331 F MR311 F MR330 F MR331 F NDFG F NDFGL F NDFL F NDFGL F ORSC F SBO F SBA F SBAEL F SBCA F SBCB F Short description Bilinear form dbl sgl precision hexahedra Bilinear form dbl sgl precision hexahedra Bilinear form dbl sgl precision hexahedra Pointer vectors for bilin forms storage techn 3 Pointer vectors for bilin forms storage techn 7 Pointer vectors for bilin forms storage techn 9 3 dimensional cubature formulas hexahedra Element constant hexahedral Element trilinear hexahedral Auxiliary routine for E011 Element triquadratic hexahedral Auxiliary routine for E011 Element rotated trilinear hexahedral Auxiliary routine for E030 Element rotated trilinear hexahedral Auxiliary routine for E031 Read subdivision in MOVIE BYU format Write subdivision in MOVIE BYU format Multigrid solver double precision Multigrid prolongation for element E011 Multigrid prolongation for element E030 Multigrid prolongation for element E031 Multigrid restriction for element E011 Multigrid restriction for element E030 Multigrid restriction for element E031 Global number of d o f Relation global local number of d o f Local numer of d o f Auxiliary sorting routine for NDFGL Read coarse grid Regular refinement of a given hexahedral subdivision Adjust dimensions of
36. CNNVE DZ NNVE DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVE NNVE IEL NDIM M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 NNLEV KNVT NNLEV KNET NNLEV NNLEV KNVE NNLEV KNEE NNLEV KNAE NNLEV KNVEL NNLEV KNEEL NNLEV KNVED NNLEV KNVAR NNLEV KNEAR NNLEV KNBCT NNLEV KNVBD NNLEV KNEBD NNLEV KNABD NNLEV KLCVG NNLEV KLCMG NNLEV KLCAG NNLEV KLVERT NNLEV KLEDGE NNLEV KLAREA NNLEV KLADJ NNLEV KLVEL NNLEV KLEEL NNLEV KLAEL NNLEV KLVED NNLEV KLAED NNLEV KLVAR NNLEV KLEAR NNLEV KLEVE NNLEV KLAVE NNLEV KLNPR NNLEV KLBCT NNLEV KLVBD NNLEV KLEBD NNLEV KLABD NNLEV ILEV NLEV NLMIN NLMAX ICYCLE KPRSM NNLEV KPOSM NNLEV DOMPOS NNLEV DOMPRS NNLEV OMEX EPSEX KIPOSM NNLEV KIPRSM NNLEV IEX NITEX IELE TTMG TTS TTE TTD TTP TTR IMTIME EQUIVALENCE DWORK 1 VWORK 1 KWORK 1 EXTERNAL E011 RHS COEFFA 1I000 U UX UY UZ EXTERNAL PARX PARY PARZ SEDB SADB EXTERNAL YMAX17 YREST YPROL YPOSM YPRSM YMBCO1 LA 0 KABAN 4 ARRDA DA BCONA TRUE BSNGLA FALSE LF O KBFN 1 ARRDF DF BCONF FALSE BSNGLF FALSE NROW 27 ISYMMA 0 ICLRO 0 ICLR1 1 KLCOLA NNLEV 0 KLLDA NNLEV 0 KLA NBLA1 0 KLF NBLF1 0 CCFILE TRIA 1 TRIA 2 TRIA 3 TRIA 4 TRIA 5 DATA DATA DATA DATA DATA DATA DATA 80
37. DIMENSION KDIAS NDIA 1 Pointer to start of diagonal rows NDIA I 4 Number of diagonal rows NA I 4 Number of entries in matrix List of available subprograms SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE XRC13 LA LDIA LDIAS NDIA NA NEQ NBLOC TOL IDISP ARR RC13 DA KDIA KDIAS NDIA NA NEQ NBLOC KOFF TOL XRC23 LA LDIA LDIAS NDIA NA NEQ NBLOC TOL IDISP ARR RC23 VA KDIA KDIAS NDIA NA NEQ NBLOC KOFF TOL XRC17 LA LCOL LLD NA NEQ NBLOC TOL IDISP ARR1 ARR2 17 DA KCOL KLD NA NBLOC KOFF TOL XRC27 LA LCOL LLD NA NEQ NBLOC TOL IDISP ARR1 ARR2 RC27 VA KCOL KLD NA NBLOC KOFF TOL XRC19 LA LCOL LLD NA TOL IDISP ARR1 ARR2 RC19 DA KCOL KLD NA NEQ NBLOC KOFF TOL XRC29 LA LCOL LLD NA NEQ NBLOC TOL IDISP ARR1 ARR2 RC29 VA KCOL KLD NA NEQ NBLOC KOFF TOL 3 2 FEAT2D Subprograms Group W 61 Group W Error handling The programs of group W are intended for handling of errors occuring in FEAT3D subpro grams In particular they are used to display error messages to dump the contents of the COMMON block TABLE see group Z containing information on the arrays currently allocated on the workspace or to selectively list the contents of variables and arrays in COMMON blocks In the present version of FEAT3D only an elementary standard routine is
38. E LNPR LBCT LVBD LEBD LABD COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP Exchange of information with COEFF PARAMETER NNBAS 27 NNDER 10 NNDIM 3 COMMON COAUX1 KDFG NNBAS NNBAS COMMON COAUX2 DBAS1 NNDIM NNBAS NNDER 3 KDFG1 NNBAS 3 KDFL1 NNBAS 3 IDFL1 3 BDER1 NNDER 3 List of available subprograms SUBROUTINE XABOS LA LDIA LDIAS NDIA NA NEQ NBLOC ICLEAR ELE COEFF BCON KAB KABN ICUB ISYMM ILINT BSNGL ARR SUBROUTINE ABO3 DA KDIA KDIAS NDIA NA NEQ NBLOC KOFF KVERT KEDGE KAREA DCORVG ELE COEFF BCON COECON KAB KABN ICUB ISYMM ILINT SUBROUTINE XABO7 LA LCOL LLD NA NEQ NBLOC ICLEAR ELE COEFF KAB KABN ICUB ISYMM ILINT BSNGL ARR SUBROUTINE ABO7 DA KCOL KLD NA NEQ NBLOC KOFF KVERT KEDGE KAREA DCORVG ELE COEFF BCON COECON ICUB ISYMM ILINT SUBROUTINE XABO9 LA LCOL LLD NA NEQ NBLOC ICLEAR ELE1 ELE2 ELE3 30 Description of the Subprograms COEFF BCON KAB KABN ICUB ILINT BSNGL ARR SUBROUTINE ABO9 DA KCOL KLD NA NEQ NBLOC KOFF KVERT KEDGE KAREA DCORVG ELE1 ELE2 ELE3 COEFF BCON COECON KAB KABN ICUB ILINT 3 1 FEAT3D Subprograms Group C 31 Group Numerical integration The subprograms of this group return information on numerical integration rules in three space dimensions see for example Stroud 6 T
39. E IF ILINT EQ 1 THEN XX DJ11 DJAC 1 1 XI1 DJAC 1 2 XI2 DJAC 1 3 XI3 YY DJ12 DJAC 2 1 XI1 DJAC 2 2 XI2 DJAC 2 3 XI3 ZZ DJ13 DJAC 3 1 XI1 DJAC 3 2 XI2 DJAC 3 3 XI3 ELSE XX DJ114DJAC 1 1 XI142DJ31 XI24DJA1 XI34DJ71 XI2 XI3 YY DJ12 DJ22 XI1 DJAC 2 2 XI2 DJ42 X13 DJ62 XI1 XI3 ZZ DJ13 DJ23 X11 DJ33 XI2 DJAC 3 3 XI34DJ53 XI1 XI2 ENDIF Sample Program 91 C UH 0DO UHX 0DO UHY ODO UHZ ODO C DO 210 JDOFE 1 IDFL IEQ KDFG JDOFE ILO KDFL JDOFE UH UH DU IEQ DBAS 1 ILO 1 UHX UHX DU IEQ DBAS 1 ILO 2 UHY UHY DU IEQ DBAS 1 ILO 3 UHZ UHZ DU IEQ DBAS 1 ILO 4 210 CONTINUE ERRL2 ERRL2 0M U XX YY ZZ UH 2 ERRH1 ERRH1 0M UX XX YY ZZ UHX 2 UY XX YY ZZ UHY 2 UZ XX YY ZZ UHZ 2 C ERRH1 ERRH1 0M ABS UX XX YY ZZ ABS UH 2 C ABS UY XX YY ZZ ABS UHY 2 ABS 07 22 5 0 2 2 DNL2 DNL2 0M U XX YY ZZ 2 DNH1 DNH1 0M UX XX YY ZZ 2 UY XX YY ZZ 2 UZ XX YY ZZ 2 C 200 CONTINUE 100 CONTINUE MT GT 0 THEN WRITE MTERM WRITE MTERM PQL2U SOLUTION ELE gt IELTYP WRITE MTERM PQL2U CUBATURE FORMULA ICUB WRITE MTERM PQL2U REL L2 ERROR SQRT ERRL2 DNL2 WRITE MTERM PQL2U REL H1 ERROR SQRT ERRH1 DNH1 IF MT GT 1 THEN WRITE MTERM PQL2U FUNCTION VALUES L2 NORM SQRT DNL2 WRITE MTER
40. EV KLEDGE NNLEV KLAREA NNLEV KLADJ NNLEV KLVEL NNLEV KLEEL CNNLEV KLAEL NNLEV KLVED NNLEV KLAED NNLEV KLVAR NNLEV KLEAR NNLEV KLEVE NNLEV KLAVE NNLEV KLNPR NNLEV KLBCT NNLEV KLVBD NNLEV KLEBD NNLEV KLABD NNLEV 1 4 Storage techniques for matrices FEAT3D provides routines for the evaluation of finite element matrices and for basic linear algebra operations with respect to several storage techniques in particular taking care for the sparse structure Not all techniques described below are supported in the present version The different storage methods are indicated by a reference character 0 9 A Z which again occurs in the name of the corresponding subprograms for example for calculating stiffness matrices or for forming matrix vector products The array containing the entries of the matrix is denoted by DA or VA depending on the accuracy Further we use the notation NA for the number of entries stored in DA VA and NEQ for the number of equations For rectangular matrices storage techniques 1 and 9 NEQ denotes the number of rows Storage technique Array descriptors Explanation O Matrix not stored None All matrix operations are performed by means of EXTERNAL subroutines 1 Full matrix DA NEQ NEQ1 Usual full storage DACI J Elements are stored columnwise 2 Full matrix DA NEQ NEQ 1 2 Only upper triangular matrix is stored symmet
41. F Transp matrix vector mult precision S S storage techn LTX27 LTX2 F Transp matrix vector mult precision S S storage techn 7 LTX29 LTX2 F Transp matrix vector mult precision S S storage techn 9 LTX2A LTX2 F Transp matrix vector mult precision S S storage techn A LTX33 LTX3 F Transp matrix vector mult precision S D storage techn 3 LTX37 LTX3 F Transp matrix vector mult precision S D storage techn 7 LTX39 LTX3 F Transp matrix vector mult precision S D storage techn 9 LTX3A LTX3 F Transp matrix vector mult precision S D storage techn A LVM1 LVM F Vector multiply and add precision D D LVM2 LVM F Vector multiply and add precision S S LVM F Vector multiply and add precision S D LWS13 LWSI1 F Weighted scalar product precision D D storage techn LWS14 LWSI F Weighted scalar product precision D D storage techn 4 LWS17 LWS1 F Weighted scalar product precision D D storage techn 7 LWS18 LWSI F Weighted scalar product precision D D storage techn 8 LWS19 LWSI F Weighted scalar product precision D D storage techn 9 LWSIA LWS1 F Weighted scalar product precision D D storage techn A LWS23 LWS2 F Weighted scalar product precision S S storage techn 3 LWS24 LWS2 F Weighted scalar product precision S S storage techn 4 LWS27 LWS2 F Weighted scalar product precision S S storage techn 7 LWS28 LWS2 F Weighted scalar product precision S S storage
42. FEAT3D Finite Element Analysis Tools in 3 Dimensions User Manual Release 1 2 Joachim Harig Peter Schreiber Stefan Turek Universitat Heidelberg Institut fiir Angewandte Mathematik Im Neuenheimer Feld 293 D 69120 Heidelberg Heidelberg Marz 1994 CONTENTS Short description 1 General Concepts and Notation 1 1 Groups of subprograms 1 2 Symbolic names and reserved starting letters 1 3 Description of the 1 4 Storage techniques for matrices 1 5 Messages error handling and consistency checks 126 BLAS routines 2745 pi ee ea eng 2 Common Program Segments 2 1 2 2 PARAMETER statements 2 3 EQUIVALENCE statement 2 4 COMMON BLOCKS 55 er Geo a ut Q Re OU 25 SAVE statement ini 3 Description of the Subprograms 3 1 FEAT3D Subprograms 3 2 FEAT2D Subprograms Bibliography A List of FEAT3D subprograms B List of FEAT2D subprograms used in FEAT3D C List of COMMON blocks D List of error message file FEAT MSG E Sample Program 18 18 18 19 19 21 22 22 51 63 64 66 73 75 78 SHORT DESCRIPTION The progam package FEAT3D is a general purp
43. FEAT3D Subprograms Group A 25 Subgroup AB Assembly of matrices The subprograms ABvs assemble global matrices for meshes consisting of hexahedra The matrices may consist of several blocks which are assumed to possess the same structure of pointer vectors i e the vectors KCOL and KLD in storage technique 7 are considered to be the same for all blocks The number of blocks is NBLOC The different blocks each of length NA need not be stored sequentially i e in a matrix DA NA NBLOC VA NA NBLOC Only one starting address is passed as a parameter in 1 or 1 and additionally a vector KOFF NBLOC containing the offset of the starting address of block matrix IBLOC relative to DA 1 This is automatically handled by the provided X routines which simply require the num bers LACIBLOC of each block matrix allocated on the workspace vector If one or sev eral block matrices do not exist i e if LACIBLOC 0 the matrices are allocated by the X routines If the user prefers to directly invoke an A routine like ABO7 instead of the correponding X routine XABO7 he should define a block matrix DA NA NBLOC and set KOFF IBLOC IBLOC 1 NA The A routines do not overwrite the elements of the matrices but add the new entries to the old ones However the corresponding X routines have a parameter ICLEAR which may be set to 1 for deletion of the old entries Structure of the bilinear form For each of the NBLOC bilinea
44. KAREA and NAT Determination of KAEL Determination of KADJ from coarse grid Determination of KNPR from MOVIE BYU grid 64 Page 25 25 25 23 23 23 31 32 32 32 32 32 32 32 32 32 34 34 35 35 35 35 35 35 35 41 41 41 41 42 44 44 44 44 44 List of FEAT3D subprograms 65 Routine Filename Short description Page SBE SBE F Adjust dimensions of KEDGE and NET 44 SBEEL SBEEL F Determination of KEEL and NEEL 44 SBV SBV F Adjust dimensions of DCORVG 44 SBVEL SBVEL F Determination of KVEL and NVEL 44 VBO VBO F Linear form hexahedra 48 XABO03 ABO3 F Bilinear form hexahedra storage techn 3 25 XABO7 ABOT F Bilinear form hexahedra storage techn 7 25 09 AB09 F Bilinear form hexahedra storage techn 9 25 XAP3 AP3 F Pointer vectors for bilin forms storage techn 3 23 XAP7 Pointer vectors for bilin forms storage techn 7 23 9 AP9 F Pointer vectors for bilin forms storage techn 9 23 XMABO7 XMABO7 F Successive call of XAB07 35 XMAB09 XMABO9 F Successive call of 09 35 XMAP7 Successive call of XAP7 35 XMAP9 XMAP F Successive call of XAP9 35 XMORA7 XMORAT F Successive call of XORA storage techn 7 35 XMORA9 XMORAQ F Successive call of XORA storage techn 9 35 XMOWA7 XMOWAT F Successive call of storage techn 7 35 XMOWA9 XMOWAO9 F Successive call of storage techn 9 35 XMORS XMORS F Successive call of XORS 35 XMOWS XMOWS F Successive
45. LEN NNARR KLEN8 NNARR IFLAG blocks for multigrid data management MGPAR MGTRD MGTRA ILEV NLEV NLMIN NLMAX ICYCLE KPRSM NNLEV KPOSM NNLEV KNEL NNLEV KNVT NNLEV KNET NNLEV KNAT NNLEV KNVE NNLEV KNEE NNLEV NNLEV KNVEL NNLEV KNEEL NNLEV KNVED NNLEV KNVAR CNNLEV KNEAR CNNLEV KNBCT NNLEV KNVBD NNLEV KNEBD CNNLEV KNABD NNLEV KLCVG CNNLEV KLCMG NNLEV KLCAG CNNLEV KLVERT NNLEV KLEDGE NNLEV KLAREA NNLEV KLADJ CNNLEV KLVEL NNLEV KLEEL NNLEV KLAEL NNLEV KLVED NNLEV KLAED NNLEV KLVAR NNLEV KLEAR NNLEV KLEVE NNLEV 73 74 List of COMMON blocks KLAVE NNLEV KLNPR NNLEV KLBCT NNLEV KLVBD NNLEV KLEBD NNLEV KLABD NNLEV COMMON MGTIME TTMG TTS TTE TTD TTP TTR IMTIME D LIST OF ERROR MESSAGE FILE FEAT MSG gt O ON B B O N N O N N 20 21 30 31 32 33 34 35 36 51 52 53 54 70 71 72 73 74 75 76 100 N PF P P P B N N w 2 ARRAY A7 ALLOCATED AS 13 LENGTH 157 18 2 ARRAY A7 ALLOCATED AS 13 LENGTH IS 18 16X TOTAL FREE PART OF DWORK IS USED 3 ARRAY A7 DELETED 13 RELEASED 2 ARRAY 7 13 COMPRESSED LENGTH IS 1I8 6 ARRAY A7 13 SUCCESSFULLY COPIED ONTO ARRA
46. M PQL2U FUNCTION VALUES 1 SQRT DNH1 ENDIF ENDIF IF MTERM NE MPROT THEN WRITE MPROT WRITE MPROT PQL2U SOLUTION ELE gt IELTYP WRITE MPROT PQL2U CUBATURE FORMULA ICUB WRITE MPROT PQL2U REL L2 ERROR SQRT ERRL2 DNL2 WRITE MPROT PQL2U REL H1 ERROR SQRT ERRH1 DNH1 IF M GT 1 THEN WRITE MPROT PQL2U FUNCTION VALUES L2 NORM SQRT DNL2 WRITE MPROT PQL2U FUNCTION VALUES H1 NORM SQRT DNH1 ENDIF Sample Program 92 ENDIF C 99999 END C C Coarse grid triangulation C Coarse grid TRIA2 Unit cube non cartesian grid cube in cube NEL NVT NBCT NVE NEE NAE DCORVG KVERT KNPR 7 1618 126 O O O O O O O O O O O O 0000 0 0000 0000 0 0000 0000 1 0000 0000 1 0000 0000 0 0000 0000 0 0000 0000 1 0000 0000 1 0000 2500 0 2500 7500 0 2500 7500 0 7500 2500 0 7500 2500 0 2500 7500 0 2500 7500 0 7500 2500 0 7500 2 6 5 9 3 7 6 10 4 8 711 4 8 5 9 2 3 4 9 6 7 8 13 10 11 12 13 111111 10 11 12 12 10 14 14 1 O O O O O O O O F O O O O 0 00 00 00 00 00 00 00 00 25 25 25DO 25DO T5DO T5DO T5DO T5DO 14 15 16 16 11 15 15 0 13 14 15 13 12 16 16 000000
47. NNLEV CHARACTER FMT 15 CFILE 15 SUB 6 CPARAM 120 CHARACTER ARRDA 6 ARRDF 6 CHARACTER CARRDA 6 CARRDF 6 CHARACTER CCFILE 15 DIMENSION ARRDA NBLCA ARRDF NBLCF DIMENSION CARRDA NBLCA NNLEV CARRDF NBLCF NNLEV DIMENSION CCFILE NNLEV KABA structure of the stiffness matrix KABAN number of terms in the integrand for the stiffness matrix structure of the right hand side KBFN number of terms in the integrand for the right hand side 78 Sample Program 79 DIM DIM DIM DIM DIM DIM COMM COMM COMM COMM AAA ww COMM COMM COMM COMM COMM COMM COMM COMM ON ON ERRCTL ON CHAR ON TRIAD ON TRIAA ON ELEM ON OUTPUT ON MGTRD ON MGTRA ON MGPAR ON MGPARO ON MGTIME NSION LA NBLCA KABAN NBLCA KABA 2 NNAB NBLCA BCONA NBLCA NSION LF NBLCF KBFN NBLCF KBF NNAB NBLCF BCONF NBLCF NSION LU NBLCA NSION VWORK 1 KWORK 1 NSION KLA NBLCA NNLEV NBLCF NNLEV NSION KLCOLA NNLEV KLLDA NNLEV NNLEV KNEQ NNLEV NWORK IWORK IWMAX L NNARR DWORK NNWORK IER ICHECK SUB FMT 3 CPARAM NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD DX NNVE DY
48. NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD Further parameters will be explained together with the specific routines The central routine XSBOX For creating a regularly refined mesh and allocating all arrays on the workspace vector the user may invoke the subprogram XSBOX The second letter X denotes that these routines again only invoke the X routines XSBCA and XSBO All elements are subdivided into eight subelements All edges are subdivided and connected The subelement containing the first vertex of the original element keeps the old number the other seven subelements are enumbered as described above The old vertices keep their number l he new vertices are enumbered in the following way First the new vertices on edges of the old subdivision then the new vertices in the center of the areas of the old subdivision and finally the new interior vertices Parameters Input NFINE I 4 Desired number of regular subdivisions of the given mesh ISCAD I 4 1 Determine array KADJ from coarse grid ISE I 4 1 Determine numbers of midpoints ISA 1 4 0 Release array on return after determination of the new sub division on finest mesh ISEEL I 4 1 Determine numbers of elements meeting at each edge array KEEL ISAEL I 4 1 Determine numbers of elements meeting
49. OECON KAB KABN ICUB I 4 4 4 4 4 4 4 4 R 8 R 8 R 8 4 SUB SUB SUB FUN L 4 R 8 I 4 I 4 DIMENSION LA NBLOC Handles of block matrices for X routines only DIMENSION KDIA NDIA Diagonal offset pointer generated by AP3 DIMENSION KDIAS NDIA 1 Pointer to start of new diagonal rows generated by AP3 Number of diagonal rows in each block matrix generated by AP3 DIMENSION KCOL NA Column pointer generated by AP7 and AP9 DIMENSION KLD NEQ 1 Pointer to start of new rows generated by AP7 and AP9 Number of nonzero entries in each block matrix Number of rows in each block matrix Number of block matrices 1 Old entries are set to zero 0 New elements are added to old ones DIMENSION NBLOC Offsets of starting address of matrix block IBLOC relative to starting address of first block DIMENSION KVERT NNVE NEL Numbers of vertices of elements DIMENSION KEDGE NNEE NEL Numbers of edges of elements if necessary DIMENSION KAREA NNAE NEL Numbers of faces of elements if necessary DIMENSION DCORVG 3 NVT Coordinates of vertices DIMENSION DCORMG 3 NET Coordinates of midpoints of edges if necassary DIMENSION DCORAG 3 NAT Coordinates of midpoints of faces if necassary DIMENSION KNPR NVT Nodal properties see Section 1 3 Name of the element subprogram storage techniques 3 and 7 n 1 2 Names of the element subprogram
50. OUTINE SBAEL KAREA KAEL 3 1 FEAT3D Subprograms Group 8 47 Generation of vertex element connectivity KVEL SUBROUTINE XS2V SUBROUTINE S2V KVERT KADJ KVEL ICHK Adjust dimensions of DCORVG KVERT KEDGE KAREA KADJ and KNPR SUBROUTINE SBV DCORVG KVERT KEDGE KADJ KNPR Determination of KNPR from MOVIE BYU grid SUBROUTINE XSBCB SUBROUTINE SBCB KVERT KADJ KVEL KNPR 48 Description of the Subprograms Group V Linear forms The programs of group V deal with the calculation of linear forms corresponding to integrals of the form Y 0 dz Q Q The notation stands for the basis functions of the space of test functions The con ventions in the notation and parameter lists are similar to those of group A for bilinear forms The structure of the linear form the number of additive terms and the abbre viations for the partial derivatives applied to the basis functions are contained in the arrays KB IBLOC and KBN IBLOC for each of the NBLOC block vector separately The coefficient function is of the form DOUBLE PRECISION FUNCTION COEFF X Y Z IA IBLOC BFIRST cf group A Clearly for linear forms only one multiindex of derivatives abbreviated by the number IA is passed Names of the subprograms The names of the programs are of the form VBv where the character v denotes the version v is set to 0 for volume integrals Parameters Input LB I 4 DIMENSION LB NBLOC Handles of bl
51. PRSM KPRSM ILEV pre smoothing steps DD can be used as auxiliary vector DPOSM SUBR Same as above used for post smoothing DEX SUBR DEX DX DB DD NEQ Returns exact solution DBC SUBR DBC DX NEQ Copies boundary data onto components of DX DSTEP SUBR DSTEP DX DD DB DSTEPP Returns DSTEPP optimal step size for cor rection KITO I 4 auxiliary vectors of length NLMAX KIT I 4 Output DX R 8 Solution vector on DX 1 KOFFX NLMAX ITE I 4 Number of iterations IER I 4 Error indicator RHOLMG R 8 Multigrid convergence rate Prolongations restrictions In the present version only standard prolongations and restrictions for the finite elements E011 E030 and E031 see 3 1 are provided The names of the routines in group M are MPsnn and MRsnn respectively Here P stands for prologation and R stands for restriction The number s refers to the dimension of the region and is in our case 3 Finally nn is the number of the element 3 1 FEAT2D Subprograms Group M 39 SUBROUTINE MP311 DX1 DX2 KVERT1 KVERT2 KADJ1 KADJ2 NVT1 NVT2 NEL1 NEL2 SUBROUTINE MP330 DX1 DX2 KAREA1 KAREA2 KADJ1 KADJ2 NAT1 NAT2 NEL1 NEL2 SUBROUTINE MP331 DX1 DX2 KAREA1 KAREA2 KADJ1 KADJ2 NAT1 NAT2 NEL1 NEL2 SUBROUTINE MR311 DF2 DF1 KVERT2 KVERT1 KADJ2 KADJ1 NVT2 NVT1 NEL2 NEL1 SUBROUTINE MR330 DF2 DF1 KAREA2 KAREA1 KADJ2 KADJ1 NAT2 NAT1 NEL2 NEL1 SUBROUTINE MR331 DF2 DF1 KAREA2 KAREA1 KADJ2 KADJ1 NAT2 NAT1 NEL2 NEL1 Explanation The routines ass
52. R SUB 6 FMT 15 CPARAM 120 COMMON OUTPUT M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 COMMON ERRCTL IER ICHECK COMMON CHAR SUB FMT 3 CPARAM COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD COMMON TABLE KTYPE NNARR KLEN NNARR KLEN8 NNARR IFLAG DATA M 2 MT 2 MKEYB 5 MTERM 6 IER 0 ICHECK 1 DATA MERR 11 MPROT 12 MSYS 13 MTRC 14 IRECL8 512 DATA SUB MAIN DATA 3D24 16 5E14 7 6112 DATA CPARAM DATA NEL 0 NVT 0 NET 0 NAT 0 NVE 0 NAE 0 NVEL O NEEL 0 NVED 0 NVAR 0 NEAR 0 NBCT 0 NVBD 0 NEBD O NABD 0 DATA LCORVG 0 LCORMG 0 LCORAG 0 LVERT 0 LEDGE 0 LAREA 0 LADJ 0 LVEL 0 LEEL 0 LAEL 0 LVED 0 LAED 0 LVAR O LEAR 0 LEVE 0 LAVE 0 LNPR 0 LBCT 0 LVBD 0 LEBD 0 LABD 0 DATA KTYPE NNARR 0 KLEN NNARR 0 KLEN8 NNARR 0 IFLAG 0 Explanation M and MT are set to 2 producing relatively much output on MPRT MSYS and on the screen MKEYB is set to the machine dependent value for standard input unit e g 5 for IBM systems MTERM is set to the machine dependent value for the standard output unit e g 6 for IBM systems The values 11 14 are used as default values for
53. SA 0 ISVEL 0 ISEEL 0 ISAEL 0 ISVED 0 ISAED 0 ISVAR 0 ISEAR 0 ISEVE 0 ISAVE 0 ISVBD 0 ISEBD 0 ISABD 0 IDISPT 1 SEDB SADB Refine coarse grid a regular subdivision of the given coarse grid Determine numbers of midpoints Release array KADJ on return after determination of the new subdivision on finest mesh Numbers of elements meeting at each vertex can be neglected Numbers of elements meeting at each edge can be neglected Numbers of elements meeting at each face can be neglected Release all unused arrays on DWORK on return CALL XMSBO O MAX 1 ISE ISA ISVEL ISEEL ISAEL ISVED ISAED ISVAR ISEAR ISEVE ISAVE ISVBD ISEBD ISABD IDISP PARX PARY PARZ SEDB SADB IF 0 GOTO 99999 IF INIT EQ 1 THEN CALL XMOWS 69 CCFILE 1 ELSE CALL XMORS 69 CCFILE 1 ENDIF C C C NET O No information about edges is generated 82 Sample Program No information about faces is generated NVEL 0 No information available about maximum number of element meeting at one vertex C NEEL 0 No information available about maximum number of element meeting at one edge ISYMMA 0 No symmetry assumed full matrix calculated C 1 Only upper triangular part calculated C 2 Symmetry assumed but full matrix calculated lower triangular part obtained by reflection DO 11 ILEV NLMIN NLMAX NET 0 NAT 0 CILEV NAT
54. VBD PY DCORVG 2 IVBD PZ DCORVG 3 IVBD DU IVBD U PX PY PZ DF IVBD U PX PY PZ 1 CONTINUE C END C C Coefficient function for the stiffness matrix DOUBLE PRECISION FUNCTION COEFFA X Y Z IA IB IDA BFIRST IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B IF IA EQ 1 THEN Coefficient for the absolute term COEFFA 1D0 ELSE IF IA EQ 2 THEN Coefficient for the second x derivative COEFF A 2D0 ELSE IF 0 3 THEN Coefficient for the second y derivative Sample Program C Q Q Q COEFFA 1DO ELSE IF IA EQ 4 THEN Coefficient for the second z derivative COEFFA 1DO ENDIF END Right hand side yielding the exact solution UE DOUBLE PRECISION FUNCTION RHS X Y Z IA IDA BFIRST IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B 5 2 2 7 2 8100 END Exact solution and derivatives DOUBLE PRECISION FUNCTION U X Y Z IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B 0 2 2 7 2 END DOUBLE PRECISION FUNCTION UX X Y Z IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B UX 2DO X END DOUBLE PRECISION FUNCTION UY X Y Z IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B UY 2DO Y END DOUBLE PRECISION FUNCTION UZ X Y Z IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B UZ 2DO Z END Error check routine SUBROUTINE PQL2U DU KVERT KEDGE KAREA DCORVG ELE ICUB ILINT U UX UY UZ IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B
55. Y A7 GP I3 2 TYPE OF ARRAY A7 CHANGED TO I3 2 ARRAY A7 13 SUCCESSFULLY READ FROM UNIT I3 2 ARRAY A7 13 SUCCESSFULLY SAVED ONTO UNIT 1 PLEASE ENTER UNIT NUMBER AND FILENAME 8 LENGTH OF KCOL INCREASED NEW LENGTH IS 1I8 11 ARRAYS COMPRESSED OLD LENGTH 18 35X NEW LENGTH 18 5 UNIT NUMBER I3 INVALID 16X ERROR OCCURED WHILE PROCESSING ARRAY A7 9 FILE gt COULD NOT BE OPENED AS UNIT 10 UNIT I3 ALREADY OPENED FILENAME IS 7 8 UNIT I3 ALREADY OPENED AS SCRATCH FILE 1 CORRECTION OF UNIT NUMBER AND FILENAME 2 0 1 1 CLOSE PREVIOUSLY USED FILE 0 1 1 MORE CHARACTERS USED FOR FILENAME THAN PROVIDED CFILE 2 WARNING DURING REVISION OF A7 WRONG INPUT PARAMETER LNR 1I3 3 IS USED 4 WARNING DURING REVISION OF A7 WRONG INPUT PARAMETER LNR 0 3 WARNING DURING REVISION OF A7 13 SAME OF SOURCE AND TARGET ARRAY 8 WARNING WHILE COMPRESSING ARRAYS 16X ROW 18 HAS ONLY ZERO ENTRIES 1 WARNING ZERO RIGHT HAND SIDE 1 CONVERGENCE FAILED 13 5X ITERATIONS 13X I10 5X NORM OF RESIDUAL 7 012 3 5 TIRES INITIAL RES D12 3 12 ITERATION I6 5X RES D12 3 12 ITERATION I6 5X CORR 12 3 12 5X ITERATIONS
56. above IBLOC I 4 Number of block matrix BFIRST L 4 TRUE means that the coefficient function is evaluated for the first time at the particular cubature point This can be used to save arithmetic operations for further calls of COEFF in particular in nonlinear problems COEFF returns the value of the coefficient at the given evaluation point X Y Z In case of nonlinear problems COEFF may use information about the current element the values of basis functions and its derivatives at the cubature point etc This information is available in the COMMON blocks ELEM CUB COAUX1 and COAUX2 Moreover when called with IA IB 1 the coefficient function has to set the values of BDER IDER if it needs information about the IDER th derivative of the basis functions Example This example models the non trivial case of a coefficient function that depends on given finite element basis function representation i e a function that is not given analytically but only as coefficient vector The according bilinear form arising in the context of finite element solution of Navier Stokes equations reads bu di u 10 U2dy bid with given data u u1 ua Of course the user has to provide the information on u In our example this is realized with COMMON COAUXN providing the location of the coefficient vectors on DWORK The function then is evaluated via a DBAS representation
57. asis functions of the test space and the trial space in this order which naturally may also coincide The coefficients for multiindices a and are given as EXTERNAL functions and of course are allowed to depend on the solution or its derivatives Matrices involving boundary integrals are not yet implemented in FEAT3D In the present version of FEAT3D matrices in the storage techniques 3 or 4 in the sym metric case 7 or 8 in the symmetric case and 9 general rectangular matrices are supported The routines of this group first calculate the pointer vectors see Section 1 4 and then assemble the global matrices of course using a loop over all elements In most applications the user will only need the X routines which also allocate the necessary arrays on the workspace vector Names of the subprograms The names of the programs which calculate the pointer vectors are of the form APs where P stands for pointer and s for the storage technique of the matrix On the basis of this pointer structure the routines ABvs assemble the entries of the global matrices where is used for hexahedral elements The character denotes the version v 0 for area integrals The final character is used to reference the storage technique for the matrix 22 3 1 FEAT3D Subprograms Group A 23 Subgroup AP Pointer vectors The programs AP3 AP7 and AP9 determine the pointer vectors for matrices in storage technique 3 7
58. by FEAT3D are contained in the file FEAT MSG The messages are divided in three groups Protocol messages of informative character PROT System messages e g messages about allocation deletion and resizing of arrays on DWORK SYS Error messages usually leading to termination of the program ERR Corresponding to the different groups the messages are sent to the output files connected with the actual unit numbers MPROT MSYS and MERR These files are opened and linked to the correct unit numbers by the system initialization routine ZINIT The user may decide not to split the information onto several files and overwrite the default values for the output units In addition the messages can appear on the screen The user can control the amout of output by choosing the values for the output levels M and MT in the COMMON block OUTPUT The level M refers to the output to file and MT refers to the output to the standard output device MTERM T he message file FEAT MSG contains two level numbers separately for each message The corresponding message is sent only if M resp MT are greater than or equal these values For example system messages are displayed on the screen only if MT is at least 3 but they are sent to MSYS already for M gt 1 Error messages are sent to MERR even for 0 In most cases it is sufficient to choose M MT 1 or even 0 16 General Concepts and Notation 2 Error handling If an internal err
59. call of XOWS 35 XORS XORS F Read subdivision in normalized form 42 XORSC ORSC F Read coarse grid information 42 XOWS XOWS F Write subdivision in normalized form 42 XMSB2 XMSB2 F Successive call of XSBOX 35 XMSCL XMSCL F Make Clean multiple triangulations 35 XSBO SBO F Adjust dimensions of DCORVG KVERT 44 XSBOX XSBOX F Generate regular hexahedral subdivisions 44 XSBCA SBCA F Determination of KADJ from coarse grid 44 XSBCB SBCB F Determination of KNPR from MOVIE BYU grid 44 XVBO Linear form hexahedra 48 ZVALUE ZVALUE F BLOCK DATA Initialization of COMMON blocks 50 B LIST OF FEAT2D SUBPROGRAMS USED IN FEAT3D Routine Filename Short description 1000 1000 F NOP Dummy subroutine IA013 IA01 F Jacobi method solver precision D D stor techn 3 14017 IAOL F Jacobi method solver precision D D stor techn 7 IA01A IAOL F Jacobi method solver precision D D stor techn A 1 023 02 Jacobi method solver precision S S stor techn IA027 IA02 F Jacobi method solver precision S S stor techn IA02A 02 Jacobi method solver precision S S stor techn IA033 03 Jacobi method solver precision S D stor techn IA037 IA03 F Jacobi method solver precision S D stor techn IA03A 03 Jacobi method solver precision S D stor techn IA113 IA11 F Jacobi method precond precision D D storage techn 3 IA117 IA11 F Jacobi method precond precision D D storage techn 7
60. conditioned CG method solver precision D D precond CG method solver prec D D storage techn precond CG method solver prec D D storage techn precond CG method solver prec D D storage techn precond CG method solver prec D D storage techn storage techn storage techn storage techn storage techn TS a Oo gt CON gt gt 00 lt gt 0 0l u u gt ON RW precond CG method solver prec D D storage techn preconditioned CG method solver single precision precond CG method solver prec S S storage techn 3 68 List of FEAT2D subprograms used in FEAT3D Routine Filename Short description 24 2 IE027 2 precond CG method solver prec precond CG method solver prec 28 2 precond CG method solver prec S S storage techn IEO2A IEO2 F precond CG method solver prec S S storage techn S S storage techn IE033 IE03 F precond CG method solver prec S D storage techn S S storage techn TE034 precond CG method solver prec S D storage techn IE037 precond CG method solver prec S D storage techn IE038 precond CG method solver prec S D storage techn IEO3A IEO3 F precond CG method solver prec S D sto
61. d of course only these files are stored Similarly XORS reads the information about dimensions allocates all necessary arrays on the workspace and reads the contents of the arrays from the I O file Again formatted or format free I O may be used Notice that XORS and XOWS do not rewind the file SUBROUTINE XORS MFILE CFILE IFMT SUBROUTINE XOWS MFILE CFILE IFMT 44 Description of the Subprograms Group S Generation of subdivisions The programs of this group are devoted to the generation and modification of subdivi sions In the present version of FEAT3D only few routines for mesh generation are available Meshes usually are constructed from coarse grids through regular or adaptive mesh refine ments Information about coarse meshes can be read from a data file using XORSC see Section 3 1 Alternatively meshes that are constructed from graphics programs such as MovIE BYU AVS can be used FEAT3D see Section 3 1 In many applications only the coordinates of the vertices the numbers of vertices forming each element and the information whether or not a vertex is situated on the boundary is needed For regular refinement this information is generated by the central routines SBO XSBO for hexahedral meshes For a detailed description of the following parameters see Section 1 3 Parameters Input DCORVG R 8 DIMENSION DCORVG 3 NVT Coordinates of vertices DCORMG R 8 DIMENSION DCORMG 3 NET Coordinates of midpoints
62. ded for the generation of the finite element stiffness matrices and right hand side vectors and for the implementation of boundary conditions The information on the subdivision is passed to subprograms by the following COMMON blocks the first TRIAD containing scalar information dimensions and the second TRIAA containing numbers of arrays describing the subdivision General Concepts and Notation Explanation a COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD Contents of TRIAD Dimensions NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD Total number of elements Total number of vertices Total number of edges NET is set to O if no information about edges is generated e g numbers and or coordinates Total number of faces NAT is set to O if no information about faces is generated e g numbers and or coordinates Number of vertices per element NVE is set to 8 for purely hexahedral meshes Number of edges per element NEE is set to 12 for purely hexahedral meshes Number of faces per element NAE is set to 6 for purely hexahedral meshes Maximum number of elements meeting at one vertex NVEL is set to O if this information is not available Maximum numbe
63. ditioning by scaling YIA11A 11 Jacobi method preconditioning by scaling YIA123 12 Jacobi method preconditioning by scaling YIA127 12 Jacobi method preconditioning by scaling YIA12A YIA12 F Jacobi method preconditioning by scaling YIA133 13 Jacobi method preconditioning by scaling YIA137 13 Jacobi method preconditioning by scaling List of FEAT2D subprograms used in FEAT3D 71 Routine YIA13A YID117 YID118 YID11A YID127 YID128 YID12A YID137 YID138 YID13A YLAX13 YLAX14 YLAX17 YLAX18 YLAX19 1 YLAX23 YLAX24 YLAX27 YLAX28 YLAX29 YLAX2A YLAX33 YLAX34 YLAX37 YLAX38 YLAX39 YLAX3A YLTX13 YLTX17 YLTX19 YLTX1A YLTX23 YLTX27 YLTX29 YLTX2A YLTX33 YLTX37 YLTX39 YLTX3A ZCLEAR ZCPY ZCTYPE Filename YIA13 F YID11 F YID11 F YID11 F YID12 F YID12 F YID12 F YID13 F YID13 F YID13 F YLAX1 F YLAX1 F YLAX1 F YLAXI F YLAXI F YLAXI F YLAX2 F YLAX2 F YLAX2 F YLAX2 F YLAX2 F YLAX2 F YLAX3 F YLAX3 F YLAX3 F YLAX3 F YLAX3 F YLAX3 F YLTX1 F YLTX1 F YLTX1 F YLTX1 F YLTX2 F YLTX2 F YLTX2 F YLTX2 F YLTX3 F YLTX3 F YLTX3 F YLTX3 F ZCLEAR F ZCPY F ZCTYPE F Short description Jacobi method preconditioning by scaling SSOR method preconditioning SSOR method preconditioning SSOR method preconditioning SSOR method preconditioning SSOR method preconditioning SSOR method preconditioning SSOR method preconditioning SSOR method
64. elsson Barker 1 and Schwarz 4 5 There are several main groups of subroutines in the system Generation of subdivisions of the domain Assembly of global matrices related to a bilinear form a i Assembly of right hand side vectors related to a linear form Implementation of standard boundary conditions Error analysis for test problems where the exact solution is known Preparation of data for graphical postprocessing Most FEAT3D subroutines can be used outside FEAT3D as well since the special memory management is separated from the working program units All informations or references to the program package FEAT2D in this manual relate to FEAT2D Release 1 3 see 3 1 GENERAL CONCEPTS AND NOTATION 1 1 Groups of subprograms The subprograms of FEAT3D are grouped with respect to their tasks The names of all programs in one group start with the same key letter Here we give a short overview of the different tasks Those groups of FEAT3D subroutines that are taken from FEAT2D unchanged are marked A Calculation of matrices corresponding to bilinear forms Support of several storage techniques and calculation of the corresponding pointer vectors B Unused C Cubature formulas Defined on reference elements or in barycentric coordinates D Reserved for finite difference applications E Element library F Unused G Normalized Input Output for use of graphics packages H Unused I FEAT2D
65. ers Input NUNIT I 4 Unit number CFILE C 15 File name NEL I 4 Total number of elements NVT I 4 Total number of vertices KVERT I 4 Number of vertices DCORVG R 8 Coordinates of the vertices NCOMP I 4 Number of components one possible component could be the velocity NLANG I 4 Number of subcomponents is set to 3 for the velocity in the 3D case COMLAB C 15 Label for each component UNILAB C 15 Unit for component e g m s for velocity LU R 8 Solution vector Output C File containing grid or function data in AVS format 3 1 FEAT2D Subprograms Group M 35 Group Multigrid components In this subsection we describe subprograms intended to speed up the solution procedure of the linear or nonlinear systems resulting from the discretization by multigrid techniques The reader is assumed to be familiar with the basic multigrid notation such as smoothing iterations prolongation restriction etc In the present release only subprograms to handle standard coarsening are contained Also only a driver for standard V W and F cycles is provided Drivers for nested iteration additional step length control nonlinear multigrid methods etc will be provided in the forthcoming release We not only give a description of the subprograms in group M but also the related X and Y routines as well as the multigrid related COMMON blocks Several additional Y routines have to be provided by the user for implementing a multigrid
66. grams In the present version only a routine for measuring CPU time is included SUBROUTINE ZTIME T The parameter T returns the system time since the last call of ZTIME At program start time synchronization is performed by ZINIT BIBLIOGRAPHY 1 Axelsson O Barker V A Finite Element Solution of Boundary Value Problems Academic Press 1984 2 Blum H Harig J M ller S FEAT2D Finite Element Analysis Tools User Manual Release 1 1 Univ Heidelberg 1990 3 Blum H Harig J M ller S Turek S FEAT2D Finite Element Analysis Tools User Manual Release 1 3 Univ Heidelberg 1992 4 Schwarz H R Methode der finiten Elemente Teubner Stuttgart 1984 5 Schwarz H R FORTRAN Programme zur Methode der finiten Elemente Teubner Stuttgart 1984 6 Stroud A H Approximate Calculation of Multiple Integrals Prentice Hall Engle wood Cliffs New Jersey 1971 MOVIE BYU User Manual January 1987 Edition Version 6 2 Engineering Com puter Graphics Laboratory Brigham Young University Provo Utah 8 AVS User Manual January 1994 Edition Version 5 Vistec Wiesbaden 63 A LIST OF FEAT3D SUBPROGRAMS Routine ABO3 ABO7 09 AP3 AP7 9 CB3H 010 E011 E011A E013 E013A E030 E030A E031 E031A GORSM GOWSM 011 MP311 MP330 MP331 MR311 MR330 MR331 NDFG NDFGL NDFL NGLS ORSC SBO SBA SBAEL SBCA SBCB Filename ABO3 F 9 AP3 F AP7 F
67. he error is displayed CALL ZTIME TIME2 WRITE MTERM POSTPROCESSING gt TIME2 TIME1 Write triangulation and solution vector vertices only to the disk in MOVIE BYU format CALL XGOWFM LU 69 DX MOV IF IER NE O GOTO 99999 CALL GOWSM 70 TRIA MOV IF IER NE O GOTO 99999 NWORK contains the total number of DOUBLE PRECISION elements of DWORK IWMAX is the maximum number of elements of DWORK used in the current program WRITE MTERM TEST1 NWORK NWORK WRITE MTERM 1 IWMAX IWMAX WRITE MTERM TEST1 IER IER WRITE MTERM TEST1 IN SUBROUTINE SUB END SUBROUTINE BDCD1 KVBD KNPR IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B DIMENSION KVBD KNPR COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD SAVE NVBD 0 DO 1 IVT 1 NVT IF KNPR IVT NE O THEN NVBD NVBD 1 KVBD NVBD IVT ENDIF CONTINUE 86 Sample Program END C C C SUBROUTINE BDCD2 DA KLD KVBD NVBD IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B DIMENSION DA KLD KVBD DO 3 IVT 1 NVBD IVBD KVBD IVT DA KLD IVBD 1DO DO 4 ICOL KLD IVBD 1 KLD IVBD 1 1 4 DA ICOL 0DO 3 CONTINUE C END SUBROUTINE BDCD3 DU DF KVBD NVBD U DCORVG IMPLICIT REAL 8 A C H 0 U W Z LOGICAL B DIMENSION DU DF KVBD DIMENSION DCORVG 3 EXTERNAL U DO 1 IVT 1 NVBD IVBD KVBD IVT PX DCORVG 1 I
68. he names of the subprograms are self explaining as XMxxxx means multiple call of Xxxxx The parameters KLA KLCOL etc contain the numbers of the arrays and the corresponding pointer vectors for all levels For all remaining parameters see section A and section V respectively Notice that the routines XMVxx usually are needed for nonlinear multigrid iterations and are provided in the current release for compatibility with future versions only see also the multigrid example in the Appendix SUBROUTINE 7 KLCOL KLLD KNA KNEQ ELE ISYMM NROW SUBROUTINE XMAP9 KLCOL KLLD KNA KNEQ ELE1 ELE2 SUBROUTINE KLA KLCOL KLLD KNA KNEQ NBLCA ICLR ELE COEFF BCON KAB KABN ICUB ISYMM ILINT BSNGL CARR SUBROUTINE XMABO9 KLA KLCOL KLLD KNA KNEQ NBLOC ICLEAR ELE1 ELE2 ELE3 COEFF BCON KABN ICUB ILINT BSNGL CARR Multilevel drivers The standard multigrid driver for the F V and W cycle is provided by the subprogram M011 The functionality of the control parameters e g the stopping criterion is kept compatible with that for the iterative solvers described in section I For the description of the parameters let NEQM denote the sum of all numbers of unknowns for the levels NLMIN through NLMAX SUBROUTINE 011 DX DB DD KOFFX KOFFB KOFFD KNEQ NIT ITE EPS EPSU EPSP DAX DPROL DREST DPRSM DPOSM DEX DBC DSTEP IREL RHOLMG Parameters Input DX R 8 DIMENSION DX
69. he only parameter is ICUB the number of the integration rule The number and position of the cubature points as well as the weights are returned in the corresponding arrays in COMMON CUB Parameters in COMMON blocks PARAMETER NNCUBP 36 COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP List of available subprograms SUBROUTINE CB3H ICUB Integration formulas for the reference cube 1 1 DXI ICUBP I I 1 2 3 ICUBP 1 NCUBP returns the position of the integration points in cartesian coordinates List of available cubature formulas ICUB NCUBP Degree Comment 1 1 1 Gaussian formula 2 6 1 Midpoints of areas 3 8 1 Trapezoidal rule 4 12 1 Midpoints of edges 5 4 2 Stroud formula 6 6 3 Stroud formula 7 8 3 Gaussian formula 8 14 5 Hammer amp Stroud formula 9 27 5 Gaussian formula 10 34 7 Sarma amp Stroud formula 32 Description of the Subprograms Group E Element library The routines of group E serve for evaluation of function values and or derivatives of the basis functions on the current element at a given point The name of the subprograms consists of the letter E followed by the number of the element 3 digits The names of the subprograms in use must be declared EXTERNAL by the user in the main program All information needed for the evaluation except possibly the evaluation point is passed to the element subprograms in the COMMON blocks ELEM and CUB The calculated values are re
70. ment COMMON MGPAR ILEV NLEV NLMIN NLMAX ICYCLE KPRSM NNLEV KPOSM NNLEV COMMON MGTRD KNEL NNLEV KNVT NNLEV NNLEV NNLEV KNVE NNLEV KNEE CNNLEV KNAE NNLEV KNVEL NNLEV KNEEL NNLEV KNVED NNLEV KNVARCNNLEV KNEAR NNLEV KNBCT NNLEV KNVBD NNLEV KNEBD NNLEV KNABD NNLEV COMMON MGTIME TTMG TTS TTE TTD TTP TTR IMTIME COMMON MGTRA KLCVG NNLEV KLCMG NNLEV KLCAG NNLEV KLVERT NNLEV KLEDGE NNLEV KLAREA NNLEV KLADJ NNLEV KLVEL NNLEV KLEEL NNLEV KLAEL NNLEV KLVED NNLEV KLAED NNLEV KLVAR NNLEV KLEAR NNLEV KLEVE NNLEV KLAVE NNLEV KLNPR NNLEV KLBCT NNLEV KLVBD NNLEV KLEBD NNLEV KLABD NNLEV Explanation The blank COMMON contains workspace information and is described in detail in the FEAT2D manual TRIAA contains the numbers of all arrays describing the current triangulation TRIAD contains all information about dimensions of the current triangulation For more details see Section 1 3 OUTPUT contains information on output level and I O units see Section 1 5 ERRCTL The variable IER contains the current error indicator ICHECK is used to control consistency checks and tracing of the subprograms see Section 1 5 CHAR contains common quantities of type CHARACTER SUB is the name of the last routine called used for error tracing FMT co
71. n Shorten or delete vector on workspace Calculate free space on workspace General initialization Return length of vector on workspace Return length of vector on workspace in double words Allocate vector on workspace Return system time since last call Return data type of vector on workspace C LIST OF COMMON BLOCKS IMPLICIT DOUBLE PRECISION 0 0 2 LOGICAL CHARACTER SUB 6 FMT 15 CPARAM 120 PARAMETER NNARR 299 NNAB 21 NNDER 10 PARAMETER NNBAS 27 NNCUBP 36 NNVE 8 NNDIM 3 COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON COMMON OUTPUT ERRCTL CHAR TRIAA TRIAD ELEM CUB COAUX1 COAUX2 TABLE NWORK IWORK IWMAX L NNARR DWORK 1 M MT MKEYB MTERM MPROT MSYS MTRC IRECL8 IER ICHECK SUB FMT 3 CPARAM LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD DX NNVE DY CNNVE DZ NNVE DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVECNNVE NDIM DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP KDFG NNBAS NNBAS IDFL DBAS1 NNDIM NNBAS NNDER 3 KDFG1 NNBAS 3 KDFL1 NNBAS 3 IDFL1 3 BDER1 NNDER 3 KTYPE NNARR K
72. nd similarly products using the transposed matrix Routines corresponding to storage techniques 3 and 4 make use of the BLAS routines DAXPY SAXPY which allow for vectorization 1 Vector operations Names of the subprograms The names of the programs in this subgroup have the form Lttn Here the two characters tt characterize the task For example LC stands for linear combination n stands for the data type of the arguments namely 1 DOUBLE PRECISION 2 REAL 3 INTEGER The name of the program is preceded by the letter X if only the numbers handles of the vectors are given as parameters Clearing a vector fill with zeroes SUBROUTINE XLCL1 LX NX SUBROUTINE LCL1 DX NX SUBROUTINE XLCL2 LX NX SUBROUTINE LCL2 VX NX SUBROUTINE XLCL3 LX NX SUBROUTINE LCL3 KX NX Copy of a vector SUBROUTINE XLCP1 LX LY NX SUBROUTINE LCP1 DX DY NX SUBROUTINE XLCP2 LX LY NX SUBROUTINE LCP2 VX VY NX SUBROUTINE XLCP3 LX LY NX SUBROUTINE LCP3 KX KY NX 54 Description of the Subprograms 12 of a vector SUBROUTINE XLL21 LX NX XNORM SUBROUTINE LL21 DX NX XNORM SUBROUTINE XLL22 LX NX XNORM SUBROUTINE LL22 VX NX XNORM Linear combination of two vectors SUBROUTINE XLLC1 LX LY NX A1 A2 SUBROUTINE LLC1 DX DY NX A1 A2 SUBROUTINE XLLC2 LX LY NX A1 A2 SUBROUTINE LLC2 VX VY NX A1 A2 Maximum norm of a vector SUBROUTINE XLLI1 LX NX XNORM IND SUBROUTINE LLI1 DX NX XNORM IND SUBROUTINE XLLI2 LX NX XNORM
73. ntains formats for normalized output of arrays and subdivisions routines XORA and XOWA and CPARAM is used to pass parameters to the message routines OMSG and OERR Note Only quantities in the COMMON blocks OUTPUT ERRCTL or CHAR should be changed in user provided programs ELEM contains information of the geometry of the current element and other information needed for the evaluation of the finite element basis functions group E The cartesian coordinates of the vertices of the element in process IEL are contained in DX DY and DZ DJAC denotes the Jacobian of transformation to the reference element and DETJ its determinant at the evaluation point BDER I TRUE means that the derivative I has to be calculated KVE contains the numbers of the vertices used for determination of the direction of normal vectors on interelement boundaries ICUBP is the number of current 2 5 SAVE statement 21 cubature point and DBAS contains the values of the basis functions and derivatives CUB contains information about rules for numerical cubature or quadrature The carte sian coordinates of the integration points on the reference element 1 1 3 are available in DXI DOMEGA contains the corresponding weights and NCUBP denotes the total number of cubature points All these values are determined in the subroutines of the group C and are needed for assembling finite element matrices and vectors These latter routines groups A and V also se
74. o be prescribed DO 10 ILEV NLMIN NLMAX LA 1 KLA 1 ILEV NA KNA ILEV LCOLA KLCOLA ILEV LLDA KLLDA ILEV LNPR KLNPR ILEV LCORVG KLCVG ILEV NEQ KNEQ ILEV NVT KNVT ILEV LVBD 0 CALL ZNEW NVT 3 LVBD KVBD 2 IF IER NE O GOTO 99999 Q CALL BDCD1 KWORK L LVBD KWORK CLNPR CALL ZDISP NVBD LVBD KVBD IF IER NE O GOTO 99999 User provided program for implementation of boundary conditions Adjust matrix rows Q OQ OQ CALL BDCD2 DWORK L LA 1 KWORK L LLDA KWORK L LVBD NVBD Elements with modulus smaller than 1D 15 are considered as zero and are deleted from matrix LA 1 i e DA The pointer vector LCOLA i e the vector KCOLA is changed correspondingly Q OQ OQ O Oo CALL XRC17 LA 1 LCOLA LLDA NA NEQ NBLCA 1D 15 1 DA KCOLA IF IER NE O GOTO 99999 Q User provided program for implementation of boundary conditions CALL BDCD3 DWORK L LU 1 DWORK L LF 1 KWORK L LVBD NVBD U DWORK L LCORVG IF IER NE O GOTO 99999 84 Sample Program 10 CONTINUE C C Parameters for mg solution algorithm are read from data file C NIT maximum number of iterations EPS desired accuracy C OMEGA preconditioning parameter C The total CPU time for the preparation of the linear system is C displayed CALL ZTIME TIME2 WRITE MTERM TEST1 TIME PREPERATION TIME2 TIME1 C C C RBNORM is set to the L2 n
75. ock vectors for X routines only NEQ I 4 Dimension of each block vector NBLOC 4 Number of block vectors ICLEAR I 4 1 Old entries are set to zero 0 New elements are added to old ones KOFF Ix4 DIMENSION KOFF NBLOC Offsets of starting address of vector block IBLOC relative to starting ad dress of first block I 4 DIMENSION KVERT NNVE NEL Numbers of vertices of elements I 4 DIMENSION KEDGE NNEE NEL Numbers of edges of elements if necessary KAREA I 4 DIMENSION NEL Numbers of faces of elements if necessary DCORVG R 8 DIMENSION DCORVG 3 NVT Coordinates of vertices KNPR I 4 DIMENSION KNPR NVT Nodal properties see Section 1 3 COEFF FUN Coefficient function as described above BCON L 4 DIMENSION BCON NBLOC BCON IBLOC EQ TRUE means that block IBLOC has constant coeff cients 3 1 FEAT3D Subprograms Group V 49 COECON I 4 DIMENSION COECON NNDER NBLOC Auxiliary array for constant coefficients KB I 4 DIMENSION KB NNAB NBLOC Abbreviations of partial derivatives applied to basis functions KBN I 4 DIMENSION KBN NBLOC Numbers of additive terms in each linear form ICUB I 4 Number of cubature formula see group C ILINT 154 0 Full trilinear transformation to reference element necessary 1 Only linear transformation needed 2 Axiparallel grid BSNGL B 4 TRUE Change vector type to SINGLE PRECISION ARR C 6 DIMENSION ARR NBLOC Names of block vectors for messages only Out
76. of FEAT3D LCORAG is used only in connection with the elements E030 and E031 see Section 3 1 DIMENSION KVERT NNVE NEL Array containing the numbers of vertices for each element DIMENSION KEDGE NNEE NEL Array containing the numbers of midpoints of edges for each element the midpoints are given numbers ranging from NVT 1 to NVT NET KEDGE and NET are generated by subroutine SBE DIMENSION KAREA NNAE NEL Array containing the numbers of midpoints of faces for each element the midpoints are given numbers ranging from NVT NET 1 to NVT NET NAT KAREA and NAT are generated by subroutine SBA DIMENSION KADJ NNAE NEL Array containing the numbers of the neighboring elements for each ele ment of the subdivision The array KADJ is needed for the generation of subdivisions and e g for the implementation of routines for multigrid prolongation and restriction DIMENSION KVEL NVEL NVT Array containing the numbers of the elements meeting at a vertex Re member that NVEL is the maximum number of elements meeting at one of the vertices If the number of elements at a vertex IVT is smaller than NVEL in particular at the boundary the remaining entries of KVEL are filled with 0 KVEL and NVEL are generated by subroutine SBVEL DIMENSION KEEL NEEL NET Array containing the numbers of the elements meeting at an edge Re member that NEEL is the maximum number of elements meeting at one of the edges KEEL and NEEL are generated by subroutine SBEEL
77. or occurs in a FEAT3D subprogram the error routine WERR is invoked WERR calls the subprogram OERR for error messages and sets the error indicator in the COMMON block ERRCTL to the negative number of the error If any FEAT3D routine returns a negative error indicator one should immediately stop the program In some programs IER may also be set to some positive value For example the value IER 1 in an iterative solution algorithm indicates that the desired accuracy has not been achieved In this case the user may decide to continue the program Before it starts working each subprogram overwrites the variable SUB in the COMMON block CHAR by its own name SUB nnnnnn Therefore the user can decide in which subprogram the error occured even if no messages have been displayed For the next release of FEAT3D it is planned to improve the error handling For example it will be possible to dump the names and size of all arrays on the workspace at the moment when the error occured 3 Subprogram tracing and consistency checks The second parameter ICHECK in the error control block ERRCTL is used to decide which levels of checks are performed during the program For ICHECK 1 only elementary consis tency checks take place For example the data type of arrays passed to a subprogram is checked or the area of each element is controlled during the calculation of a finite element matrix Moreover ICHECK controls the optional tracing of the FEAT3D
78. orm of the right hand side CALL XLL21 LF 1 KNEQ NLMAX RBNORM EPS is normalized by the norm of the right hand side rel accuracy EPS EPS RBNORM C DO 500 ILEV NLMIN NLMAX KPRSM ILEV NPRSM KPOSM ILEV NPOSM DOMPOS ILEV OMPOS DOMPRS ILEV OMPRS KIPOSM ILEV IPOSM KIPRSM ILEV IPRSM 500 CONTINUE C IMTIME 1 CALL XMO17 KLA KLCOLA KLLDA LU LF 1 KNEQ NIT ITE EPS 17 YPROL YREST YPRSM YPOSM YMBCO1 IDISP C C WRITE MTERM ANZAHL DER UNBEKANNTEN NVT IF IER NE O GOTO 99999 WRITE TTMG TTS TTE TTD TTP TTR WRITE TTMG TTS TTE TTD TTP TTR C C The cpu time for the solution is displayed C CALL ZTIME TIME2 WRITE MTERM 1 TIME SOLVER TIME2 TIME1 C C A user provided subprogram is called to calculate the 12 and C hi error The error is integrated with cubature formula ICUB C CALL ZTIME TIME1 C C CALL PQL2U DWORK L LU 1 KWORK L LVERT KWORK LCLEDGE KWORK L CLAREA DWORK L LCORVG EO11 ICUBP ILINT U UX UY UZ IF 0 GOTO 99999 Sample Program 85 Q OQ OQ O OQ 66060 Q Q Q OQ OQ O OQ OQ OQ 99999 The solution vector is written to file CFILE unit IFILE XOWA uses the standard FORMAT contained in FMT 1 for DOUBLE PRECISION vectors The CPU time for the calculation of t
79. ose subroutine system for the numerical solution of partial differential equations by the finite element method As an extension to the 2 D finite element program package FEAT2D see Blum Harig M ller Turek 2 3 the subroutines of FEAT3D are designed to handle problems in three space dimensions The collection of subroutines in FEAT3D covers only those tasks in 3 D applications that cannot be treated with FEAT2D Pseudodynamic memory management as explained in the FEAT2D manual and the linear algebra part of finite element applications for example are taken from the FEAT2D program package This manual comments in detail on the new 3 D routines and lists again some main FEAT2D routines that are essential to build up a 3 D finite element application A sample program listed at the end of the manual demonstrates the structure of a typical finite element application This example can be used as starting program which can be modified for the actual application FEATSD is not a user oriented system it only provides subroutines for several main steps in a finite element program The user should be familiar with the mathematical formu lation of the discrete problems The data structure of FEAT3D is transparent so that modifications or augmentations of the program package are very easy for instance the implementation of new basis functions For details in the design and data structures of finite element codes the reader is referred to the books of Ax
80. out the number of levels ILEV NLEV NLMIN and NLMAX ICYCLE denotes the type of multigrid cycle V W or F cycle are possible and KPOSM resp KPRSM contain the information about the number of and postsmoothing steps MGTRA and MGTRD are the multigrid equivalents of the COMMON blocks TRIAA and TRIAD MGTIME saves the information about the used time for the different multigrid compo nents 2 5 SAVE statement At least the names of all COMMON blocks occuring in a program unit must be saved The same holds true for local variables which shall keep their value until the next call of the routine Example SAVE TRIAA TRIAD OUTPUT ERRCTL CHAR 3 DESCRIPTION OF THE SUBPROGRAMS In the following sections we shall describe in detail the parameter lists and the tasks of most of the subprograms of FEAT3D and some essential FEAT2D routines Concerning the important group of routines with starting letters Y and Z and most of the routines with starting letters X we refer to the user manual of FEAT2D Here only some major points are listed in Section 3 2 3 1 FEAT3D Subprograms Group A Bilinear forms and matrices The subprograms of group A are used to calculate the pointer structure and the entries of global finite element matrices for a given triangulation and for a particular choice of elements The entries aj of the matrices are of the form 04 Less dz a and v denote the b
81. put DB R 8 DIMENSION DB NEQ Resulting block vector DOUBLE PRECISION VB R 4 DIMENSION Resulting block vector REAL Parameters in COMMON blocks PARAMETER NNCUBP 36 COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP Exchange of information with COEFF PARAMETER NNBAS 27 NNDER 10 NNDIM 3 COMMON COAUX1 KDFG NNBAS KDFL NNBAS IDFL COMMON COAUX2 DBAS1 NNDIM NNBAS NNDER 3 KDFG1 NNBAS 3 KDFL1 NNBAS 3 IDFL1 3 BDER1 NNDER 3 List of available subprograms SUBROUTINE XVBO LB NEQ NBLOC ICLEAR ELE COEFF BCON KB KBN ICUB ILINT BSNGL ARR SUBROUTINE VBO DB NBLOC KOFF KVERT KEDGE KAREA DCORVG COEFF BCON KB KBN ICUB ILINT 50 Description of the Subprograms Group Z Handling of the pseudo dynamic memory management The BLOCK DATA subprogram The following BLOCK DATA subprogram ZVALUE initializes the most important named COMMON blocks For a complete list of all COMMON blocks see Appendix C In particu lar the following DATA statements initialize the blocks OUTPUT and ERRCTL BLOCK DATA ZVALUE IMPLICIT DOUBLE PRECISION 0 0 2 LOGICAL PARAMETER NNARR 299 CHARACTE
82. r forms to be evaluated for all basis functions there is passed the number of additive terms in the array KABN NBLOC and an abbreviation for the par tial derivatives applied to the test and trial functions in the array KAB 2 NNAB NBLOC Consider for example the bilinear form 9 4 9 0 4 9 9 9 6 0 0 0 0 8 0 0 0 BsbiOed de Here Bj are some coefficients The correponding value for the array is 6 since six additive terms form the integrand For the multiindices denoting the partial derivatives in the array KAB 2 NNAB NBLOC we choose the abbreviations Comment Function value First x derivative First y derivative First z derivative Second z derivative Mixed xy derivative Mixed zz derivative Second y derivative Mixed yz derivative Second z derivative O gt G 26 Description of the Subprograms Therefore the array KAB 2 NNAB NBLOC must contain the values Bw gt gt wm for the six terms in the above example Notice that the first number denotes the derivative applied to the test function Coefficients For the evaluation of the coefficients an EXTERNAL function COEFF is passed as a parameter DOUBLE PRECISION FUNCTION COEFF X Y Z IA IB IBLOC BFIRST Parameters Input X Y Z R 8 Coordinates of evaluation point IA IB I 4 Abbreviation for partial derivatives applied to test and trial functions see
83. r of elements meeting at one edge NEEL is set to O if this information is not available Maximum number of edges meeting at one vertex NVED is set to O if this information is not available Maximum number of faces meeting at one vertex NVAR is set to O if this information is not available Maximum number of faces meeting at one edge NEAR is set to O if this information is not available Total number of boundary components Total number of vertices on the boundary sum over all boundary compo nents Total number of edges on the boundary sum over all boundary compo nents Total number of faces on the boundary sum over all boundary compo nents Contents of TRIAA Array descriptors We give a list of the array descriptors and the corresponding arrays together with their effective dimension 1 3 Description of the subdivision 7 LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR DIMENSION DCORVG 3 NVT Array containing the cartesian coordinates of the vertices DCORVG 1 IVT X coordinate of vertex IVT DCORVG 2 IVT Y coordinate of vertex IVT DCORVG 3 IVT Z coordinate of vertex IVT DIMENSION DCORMG 3 NET Array containing the cartesian coordinates of the midpoints of edges In the present version of FEAT3D LCORMG is set to 0 DIMENSION DCORAG 3 NAT Array containing the cartesian coordinates of the midpoints of faces In the present version
84. r of rows Matrix rows with the same elements at the same position with respect to the main diagonal are only stored once typi cal for finite difference matrices constant coefficients NOP denotes the number of rows stored in DA DA contains the entries in each row the diagonal entry is stored first KCOL contains the distance of an el ement to the diagonal KLD points to the start of a new row KOP IEQ contains the number of the row in DA which forms the row IEQ of the real matrix As an example for the different techniques above the matrix elements and pointer vectors of the following symmetric sparse and banded 4 x 4 matrix A in DOUBLE PRECISION are presented oa oa wo 1 4 Storage techniques for matrices 13 Technique 1 Technique 2 Technique 3 Technique 4 DA 100 200 ODO 200 400 300 ODO ODO 600 500 ODO 500 800 Pointer vectors not needed DA 100 200 4D0 ODO 600 ODO 500 800 Pointer vectors not needed DA 100 400 600 800 200 500 200 500 KDIA 0 3 1 1 3 KDIAS 1 5 6 9 12 18 NDIA 5 NA 12 DA 100 400 6DO 800 200 5 0 KDIA 0 1 8 KDIAS 1 5 8 9 NDIA 3 NA 8 Technique 5 and 6 not yet available Technique 7 Technique 8 DA 100 200 400 200 600 500 800 500 KCOL 1 2 4 2 1 3 3 2 4 4 1 3 KLD 1 4 7 10 13 NA 12 Underlined numbers
85. rage techn IF117 IF11 F ILU decomp precond precision D D storage techn 7 IF127 IF21 F ILU decomp precond precision S S storage techn 7 IF137 IF31 F ILU decomp precond precision S D storage techn 7 gt gt 00 gt ge 00 o IFD17 IFD1 F Calculate ILU decomp precision D storage techn 7 IFD27 2 Calculate ILU decomp precision S storage techn LAX13 LAX1 F Matrix vector mult precision D D LAX14 LAX1 F Matrix vector mult precision D D LAX17 Matrix vector mult precision D D LAX18 LAX1 F Matrix vector mult precision D D LAX19 LAX1 F Matrix vector mult precision D D LAX1A LAX1 F Matrix vector mult precision D D 7 storage techn 3 storage techn 4 storage techn 7 storage techn 8 storage techn 9 A N a storage techn LAX23 LAX2 F Matrix vector mult precision S S storage techn LAX24 LAX2 F Matrix vector mult precision S S storage techn 4 LAX27 LAX2 F Matrix vector mult precision S S storage techn 7 LAX28 LAX2 F Matrix vector mult precision S S storage techn 8 LAX29 LAX2 F Matrix vector mult precision S S storage techn 9 LAX2A LAX2 F Matrix vector mult precision S S storage techn A LAX33 LAX3 F Matrix vector mult precision S D LAX34 LAX3 F Matrix vector mult precision S D LAX37 LAX3 F Matrix vector mult precision S D LAX38 LAX3 F Matrix vector mult p
86. rage techn 7 SOR method solver precision S S storage techn A SOR method solver precision S D storage techn 7 SOR method solver precision S D storage techn A SOR method smooth precision D D storage techn 7 SOR method smooth precision D D storage techn A SOR method smooth precision S S storage techn 7 SOR method smooth precision S S storage techn A SOR method smooth precision S D storage techn 7 SOR method smooth precision S D storage techn A SSOR method precond precision D D storage techn 7 SSOR method precond precision D D storage techn 8 SSOR method precond precision D D storage techn A SSOR method precond precision S S storage techn SSOR method precond precision S S storage techn N NN SSOR method precision S S storage techn SSOR method precond precision S D SSOR method precond precision S D SSOR method precond precision S D SSOR method smooth precision D D SSOR method smooth precision D D storage techn SSOR method smooth precision D D storage techn SSOR method smooth precision S S storage techn SSOR method smooth precision S S storage techn SSOR method smooth precision S S storage techn SSOR method smooth precision S D storage techn SSOR method smooth precision S D storage techn SSOR method smooth precision S D storage techn pre
87. rds contain the elements of the array FORMAT free Parameters Input MFILE 4 Number of I O unit CFILE C Name of I O file For CFILE EQ SCRATCH an unnamed scratch file is used IFMT I 4 1 Formatted I O 0 Unformatted I O ARR C 6 Name of array read from or written to unit MFILE Output LNR I 4 Number of array for X routines ARR C 6 Name of array for messages only DX R 8 VX R 4 Arrays to be read from or written to unit MFILE KX I 4 CFILE C Name of I O file IFMT 1 4 1 Formatted I O List of available subprograms Open I O file SUBROUTINE OFO MFILE CFILE IFMT Read array from file SUBROUTINE XORA LNR ARR MFILE CFILE IFMT SUBROUTINE ORA1 DX ARR MFILE IFMT SUBROUTINE ORA2 VX ARR MFILE IFMT SUBROUTINE ORA3 KX ARR MFILE IFMT Write array onto file SUBROUTINE XOWA LNR ARR MFILE CFILE IFMT SUBROUTINE OWA1 DX ARR MFILE IFMT SUBROUTINE OWA2 VX ARR MFILE IFMT SUBROUTINE OWA3 KX ARR MFILE IFMT Notice that no routines of this subgroup rewind the I O file 3 2 FEAT2D Subprograms Group R 59 Group R Reorganization The subprograms of group R are intended to rearrange a given data structure For example the storage technique may be changed or the vertices of a subvision may be ordered with respect to certain criteria A particular application is the compression deletion of zero entries of matrices after the implementation of boundary conditions Subgroup RC compression of matrices
88. recision S D LAX39 LAX3 F Matrix vector mult precision S D LAX3A LAX3 F Matrix vector mult precision S D LCL1 LCL1 F Clear vector double precision LCL2 LCL2 F Clear vector single precision LCL3 LCL3 F Clear vector integer LCP1 F vector double precision LCP2 LCP2 F Copy vector single precision LCP3 LCP3 F Copy vector integer LL21 LL21 F norm of vector double precision LL22 LL22 F norm of vector single precision LLC1 LLC1 F Linear combination of two vectors double precision LLC2 LLC2 F Linear combination of two vectors single precision LLI F Maximum norm of vector double precision Storage techn Storage techn Storage techn Storage techn Storage techn Storage techn We V YY wa gt List of FEAT2D subprograms used in FEAT3D 69 Routine Filename Short description LLI2 LLI2 F Maximum norm of vector single precision LSC1 LSC1 F Scaling of vector double precision LSC2 LSC2 F Scaling of vector single precision LSP1 LSP1 F Scalar product of two vectors double precision LSP2 LSP2 F Scalar product of two vectors single precision LTX13 LTX1 F Transp matrix vector mult precision D D storage techn LTX17 Transp matrix vector mult precision D D storage techn 7 LTX19 Transp matrix vector mult precision D D storage techn 9 LTX1A LTXL Transp matrix vector mult precision D D storage techn A LTX23 LTX2
89. ric characters According to the standard FORTRAN convention names starting with characters I N are of type INTEGER All other starting letters except V and B implicitly denote DOUBLE PRECISION quantities Variables starting with one of the following letters have a specialized meaning N Number of Global or local constants or effective dimension of arrays NN Maximum dimension of arrays usually defined in PARAMETER statements K INTEGER arrays usually of problem dependent dimension mainly used as pointer vectors for description of triangulations etc I Local variables and subscripts of arrays frequently used as DO loop variables L Array descriptors in pseudodynamic memory management M Input Output parameters unit numbers J Left for free use as auxiliary variables V Single precision array D Double precision array B Logical boolean variables and arrays Example Array name DAUX DOUBLE PRECISION or KAUX INTEGER Maximum dimension NNAUX Effective dimension NAUX Reference to a single element IAUX JAUX may be used in inner DO loops 1 3 Description of the subdivision In the current version of FEAT3D only regular subdivisions of three dimensional domains in hexahedral elements are supported Here and throughout this manual with hexahedral elements we denote elements with 6 faces and 8 nodes cubes bricks etc The variables and arrays described in this section contain all the information nee
90. ric on a vector columnwise 3 Sparse band matrix DA NEQ NDIA Elements of NDIA nonzero subdiagonals KDIA NDIA are stored onto a matrix each subdi KDIAS NDIA 1 agonal is stored with length NEQ KDIA NDIA contains the distance to the main diag onal the main diagonal is stored first KDIA 1 0 followed by the lower tri angular part KDIAC 0 12 General Concepts and Notation Sparse band matrix symmetric Skyline technique Skyline technique symmetric Compact storage Standard technique DA NEQ NDIA 1 2 Same as technique 3 but only upper tri KDIA NDIA KDIAS NDIA 1 NDIA DA NA DA NA DA NA KCOL NA for quadratic matrices KLD NEQ 1 Compact storage symmetric Compact storage sparse rectangular matrix Operator technique Example DA NA KCOL NA KLD NEQ 1 DA NA KCOL NA KLD NEQ 1 DA NA KCOL KLD NOP 1 KOP NEQ angular part is stored The nonzero elements of the matrix are stored row by row on the vector DA For each row the diagonal entry is stored first KCOL contains the column index for each element in DA KLD IEQ contains the position of the IEQ th diagonal ele ment i e KLD points to the start of row IEQ in DA KLD NEQ 1 NA 1 Same as technique 7 Only upper triangular matrix stored For each row the diagonal entry is stored first Same as technique 7 but diagonal en try is not stored first for each row NEQ denotes numbe
91. rices storage techn 3 single precision RC27 RC27 F Compress block matrices storage techn 7 single precision RC29 RC29 F Compress block matrices storage techn 9 single precision WERR WERR F Basic error handling ie XICO17 XICO1 F SOR method solver storage techn 7 1 XICOI F SOR method solver storage techn A XIC027 XICO2 F SOR method solver storage techn 7 XICO2A XICO2 F SOR method solver storage techn A XIEO13 XIEO1 F CG method solver storage techn 3 XIE014 XIEO1 F CG method solver storage techn 4 XIEO17 M XIEO1 F CG method solver storage techn 7 XIEO18 XIEO1 F CG method solver storage techn 8 1 XIEOI F CG method solver storage techn XIE023 XIEO2 F CG method solver storage techn 3 XIE024 XIEO2 F CG method solver storage techn 4 XIE027 2 CG method solver storage techn 7 XIE028 2 CG method solver storage techn 8 XIE02A XIEO2 F CG method solver storage techn XIE033 CG method solver storage techn 3 XIE034 XIEO3 F CG method solver storage techn 4 XIE037 XIEO3 F CG method solver storage techn 7 038 XIEO3 F CG method solver storage techn 8 XIEO3A XIEOS3 F CG method solver storage techn XORA F Read array normalized XOWA XOWA F Write array normalized YIA113 YIA11 F Jacobi method preconditioning by scaling YIA117 11 Jacobi method precon
92. riting R for reading Further the program is used to open an I O file either directly by the user or implicitly by the programs XORA and The O routines assume that the I O file is already open The files may either be written FORMATTED or UNFORMATTED depending on the parameter IFMT For formatted writing the current FORMAT in FMT t is used for input the FORMAT stored on the input file is used The array FMT of type CHARACTER is contained in COMMON CHAR An array is written to or read from a file in the following form 1 Formatted I O Record 1 ARR CFORM ITYPE ILEN written in FORMAT 2410 2110 where ARR is the array name see above CFORM 18 the FORMAT for the subsequent data ITYPE 1 2 or 3 is the data type and ILEN is the number of elements of array ARR The following records contain the elements of the array in FORMAT CFORM 2 Unformatted I O Record 1 ARR ITYPE ILEN ILENS IRECL8 written FORMAT free where ARR is the array name see above ITYPE 1 2 or 3 is the data type ILEN is the number of elements of array ARR and ILEN8 is the number of DOUBLE PRECISION storage locations needed for array ARR The maximum record length is determined by the value IRECL8 in COMMON OUTPUT which is set during initialization to a machine dependent value IRECL8 512 by default 58 Description of the Subprograms With this information arrays can be read in exactly as they were written The following reco
93. s for the test and trial space in this order storage technique 9 Additional element eventually needed for nonlinear problems in COEFF Coefficient function as described above DIMENSION BCON NBLOC BCON IBLOC EQ TRUE means that block IBLOC has constant coeff cients DIMENSION COECON NNDER NNDER NBLOC Auxiliary vector for the constant coefficient case DIMENSION KAB 2 NNAB NBLOC Abbreviations of partial derivatives applied to basis functions DIMENSION KABN NBLOC Numbers of additive terms in each bilinear form Number of cubature formula see group C 3 1 FEAT3D Subprograms Group A 29 ISYMM 1 4 0 No symmetry assumed full matrix calculated 1 Only upper triangular part calculated 2 Symmetry assumed but full matrix calculated lower triangular part obtained by reflection ILINT 154 0 Full trilinear transformation to reference element necessary 1 Only linear transformation needed 2 Axiparallel grid BSNGL B 4 TRUE Change matrix type to SINGLE PRECISION ARR C 6 DIMENSION ARR NBLOC Names of block matrices for messages only Output DA R 8 DIMENSION DA NA Resulting block matrix DOUBLE PRECISION VA R 4 DIMENSION VA NA Resulting block matrix REAL Parameters in COMMON blocks PARAMETER NNCUBP 36 COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAV
94. sed for inter nal communication of the FEAT3D routines Not all of the blocks are defined in each subprogram In particular the block TABLE containing the essential information about the workspace is only known to the subroutines of the group Z described in Section 3 2 It should never be defined in user subprograms List of COMMON blocks IMPLICIT DOUBLE PRECISION 0 0 2 LOGICAL CHARACTER SUB 6 FMT 15 CPARAM 120 PARAMETER NNARR 299 NNAB 21 NNDER 10 PARAMETER NNBAS 27 NNCUBP 36 NNVE 8 NNDIM 3 COMMON NWORK IWORK IWMAX L NNARR DWORK 1 COMMON OUTPUT M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 COMMON ERRCTL IER ICHECK COMMON CHAR SUB FMT 3 CPARAM COMMON TRIAA LCORVG LCORMG LCORAG LVERT LEDGE LAREA LADJ LVEL LEEL LAEL LVED LAED LVAR LEAR LEVE LAVE LNPR LBCT LVBD LEBD LABD COMMON TRIAD NEL NVT NET NAT NVE NEE NAE NVEL NEEL NVED NVAR NEAR NBCT NVBD NEBD NABD COMMON ELEM DX NNVE NNVE DZ NNVE DJAC 3 3 DETJ DBAS NNDIM NNBAS NNDER BDER NNDER KVECNNVE IEL NDIM COMMON CUB DXI NNCUBP 3 DOMEGA NNCUBP NCUBP ICUBP COMMON COAUX1 KDFG NNBAS KDFL NNBAS IDFL COMMON COAUX2 DBAS1 NNDIM NNBAS NNDER 3 KDFG1 NNBAS 3 20 Common Program Segments KDFL1 NNBAS 3 IDFL1 3 BDER1 NNDER 3 COMMON TABLE KTYPE NNARR KLEN NNARR KLEN8 NNARR FLAG C COMMON blocks for multigrid data manage
95. ssages Parameters Input IER I 4 Number of error message routine OERR IMSG 144 Number of protocol message routine OMSG SUB Name of calling routine VER C 8 Date of version of calling routine mm dd yy routine OTRC SUBROUTINE OERR IER SUB Invoked by WERR to write error messages to unit MERR Formats for messages are contained in the message file FEAT MSG parameters are passed in CPARAM in COMMON block CHAR SUBROUTINE OMSGCIMSG SUB Used to display protocol or system messages on unit MPRT and MSYS respectively Formats for messages are contained in the message file FEAT MSG parameters are passed in CPARAM in COMMON block CHAR SUBROUTINE OTRC SUB VER Writes the name and the date of the version of subprograms to unit MTRC Tracing occurs only if ICHECK in COMMON block ERRCTL is set to the values 997 998 or 999 For ICHECK 999 even elementary auxiliary subroutines are traced for ICHECK 997 only higher level subprograms Subgroup 2 Input Output of arrays This subgroup is used to save or read single arrays of different data types 3 2 FEAT2D Subprograms Group 0 57 Names of the subprograms The subprogram names are of the form X0aA for routines performing I O for arrays on the workspace and OaAt for programs that directly obtain the address of the array as input Here t denotes the data type 1 DOUBLE PRECISION 2 REAL 3 INTEGER and a stands for the desired action W for w
96. storage techn 7 1 03 G S method solver precision S D storage techn A IB217 IB21 F G S method smooth precision D D storage techn 7 X cp CE V PIO gt 2274 9 66 List of FEAT2D subprograms used in FEAT3D 67 Routine IB21A 227 IB22A 237 IB23A IC017 ICO1A IC027 IC02A IC037 IC03A IC217 IC21A IC 227 IC22A 10237 1023 A ID117 ID118 ID11A ID127 ID128 ID12A ID137 ID138 ID13A ID217 ID218 ID21A ID227 ID228 ID22A ID237 ID238 ID23A 10 13 14 017 IE018 IEO1A TE020 TE023 Filename IB21 F 22 22 IB23 F IB23 F IC01 F IC01 F IC02 F IC02 F IC03 F IC03 F IC21 F IC21 F IC22 F IC22 F IC23 F IC23 F ID11 F ID11 F ID11 F ID12 F ID12 F ID12 F ID13 F ID13 F ID13 F ID21 F ID21 F ID21 F ID22 F ID22 F ID22 F ID23 F ID23 F ID23 F 10 IEO1 F IEO1 F IEO1 F IEO1 F IEO1 F IE020 F 2 Short description D D storage techn A S S storage techn 7 G S method smooth precision G S method smooth precision G S method smooth precision S S storage techn A G S method smooth precision S D storage techn 7 G S method smooth precision S D storage techn A SOR method solver precision D D storage techn 7 SOR method solver precision D D storage techn A SOR method solver precision S S sto
97. t the final value ICUBP to the number of the current cubature point when communicating with the element library group E This information is also useful for the treatment of nonlinear problems COAUX1 or COAUX2 are defined during the assembly of finite element matrices of vectors groups A and V for the evaluation of the coefficient functions in the nonlinear case The arrays KDFG KDFG1 contain the global degrees of freedom and KDFL KDFL1 the corresponding local d o f on the current element IDFL IDFL1 denotes the total number of the d o f per element The block COAUX1 is used in the subroutines for the calculation of quadratic matrices and vectors where only one type of finite elements is needed In the routine 09 up to three finite elements are needed to evaluate the coefficient function in the nonlinear case Here we use the COMMON block COAUX2 which then also contains the values of the desired function values and derivatives for all basis functions in the array DBAS TABLE is needed for the communication of those Z routines that control allocation of arrays on the workspace vector For each of the arrays maximum number NNARR KTYPE contains the data type 1 2 or 3 KLEN the length and KLEN8 the number of DOUBLE PRECISION locations needed on DWORK IFLAG is used for internal communication between ZNEW and ZDISP The COMMON block TABLE should never be defined in another subpro gram MGPAR contains information ab
98. the vertex IVT LABD DIMENSION KABD NABD Array containing the numbers of the midpoints of the faces on the bound ary All numbers are stored on a one dimensional array Classification of the above quantities a Essential descriptors for a subdivision always to be provided Scalars NEL NVT NVE NBCT Arrays DCORVG KVERT KNPR NVT Optionally for treatment of elements using information on midpoints of faces see elements E030 or E031 Scalars NAT Arrays KAREA KNPR NVT NAT DCORAG Optionally for generation of subdivisions Scalars Arrays KADJ Optionally for simple treatment of boundary conditions Scalars NVBD NABD Arrays KVBD KBCT KABD 1 3 Description of the subdivision Example Domain Unit cube 0 1 Contents of variables and arrays described above Figure 1 1 Coarse grid unit cube Scalars NEL 7 NVT 16 NET 32 NAT 24 NVE 8 NBCT 1 NVBD 8 NABD 6 Arrays DCORVG DCORVG IDIM IVT IDIM 1 2 3 0 0000 0 0000 0 0000 1 0000 0 0000 0 0000 1 0000 1 0000 0 0000 0 0000 1 0000 0 0000 0 0000 0 0000 1 0000 1 0000 0 0000 1 0000 1 0000 1 0000 1 0000 0 0000 1 0000 1 0000 0 2500 0 2500 0 2500 0 7500 0 2500 0 2500 0 7500 0 7500 0 2500 0 2500 0 7500 0 2500 0 2500 0 2500 0 7500 0 7500 0 2500 0 7500 0 7500 0 7500 0 7500 0 2500 0 7500 0 7500 10 General Concepts and Notation KVERT IVE IEL IVE 1 NNVE 1 6 5 9 10 14 13 10 11 15 14 11 12 16 15 9 12 16 13
99. tion ILU G Preconditioned Squared conjugate gradient algorithm CGS Preconditioned BICGSTAB algorithm BICGSTAB M Multigrid algorithm t stands for the numbers 0 1 2 or 3 characterizing the specific task solution precondi tioning smoothing as described above The number n refers to the data type of the arguments namely 1 DOUBLE PRECISION matrix DOUBLE PRECISION vectors 2 REAL matrix REAL vectors 52 Description of the Subprograms 3 REAL matrix DOUBLE PRECISION vectors Finally the character s stands for the storage technique 0 see Section 1 4 If an algorithm is suited for the solution of a linear system the corresponding X routines are provided The name of the program is preceded by the letter X and only the numbers handles of the vectors are given as parameters For algorithms that are used as smoothers or preconditioners only the corresponding Y routines exist For a complete list of subroutines in group I see FEAT2D manual or Appendix B 3 2 FEAT2D Subprograms Group L 53 Group L Elementary linear algebra This group is devoted to the basic linear algebra tasks We distinguish between two subgoups namely vector operations and matrix vector operations The routines of the first subgroup internally use BLAS routines see Section 1 6 or at least loop unrolling adapted to the particular machine The second subgroup contains routines for forming matrix vector products a
100. turned to the calling routines in the array DBAS in COMMON ELEM In the present version FEAT3D supports only hexahedral elements The transformation to the reference cube is assumed to be trilinear The parameter list is as follows SUBROUTINE Ennn XI1 XI2 XIS3 IPAR Parameters Input XIn R 8 n 1 2 3 Cartesian coordinates of the evaluation point in the reference element 1 1 IPAR Ix4 Switch IPAR 0 Evaluate at the given point 1 Return number of element IPAR 2 The routine may save arithmetic operations for further eval uations For example the function values of the basis functions on the reference element may be calculated in all cubature points and saved on a local array Then in later calls one only performs the transformation to the actual element using the elements of the Jacobian in ELEM and the number ICUBP of the current cubature point in CUB A second ap plication of this mechanism is used in piecewise defined elements Here the information which cubature point is located in which of the subele ments is stored The calling routine must set ICUBP to the number of the cubature formula when calling with IPAR 2 For IPAR 2 in formation is returned IPAR 3 Evaluate at given point assuming that the routine has been called using IPAR 2 before Parameters in COMMON blocks PARAMETER NNBAS 27 NNDER 10 NNVE 8 NNCUBP 36 NNDIM 3 COMMON ELEM DX NNVE DY NNVE DZ NNVE
101. ulated by NDFGL Parameters Input IEL I 4 Number of current element of the triangulation I 4 Switch controls output on and KDFL see below IELTYP I 4 Number of element KVERT I 4 DIMENSION KVERT NNVE NEL Numbers of vertices of elements KEDGE I 4 DIMENSION KEDGE NNEE NEL Numbers of edges of elements if necessary KAREA I 4 DIMENSION KAREA NNAE NEL Numbers of midpoints of faces if necessary Output KDFG I 4 DIMENSION KDFG NNBAS Global degrees of freedom on element IEL is sorted if IPAR 0 KDFL I 4 DIMENSION KDFL NNBAS Local degrees of freedom corresponding to KDFG KDFL is determined only if IPAR 1 42 Description of the Subprograms Group 0 Input Output Input Output of subdivisions This subgroup serves for storing and reading of whole subdivisions of the domain These subroutines use the FEAT2D I O routines to read and write the information of a whole subdivision of the domain in normalized form The information about dimensions of the arrays describing the triangulation and the numbers for the arrays on DWORK are contained on COMMON TRIAD and TRIAA see Section 1 3 The parameters MFILE CFILE and IFMT are used as above Triangulations usually are generated automatically frequently starting from a coarse initial subdivision To read coarse mesh information from a file the subprogram XORSC is used The input file only contains information necessary for the application
102. ume standard coarsening or standard refinement respectively The pro longation programs return a fine grid vector DX2 from a coarse grid vector DX1 Analo gously the restriction routines calculate a coarse grid vector DX1 Also in the names of the remaining parameters 1 stands for coarse grid information and 2 stands for fine grid information All other characters in the remaining parameter names correspond to the mesh information as described in section S Y routines for prolongations and restrictions The subprograms MPsnn and MRsnn are invoked via the Y routines listed below SUBROUTINE YPROL DX1 DX2 SUBROUTINE YREST DF2 DF1 Explanation These subprogram names are passed as EXTERNAL arguments to the driver routine 011 above DX2 denotes a fine grid vector and DX1 is a coarse grid vector The Y routines obtain the information about the current level ILEV on COMMON MGPAR and the mesh information on MGTRD and MGTRA Multilevel I O The routines listed in this subsection are the multilevel analogues of the I O subprograms XOWS XORS see 3 1 XOWA and XORA SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE MOWS MFILE CCFILE IFMT MORS MFILE CCFILE IFMT KLCOL KLLD MFILE CCFILE IFMT MORAY KLA KLCOL KLLD NBLOC MFILE CCFILE IFMT MOWAT KLA KLCOL KLLD MFILE CCFILE X X X X X XMOWA9 KLA KLCOL KLLD NBLOC MFILE CCFILE
103. y used N PF KPRSM Number of presmoothing steps for all levels KPDSM Number of postsmoothing steps for all levels IMTIME gt 0 CPU time measured separately for all multigrid components 1 CPU time reset at start of multigrid iteration Output TTMG Total time for multigrid iterations TTS Time for smoothing iterations TTE Time for exact coarse grid solver TTD Time for defect evaluation TTP Time for prolongation TTR Time for restriction Multilevel mesh generation The standard hierarchy of meshes standard refinement h h 2 is generated by succes sive calls of the mesh refinement routines SAO SBO etc SUBROUTINE XMSB2 ISCAD ISE ISA ISVEL ISEEL ISAEL ISVED ISAED ISVAR ISEAR ISEVE ISAVE ISVBD ISEBD ISABD IDISP PARX PARY PARZ SEDB SADB SUBROUTINE XMSCL Explanation The routine XMSB2 generates a sequence of NLEV meshes by successive standard refinement The arguments are as described in section S The routine XMSCL without arguments resets the COMMON blocks MGTRA and MGTRD analogue of XSCL 3 1 FEAT2D Subprograms Group M 37 Multilevel problem generation The following routines are used to generate the finite element matrices and right hand sides used during the multigrid iteration for all levels NLMIN to NLMAX i e for the levels employed during the iteration Usually the matrix and right side in the finest level correspond to the original discretization scheme T

Download Pdf Manuals

image

Related Search

Related Contents

Website User Guide - Administration Area  取扱説明書  フリーアクセス用アクセサリー取扱説明書  User Manual - Aldous Systems  Kathrein 20210092 User's Manual  3. Clique no botão  Philips EasySpeed Steam iron GC2040/70  LG-P700  BENDIX SD-13-4787S User's Manual  pHotoFlex pH Colorimètre de poche  

Copyright © All rights reserved.
Failed to retrieve file