|
NAME
vemu02 - reads a VECFEM mesh file
SYNOPSIS
- CALL VEMU02(
-
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
vemu02 reads the mesh from a file on the first process and distributes
the mesh to the processes. The data has to be written in the special format
specified below. Only isoparametrical meshes are supported. A
mixed finite element mesh can be created from the read
mesh by vemgen(later) or
vemge2. vemu02 can be called without a preceding
vemdis call, but you have
to call vemdis before you call any other
VECFEM routine.
ARGUMENTS
- LIVEM integer, scalar, input, local
-
Length of the integer information vector,
LIVEM>= MESH+ NINFO.
- 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 | mesh arrays are too small. |
96 | unexpected element type. |
97 | DIM or NK is illegal. |
99 | fatal error. | - (5)=NIVEM, output, local
-
Used length of IVEM.
- (27)=LOUT, input, local
-
Unit number of the standard output file, normally 6.
- (28)=OUTCNT, input, local
-
Output control flag, normally 1.
0 | only error messages are printed. |
>0 | a protocol is printed. | - (29), input, local
-
Unit of the mesh file. The unit is only used on the process 1. On
the assigned data set the 'REWIND'-command has to be executable.
- (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 vemu02 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+2)=NK, input, global
-
Number of solution components. If NK is greater than NK
specified in the mesh file, the missing components get no Dirichlet
conditions. If NK is lower than NK
specified in the mesh file, the additional components in the mesh file
are ignored.
- (MESH+3)=DIM, input, global
-
Space dimension, 1<=DIM<=3.
- LNEK integer, scalar, input, local
-
Length of the element array.
- NEK integer, array: NEK(LNEK), 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), output, local
-
Real parameter array, see mesh.
- LIPARM integer, scalar, input, local
-
Length of the integer parameter array.
- IPARM integer, array: IPARM(LIPARM), 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, 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), 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), 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), 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), 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), output, local
-
Array of the node parameters, see mesh.
- LBIG integer, scalar, input, local
-
Length of the real work array. The needed length of LBIG
depends on the given mesh. 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.
DATA FORMAT
The mesh file has three parts. In the first part the geometrical nodes
are specified, in the second part the elements are described and in the
third part the Dirichlet conditions are set.
Nodes
The node coordinates are written to unit UNIT by the following FORTRAN code:
WRITE(UNIT,*) NDEG
DO i=1,NDEG
WRITE(UNIT,*) NODNUM,NOD(1),NOD(2),NOD(3)
ENDDO
where NDEG is the number of nodes in the mesh and the node
with node id NODNUM has the coordinates
(NOD(1), NOD(2), NOD(3)).
For a two-dimensional mesh, set NOD(3)=0;
for a one-dimensional mesh, set NOD(2)=NOD(3)=0.
Elements
The elements are written to unit UNIT by the following FORTRAN code:
WRITE(UNIT,*) NGROUP
DO k=1,NGROUP
WRITE(UNIT,*) NE,CLASS,FORM,GEOTYP
DO i=1,NE
WRITE(UNIT,*) ELEMID,INDEX,(NEK(j),j=1,GEOTYP)
ENDDO
ENDDO
where NGROUP specifies the number of different element types and
NE the number of elements of type
(CLASS, FORM, GEOTYP). ELEMID is the id number of the element
and must be unique. INDEX is an arbitray integer values. It is stored
as the second integer vector parameter and can be used to refer into a
material table.
NEK gives the id number of the GEOTYP
nodes which describe the element. The following figure shows the allowed
elements of order two and the succession of the describing nodes:
domain |
CLASS |
FORM |
GEOTYP |
VECFEM elements |
point |
0 |
1 |
1 |
1 |
line |
1 |
2 |
3 |
1--3--2 |
area |
2 |
3 |
6 |
3
| \
6 5
| \
1--4--2 |
|
2 |
4 |
8 |
4--7--3
| |
8 6
| |
1--5--2 |
volume |
3 |
6 |
15 |
6
/ : \
15 : 14
/ : \
4-----13------5
| : |
| 12 |
| : |
10 3 11
| / \ |
| 9 8 |
| / \|
1------7------2 |
|
3 |
4 |
10 |
4
|\ \
| \ 10
| \ \
| 9 3
| \ / |
8 X 6
| / \ |
| 7 \ |
| / \
1----5------2 |
|
3 |
8 |
20 |
8-----19------7
/ : /:
20 : 18 :
/ : / :
5-------17-----6 :
| : | :
| 16 | 15
13 : 14 :
| 4-----11-|----3
| / | /
| 12 | 10
| / |/
1-------9------2 |
Additionally vemu02 considers all VECFEM elements which are
described in the manual.
Dirichlet Conditions
The Dirichlet conditions are written to unit UNIT by
the following FORTRAN code:
WRITE(UNIT,*) NK
DO d=1,NK
WRITE(UNIT,*) NDC
DO i=1,NDC
WRITE(UNIT,*) DNOD,PREVALUE
ENDDO
ENDDO
where NK specifies the number of solution components and
NDC the number of nodes with Dirichlet conditions for
component d. DNOD is the id number of the node at which a
Dirichlet condition is set, and PREVALUE is a real number which
in general specifies the value of the Dirichlet Condition at this node.
EXAMPLE
see vemexamples.
METHOD
On the first process,
vemu02 passes through the mesh file twice. In the first
pass the program checks the mesh file and computes the needed
length for the mesh arrays. In the second pass vemu02 reads the
mesh data and distributes the mesh to the other processes so that the
mesh arrays are occupied evenly.
The Nodes
If DIM=3, vemu02 reads the x1-,x2- and x3-coordinates from the mesh
file. If DIM=2, only the x1- and x2-
coordinates are read, and if DIM=1, only the x1-coordinate is read.
The Elements
The id numbers of the geometrical nodes which define the elements are
stored into NEK. The groups are split up by the element parameters
(GEOTYP,FORM,CLASS) so that a minimal number of groups
will be created. Therefore the actual number of groups in the mesh
could be different from the number of groups specified in the
mesh file. The element id is stored as the first integer vector parameter.
The index INDEX is stored as the second integer parameter.
Dirichlet Conditions
The id numbers of the geometrical nodes which are specified for
Dirichlet conditions are stored into DNOD. The real
parameter PREVALUE for the condition is stored as the first real vector
parameter.
REFERENCES
[FAQ], [DATAMAN], [DATAMAN2], [P_MPI].
SEE ALSO
VECFEM, vemcompile, vemrun, vemhint,
mesh, vemexamples, vemdis.
COPYRIGHTS
- Program by
-
Program by L. Grosz, 1994-1996.
opyrights by Universitaet Karlsruhe 1989-1996.
Copyrights by Lutz Grosz 1996.
All rights reserved. More details see VECFEM.
by L. Grosz, Auckland , 6. June, 2000.
|