
                             SLFFEA 1.1  MANUAL

                    Copyright (C) 1999 San Le

                    email:     slffea@juno.com
                    homepage:  http://www.geocities.com/slffea/slffea.html


Executables:
-----------

After a successful make, you will have created the following executables:

       directory                         executable       purpose
 
    slffea-1.1/beam/beam/                bm               beam FEA
    slffea-1.1/beam/beam/                bmp              generates beam patch test data *
    slffea-1.1/beam/beam_gr/             bmpost           beam gui

    slffea-1.1/brick/brick/              br               brick FEA
    slffea-1.1/brick/brick/              brp              helps generates brick patch test data *
    slffea-1.1/brick/brick_nl/           nbr              non-linear brick FEA
    slffea-1.1/brick/brick_gr/           brpost           brick gui
    slffea-1.1/brick/brick_gr/           pvbr             prepares OpenInventor brick data
    slffea-1.1/brick/brick2/             br2              thermal brick with orthotropy FEA
    slffea-1.1/brick/brick2gr/           br2post          thermal brick with orthotropy gui

    slffea-1.1/plate/plate/              pl               plate FEA
    slffea-1.1/plate/plate/              plp              helps generates plate patch test data *
    slffea-1.1/plate/plate_gr/           plpost           plate gui

    slffea-1.1/quad/quad/                qd               quad FEA
    slffea-1.1/quad/quad/                qdp              helps generates quad patch test data *
    slffea-1.1/quad/quad_gr/             qdpost           quad gui

    slffea-1.1/shell/shell/              shl              shell FEA
    slffea-1.1/shell/shell/              shp              helps generates shell patch test data *
    slffea-1.1/shell/shell_gr/           shpost           shell gui
    slffea-1.1/shell/shell_gr/           pvs              prepares OpenInventor shell data

    slffea-1.1/truss/truss/              ts               truss FEA
    slffea-1.1/truss/truss_gr/           tspost           truss gui

* You don't have to worry about the patch test executables, since the various
  data sets for patch tests have already been prepared.

There are a few mesh generators which you may be interested in.  You have to compile
them yourself though.  For example, do a:

    cc meshball.c -lm

    For brick:
       slffea-1.1/brick/brick/meshball.c                  generates ball mesh 
       slffea-1.1/brick/brick/meshring.c                  generates ring mesh 
       slffea-1.1/brick/brick/meshwedge.c                 generates wedge mesh 

    For brick and brick 2:
       slffea-1.1/brick/brick/meshfin.c                   generates fin mesh 

    For shell and brick:
       slffea-1.1/brick/brick/meshcyl.c                   generates roof mesh 

    For quad:
       slffea-1.1/quad/quad/meshinc.c                     generates inclusion mesh 

Data:
----

Sample data sets are contained in the directory slffea-1.1/data/.  There are 6
directories corresponding to the 6 element types:

        directory                    data type

     slffea-1.1/data/bm/              beam
     slffea-1.1/data/br/              brick
     slffea-1.1/data/br2/             thermal brick with orthotropy 
     slffea-1.1/data/pl/              plate
     slffea-1.1/data/qd/              quad
     slffea-1.1/data/sh/              shell
     slffea-1.1/data/ts/              truss

Using the Code:
--------------

To use the code, hopefully you have set up your ~/.profile or ~/.cshrc so that you
can run the particular element executable from any directory.  When you run a program,
it will ask you for the input file.  Then it generates an output file which has an
extension corresponding to the element type.  For instance, running the brick would
look like the following:

    %cd ~/slffea-1.1/data/br
    %br
    What is the name of the file containing the 
    brick structural data?
    torsion

The code then reads in the file "torsion".  You should see the data being printed
out as it is read in.  I print out the data since this is the best way to see if
and where you have errors in your file.  Usually, the program will core dump
if you have errors.  

After doing calculations, there will be an output file called:

    torsion.obr

You can then run the post-processor for the brick: 

    %brpost
    What is the name of the input file containing the 
    brick structural data?
    torsion

and brpost will look for torsion.obr. 

IMPORTANT NOTE: Although I have "post" in the names of the GUIs, they
  can also be used as pre-processors.  For instance, if you just want
  to look at your input file and have not done analysis on it, you can
  run brpost, put in "torsion" and brpost will show you the mesh.  You can
  also only have a post file like "torsion.obr" without the input file and
  brpost will still work.  My GUIs, depending on the last four letters in
  the file name you type in after prompting, search for either a input file
  or a post file and works whether one or the other or both exist.


Additional Notes:
----------------

There are a few additional READMEs in some of the scientific code directories.
You should pay special attention to the shell and non-linear brick READMEs
because for the shell, I'm not quite satisfied with the results of the roof benchmark
problem which shows the element may be a bit stiff, and the non-linear brick which
requires some experimentation so that your input parameters keep the calculations
stable and there are enough iterations for convergence.

You should also be aware that for the color coding of stress, strain, moment and
curvature looks to be discontinuous across an element boundary.  This is because
they are discontinuous.  I base color assignments on the values at Gauss points, but
I suspect most commercial codes extrapolate the stress data to the nodes, then
average all the stresses at that node.  By doing it this way, data looks continuous
across a boundary.  This is why my displacement and angle color assignments, which
are nodal based, look continuous.  If you are bothered by the abrupt changes in
color and you want to average at nodal points, I do have examples in my code to
show you how to get values at nodes.  In the future, I will probably change the
data so that it will be at nodes to save space.  The element "brick2" already
does this.  You can see it in ~/slffea-1.1/brick/brick2.

