This is the README file for the alpha release of Felt  - a package for
introductory finite element analysis.

FElt (Finite ELemenT) is a mathematical package intended for introductory 
finite element work.  It is not intended as a replacement for cutting
edge or real-world research code.  At this stage FElt consists of
of three components.  The first is the basic mathematical engine (the actual
felt command-line application) which includes an intelligent parser and 
straightforward inputfile syntax.  Because FElt is intended to be fairly simple 
(at this stage of development at least) and because the authors' backgrounds 
are largely in structural engineering, the element library is fairly small at
this point.  Truss (bar), two- and three-dimensional beam, CST (plane stress 
and plane strain) and iso-parametric (four to nine node) two-dimensional 
elements are all currently supported.  Adding additional elements to the 
library is intended to be a straightforward exercise, if for example, such
a project were to be given as an exercise in an introductory finite element
course.  As of this release, only linear static analysis is supported 
(sorry ... linear dynamic analysis is in the works but we wanted to get a
version out the door and stabile before the fall term started).  

In addition to the command line application version, there is xfelt,  
an X11 based encapsulator for felt which provides a graphical text-editor 
and two- and three-dimensional viewing of the structure.  You can edit 
the actual text file, solve the problem (xfelt actually execs the felt
application), graphically view the structure and save and print results
from within the xfelt gui.

Velvet is a full-featured X11 interface to the two-dimensional functionality 
of felt and corduroy.   Unlike xfelt, velvet is fully self-contained - it is 
intended as the primary graphical user interface and along with the 
mathematical engine is where most future development will occur.  Within 
velvet a user can interactively set-up, model, and solve a FElt problem 
through a menu driven, CAD-like interface with no reliance on traditional 
text based input files (as in felt, corduroy and even xfelt).  Velvet does 
not currently provide any real access to the three-dimensional aspects of 
FElt. 

Features:

	o Easy to use.  Intelligent parsers mean that there are no files
          of comma delimited lists of numbers like you see in a lot of 
          other FE codes used in introductory courses.  Velvet provides
	  a full-featured, interactive problem editor.

	o Portable. Felt and corduroy should compile on any reasonable
	  Un*x system.  There is also a DOS version of the felt program
          only (including a simple utility for structural visualization,
	  drop one of us a note if you're interested).  Velvet is built 
	  around the public domain Athena widget set using 
          X11R5 ... R4 should work as well.  Either regular or 3d Athena 
	  widgets work (we prefer the 3d).  The package was 
	  developed on 386's running Linux; it has also been tested on 386's 
	  running SysV R3.2, HP 700's, and Suns.  We can provide binaries 
	  for any of the above systems if there is an interest.

Caveats:
	
	o Remember, this is meant largely as a teaching tool.  In most
	  cases in the code we have sacrificed efficiency in favor of
 	  readability.  It is not our intention to be solving anyone's
 	  cutting edge research problems ... the project was born out of
	  a fit of "we can do better than that" based on some antiquated
	  Fortran code we had been using.  

	o On that same note (and this is only a caveat to devoted
	  believers in the Fortran way of life) the entire package
	  is coded in C (with the exception of the Barry Joe's Geompk
	  routines ... they are in Fortran and we have not modified
  	  them except where the interface is concerned).  This really
	  shouldn't be a problem; we think the code is very readable and C's
	  data structures lend themselves quite readily to keeping
	  track of nodes and elements and forces and constraints and such.
	  Also, we can do dynamic memory allocation without a lot of 
	  hocus pocus and have long variable names, so the code is 
	  usually pretty easy to follow
	  
The file felt.ps included in this distribution is a postscript document
providing a user's manual for the entire package, including mathematical
and algorithmic details and programming notes.  Man pages are available
which briefly describe each individual application.

For installation instructions see the file INSTALL.  The best way to get
a feel for the package is to use it.  Several examples are provided 
in the etc/Tests/ directory. 

The FElt package is free software. This means that you can redistribute it 
and/or modify it under the terms of the GNU General Public License, a copy of 
which is provided in the file COPYING.  (Excluding the Geompk routines which 
are covered under their own terms, see the README file in lib/Generate/Geompk
for details.)  Given the way in which it was developed, we wouldn't 
want it any other way ... Linux is a Unix-like OS, based on a free kernel, 
free development tools (gcc) and hundreds of free utilities (GNU, etc.).
(And not only is it free, but it runs circles around most commercial Un*ces
available for the 386).  The entire graphical environment (X11 and the 
Athena widget set) is also free.  What a concept ... 

Lastly, we would like to stress that feedback would be greatly appreciated ... 
this is an alpha release and we welcome all comments as to usability and 
functionality.  Mail bug reports, comments, hints, suggestion, complaints,
etc. to one of us at the email addresses below.  Our one wish in life is 
that people find the package useful (well, maybe not, but you get 
the point ...)

Jason Gobat					Darren Atkinson
jgobat@ucsd.edu					atkinson@ucsd.edu
