VECFEM3 Reference Manual: vecfem

# VECFEM3 Reference Manual

## DESCRIPTION

The finite element tool package VECFEM provides routines for the numerical solution of 1-D, 2-D and 3-D functional equations over an arbitrary domain using the finite element method. VECFEM solves steady, non-steady and eigenvalue problems. The data structures are especially designed for parallel processing with vector processing on every process. The problems have to be formulated as functional equations as for instance they are produced by variational problems or the Galerkin method for elliptical boundary value problems. The solution method is the finite element method for the space direction and the finite differences method with variable order and step size for the time direction. An estimation of the quality of the solution is computed.

Click here to get a list of VECFEM examples.

Click here to get the VECFEM home page.

## LIST OF TOOLS

All tools can be started from the ksh or bash shell.

### xvem

X-environment for the definition and solution of non-linear functional equations.

### vembuild

Tool for the generation of a FORTRAN code for the solution of a steady or non-steady, non-linear functional equation.

### vemcompile

Tool for the compilation of a FORTRAN code that calls VECFEM routines.

### vemrun

Tool to start a VECFEM program.

### vemtar

Creates a tar-file of data sets involved in the VECFEM calculation.

### vemhint

Tool to analyse the error output from VECFEM programs. See also vemlst.

### vempost

Builds a control/script file for postprocessing.

## LIST OF FORTRAN77 SUBROUTINES OF THE VECFEM LIBRARY:

### vemdis

The subroutine prepares the mesh for the VECFEM calculation. vemdis distributes the FEM mesh to the processes to optimize the load balancing for the parallel processing and optimizes the element succession for the vector processing.

### veme00

The subroutine solves a linear, steady functional equation

         L(v,u)=F(v)

for the unknown function u using the finite element method. The domain and the finite element mesh are arbitrary. An error estimation is not available in this routine. veme00 calls lsolpp to solve the system of linear equations.

### veme02

The subroutine solves a non-linear, steady functional equation

         F{u}(v)=0

for the unknown function u using the finite element method. The domain and the finite element mesh are arbitrary. veme02 uses the Newton method to solve the non-linear, discretized equation. In every iteration step lsolpp is called to solve the system of linear equations.

### vemp02

The subroutine solves a non-linear, non-steady functional equation

      F{t,u,ut}(v)=0

for the unknown, t-dependent function u using the finite element method in space direction. In the time direction the finite differences method with self-adapted step size and order control is used. In every time step vemp02 solves a system of non-linear equations by the Newton method. In every iteration step lsolpp is called to solve the system of linear equations.

### vemu01

The subroutine prints the finite element mesh.

### vemu02

The subroutine reads a user-defined mesh from an external data set in the list-directed format. The data format to be used for such an external data set is specified in the vemu02 manual page.

### vemu03

The subroutine computes a function C at the centre point of inner elements. C depends on a solution u and its derivatives given at the global nodes, e.g. C is the gradient or the stress.

### vemu04

The subroutine computes the integral of a function C over inner elements. C depends on a solution u and its derivatives given at the global nodes.

### vemu05

The subroutine computes a function C at the geometrical nodes. C depends on a solution U and its derivatives given at the global nodes, e.g. C can be used to interpolate a solution onto the geometrical mesh.

### vemu06

The subroutine computes a function C at the global nodes. C depends on a solution u and its derivatives given at the geometrical nodes, e.g. C can be used to distribute a solution to the processes.

### vemu07

The subroutine computes a function C at the geometrical nodes using extrapolation from integration nodes. C depends on a solution U and its derivatives given at the global nodes, e.g. C can be used to interpolate a solution onto the geometrical mesh.

### vemu08

The subroutine sets the initial guess for the steady solver veme02 and the non-steady solver vemp02.

### vemu09

The subroutine evaluates values given at the geometrical nodes of the FEM mesh at the centre points of the elements.

### vemfre

The subroutine is a tool to check the programming of the Frechet derivatives of the functional equation.

### vemgen(later)

The subroutine creates a mixed finite element mesh for Lagrangian proposal functions of a prescribed order from a given geometrical mesh.

### vemge2

The subroutine creates a mixed finite element mesh with isoparametrical proposal functions from a given geometrical mesh by an elimination of nodes.

### vemopt(later)

The subroutine calls a bandwidth optimizer to reduce the number of occupied diagonals in the global matrix. The structure of the global matrix will be well suited for lsolpp.

### patvem

PATRAN is a pre- and postprocessor program for the finite element method. The interface is the neutral file. The subroutine patvem reads a neutral file into the VECFEM mesh. So PATRAN can be used for the generation of geometrical meshes.

### vempat

PATRAN is a pre- and postprocessor program for the finite element method. The interface is the neutral file. The subroutine vempat creates a neutral file. The neutral file can be read by PATRAN for postprocessing. The routine vepa97 creates a nodal result file and vepa99 creates an element result file.

### idevem

I-DEAS is a pre- and postprocessor program for the finite element method. The interface is the universal file. The subroutine idevem reads a universal file into the VECFEM mesh. So I-DEAS can be used for the generation of geometrical meshes. The subroutine idve97 reads a nodal result file to set a solution.

### vemide

I-DEAS is a pre- and postprocessor program for the finite element method. The interface is the universal file. The subroutine vemide creates a universal file. The universal file can be read by I-DEAS for post-processing. The routine veid97 creates a nodal result file and veid99 creates an element result file.

### vemisv

ISVAS 3.1 is a postprocessor program for the finite element method. The subroutine vemisv creates the node coordinate and element file. The files can be read by ISVAS for post-processing. The routine veis97 creates a variable field file.

### vemens

Ensight is a postprocessor program for the finite element method. The subroutine vemens creates the geometry file. The file can be read by EnSight for post-processing. The routine veen97 creates a variable file.

### vemavs

AVS is a visualization tool for 3D data. The subroutine vemavs creates a UCD file (unstructured call data file).

### vemdx

DataExplorer is a visualization tool for 3D data. The subroutine vemdx creates a file to view the finite element mesh. The routine vedx97 creates a file to view the results.

### vegp97

The subroutine writes a result file, which can be read by easy postprocessors like Gnuplot or Excel.

## PARALLELISM

The programming scheme for the parallelism is the explicit message passing with asynchronous communication. VECFEM uses its own communication routines, which call the communication routines of your parallel computer. The communication is started by combgn and is terminated by comend. So before any VECFEM routine is called, combgn has to be called to initialize your parallel computer. Before any calculation ends or is stopped, comend has to be called to ensure a controlled end of the calculation.

## NOTATIONS

In the manual pages the keywords are printed in bold style (e.g. VECFEM). Important variables are printed in Italic style (e.g.NPROC). In the description of the argument lists, 'local' means that this argument or value may depend on the process id, and 'global' means that this argument has the same value on all processes.

## ARRAYS

All arrays A are declared in the main program with a maximal length LA. Mostly the array length can not be exactly determined before the first VECFEM run. So at first the lengths have to be estimated. If during the VECFEM run the array lengths are not sufficient, the correct length is printed and the calculation stops. Than you have to correct the array length and have to start your program again. VECFEM tries to get all informations to minimize the number of program starts.
According to the FORTRAN standard, we identify an array A(N1,N2,...,Ni) with the one-dimensional array A(LA) of length LA=N1*N2*...*Ni. We use the one-dimensional and more-dimensional notations for an array simultaneously. For instance, the array NOD(NN,DIM) equals the array NOD(LNOD), where LNOD=NN*DIM. The entry NOD(i,j) equals NOD(i+NN*(j-1)).

## COMPILATION

A description to compile a code calling a routine of the VECFEM library is given in vemcompile.

## REFERENCES

[THEOMAN]
  L. Grosz and C. Roll and W. Schoenauer: The Nonlinear Finite Element Solver VECFEM3: The Numerical Algorithms; University of Karlsruhe, Computing Center; Internal report 65/93; 1996.
[DATAMAN]
  L. Grosz and C. Roll and W. Schoenauer: Non-linear Finite Element Problems on Parallel Computers; in: J. Dongarra and J. Wasniewski: Parallel scientific Computing, First Int. Workshop, PARA'94, 1994, pp. 247-261.
[DATAMAN2]
  L. Grosz and P. Sternecker and W. Schoenauer: The Finite Element Tool Package VECFEM (Version 1.1); University of Karlsruhe; Computing Center; Internal report 45/91; 1991.
[LINSOL]
  R. Weiss, H. Haefner, W. Schoenauer: LINSOL (LINear SOLver) - Description and User's Guide for the Parallelized Version (DRAFT Version 0.96); University of Karlsruhe; Computing Center; Internal Report 61/95; 1995.
[P_MPI]
  H. Haefner: P_MPI User's Guide; University of Karlsruhe; Computing Center; 1996.
[I-DEAS]
  I-DEAS: User's Guide. Address: SDRC, Corporate Headquarters, 2000 Eastman Drive, Milford, Ohio 45150-2789, USA.
[PATRAN]
  PATRAN: User's Guide. Address: MSC, Corporate Headquarter, 815 Colorado Blvd., Los Angeles, CA 90041, USA.
[EnSight]
  EnSight: User Manual; Address: EI Computational Engineering International, Inc., PO Box 14306, Research Triangle Park, NC 27709, http://www.ceintl.com.
[DX]
  IBM Corporation: IBM Visualization Data Explorer; User's Guide; 1994. Address: .
[MAPLE]
  Maple User's Guide. Address: Symbolic Computation Group, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada N2L 3G1.
[Tcl/Tk]
  J.K. Ouserhout: Tcl and the Tk Toolkit; Addison-Wesley; 1994. \
[GNUPLOT]
  T. Williams , C. Kelley: GNUPLOT: An interactive Plotting Program; Dartmouth, 1986; e-mail:info-gnuplot@dartmouth.edu
[AVS]
  AVS User's Guide.
[FAQ]
  L. Grosz and S. Manias: Frequently Asked Questions on VECFEM; 1996. (not available)
[ISVAS]
  Karlson,K.; ISVAS 3.1, Interactive System for Visual Analysis, User's Guide, Fraunhofer-IGD, FIGD-93i006. Address: Kennet Karlsson, Fraunhofer-IGD, Wilhelminenstr. 7, D-64283 Darmstadt, Germany, e-mail: karlsson@igd.fhg.de.

## AUTHORS

The VECFEM tool package was developed by L. Grosz, C. Roll, P. Sternecker, W. Schoenauer, .B. Lagler, K. Schreiber, C. Gerke, C. Stocker, S. Scheffrahn, T. Nordmeyer, M. Moujahed, T. Schoenit and S. Manias at the 'Numerikforschung für Supercomputer' group (research department for numerical methods on supercomputers) at the computing centre of the University of Karlsruhe, Germany.

## COPYRIGHTS

Copyrights by Universitaet Karlsruhe, 1989-1996. Copyrights by Lutz Grosz, Canberra, 1997. All rights reserved.

## CONTACT

Lutz Grosz
Institute of Information and Mathematical Sciences
Massey University at Albany
Private Bag 102-904
NSMSC
Auckland
New Zealand

Tel: +64 9 443 9799 ext. 9258
Email: L.Grosz@massey.ac.nz

By Lutz Grosz, Auckland, May 2000