|
System requirements
- Linux system with 1 processor or a cluster of AMD or Intel CPUs. The GNU compilers or Intel's compilers are required.
- IBM SP computer with power CPU installed. In this system, only the computations without adaptive refinement are tested.
- Maple program.
- Mesh generation software. This is generally not part of the femLego package; the mesh is expected to be found in a file produced by some other application. The current femLego version supports several mesh format:
- The GMSH mesh format can be directly read to femLego.
- The neutral mesh format as the output of Gambit or CFX mesh generators. This can be directly read to femLego.
- Mesh created from femlab can be converted to readable format by a simple matlab program (f2f.m). This program can be found in tools directory.
- However, some tools to make very simple meshes are included in the distribution. These are found in femLego_dist/tools/Mesh. See the README files for instructions on how to use them.
- Visualization program. This is not part of the femLego package, output is written to files that are expected to be viewed using other applications. The output file format that femLego can generate are readable by AVS, AVS/Express or OpenDX program.
Installing femLEGO
- In order to use femLego, first you have to download a copy of femLego and place it in a convenient location in your home directory. It can be downloaded from here.
- Unpack the downloaded file using the command: gunzip -c dist.tar.gz | tar xf -
- After unpacking, you will have a new directory called femLego_dist at the current directory. Let's change the current directory to femLego_dist. Make sure that you have the following necessary directories:
- femLegoLib - a library that contains all the C, C++ and Fortran and Maple source codes, include files and other utility files needed to build a specific set of codes to solve a particular problem.
- libExt - an external library which contains Parmetis, a parallel graph partitioning and Aztec, an iterative library that solves the linear system of equations. There is also a simple version of MPICH library that is already compiled for a Linux machine. But it is strongly recommended to use the installed MPI version in the computer that you are going to run. Or download and compile the full version of MPICH in order to avoid any problems of the network connection on this system if they may have. The link to download MPI library can be found here.
- config - responsible for configuring the package to adapt to the system that is being used.
- tools - external programs for mesh generation or conversion.
- There are several example directories: little_example, NavierStokes, 3D_example, etc. More information about these examples can be found in the examples site.
- If you do not have a .mapleinit file in your $HOME, copy femLego_dist/.mapleinit to your $HOME. Otherwise, add the contents of femLego_dist/.mapleinit to the existing $HOME/.mapleinit file.
- The external libraries are distributed together with femLego package in binary format that can be used in a Linux system with GLIB 2.2. For better optimization and hardware compatibility you should switch to the MPI library that was compiled and installed on your system. Aztec and ParMetis libraries can be compiled from the source code simply. Go to links page to download them from original website or go to download page to download them from the local store.
Note: The femLego library (femLego.m) is already compiled and ready to use with Maple 9. In case you don't have this Maple version or if you want to change the library code, you can recompile it yourself. The instruction to do it can be found here.
Getting started to solve a problem.
Creating a working directory at the same directory level with the femLegoLib. For example: If femLego is installed at femLego_dist, then the femLegoLib will be placed at femLego_dist/femLegoLib. With that, all new working directories should be placed at femLego_dist/(here).
- From the working directory calls ../configure [OPTIONS] to preset all you need. Some of the more commonly used 'configure' options are described here
--with-NO-ADAPT |
Configure for a computation without adaptive |
--with-2D-ADAPT |
Configure for 2D adaptive refinement |
--with-3D-ADAPT |
Configure for 3D adaptive refinement |
--with-compiler=COMPILER |
Choose the compiler (icc, pgcc, gcc, xlC, KCC) |
- Make or copy a basis function into the working directory. There are several basis function files that you can find at tools/bsf directory. Depending on the discretization method that you are going to use, you should select the corresponding file as described bellow.
2DP1_gsq_bsf |
P1 triangular element (velocity and pressure are sharing the same nodes) |
2DP1CC_gsq_bsf |
P1 triangular element on cylindrical coordinate system. |
2DP2P1_gsq_bsf |
P2P1 triangular element (6 velocity nodes, 3 pressure nodes) |
3DP1_tetra_bsf |
P1 tetrahedral element. |
3DP1_prisma_bsf |
P1 prism element. |
- Create a Maple worksheet that includes all input that you need. Click here for more information about the Maple worksheet format.
- Execute the Maple code. Finally you will have a new code in your source directory.
- Compile those codes by typing 'make'
- Start your new computation execution program by typing './femLego'
- Start OpenDX or other visualization program to view your results.
|
|