Skip to content

vivianyw/oofem

 
 

Repository files navigation

OOFEM.org

Build workflow License: LGPL v2.1 DOI

OOFEM is parallel, object-oriented finite element code for solving mechanical, transport and fluid mechanics problems.

OOFEM is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

Copyright (C) 1993 - 2021 Borek Patzak

Getting Started

What is here

The source directory tree holds source code to the OOFEM package.

  OOFEM_TOP_DIR
  |
  |-- doc - contains the "User's guide", sources to generate "Reference manual", 
  |         documents describing the input file specifications, element and
  |         material libraries, and other useful documents. 
  |
  |-- src - source files of all oofem modules
  |   |
  |   |-- oofemlib - sources of the core part of OOFEM, the OOFEMlib module.
  |   |
  |   |-- sm       - sources of structural analysis module.
  |   |
  |   |-- tm       - sources of transport problem module.
  |   |
  |   |-- fm       - sources of fluid mechanics module.
  |   |
  |   |-- dss      - includes the sources for Direct Sparse Solver (DSS),
  |   |              contributed by R. Vondracek)
  |   |
  |   |-- main     - contains the sources of main() and implementation of some 
  |                  global functions for oofem, oofeg.
  |
  |-- tools   - sources for several utility programs.
  |
  |-- tests   - contains several tests, which are useful to verify
  |             the program functionality.
  |
  |-- bindings - holds sources to generate OOFEM bindings to Python programming language.

Pre-requisites

  • The oofem requires the CMake cross-platform build system and C++ compiler with STL support (Standard Template Library).

  • The oofem contains interface to IML++ library. It is the C++ templated library of modern iterative methods for solving both symmetric and non-symmetric linear systems of equations, written by Roldan Pozo. It can be downloaded from http://math.nist.gov/iml++/.

  • Parallel support for distributed memory requires MPI library to be installed. If you do not have any, we recommend to use Open MPI. This is a freely available, high-performance, and portable implementation of MPI (http://www.open-mpi.org/).

  • For high performance linear solvers, OOFEM can use PETSc, SuperLU, MKL Pardiso or Pardiso-project.org solvers.

  • For high performance eigenvalue solvers, oofem uses SLEPc. The toolkit can be downloaded from SLEPc project home page (http://www.grycap.upv.es/slepc).

Installation

  • unpack sources
  • create an out-of-tree build directory
   mkdir -p ~/build/debug
  • configure the target
   cd ~/build/debug; cmake PATH_TO_OOFEM_SOURCES

where PATH_TO_OOFEM_SOURCES is the path to OOFEM source directory, created in step 0 (~/oofem-2.2, for example).

  • compile OOFEM
  make

Running the tests

To run the tests, go to your build directory and run ctest

ctest

Additional instructions

Running oofem

The oofem program prints out the available options when run without any option. To run a specific job, you can enter

oofem -f input_file_name

Documentation

You may find OOFEM documentation here.

Further information

Please consult oofem home page (http://www.oofem.org) for more documentation, manuals and new versions.

Authors

See the list of contributors who participated in this project.

Acknowledgments

http://www.oofem.org/doku.php?id=en:funding

About

OOFEM is free finite element code with object oriented architecture for solving mechanical, transport, fluid and multiphysics problems.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 59.5%
  • C++ 30.6%
  • Roff 7.2%
  • G-code 1.0%
  • Python 0.9%
  • CMake 0.5%
  • Other 0.3%