# VECFEM3 Reference Manual: vemu06

Type: FORTRAN routine

## 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.