|
NAME
vemu04 - integral of a function C over inner elements
SYNOPSIS
- CALL VEMU04(
-
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
vemu04 is a routine to integrate a NC-valued function C
over the inner elements of the given finite element
mesh. 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. vemu04 can be used to compute the flow through the
elements or the work done by the displacements U on the elements
in structural analysis problems. The results
can be handed over to a standard postprocessor which
processes element results (see veid99, vepa99).
ARGUMENTS
- T double precision, scalar, input, global
-
Real number (e.g. current time).
- LCU integer, scalar, input, local
-
Length of vector CU, LCU>=NC*NINE, where NINE is the total
number of inner elements on the process MYPROC.
- CU double precision, array: CU(LCU), output, local
-
The integrals of the function C over the inner elements. The integrals
of the NC components of the function C are stored
separately for each individual group.
CU(ADDCU(G)-1+CU1(G)*(j-1)+i) is the integral of
the j-th component of C over
the i-th element on the process MYPROC in group G. The numbers
ADDCU and CU1 are returned in IVEM.
- 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. | - (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. | - (33)=NC, input, global
-
Number of components of function C.
- (35)=ORDER, input, local
-
Order of the integration formulas to compute the integral
of C, 0<ORDER<19. ORDER gives the maximal degree
of the polynomials which will be integrated exactly.
- (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 vemu04 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.
- (MESH+GINFO+GINFO1*(G-1)+17)=ADDCU, output, local
-
Start address of the integrals of function C for group G in CU.
- (MESH+GINFO+GINFO1*(G-1)+18)=CU1, output, local
-
Leading dimension of the integrals of function C for group G, normally
CU1=NE.
- (MESH+GINFO+GINFO1*(G-1)+19)=NCG, output, local
-
Number of integrals of function C for group G, normally
NCG=N for inner elements and
NCG=0 for noninner elements.
- 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. 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. To compute the sum SUM of the integrals of C
over all inner elements
of one individual process the following statements can be used:
DO 10 G=1,NGROUP
NE =IVEM(MESH+GINFO+GINFO1*(G-1) )
ADDCU=IVEM(MESH+GINFO+GINFO1*(G-1)+17)
CU1 =IVEM(MESH+GINFO+GINFO1*(G-1)+18)
NCG =IVEM(MESH+GINFO+GINFO1*(G-1)+19)
IF (CU1.GE.NE) THEN
DO 20 I=1,NCG
DO 20 Z=1,NE
SUM(I)=SUM(I)+CU(ADDCU-1+CU1*(I-1)+Z)
20 CONTINUE
ENDIF
10 CONTINUE
METHOD
The integration is executed by integration formulas. They are
selected in the reference element by the input parameter ORDER and
transformed to the elements by interpolation of the assigned
geometrical nodes. To compute the values of U and its derivatives
at the integration nodes, 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, 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. |