![]() ![]() ![]() ![]() |
This program was designed to be a free and SIMPLE alternative to the advanced commercial Finite Element codes available today. The guideline during the development of the program has been to keep things clear and simple in design.
Impact has been designed to be easily extendible and modular to enable programmers a way to easy add features to the program without having to enter other parts of the code. Impact has been written in Java. This choice of language may seem strange at first, but with the recent development of Java engines, speed penalty is not that significant. On the other hand, the Object Oriented features and the high portability of Java is a clear advantage for the future.
Impact is a Finite Element Code which is based on an Explicit Time stepping algorithm. These kind of codes are used to simulate dynamic phenomena such as car crashes and similar, usually involving large deformations.
There are quite few explicit codes around which might seem strange since the
other cousin (implicit finite element) are quite common. The implicit codes
are used to simulate static loads in structures. Something that explicit codes
does not manage very well.
Impact is written in Java
Impact is written in Java for two reasons:
1. Java is an Object Oriented language and that suits Finite Element Programming perfectly
2. Java is clean, simple and extremely portable.
On the other hand, Java might seem like a strange choice since this is a high performance number crunching type of software and Java is not known to be competitive to ex. Fortran or C++ in this area.
True, it is slower but with the new interpreters from IBM and Sun, the built in runtime compiling actually gets the speed up quite a bit so this is not such an issue after all.
Jonas Forssell | - | Development |
Yuriy Mikhaylovskiy | - | Development |
Nikolay Skiba | - | Development |
Galina Golovko | - | Development |
Bernhard Haumacher | - | Parallellisation |
Claus Wonnemann | - | Parallellisation |
Ruediger Heim | - | Interface development 1:st generation |
Waluyo Adi Siswanto | - | GiD Interface development |
Kjell Mattisson | - | Scientific advisor |
At the moment, Impact can only handle dynamic INCOMPRESSIBLE problems. Examples of problems with this kind of limitation is basically most real world dynamic problems. The following is a list of problems that Impact will be able to solve in the future.
The explicit code is based on the simple formula of F=M*A where F represents a force, M is the mass of a body and A is the resulting acceleration of that body.
All the code does is to calculate the acceleration for the body, use a small step in time to translate this acceleration into a little displacement of the body. This displacement is then used to calculate a responding force since the body is elastic and can be stretched (thus creating a reaction force). This force is then used to calculate an acceleration and then the process is repeated again from the beginning.
As long as the timestep is sufficiently small, the results are accurate.
There are a large number of books available on Finite Element Theory. Most of them describe Finite Element from a static point of view and is therefore of limited interest to the potential Impact programmer.
On the other hand, the theory of element formulation is often usable to a large extent and having that in mind, here are a few proposals:
The first book is recommended to beginners and engineers in general since it deals with most issues from a linear algebra perspective. This makes the code writing quite close to the Impact format. It is also a very good book and the one I have had best feedback from.
Ted Belytschko's book is the "bible" in this field. The man behind explicit codes have finally written a compendium on the theory and some principle algorithms are also shown. However, for an engineers perspective, this book is quite deep in its places and is more suitable as a reference than as a learning book for beginners.
There are also some papers written which are of interest:
These papers form the basis of coming shell element extension to Impact.
To understand the concept behind object orientation, inheritance etc, the following book is a pleasure to read:
Impact is a Java program which means that there is no compilation of sourcecode or similar to be done. However, there are some programs you need to install to be able to run Impact and to see the results.
Start by downloading the program files of impact from http://sourceforge.net/projects/impact
The file is a Impact-XXXX.zip file and must be untarred using the command tar -xvf Impact-XXXX.zip if you are running Linux. For Windows users the Winzip program will handle the expansion.
Prerequisites
To get Impact working you need:
A good Java engine is the Sun version which can be found at http://java.sun.com/javase/downloads/index.jsp. You can take either the Runtime environment or the Software Development Kit.
There are several alternative Java engines.
After installation, you can run the solver by going to the processor tab (assuming you have started impact GUI and then loading in one of the examples from the examples directory. Solution is then started by pressing the play button.
Impact will now create two outdatafiles:
These files can be read by the internal postprocessor or alternatively by GID preprocessor and postprocessor. Make sure to always select the .res file when viewing the results.