Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

SAP-archive/fedem-foundation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This public repository is read-only and no longer maintained.

REUSE status

FEDEM Foundation libraries

Fedem Logo

About this project

This project contains the source code of some application-independent libraries that are used as building blocks by the FEDEM solvers and also 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:

  • FFaLib - Auxiliary classes
  • FFlLib - FE part handling
  • FFrLib - Result file API
  • FFpLib - Post-processing of curve data
  • FFlrLib - Handling of FE part results
  • FFaFunctionLib - Management and evaluation of explicit functions
  • FFaMathExpr - Implementation of math expression functions

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 implements 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 contains 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.

Security / Disclosure

If you find any bug that may be a security problem, please follow our instructions at in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.

Code of Conduct

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.

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.