
|
VECFEM3 Reference Manual: vemu08
Type: FORTRAN routine
NAME
vemu08 - sets the inital solution at the global nodes
SYNOPSIS
- CALL VEMU08(
- T, 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, USERU0)
- INTEGER
- 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, U(LU), RPARM(LRPARM), RDPARM(LRDPRM), NOD(LDNOD), NOPARM(LNOPRM), RBIG(LBIG)
- EXTERNAL
- USERU0
PURPOSE
vemu08 is a routine to set the NK components of the initial guess for the nonlinear solver veme02 or to set the initial solution for nonsteady problems vemp02. The initial solution may depend on the location and the node parameters. vemu06 is an extension of vemu08.
ARGUMENTS
- T double precision, scalar, input, global
- Real number (e.g. initial time).
- LU integer, scalar, input, local
- Length of vector LU, LU >=LM.
- U double precision, array: U(LU), output, local
- The inital solution at the global nodes. U(i) is the value of the inital 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 or U 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. |
- (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 vemu08 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.
- USERU0 external
- Name of the subroutine in which the initial solution is described.
The statements defining the initial solution have to be entered into the following subroutine frame USERU0:
SUBROUTINE USERU0(T,NE,L,DIM,X,NOP,NOPARM,COMPU,U0)
INTEGER NE,L,DIM,NOP,COMPU
DOUBLE PRECISION T,X(L,DIM),NOPARM(L,NOP),U0(NE)
...
IF (COMPU.EQ.1) THEN
DO 10 Z=1,NE
U0(Z)=...
10 CONTINUE
ENDIF
...
RETURN
END
where T is the real value T of the vemu08 call, X denotes a list of NE points in the domain defined by the FEM mesh and NOPARM the interpolation of the node parameters onto these nodes. The output array U0 contains the values of the component COMPU of the initial solution at the given points. The routine is called for all components COMPU=1,NK and all element groups.
EXAMPLE
See vemexamples.
METHOD
The statements defining the input solution in the routine USERU0 are evaluated at the nodes of the proposal functions. The value of U at a global node is the arithmetic mean of all evaluations on all elements containing this node.
REFERENCES
[FAQ], [DATAMAN], [DATAMAN2], [P_MPI], see VECFEM.
SEE ALSO
VECFEM, vemcompile, vemrun, vemhint, mesh, vemexamples, vemdis, veme00, veme02, vemp02, vemu03, vemu04, vemu05, vemu06.
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.
|