|
NAME
vemu06 - evaluation of a function C at the global nodes
SYNOPSIS
- CALL VEMU06(
-
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
vemu06 is a routine to compute a NK-valued function C
at the global nodes of the finite element
mesh. It works for isoparametrical meshes and for the
element libraries PRFLIB=0 and PRFLIB=1. C
depends on the location and the NU-valued input
solution U and its derivative. U is given at the geometrical
nodes of the FEM mesh. vemu06 can be used to interpolate
a solution given on the geometrical
nodes onto the global nodes (set NU:=NK), to set the initial
guess for nonlinear solvers (see veme02) or to set the initial
solution for nonsteady problems (see vemp02) (in both cases NU:=0).
ARGUMENTS
- T double precision, scalar, input, global
-
Real number (e.g. current time).
- LCU integer, scalar, input, local
-
Length of vector LCU, LCU >=LM.
- CU double precision, array: CU(LCU), output, local
-
The function C at the global nodes. CU(i) is the value
of the function C at the global node i+PTRMBK(MYPROC), see
vemdis. Since the
function C is only evaluated for inner elements, it may happen that
any global node gets no contribution from the evaluation
process and CU is undefined at this node. vemu06 sets these entries
to the alternative value 0.
- LU integer, scalar, input, local
-
Length of input solution vector U, LU>=NU*U1.
- U double precision, array: U(LU), input, local
-
The input solution vector at the geometrical nodes.
U(U1*(j-1)+i) is the value of the j-th component
at the i-th geometrical node on the process MYPROC. If
a geometrical node has different values on two processes, one arbitrarily
selected value of the two is used on both processes.
- 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. | - (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. | - (36)=U1, input, local
-
Leading dimension of the input solution array, U1>=NDEG.
- (37)=NU, input, global
-
Number of components of the input solution
- (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 vemu06 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 input solution is interpolated by the values of the assigned
geometrical nodes. The polynomials are evaluated at the global
nodes to get the values of U and its derivatives. The value of
function C at a global node is the arithmetic mean of all
evaluations of C on all inner elements containing this node. Nodes
contained in no inner element get the value 0.
REFERENCES
[FAQ], [DATAMAN], [DATAMAN2], [P_MPI].
SEE ALSO
VECFEM, vemcompile, vemrun, vemhint,
mesh, vemexamples, vemdis,
veme00, veme02, vemp02,
vemu03, vemu04, vemu05, vemu08.
COPYRIGHTS
Program by L. Grosz, C. Roll, P. Sternecker, 1989-1996.
Copyrights by Universitaet Karlsruhe 1989-1996.
Copyrights by Lutz Grosz 1996.
All rights reserved. More details see VECFEM.
by L. Grosz, Auckland , 6. June, 2000. |