Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 4 Utilities Up: 3 The domain decomposition method Prev: 3.1 Introduction Contents


3.2 The modules

3.2.1 PRSDOM

Aim:
Create, from the D.S. NOPO of the different sub-domains, the operators required for the conjugate gradient algorithm and the auxiliary file SAUV. The operators required are, for each sub-domain:

Utilization:

Main program:

 
       PRSDOM

The two matrices above are stored in a D.S. MUA (one per sub-domain). The matrix of the Neumann problem is placed in an associated array. File SAUV contains a description of the sub-domain interfaces.

The finite element description used and the material constants are done for the whole problem. There is therefore only one D.S. MILI and one D.S. FORC for the collection of sub-domains. Similarly, the list of finite elements used is input in a global fashion. The same finite elements are used for all materials.

Note:
the notion of sub-domain has, here, a different meaning to the one generally used in MODULEF. In fact, here it is synonym to sub-structure, whereas, in general, (COMACO, COMILI, COFORC) it is rather synonym to material number.

Input data structures:
In order to minimize the amount of data, the data structure names are generated as follows:

The user inputs a generic name: NOM

If the D.S. describes the collection of sub-domains (eg. MILI) its name will be NOM.nameDS (eg. NOM.MILI)

If there is a D.S. per sub-domain (eg. MAIL)
its name will be NOM.nameDS.0001, NOM.nameDS.0002....
(eg. NOM.MAIL.0001, NOM.MAIL.0002 ...)

The input data structures are the following:

NOPO called NOM.NOPO.0001 NOM.NOPO.0002 ...
MILI called NOM.MILI
FORC called NOM.FORC

Output data structure:
The same convention is adopted to generate the names as for the input D.S.

The output data structures are the following:

B called NOM.B.0001 NOM.B.0002 ...
AMAT called NOM.AMAT.0001 NOM.AMAT.0002 ...
MUA called NOM.MUA.0001 NOM.MUA.0002 ...
SAUV called NOM.SAUV
auxiliary file to describe the interfaces

Data file:
This file contains the collection of data required to execute modules COMACO, THEASS, COBDC1. The documentation corresponding to the above modules will give more details regarding the significance of the parameters. The mnemonic of the data item is followed by its type: (I) integer, (A) character.

Note:
For the time being, there is no conversational (interactive) program to create this file. It must be created, with an text editor, by the user of the module.

The data file contains, in sequence:

NOM (A) generic name of the files
NDSD (I) number of sub-domains (sub-structures)
POBA? (I) utilization of file POBA
YES 1
NO 0
NMPOBA (A) name of file POBA if it is used
NDIM (I) dimension
NBSC (I) number of curved surfaces
NOSC (I) NOSC(NBSC) list of curved surfaces
if NBSC is non-zero
NBLC (I) number of curved surfaces
NOLC (I) NOLC(NBLC) list of curved surfaces
if NBLC is non-zero
NOMBIB (A) library name (4 characters)
NTYED (I) number of straight elements
LNTYED (A) list of straight elements (2 words of 4 characters)
NTYEC (I) number of curved elements
LNTYEC (A) list of curved elements (2 words of 4 characters)
NBFR (I) number of triplets describing the boundary conditions
NOFR (I) NOFR(NBFR) list of references
NTYDL(I) NTYDL(NBFR) list of prescribed d.o.f.
MNEM (I) MNEM(NBFR) list of mnemonics (in general VN)
NTY (I) variable type (2 single, 5 double precision)
IOPT (I) IOPT(4) of THELAS describes the mass, stiffness, RHS,
stresses
0 if the array is not computed
1 if not
ND (I) number of d.o.f. per node

Remarks:

  • Only Lagrange type elements are used.
  • This program uses the new module THEASS which performs the computation of elementary arrays and assembly simultaneously. THEASS uses the new version of the elementary arrays computation subroutines. It is consequently necessary to input the name of the new POBA file. If the mesh is in color (keyword COUL) in APNOPO([note] (see [MODULEF User Guide - 3]) ) the vectorized version of the 3D elements will be used.
  • There are no theoretical difficulties to parallelize this step as the creation and construction of different matrices are independent from one sub-domain to another. Only the construction of the interface part requires synchronization.
  • An parallel implementation on KSR1 using compiling directives is also available.

3.2.2 SDOMVD

Aim:
Perform the conjugate gradient iterations on the interface problem, in double precision.

Utilization:

Main program:

 
      SDOMVD

Input data structures:
The I.D.S. correspond to the output data structures of PRSDOM.

B called NOM.B.0001 NOM.B.0002 ...
AMAT called NOM.AMAT.0001 NOM.AMAT.0002 ...
MUA called NOM.MUA.0001 NOM.MUA.0002 ...
SAUV called NOM.SAUV auxiliary file describing the interfaces

Data file:
The data file contains only the generic name of the files NOM. It is therefore possible to use the data file of the previous step.

Output data structures:
The solutions of the problem are contained, for each sub-domain, in a D.S. of type B. The names of these D.S. are NOM.BS.0001, NOM.BS.0002, ...

Remark:
Program SDOMVD is written in sequential. The conjugate gradient algorithm has been implemented, in parallel, on Cray2 using multitasking, but this program is not portable, and is therefore not integrated in the standard version of MODULEF.

3.2.3 SDOMVR

Aim:
Perform the conjugate gradient iterations on the interface, in single precision.

Utilization:

Main program:

 
       SDOMVR

Input data structures:
The I.D.S. correspond to the output data structures of PRSDOM.

B called NOM.B.0001 NOM.B.0002 ...
AMAT called NOM.AMAT.0001 NOM.AMAT.0002 ...
MUA called NOM.MUA.0001 NOM.MUA.0002 ...
SAUV called NOM.SAUV auxiliary file to describe the interfaces

Data file:
The data file contains only the generic name of the files NOM. It is possible to use the data file of the preceding step.

Output data structures:
The solutions of the problem are contained, for each sub-domain, in a D.S. of type B. The names of these D.S. are NOM.BS.0001, NOM.BS.0002, ...

Remark:
Program SDOMVR is written in sequential. The conjugate gradient algorithm has been implemented, in parallel, on Cray2 using multitasking, but this program is not portable, and is therefore not integrated in the standard version of MODULEF.


Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 4 Utilities Up: 3 The domain decomposition method Prev: 3.1 Introduction Contents