BasicTools

BasicTools: a numerical simulation toolbox - Published in JOSS (2023)

https://gitlab.com/drti/basic-tools

Science Score: 87.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 4 months ago · JSON representation

Repository

Basic Info
  • Host: gitlab.com
  • Owner: drti
  • License: bsd-3-clause
  • Default Branch: master
Statistics
  • Stars: 6
  • Forks: 4
  • Open Issues: 1
  • Releases: 0
Created about 6 years ago

https://gitlab.com/drti/basic-tools/blob/master/

What is BasicTools
==================

BasicTools was primary designed as a basic set of tools to work on meshes in the context of finite element computation.
The main functionalities of the library are:

* IO support: A set of classes to read and write meshes (and solutions fields) from/to a large variety of file formats. BasicTools does not have a proper file format mainly because existent formats provide most, if not all, of the functionalities needed.
* Mesh manipulation: Routines to filter, define, extract and manipulate meshes in many ways.
* Fields manipulation: Finite element fields can be defined using different kinds of interpolation (P0/P1/P2), in the full mesh or only in restricted zones, and also at integration points. This classes have overloaded operators to make computation of quantities of interest an easy task.
* Integration: Routines for the integration of weak formulations (tangent matrices, right hand terms, integral over only a part of a mesh).
* Field transfer: Basic routine to transfer field from one mesh to another.
* Finite element solver: Using all the previous tools, some basic finite element solvers are available to solve generic partial differential equations on unstructured meshes.


Important URLs
==============

- Documentation: https://basictools.readthedocs.io/en/latest/
- Conda-forge Package: https://anaconda.org/conda-forge/basictools
- Sources: https://gitlab.com/drti/basic-tools
- Conda-forge feedstock: https://github.com/conda-forge/basictools-feedstock


Installing BasicTools
=====================

Conda
-----

If you use conda, you can install BasicTools from the conda-forge channel:

Best practice, use an environment rather than install in the base env

    conda create -n my-env
    conda activate my-env

The actual install command

    conda install -c conda-forge basictools

PIP
---

The pip installation requires a local compilation, so you need to have a C++ (C++17 compatible) compiler installed locally on your system.
To compile and install BasicTools (version 1.9.12 in this case) with pip:

    wget https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.zip
    unzip boost_1_82_0.zip
    set BASICTOOLS_USE_EIGENCYEIGEN=1
    set BASICTOOLS_EXTERNAL_BOOST_DIR=%cd%\boost_1_82_0
    pip install eigency mkl numpy sympy mkl-include cython wheel
    pip install BasicTools@https://gitlab.com/drti/basic-tools/-/archive/1.9.11/basic-tools-1.9.12.tar.bz2



or for the latest master version:

    wget https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.zip
    unzip boost_1_82_0.zip
    set BASICTOOLS_USE_EIGENCYEIGEN=1
    set BASICTOOLS_EXTERNAL_BOOST_DIR=%cd%\boost_1_82_0
    pip install eigency mkl numpy sympy mkl-include cython wheel
    pip install BasicTools@git+https://gitlab.com/drti/basic-tools.git

>Note
On linux/OsX you must:
>- Change the `set` to `export` or `setenv` depending on your os/shell
>- Change the `%cd%` to `$PWD`  depending on your os/shell

The user can set the environment variable `PREFIX` to point to external libraries (like mkl and eigen header). For advance configuration please read the setup.py file on the git repository.

It is also good practice to use a virtual environment when using pip.


>Note
We can not guarantee that all combinations of OS, Python Versions, packaging systems works.


For more complex installation (from sources) for developers please read the documentation.


Asking for help
===============

All questions can be addressed using the Issues system of Gitlab https://gitlab.com/drti/basic-tools/-/issues.


Dependencies
============

    python minimal version: 3.8

    PYTHON OPEN-SOURCE DEPENDENCIES

    * numpy >= 1.20
    * scipy
    * sympy
    * cython
    * eigency >=2
    * mkl
    * mkl-include
    * psutil

    Optionals Python packages (some functionalities may not be available without this packages):

    * scikit-sparse
    * vtk
    * matplotlib
    * pyamg
    * h5py
    * meshio
    * sphinx
    * sphinx-rtd-theme
    * setuptools-scm
    * pyvista
    * networkx >=3
    * mpi4py

    C++ OPEN-SOURCE DEPENDENCIES:

    * Eigen (http://eigen.tuxfamily.org)
      (the pypi eigency package has the Eigen library already inside the package)
      ( a conda-forge package is available for eigen)

    THIRD-PARTY PROPRIETARY DEPENDENCIES (optional):

    * odbAccess and abaqusConstants ( Abaqus )

Projects using BasicTools
=========================

[OpenPisco Home Page](https://gitlab.com/openpisco/openpisco), topology optimization using the level set method ([OpenPisco Documentation](https://openpisco.readthedocs.io)).
[GenericROM](https://gitlab.com/drti/genericrom), Reduced Order Modeling library  ([GenericROM Documentation](https://genericrom.readthedocs.io/en/latest/)).

Owner

  • Name: DRTI
  • Login: drti
  • Kind: organization

JOSS Publication

BasicTools: a numerical simulation toolbox
Published
June 23, 2023
Volume 8, Issue 86, Page 5142
Authors
Felipe Bordeu ORCID
Safran Tech, Digital Sciences & Technologies Department, Rue des Jeunes Bois, Châteaufort, 78114 Magny-Les-Hameaux, France
Fabien Casenave ORCID
Safran Tech, Digital Sciences & Technologies Department, Rue des Jeunes Bois, Châteaufort, 78114 Magny-Les-Hameaux, France
Julien Cortial ORCID
Safran Tech, Digital Sciences & Technologies Department, Rue des Jeunes Bois, Châteaufort, 78114 Magny-Les-Hameaux, France
Editor
Patrick Diehl ORCID
Tags
mesh fields finite elements post-treatment

Committers

Last synced: 4 months ago

All Time
  • Total Commits: 1,312
  • Total Committers: 14
  • Avg Commits per committer: 93.714
  • Development Distribution Score (DDS): 0.168
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Felipe Bordeu f****u@s****m 1,091
Fabien Casenave f****e@s****m 112
Julien Cortial j****l@s****m 75
Chiara Nardoni c****i@i****r 7
Felipe Bordeu f****u@g****m 5
d606912 x****d@s****m 5
Daniel S. Katz 4****z@u****m 4
Laure Billon l****n@s****m 4
David Danan d****n@i****r 2
Nicolas Feld n****d@s****m 2
David DANAN d****n@i****r 2
Brian Staber (MS) b****r@s****m 1
Etienne Lac e****c@s****m 1
Ramzi Messahel r****l@s****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 5
conda-forge.org: basictools
  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Dependent repos count: 20.2%
Average: 47.0%
Dependent packages count: 51.6%
Forks count: 56.5%
Stargazers count: 59.6%
Last synced: 4 months ago