Skip to content

openfedem/fedem-foundation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

REUSE status

FEDEM Foundation libraries

Fedem Logo

About this project

This project contains the source code of application-independent libraries that are used as building blocks by the FEDEM solvers and the FEDEM GUI. It is therefore consumed as a submodule both in fedem-solvers and in fedem-gui.

Name convention

The main bulk of the libraries of this repository are named FF*Lib where the double-F prefix stands for "FEDEM foundation" and the subsequent letter(s) indicates the purpose of the library:

The classes of the above libraries are typically named by what library they belong to, e.g., FFaTensor3 belongs to FFaLib, FFlNode belongs to FFlLib, etc.

In addition, there are two libraries FiDeviceFunctions and FiUserElmPlugin which implement interfaces to external data files and user-defined finite elements, respectively.

Requirements and Setup

The build of the FEDEM foundation libraries will normally be handled by the respective supermodules (fedem-solvers and fedem-gui). However, it is also possible to build them separately, for instance to perform some local testing, etc. To facilitate this, the cmake-modules repository is included via submodule reference, to provide the compiler setup.

We use the packages googletest and pFUnit to implement some unit tests for the C++ and Fortran code, respectively. Therefore, you need to set the environment variables GTEST_ROOT and PFUNIT to point to the root path of valid installations of the googletest and pFUnit frameworks, respectively, before executing the cmake command shown below.

On Linux, the FEDEM foundation libraries including the unit tests can be built and executed by:

mkdir Release; cd Release
cmake .. -DCMAKE_BUILD_TYPE=Release
make check

All of the FEDEM foundation libraries contain C++ code only, except for FFaFunctionLib which also contains some Fortran code (*.f90) implementing various explicit mathematical functions. This Fortran code is not compiled by default. To build with the Fortran code included, add the command-line option -DUSE_FORTRAN=ON to the cmake command above.

Contributing

This project is open to feature requests, suggestions, bug reports, etc., via GitHub issues. Contributions and feedback are encouraged and always welcome. For more information about how to contribute, see our Contribution Guidelines.

Licensing

Copyright 2023 SAP SE or an SAP affiliate company and fedem-foundation contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.

Languages

  • C 56.5%
  • C++ 16.8%
  • Fortran 15.0%
  • Assembly 4.8%
  • Python 4.0%
  • CMake 2.6%
  • AGS Script 0.3%