Image Gallery











Periodic Table

Stuff About Me

San Le



Updates to SLFFEA

Updated 8/9/06

Here is a summary of the updates as of 8/9/06:

For data with prestressed elements for the triangle and tetrahedral elements, I had to make a slight modification of the *reader.c codes. Because the stresses are constant throughout each element, there is no gauss data point data to read. So I removed the lines:
                fscanf( o4,"%d",&dum2);
                printf( " node (%1d)",dum2);
in /slffea-1.*/tetra/tetra/tereader.c and ~/slffea-1.*/tri/tri/trreader.c for the tetrahedron and triangle respectively. In tereader.c, these lines occur at around line 215 and in the triangle, they occur around line 194. Most people won't be affected by this unless you use prestressed elements.

Here is a summary of the updates as of 3/12/06:

The mesh generator for the Saint Venant problem needed to be fixed. Somehow, the good version was lost and I only had an earlier not finished code in its place. The generator is for the brick element:

Here is a summary of the updates as of 3/6/06:

Took a break to work on SLFCFD. You can see it at:

Here is a summary of the updates as of 5/15/05:

I've modified the shell code so that it can handle shells defined by 4 nodes in addition to 8 nodes. If the shell is defined by 4 nodes only, you will need to specify a thickness. NOTE THAT 4 NODE SHELLS ARE NOT NECESSARILY SHELLS OF CONSTANT THICKNESS! Here is some information on the new element:
  • The thicknesses of 4 node shells will be averaged over the shared nodes of adjacent elements to generate a set of corresponding top nodes.
  • As an example, the first part of a new shell data file might look like:
       numel numnp nmat nmode integ_flag This is a shell cylinder
         56   72    8    0    1
     matl no., E mod., Poiss. Ratio, density, shear fac. , thickness
        0 393000000.0000    0.3300 2770.0000    0.8333   4.0
        1 432000000.0000    0.3300 2770.0000    0.8333   2.0
        2 392000000.0000    0.3100 2770.0000    0.8333   1.414
        3 389000000.0000    0.3300 2770.0000    0.8333   1.0
        4 322300000.0000    0.3300 2770.0000    0.8333   1.0
        5 392900000.0000    0.0000 2770.0000    0.8333   1.414
        6 922000000.0000    0.0000 2770.0000    0.8333   2.0
        7 432000000.0000    0.3300 2770.0000    0.8333   4.0
  • I take the cross product of shell edges to get normals at nodes, which are then used to generate corresponding top nodes.
  • This shell code can still read the old shell data files.
  • The graphics code for the shell was modified to handle the new data format although it will still work with the old.
  • I am providing 2 new meshes which illustrate this new element. One is the roof problem now defined by 4 node shells.
These changes are significant, but I will continue to call it version 1.27.

Here is a summary of the updates as of 3/17/05:

This is the first update I have made in about 2 years. It pertains mostly to the beam element, but there were small fixes in everything else as well as the earlier codes. The additions to the beam include:

  • Added 2 new beam element types.
    1. Added Reisner-Midlin (shear deformable) Beam
    2. Added hinge element
  • The beam also writes out stress and strain components xy and zx. For some elements, like the truss, these components are zero. This can be true for the Euler-Bernoulli non-shear deformable beam as well, and you can see the file ~/slffea-1.3/beam/beam/notes to read what it means when these values are non-zero. I also maintain a lot of extra code which allows you to compare the different methods of calculation. I expected that all the different methods should ultimately give the same results, so I did an extensive study to confirm this. So while there are only 4 distinct elements, there are actually a total of 9 element types. You can read about all this in the "notes" files.
  • This beam code can still read the old beam data files, although the output will reflect the new data format.
  • The graphics code for the beam was modified to handle the new data format although it will still work with the old.
These changes are significant, so I will bump the version number to 1.27. Of course, it will still extract the tarfile to slffea-1.3.

Here is a summary of the updates as of 1/29/03:

Fixed a bug in truss Makefile for all versions. At approximately line 66 in:
tswirter.o: tswirter.c
        $(CC) -c tswirter.c
tswriter.o: tswriter.c
        $(CC) -c tswriter.c
Somehow, the compiler is able to overcome this typo.

I've also added a large deformation truss element for slffea-1.25. This element has some interesting properties which you can read about in:


Here is a summary of the updates as of 1/15/03:

Fixed a bug in truss graphics code for all versions. At approximately line 450 - 500 in:
        if( !input_flag )
            for ( i = 0; i < numnp; ++i)
                *(coord0 + nsd*i) = *(coord+nsd*i) + *(U+ndof*i);
                *(coord0 + nsd*i + 1) = *(coord+nsd*i+1) + *(U+ndof*i+1);
                *(coord0 + nsd*i + 2) = *(coord+nsd*i+2) + *(U+ndof*i+2);
        if( !input_flag )
            for ( i = 0; i < numnp; ++i)
                *(coord0 + nsd*i) = *(coord+nsd*i) - *(U+ndof*i);
                *(coord0 + nsd*i + 1) = *(coord+nsd*i+1) - *(U+ndof*i+1);
                *(coord0 + nsd*i + 2) = *(coord+nsd*i+2) - *(U+ndof*i+2);
Also, the pre-compiled binary package slffeabin.tgz for slffea-1.0 is now compiled using dynamic Mesa libraries rather than static. This makes the tarfile much smaller and since most Linux distributions come with Mesa, there should be no problem.

Here is a summary of the updates as of 7/10/02:

This isn't really a bug but an omission. For the truss codes, I forgot to replace a few instances of bzero with memset. You can make the change yourself by replacing all the bzero's with memset's in the codes:
Unix and Linux users should see no difference, only those trying to compile on Windows. Thanks to Erik Hansen for pointing this out.

Here is a summary of the updates as of 6/20/02:

Fixed a very minor bug in both science and graphics codes. To make the fix yourself, edit in the science directories of all the elements the file *id.c changing line 28 from:
        int dof, neqn;
        extern int dof, neqn;
and in *lanczos.c, on line 43, from:
        int iteration_max;
        extern int iteration_max;
In the graphics, change line 31 of ~/slffea-1.*/common_gr/mshcommon.c from:
double AxisMax_x, AxisMax_y, AxisMax_z, AxisMin_x, AxisMin_y, AxisMin_z;
extern double AxisMax_x, AxisMax_y, AxisMax_z, AxisMin_x, AxisMin_y, AxisMin_z;
and in ~/slffea-1.*/beam/beam_gr/bmmshdsp.c, line 43 from:
XYZF_GR *dist_load_vec;
extern XYZF_GR *dist_load_vec;
I've had this type of bug before, and gcc never catches it. Thanks to Tom Impelluso, for finding it by compiling on an SGI.

Here is a summary of the updates as of 1/28/02:

I've just released a new development code, which I will call slffea-1.25, although the extracted tarfile will produce a slffea-1.3 directory. In this release, I have only modified the graphics:
  1. I rescale the entire mesh coordinates and displacements based on the absolute largest coordinate dimension. This was necessary because the graphical display had a problem when dimensions were larger than 1000 or smaller than .1.
  2. I added a transparency feature where you can see through the mesh.(Press the hotkey "t").
  3. I added toggling on and off of the wire frame. (Press the hotkey "j").
  4. The numbering of hash marks on the axes is also improved. Now the numbers maintain their orientation with the viewer.

Beyond the above, I'm still deciding what I should work on next. Currently, I'm inclined towards the EM code, which if successful, will move things up to version 1.3. This code is pretty stable so you should probably use it instead of 1.2.

On January 10th, 2002 I presented SLFFEA Version 1.2 at KPLUG - Kernel Panic Linux Users Group - San Diego . The meeting was held at:

Room: 401 & 402
San Diego County Office of Education
6401 Linda Vista Road
San Diego, CA
Time: 7:00 to 9:00 PM

Here is a summary of the updates as of 11/27/01:

Version 1.2 is finally here.

You can get it at the download page. There have been major changes made to the code as well as input files. Here are the most significant:

Science Code Changes
Graphics Code Changes

I will reiterate the notes for when I put up the development code on 7/14/01:
  1. Rendering improved-Now rendering retains the colors of the current analyzed quantity.
  2. Cutting planes-This is a very exciting addition to the GUI because it allows you to cut away layers of the mesh and look inside. Please use it. Press the hotkey "s" and the cutting planes will appear. Now you can use the arrow keys to move the x and y cutting planes. Also, < and > move the z cutting plane.
  3. Labeled axes-I have added numerical labeling of the hash marks on the axes.
Go here to see the previous update page listing the modifications leading to Version 1.2.
Go here to see the previous update page listing the modifications leading to Version 1.1.

Get San Le's Free Finite Element
Analysis at Fast, secure and Free Open Source software