FEAP - - A Finite Element Analysis Program


General:

FEAP is a multi-purpose finite element program written by Prof. R.L. Taylor for the solution of static and dynamic linear and nonlinear problems.  The program is distributed as open source and is very useful for research, element, and architecture development.  For information on obtaining the program please see the FEAP web page. See also the FEAP wiki for additional information. Documentation for the program is also downloadable from that web page. This page provides some examples and added documentation on using the program.



Example user defined interfaces:

 
User Memory Allocation
  •  The UALLOC interface allows users to create, delete, and resize their own arrays within the FEAP memory management system.  Some simple examples.

  •  
    User Defined Macros
  • An example that translates binary restart files from an SGI machine to a DEC alpha machine written in C.

  • The distributed user interfaces are in FORTRAN but the can also be used in C.  Here is the stub file for umacro2.f converted to C.

  • A user macro to create element and node graphs and partition them with the METIS library.

  • A user macro that implements the Broyden Quasi-Newton method for unsymmetric problems

  • Here is an example of using a user macro command to allow for the making of movies and animations in FEAP. User macros are written as well as some modifications to x11u.c

  • A user macro that produces output files that can be read by Paraview. Usage ' PVIEw,[time | filename]'. This will produce a file with the name filename. If you have already solved the problem, the displacement will be available to you for plotting. If you first project the stresses via 'stress,node' or via a plot command, then the stresses and principal stresses will also appear in the paraview file. If you use the 'time' option instead of a filename, then it will create a file named PxxxxYYYYY.vtu, where xxxx is your problem name and YYYYY is the step number within your analysis. These files can be easily assembeled into a paraview collection file for making paraview movies etc. Here is an awk script that shows one way of doing this when running parallel FEAP jobs. Save the output as a *.pvd file.

  •  
    User Defined Mesh Commands

  • An example user mesh command that applies a twisting boundary displacement to a plane of nodes.

  •  
    User Defined Plot Commands

  • An example user plot command that plots heat transfer flux vectors for 2D heat transfer problems.

  •  
    User Defined Material Models
  • An example user material model for a Cubic Saint-Venant Material (finite and small deformation) N.B.: these files are for version 7.4 of the code. The user model interface has changed. See the microsphere model below for an example of the current interface structure.

  • A MATLAB routine for testing material level tangents (finite deformation)

  • An implementation of the Miehe, Goektepe, and Lulei microsphere model

  •  

    User Defined Time Integrators

  • FEAP allows for user defined time integrators in a fairly flexible fashion. Here is a report by Karl Steeger on implementing the Wilson-theta time integrator into FEAP. This is a fairly complex scheme and illustrates many of the issues one must grapple with when adding one's own time integrator.
     

    User Defined Elements

  • Feap allows one to add ones own elements.  Normally these are done using FORTRAN but it is also possible to do this in C.  Here is an example of a linear viscoelastic element that is written in C.
  • Example user element for a Lysmer-Kuhlemeyer damper in 2D Cartessian as well as axis-symmetric problems when coupled with linear or bi-linear elements.
     

    User Defined Load Curves

  • Feap allows one to add ones own proportional load curve functions to the main program.  This done through the uprop.f interface.  Here is an example uprop.f that implements a Haversine function.

  • Example Input Files:

     
  • An example using follower loads and pressure elements: Ifollow.
  • An example using the LINK command to prestress a component, glue it to another unstressed one, and then release the system and let it come to equilibrium: Ilink3.
  •