numerical_geolab

Numerical Geolab codes and algorithms serve as a basic ingredient for the numerical developments of the CoQuake project.

https://github.com/alexsta1993/numerical_geolab

Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

fenics finite-elements inelasticity micromorphic-continua multiphysics-couplings
Last synced: 4 months ago · JSON representation ·

Repository

Numerical Geolab codes and algorithms serve as a basic ingredient for the numerical developments of the CoQuake project.

Basic Info
  • Host: GitHub
  • Owner: AlexSTA1993
  • License: gpl-3.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: http://www.coquake.com
  • Size: 43 MB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
fenics finite-elements inelasticity micromorphic-continua multiphysics-couplings
Created about 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation Authors Codemeta

README.rst

.. Numerical Geolab documentation master file, created by
   sphinx-quickstart on Fri Aug 24 17:40:35 2018.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

================================  
Numerical Geolab's documentation
================================
.. image:: Numerical_Geolab/docs/source/_images/CoQuake_Banner2.png
   :alt: ERC-CoQuake project logo
   :target: http://www.coquake.eu
   :align: center

About
-----

*Numerical Geolab* codes and algorithms serve as a basic ingredient for the numerical developments of the *CoQuake* project.

CoQuake project receives funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 757848 "Controlling earthQuakes").

For more details visit: `CoQuake Project `_

Contact: Ioannis Stefanou ioannis [dot] stefanou [at] ensta [dot] fr

The Finite Element module builts on : `FEniCS `_ (open-source, under `LGPLv3 `_). 

*Numerical Geolab (nGeo)* is an open source computational platform for the solution of engineering problems involving material inelasticity, multiphysics, and generalized continua. nGeo
solves the underlying mathematical form incrementally and uses the Voigt-type notation, in order to handle micromorphic continua and multiphysics equations.

For complete description refer to  `Documentation `_

Installation_instructions
-------------------------

Direct download from source
...........................

The project sources including Numerical_Geolab and numerical_geolab_materials are available on Github. 
The user can download the project and add the modules Numerical_Geolab and numerical_geolab_materials to PYTHONPATH in their .bashrc file i.e:
   
For Linux systems:

.. code-block:: bash

   $ export PYTHONPATH=/path/to/numerical_geolab/Numerical_Geolab
   $ export PYTHONPATH=/path/to/numerical/geolab_materials:$PYTHONPATH

.. Important::
   For the unittests below to work properly: Numerical_Geolab and numerical_geolab_materials should be located under the same directory

Docker container
................

For the user's convenience an image of numerical geolab that bases on FEniCS is available. It can be pulled from dockerhub

.. code-block:: bash
   
   $ docker pull alexsta1993/numerical_geolab

Suggested workflow
------------------

Running the unittests
.....................

Numerical Geolab comes equipped with unittests that verify the expected behavior for the material libraries, the
mechanical models and also the multiphysics models that use the available materials. In order to test that the files work successfully,  
a script is available that performs all tests. The user execute it as follows:  
for Linux systems:

a) Open a terminal and change the user directory to /path/to/numerical_geolab/Numerical_Geolab/ngeoFE_unittests i.e.

.. code-block:: bash

   $ cd /path/to/numerical_geolab/Numerical_Geolab/ngeoFE_unittests

b) Change the umat_lib_path variables to point to the user directory i.e.

.. code-block:: python

   umat_lib_path = '/path/to/numerical_geolab/numerical_geolab_materials/UMATERIALS/'

The env_lib variable in this file is also set to the standard location in which the liblapack.so library is located, 
but in the event the user has it in a nonstandard location, the user should change it accordingly.

c) Run the python module 0run_all_tests.py (N.B. running all tests will take some time, indicatively approximately 45 minutes):

.. code-block:: bash

   $ python3 0run_all_tests.py

d) In the event that the all the folders are correctly set but on attempting to run the tests, the user encounters an error similar to
.. code-block:: python

   OSError: libgfortran.so.4: cannot open shared object file: No such file or directory

The user should firstly ensure that libgfortran is installed (it almost certainly already is), and then navigate to the numerical_geolab_materials directory, ensure that the materials_path variable at the top of the makefile is path_to_numerical_geolab/numerical_geolab_materials/UMATERIALS and then type
.. code-block:: bash

   make

This will rebuild the shared libraries in a way that is compatible with the user's version of libgfortran. The user can then rerun the tests.

During the validation procedure numerical geolab can produce plots of specific analysis quantities intrinsic to the unittests inside the ngeoFE/reference_data file
indicating the evolution. These include stress-strain, temperature-pressure, 
plastic strain rate evolution and where applicable relative errors between analytical and numerical solution  during the tests. 

For Linux systems:
The user can activate the plotting option by using the following command:

.. code-block:: bash

   $ export RUN_TESTS_WITH_PLOTS=true


Reading the documentation
.........................

The user can parse the available documentation present in the docs directory, where a list of documented python files exist 
for the construction and solution of different problems in inelasticity involving multiphysics couplings and 
micromorphic continua. The tutorials for inalsticity multiphysics and micromorphic continua are available in  

`Documentation `_

Formulating and solving a custom problem
........................................

The user can use the available example files in the `Tutorials `_ as the basis for the construction and solution of a new problem.

Project structure
-----------------

.. image:: Numerical_Geolab/docs/source/_images/classes.png
   :alt: Structure of classes
   :target: _Numerical_Geolab/docs/source/images/classes.png
   :align: center

Project modules
...............

Main modules of Numerical Geolab nGeo

* ngeoAI
* ngeoFE
* ngeoFE_unittests


Numerical Geolab Theory
-----------------------
   
Construction of the variational formulation in nGeo

* Linear_and_Bilinear_forms_in_Numerical Geolab


Numerical Geolab Tutorials
--------------------------

List of available tutorials (see also `Documentation `_).

* Tutorial_Cauchy_elastoplasticity_VM
* Tutorial_Cauchy_viscoplasticity_VM
* Tutorial_Cosserat_elastoplasticity_VM   
* Tutorial_Cosserat_elastoplasticity_DP
* Tutorial_Cauchy_THM_couplings
* Tutorial Cosserat_THM_thermo_hydro_plasticity - Drucker-Prager yield criterion
* Tutorial_Cosserat_Breakage_Mechanics
* Tutorial_Usage_of_custom_material



Future contributions
--------------------
* Machine Learning (in progress...)
* Discrete Elements
* Large displacements/deformations (at the moment use of the ALE module available in FEniCS)
* Contact/Interfaces
* Improve accuracy of diffusion in unit-tests (use of a centered finite difference algorithm for the time discretization)

Owner

  • Login: AlexSTA1993
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Stefanou
    given-names: Ioannis
    orcid: https://orcid.org/0000-0002-4552-7717
  - family-names: Stathas
    given-names: Alexandros
    orcid: https://orcid.org/0000-0001-8468-9842
title: "Numerical Geolab: nGeo"
version: 1.0.0
identifiers:
  - type: doi
    value: 10.5281/zenodo.10507779
date-released: 2024-01-14

CodeMeta (codemeta.json)

{
  "@context": "https://w3id.org/codemeta/3.0",
  "type": "SoftwareSourceCode",
  "applicationCategory": "Mechanics",
  "author": [
    {
      "id": "https://orcid.org/0000-0002-4552-7717",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "IMSIA (UMR 9219), CNRS, EDF, CEA, ENSTA Paris, Institut Polytechnique de Paris, Palaiseau, France"
      },
      "email": "ioannis.stefanou@ensta.fr",
      "familyName": "Stefanou",
      "givenName": "Ioannis"
    },
    {
      "id": "https://orcid.org/0000-0001-8468-9842",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "Institut fr Konstruktiver Ingenieurbau, Universitt fr Bodenkultur Wien, Vienna, Austria"
      },
      "email": "alexandros.stathas@boku.ac.at",
      "familyName": "Stathas",
      "givenName": "Alexandros"
    }
  ],
  "codeRepository": "https://github.com/AlexSTA1993/numerical_geolab",
  "contributor": [
    {
      "id": "https://orcid.org/0000-0001-8899-6700",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, Institute of Engineering, LJK, Grenoble, France"
      },
      "email": "filippo.masi@inria.fr",
      "familyName": "Masi",
      "givenName": "Filippo"
    },
    {
      "id": "https://orcid.org/0000-0003-2510-137X",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "Navier, ENPC, Institut Polytechnique de Paris, Univ Gustave Eiffel, CNRS, Marne-la-Valle, France"
      },
      "email": "nicholas-anton.collins-craft@enpc.fr",
      "familyName": "Collins-Craft",
      "givenName": "Nicholas Anton"
    },
    {
      "id": "https://orcid.org/0000-0003-1279-6870",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "Technical University of Clausthal, Clausthal-Zellerfeld, Germany"
      },
      "email": "eleni.gerolymatou@tu-clausthal.de",
      "familyName": "Gerolymatou",
      "givenName": "Eleni"
    }
  ],
  "dateCreated": "2016-08-08",
  "datePublished": "2023-12-12",
  "description": "Numerical Geolab is a software to integrate numerical models in solid mechanics using the finite element framework FEniCS",
  "funder": {
    "type": "Organization",
    "name": "European Research Council"
  },
  "license": "https://spdx.org/licenses/GPL-3.0-only",
  "name": "Numerical Geolab",
  "operatingSystem": "Linux",
  "programmingLanguage": [
    "Python",
    "Fortran",
    "Mathematica"
  ],
  "softwareRequirements": "Python 3.10, FEniCS",
  "version": "1.0.1",
  "developmentStatus": "inactive",
  "funding": "ERC Starting Grant number 757848 \"Controlling earthQuakes\""
}

GitHub Events

Total
  • Member event: 1
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 1
Last Year
  • Member event: 1
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • nickcollins-craft (1)
Top Labels
Issue Labels
Pull Request Labels