
VECFEM3 Reference ManualDESCRIPTIONThe finite element tool package VECFEM provides routines for the numerical solution of 1D, 2D and 3D functional equations over an arbitrary domain using the finite element method. VECFEM solves steady, nonsteady 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 TOOLSAll tools can be started from the ksh or bash shell.xvemXenvironment for the definition and solution of nonlinear functional equations.vembuildTool for the generation of a FORTRAN code for the solution of a steady or nonsteady, nonlinear functional equation.vemcompileTool for the compilation of a FORTRAN code that calls VECFEM routines.vemrunTool to start a VECFEM program.vemtarCreates a tarfile of data sets involved in the VECFEM calculation.vemhintTool to analyse the error output from VECFEM programs. See also vemlst.vempostBuilds a control/script file for postprocessing.
LIST OF FORTRAN77 SUBROUTINES OF THE VECFEM LIBRARY:vemdisThe 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.veme00The subroutine solves a linear, steady functional equationL(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. veme02The subroutine solves a nonlinear, steady functional equationF{u}(v)=0for 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 nonlinear, discretized equation. In every iteration step lsolpp is called to solve the system of linear equations. vemp02The subroutine solves a nonlinear, nonsteady functional equationF{t,u,ut}(v)=0for the unknown, tdependent function u using the finite element method in space direction. In the time direction the finite differences method with selfadapted step size and order control is used. In every time step vemp02 solves a system of nonlinear equations by the Newton method. In every iteration step lsolpp is called to solve the system of linear equations. vemu01The subroutine prints the finite element mesh.vemu02The subroutine reads a userdefined mesh from an external data set in the listdirected format. The data format to be used for such an external data set is specified in the vemu02 manual page.vemu03The 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.vemu04The 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.vemu05The 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.vemu06The 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.vemu07The 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.vemu08The subroutine sets the initial guess for the steady solver veme02 and the nonsteady solver vemp02.vemu09The subroutine evaluates values given at the geometrical nodes of the FEM mesh at the centre points of the elements.vemfreThe 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.vemge2The 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.patvemPATRAN 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.vempatPATRAN 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.idevemIDEAS 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 IDEAS can be used for the generation of geometrical meshes. The subroutine idve97 reads a nodal result file to set a solution.vemideIDEAS 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 IDEAS for postprocessing. The routine veid97 creates a nodal result file and veid99 creates an element result file.vemisvISVAS 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 postprocessing. The routine veis97 creates a variable field file.vemensEnsight is a postprocessor program for the finite element method. The subroutine vemens creates the geometry file. The file can be read by EnSight for postprocessing. The routine veen97 creates a variable file.vemavsAVS is a visualization tool for 3D data. The subroutine vemavs creates a UCD file (unstructured call data file).vemdxDataExplorer 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.vegp97The subroutine writes a result file, which can be read by easy postprocessors like Gnuplot or Excel.
PARALLELISMThe 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.
NOTATIONSIn 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.
ARRAYSAll 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 onedimensional array A(LA) of length LA=N1*N2*...*Ni. We use the onedimensional and moredimensional 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*(j1)).
COMPILATIONA description to compile a code calling a routine of the VECFEM library is given in vemcompile.
REFERENCES
AUTHORSThe 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.
COPYRIGHTSCopyrights by Universitaet Karlsruhe, 19891996. Copyrights by Lutz Grosz, Canberra, 1997. All rights reserved.
CONTACTLutz GroszInstitute of Information and Mathematical Sciences Massey University at Albany Private Bag 102904 NSMSC Auckland New Zealand Tel: +64 9 443 9799 ext. 9258
By Lutz Grosz, Auckland, May 2000 