Making sense of Isogeometric Analysis for geothermal applications: Parametric geomodeling (NURBS) for fast model construction, simulation and adaptation
Isogeometric analysis (IGA) is a technique that uses the power of the finite element method (FEM) to numerically solve differential equations without the need of creating a discretization in the space of the geometric object (i.e., a mesh). Instead, it uses computer-aided design (CAD) tools, specifically Non-Uniform Rational B-splines (NURBS), to accurately represent any geometry and perform analysis during design.
This method has not been used in a Geoscientic context, where the geometry of subsurface structures greatly influences the solution of a simulation. This package introduces the isogeometric analysis technique in an easy language and tutorials to guide the user during the construction and analysis.
It differs from other implementations for dealing with multipatch structures, focusing on geological modelling with multiple subdomains.
Additionally, the Bézier extractor operator is introduced, providing an element structure that can incorporate IGA into existing finite element codes.
- Creation of NURBS: Create any curves and surfaces using NURBS
- Creation of Multiple patches: Create multiple patches of NURBS
- Refinement: Knot insertion and degree elevation for the refinement of patches
- Topology: Define topological relations between patches
- Assemble of stiffness matrix: Routines for assembling stiffnes matrix and solving
- Post-processing: Plotting of solutions
- Exports to FEniCS and MOOSE
- Bézier extraction operator: Complete workflow for using the bezier extractor operator
matplotlib >= 3.2.1
numpy
scipy
ipython
jupyter
pyvista
pytest
PyQt5
pygmsh==6.1.1
gmsh
meshio==4.0.3
(Optionals)
igakit: Fullly compatible with the nurbs this library produces. And the degree elevation routine depends completelly of this
pip install https://bitbucket.org/dalcinl/igakit/get/master.tar.gz
FEniCS: Finite element framework. Usefull for comparison and control of solutions. Follow the instructions for the installation
For a local installation do:
pip install -e .
Author: Daniel Escallón
If you use pyGeoIGA in a scientific abstract or publication, please include appropriate recognition of the original work. For the time being, please cite the publication in the conference abstract:
Escallon, D., Degen, D., Moulaeifard, s. M., and Wellmann, F.: Making sense of Isogeometric Analysis for geothermal applications: Parametric geomodelling (NURBS) for fast model construction, simulation and adaptation, EGU General Assembly 2022, Vienna, Austria, 23–27 May 2022, EGU22-2436, https://doi.org/10.5194/egusphere-egu22-2436, 2022.
Or directly use the BibTex
@article{Escallon_2022,
`doi = {10.5194/egusphere-egu22-2436},
url = {https://doi.org/10.5194%2Fegusphere-egu22-2436},
year = 2022,
month = {mar},
publisher = {Copernicus {GmbH}},
author = {Daniel Escallon and Denise Degen and s.Mohammad Moulaeifard and Florian Wellmann},
title = {Making sense of Isogeometric Analysis for geothermal applications: Parametric geomodelling ({NURBS}) for fast model construction, simulation and adaptation}}