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
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
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 i.e:
For Linux systems:
$ 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
For the user's convenience an image of numerical geolab that bases on FEniCS is available. It can be pulled from dockerhub
$ docker pull alexsta1993/numerical_geolab
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:
- Open a terminal and change the user directory to /path/to/numerical_geolab/Numerical_Geolab/ngeoFE_unittests i.e.
$ cd /path/to/numerical_geolab/Numerical_Geolab/ngeoFE_unittests
- run the python module 0run_all_tests.py i.e.:
$ python3 0run_all_tests.py
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:
$ export RUN_TESTS_WITH_PLOTS=true
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
The user can use the available example files in the Tutorials as the basis for the construction and solution of a new problem.
Main modules of Numerical Geolab nGeo
- ngeoAI
- ngeoFE
- ngeoFE_unittests
Construction of the variational formulation in nGeo
- Linear_and_Bilinear_forms_in_Numerical Geolab
List of available tutials (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
- 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)