
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 componentbycomponent 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, 19941996. Copyrights by Universitaet Karlsruhe 19891996. Copyrights by Lutz Grosz 1996. All rights reserved. More details see VECFEM.
