FeResPost
library
Purpose
of FeResPost
FeResPost
is a
library that allows the rapid development of small programs to be
used to automate the post-processing of structural analysis finite
element results.
Structural
analysis
The
structure analysis of complex structures often leads to repetitive
tasks. This is related to :
- The nature of the structure
that is being analysed. Identical or similar components are often
present several times, and sometimes many times, in the same structure
(beams, panels, interfaces, connections...). These different parts or
components are generally justified exactly the same way, and the
corresponding calculation is often automated (with a programming
language, excel...).
- A structure is rarely sized
for a single event, or checked again a single requirement. Generally,
for static analysis, numerous load case are defined to ensure that the
structure's strength is sufficient to sustain severel events in its
life. This means that for each component, or each type of failure mode,
the calculations is often done as many times as the number of defined
load cases.
- During the development of
the structure, the design will be updated several times. Sometimes,
several versions of a structure may be justified simultaneously, or
consecutively. (Think, for example, at the different versions of the
B737 Boeing or A320 Airbus planes that are flying nowadays.)
This also contribute to the repititiveness of structural analysis
calculations.
This
explains why engineers involved in structural analysis are often also
programmers. The need for automation leads them to use spreadsheets,
use third party programs to accelerate the justification, or write its
own post-processing programs. FeResPost
can help in the development of these small programs!
How we can help?
The
main
purpose of the program is to download and manipulate Result entities
in order to calculate margins of safety. Possible operations that can
be performed on ``Result'' objects are, for example :
- Extraction of the Results
corresponding to a group of elements or nodes.
- Modification
of the reference coordinate system,
- Calculation
of total force and moment corresponding to a distribution of loads,
- Derivation
of criteria like Von Mises for a stress tensor, the norm of a
vectors, the eigen-values and corresponding eigen-vectors for tensorial
results...
- Operations
combining several results (sum, difference, product, merging of
Results...),
- Derivation
of new Results (for example, laminated Results),
- Extraction of maximum or
minimum values, and corresponding finite element entities (elements,
nodes...),
- ...
So
far, these results can be read from Nastran XDB or OP2 files, or from
Samcef DES/FAC files. The corresponding finite element models can also
be important from Nastran Bulk BDF files, or Samcef Bacon DAT files.
The
groups of elements and nodes can be read from Samcef DAT or Patran
session files. Manipulation of these Groups, by addition, substraction,
intersection, associations are possible.
FeResPost
allows the
simultaneous manipulation of several models by defining several
NastranDb and SamcefDb objects, and different Nastran and
Samcef models can be manipulated simultaneously.
FeResPost
also allows the calculation of composite structure by providing
severeal classes for the Classical
Laminate Analysis (CLA).
Among other things, the CLA classes of FeResPost allow to :
- Evaluate Laminate properties
(equivalent moduli, stiffness and compliance matrices, coefficient of
thermal expansion).
- Calculate laminate analysis
response corresponding to a specified loading (laminate loads and
deformation, ply stresses and strains,...)
- Evaluate laminate strength
by calculating different failure criteria.
- ...
The
CLA classes can be used separately from the finite element results, but
also
used together with finite element results.
This allows for example to:
- Calculate,
at post-processing level, with a single command, the laminate response
using shell forces, moments, temperatures on a large set of elements.
- Do this calculation with the
finite element model laminates, or with different laminates,
- Estimate failure criteria
that are no proposed by the finite element solver being used
- ...
Classes
and Modules
The
library provides an access to
7 classes
and 2 module allowing the manipulation of FE entities and
results. The 7 classes are :
- The
``DataBase'' class that is used to store
a FE model and other entities
(Groups, Results,...). This class is a generic class that can not be
instanciated. Two classes inherit the DataBase class:
- The
``NastranDb'' class that is used for the manipulation of Nastran models
and Results.
- The
``SamcefDb'' class that is used for the manipulation of Samcef models
and Results.
- The
``Result'' class that allows the manipulation of Results, thier
transformation,...
- The
``ResKeyList'' class, very useful to manipulate Result entities.
- The
``Group'' class that allows the definition of Groups, thier
manipulation, the extraction of Results on small parts of the
structure.
- The
``CoordSys'' class for the manipulation of coordinate systems (still to
be done)
The
``Post'' module gives access
to several additional functions.
Four
classes used to perform
Classical Laminate Analysis calculations are also provided:
- The
``ClaDb'' class that stores composite entities,
- The
``ClaMat'' class used to mainpulate materials,
- The
``ClaLam'' class to store laminates and perform CLA calculations
- The
``ClaLoad'' class used to manipulate loadings applied to Laminates.
The
CLA classes are interfaced
with the rest of FeResPost and allow to post-process very efficiently
composite finite element Results.
The
program
is mainly written in C++, and the ruby extension is build as a
wrapping around a C++ library. This solution ensures that the program
is easy to manage and that the program remains efficient because
costly operations are done at C++ level (compiled language
efficiency).
License
FeResPost
is distributed as a
GPL resource. This means that it is
free, and that you can modify and re-distribute it gratis as long as
you comply with ther therms of the GPL license. (These are given in an
Appendix of the User Manual. See below.)
System
requirements
Solvers
So
far, Results of Nastran and Samcef solvers can be post-processed.
Nastran
Finite element models can be read either from a BDF (bulk data file),
or an op2 file. Groups can be build by reading Patran sessions files
obtained with the utilities of Patran.
Results
can be read from OP2 or XDB files. The most commonly used
types of elements are supported. For XDB files, it is also possible to
extract results by random access (XDB attachment).
Samcef
Finite element models can be read from a dat file obtained by a
".sauve banque" Bacon command.
Results
can be read or accessed randomly from DES/FAC files.
Operating
systems and programming languages
The
library is distributed as a ruby extension
(LINUX and Windows), as a COM component (Windows only) and as a .NET
assembly (Windows only). In order to use FeResPost you need to
install first one of the corresponding programming languages :
- Ruby if you wish to use the ruby extension. (Binaries are
distributed for Linux and Windows operating systems, but a
recompilation of the sources allow the installation of FeResPost on
other OSs.)
- The COM component can be used with many languages, but on Windows
OS only. Testst have been done with Ruby, Python, C++, VBA (in excel).
Other languages like C, Java should also be capable of using the COM
component.
- All the .NET languages should be able to use the .NET assembly.
This includes VB.NET, IronRuby, Java.NET, C#. Tests have been done with
C# language only. (See the examples.)
The
programming language in
which all those operations are programmed is object oriented and
allows the development of very sophisticated and large
post-processing programs, or very small tools, according to the
wishes of the programmer.
Other
resources
Besides
the installation of the programming language you wish to use, a few
other programs may help you to develop scripts using FeResPost. The
examples distributed on this web site and discussed in the User Manual
sometimes assume that thos programs have been installed on your
computer. For example:
- FeResPost allows to save Nastran and Samcef DataBases or
intermediate results in GMSH files for later
visualisation. You do not needs in GMSH files to run the
example. the program is necessary if you want to visualize what you
have saved, so you better install it on your computer. It is free, very
easy to install, and distributed under the GPL license.
- The Result class has a member function for conversion from/to
BLOB (Binary Large Objects) for interaction with SQL databases. Several
examples illustrate the use of these conversion methods. These examples
make use of the SQLite database
system. The corresponding library is free, open source, but needs to be
installed if you want to run the corresponding examples.
- Some examples that use the COM component are written in the VBA
code of excel spreadsheets. Of course, you need excel if you want to
run these examples.
Downloads
Latest
version is version
4.1.8!
Manuals
An
online HTML manual is available, but we advise to download the PDF
version :
The
manual presents the different classes defined in FeResPost library,
with the associated properties and methods. It also illustrates the use
of different FeResPost objects with examples. (See below.)
Examples
One
distributes two archives containing the examples. (The content of these
two files are the same.)
The
examples contain a small satellite Nastran finite element model, and
numerous post-processing examples :
- Manipulation of Groups and
Results with FeResPost Ruby extension,
- Use of the COM component
with several programming languages (Ruby, Python, VBA, C++),
- Use of the .NET assembly
with C# examples.
- ...
Some
of these examples are very small and illustrate simple extraction of
results from XDB or OP2 files, with a very limited number of
manipulations. But one also proposes examples corresponding to entire
post-processing projects that could be used readily in a real project.
(These examples are provided as Ruby programs, or in excel workbooks.)
One suggest however, that the user reads the examples in the order in
which they are defined, starting with the ruby examples, as this is the
only way to really understand the use of FeResPost objects.
Sources
As
FeResPost is distributed under the GPL license, the sources are also
distributed for re-compilation or modification and re-distribution :
Binaries
and older versions
Binaries
are distributed for several versions of FeResPost and include ruby
extensions for Linux and Windows, COM component for Windows, and a .NET
assembly. The FeResPost C++ library is also distributed for latest
versions, but one recommends to use static linking for your own
programs and to recompile yourself the FeResPost classes.
Sources
of FeResPost are distributed for the different published versions of
the library. These include the C/C++ sources, the examples, and
possibly the PDF manual.
Third party contributions
One
also distributes a third-party contribution, but without any support :
Mailing
lists
You
can visit
or subscribe to FeResPost Google group :
If
you have a question to ask, a bug to report, we would appreciate that
you do it via FeResPost google group, so that others can benefit of
your remarks as well.
You
can also subscribe to the freshmeat
FeResPost mailing list if
you
want to be automatically warned
about new major revisions of FeResPost. Similar mailing lists are also
available on other websites as Softpedia (for Linux or Windows).