Code Monkey home page Code Monkey logo

sam-lib's Introduction

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

REUSE status

The SAM Fortran library

About this project

The SAM library is a collection of FORTRAN-77 subroutines for handling different tasks in Finite Element Method solvers, such as the assembly of element matrices into their global counterparts, solving global linear systems of equations, solving eigenvalue problems, and some other lower-level matrix utilities, etc.

It was established by Kolbein Bell during the 1980s and 90s, and has been used in several FE program packages since then.

It is now made available under the Apache-2.0 license, such that programs like FEDEM can still use it in their solvers.

Requirements and Setup

The general compiler setup is performed using the cmake-configuration files of the cmake-modules repository, which is consumed as a submodule by this repository.

The SAM library also uses a few BLAS subroutines, and the dependency to that third-party module is handled by the CMakeLists.txt files through the find-rules provided by the cmake installation. On Linux, the BLAS library can be installed from the package manager, e.g., on Ubuntu:

sudo apt install libblas-dev

The SAM library can then be built and installed using, e.g.,

mkdir Release; cd Release
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME
make install

This will build the two libraries in Release mode and install them in the $HOME/lib folder.

Notice that by default the subroutines for the sparse matrix equation solver (in the src/SPR folder) are compiled using 64-bit integer representation, for handling of larger system matrices. This can be switched off by adding the command-line option -DBUILD_SPR_INTEGER8=OFF to the cmake command above. It will then use the standard 32-bit integer variables instead.

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 sam-lib 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.

sam-lib's People

Contributors

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

Watchers

vered constantin avatar  avatar

sam-lib's Issues

Assembly of non-symmetric system matrices does not work

The subroutine ADDEM2 for assembling dense system matrices does not account for possibly non-symmetric element matrices when the model also has linear couplings (constraint equations). Off-diagonal terms that should end up on the diagonal are then either ignored or counted twice, instead of being summed.

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.