Google

VECFEM3 Reference Manual: vemdis

Type: FORTRAN routine


NAME

vemdis - prepares a FEM mesh for the VECFEM calculation.


SYNOPSIS

CALL VEMDIS(
LIVEM, IVEM, LNEK, NEK, LRPARM, RPARM, LIPARM, IPARM, LDNOD, DNOD, LRDPRM, RDPARM, LIDPRM, IDPARM, LNODN, NODNUM, LNOD, NOD, LNOPRM, NOPARM, LBIG, RBIG, IBIG)
INTEGER
LIVEM, LNEK, LRPARM, LIPARM, LDNOD, LRDPRM, LIDPRM, LNODN, LNOPRM, LBIG
INTEGER
IVEM(LIVEM), NEK(LNEK), IPARM(LIPARM), DNOD(LDNOD), IDPARM(LIDPRM), NODNUM(LNODN), IBIG(*)
DOUBLE PRECISION
RPARM(LRPARM), RDPARM(LRDPRM), NOD(LDNOD), NOPARM(LNOPRM), RBIG(LBIG)


PURPOSE

vemdis prepares the finite element mesh data (see mesh) for the VECFEM calculation and resorts the mesh array for an efficient run of VECFEM on parallel and vector computers. Especially the numbering of the proposal functions is made continuous. It has to be called before the call of any other routine except vemge2, idevem and patvem. If you change the structure of the mesh (e.g. by refinements), you have to call vemdis again. An isoparametrical mesh indicated by OWN=0 is changed to a mesh with component-by-component numbering of the proposal functions, therefore you have to specify LNEK and LDNOD with twice the values that you really used at the input. OWN=0 is kept. Please keep in mind that the mesh and the mesh management is totally rearranged by vemdis to optimize the program run.


ARGUMENTS

LIVEM integer, scalar, input, local
Length of the integer information vector.
IVEM integer, array: IVEM(LIVEM), input/output, local/global
Integer information vector.
(1)=MESH, input, local
Start address of the mesh informations in IVEM, MESH>203+ NPROC.
(2)=ERR, output, global
Error number.

0

program terminated without error.

90

LBIG is too small.

95

IVEM array is too small.

99

fatal error.

(5)=NIVEM, output, local
Used length of IVEM.
(51)=ORDER, input, global
Order for the integration formulas for the computation of the element matrices, see veme00, veme02 or vemp02.
(80)=LOUT, input, local
Unit number of the standard output file, normally 6.
(81)=OUTCNT, input, local
Output control flag.

0

only error messages are printed

1

in addition a protocol is printed.

(200)=NPROC, input, global
Number of processes, see combgn.
(201)=MYPROC, input, local
Logical process id number, see combgn.
(202)=NMSG, input/output, global
Message counter. The difference of the input and the output values gives the number of communications during the vemdis call.
(204)=TIDS(1), input, global
Begin of the list TIDS, which defines the mapping of the logical process ids to the physical process ids. See combgn.
(MESH), input/output, local
Start of mesh informations, see mesh.
(MESH+18)=DIS, input/output, local
If at the input DIS=220964, the ids of the geometrical nodes in NEK and DNOD refer to the local numbering on the processor. In the other cases the numbering refers to the global numbering over all processors. At the output always DIS=220964.
LNEK integer, scalar, input, local
Length of the element array.
NEK integer, array: NEK(LNEK), input/output, local
Array of the elements, see mesh.
LRPARM integer, scalar, input, local
Length of the real parameter array.
RPARM double precision, array: RPARM(LRPARM), input/output, local
Real parameter array, see mesh.
LIPARM integer, scalar, input, local
Length of the integer parameter array.
IPARM integer, array: IPARM(LIPARM), input/output, local
Integer parameter array, see mesh.
LDNOD integer, scalar, input, local
Length of the array of the Dirichlet nodes.
DNOD integer, array: DNOD(LDNOD), input/output, local
Array of the Dirichlet nodes, see mesh.
LRDPRM integer, scalar, input, local
Length of the real Dirichlet parameter array.
RDPARM double precision, array: RDPARM(LRDPRM), input/output, local
Array of the real Dirichlet parameters, see mesh.
LIDPRM integer, scalar, input, local
Length of the integer Dirichlet parameter array.
IDPARM integer, array: IDPARM(LIDPRM), input/output, local
Array of the integer Dirichlet parameters, see mesh.
LNODN integer, scalar, input, local
Length of the array of the id numbers of the geometrical nodes.
NODNUM integer, array: NODNUM(LNODN), input/output, local
Array of the id numbers of the geometrical nodes, see mesh.
LNOD integer, scalar, input, local
Length of the array of the coordinates of the geometrical nodes.
NOD double precision, array: NOD(LNOD), input/output, local
Array of the coordinates of the geometrical nodes, see mesh.
LNOPRM integer, scalar, input, local
Length of the array of the node parameters.
NOPARM double precision, array: NOPARM(LNOPRM), input/output, local
Array of the node parameters, see mesh.
LBIG integer, scalar, input, local
Length of the real work array. It is impossible to compute the needed length for LBIG before the first vemdis run. A minimal length of LBIG cannot be given. It should be as large as possible.
RBIG double precision, array: RBIG(LBIG), work array, local
Real work array.
IBIG integer, array: IBIG(*), work array, local
Integer work array, RBIG and IBIG have to be defined by the EQUIVALENCE statement.


EXAMPLE

See vemexamples.


METHOD

Numbering

The numbering of the proposal functions is made continuous. The old numbering is lost.

Parallel Computer

The elements are distributed to the processors so that the loading during the calculation of the element matrices is balanced and the communication for the mounting of the global system is minimal. After the distribution, all informations necessary for the calculation are available at the processor. The geometrical nodes which are referred to by the elements and Dirichlet conditions on one processor get a local numbering. The list NODNUM gives the mapping of the local numbering of the geometrical nodes onto the global numbering.

Vector Computer

For an efficient mounting of the global system on a vector computer the elements on the processors are resorted. Proposal nodes contained in many elements should be avoided.


SEE

VECFEM, vemcompile, vemrun, vemhint, mesh, vemexamples, idevem, patvem, veme00, veme02, vemge2, vemgen(later), vemopt(later), vemu02.


REFERENCES

[FAQ], [DATAMAN], [DATAMAN2], [P_MPI].


COPYRIGHTS

Program by L. Grosz, 1994-1996. Copyrights by Universitaet Karlsruhe 1989-1996. Copyrights by Lutz Grosz 1996. All rights reserved. More details see VECFEM.