Giter Site home page Giter Site logo

core-marine-dev / fedem-foundation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sap-archive/fedem-foundation

0.0 0.0 0.0 20.77 MB

The FEDEM foundation libraries

License: Apache License 2.0

C++ 16.85% Python 4.03% C 56.44% Fortran 15.09% Assembly 4.73% AGS Script 0.28% CMake 2.58%

fedem-foundation's Introduction

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.

fedem-foundation's People

Contributors

kmoks avatar kmokstad avatar sap-ospo-bot avatar ospo-bot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.