|
NAME
vemu07 - evaluation of a function C at the geometrical nodes
SYNOPSIS
- CALL VEMU07(
-
T, LCU, CU, LU, U, LIVEM, IVEM, LNEK, NEK,
LRPARM, RPARM, LIPARM, IPARM, LDNOD, DNOD, LRDPRM, RDPARM,
LIDPRM, IDPARM, LNODN, NODNUM, LNOD, NOD, LNOPRM, NOPARM,
LBIG, RBIG, IBIG, USERC)
- INTEGER
-
LCU, LU, 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
-
T, CU(LCU), U(LU), RPARM(LRPARM), RDPARM(LRDPRM),
NOD(LDNOD), NOPARM(LNOPRM), RBIG(LBIG)
- EXTERNAL
-
USERC
PURPOSE
vemu07 is a routine to compute a NC-valued function C
at the geometrical nodes of the finite element mesh
using extrapolation from the integration nodes. It works for
isoparametrical meshes and for the element libraries PRFLIB=0 and
PRFLIB=1. C depends on the location and the NK-valued input
solution U and its derivative. U is given at the global nodes of
the FEM mesh. vemu07 can be used to interpolate a solution given
on the global nodes onto the geometrical nodes. The results
can be handed over to a standard postprocessor which
processes nodal results (see veid97, vepa97).
ARGUMENTS
- T double precision, scalar, input, global
-
Real number (e.g. current time).
- LCU integer, scalar, input, local
-
Length of vector CU, LCU>=NC*CU1.
- CU double precision, array: CU(LCU), output, local
-
The values of the function C at the geometrical nodes on the process
MYPROC.
CU(CU1*(j-1)+i) is the value of the j-th component
of C at the geometrical node i, where i refers to the local numbering on the
process. Since the function C is only evaluated for inner
elements it may happen that
a geometrical node gets no contribution from the evaluation
process and CU is undefined at this node. vemu07 sets these entries
to the alternative value 10.D0**IVEM(4).
- LU integer, scalar, input, local
-
Length of solution vector U, LU >=LM.
- U double precision, array: U(LU), input, local
-
The input solution vector at the global nodes. U(i) is the value
of the input solution at the global node i+PTRMBK(MYPROC), see
vemdis.
- 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 | IVEM, U or CU is too small. |
99 | fatal error. | - (4), input, global
-
For unreferenced geometrical nodes CU is set to 10.D0**IVEM(4),
normally 40.
- (5)=NIVEM, output, local
-
Used length of IVEM.
- (30)=LOUT, input, local
-
Unit number of the standard output file, normally 6.
- (31)=OUTCNT, input, local
-
Output control flag.
0 | only error messages are printed. |
>0 | in addition a protocol is printed. | - (32)=CU1, input, local
-
Leading dimension of the nodal value array CU,
CU1>=NDEG. If CU1<NDEG, CU1 is set to NDEG.
- (33)=NC, input, global
-
Number of components of function C.
- (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 vemu07 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, local
-
Start of mesh informations, see mesh.
- LNEK integer, scalar, input, local
-
Length of the element array.
- NEK integer, array: NEK(LNEK), input, 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, local
-
Real parameter array, see mesh.
- LIPARM integer, scalar, input, local
-
Length of the integer parameter array.
- IPARM integer, array: IPARM(LIPARM), input, 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), input, 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, 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, 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, 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, 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.
- USERC external
-
Name of the subroutine in which the
function C is described, see userc.
EXAMPLE
See vemexamples.
METHOD
The value of the function C at a geometrical node is the
arithmetic mean of all extrapolation of C on the
integration nodes at the elements
containing this geometrical node. The extrapolation is
done by a least square approach. Geometrical nodes contained in
no inner element get the value 10.D0**IVEM(4). To compute the
values of U and its derivatives at a geometrical node, the values of
U at the global nodes are interpolated by a polynomial.
REFERENCES
[FAQ], [DATAMAN], [DATAMAN2], [P_MPI].
SEE ALSO
VECFEM, vemcompile, vemrun, vemhint,
mesh, vemexamples, vemdis,
userc, vemu03, vemu04, vemu05,
vemu06, vemu13.
COPYRIGHTS
Program by L. Grosz, C. Roll, P. Sternecker, 1989-1996.
Copyrights by Lutz Grosz 1999.
All rights reserved. More details see VECFEM.
by L. Grosz, Auckland , 6. June, 2000. |