Releases: pmgbergen/porepy
PorePy version 1.10.0
This release contains the updates committed to the development branch of PorePy since the previous release in early May 2024.
The highlights of this release are:
- A line search tailored for contact mechanics problems, see tutorial for more information.
- A new finite volume method for linear elasticity, using two-point stencils, has been added. Integration into the multiphysics models is ongoing, for the moment, see the example in the discretization class
In addition, there has been substantial work related to maintenance and testing.
Some functions have been deprecated, in particular some methods in FractureNetwork2d, which were not needed for standard usage of PorePy.
With this release, support for Python 3.10 is dropped. Support for Python 3.11 will be kept for a few more months.
New Contributors
- @mikeljordan made their first contribution in #1218
Contributors
- @IngridKJ
- @vlipovac
- @IvarStefansson
- @Yuriyzabegaev
- @alessiofumagalli
- @jwboth
- @mikeljordan
- @isakhammer
- @pschultzendorff
- @keileg
Full Changelog: v1.9.0...v1.10
PorePy version 1.9.0
What's Changed
This is the first of two planned releases of PorePy in 2024. The release provides some new and expanded functionality, together with several bugfixes and other improvements.
The main changes are as follows:
- In the models, diffusive terms with non-linear coefficients can be discretized with a new mixin class class AdTpfaFlux (for practical usage, see the class DarcysLawAd). For such non-linear problems, the new discretization will give a better approximation of the flux derivative, thus improve the convergence of Newton's method.
- The Mpsa Biot discretization can now deal with an arbitrary number of coupling tensors (as opposed to a single, scalar coupling coefficient)
- Functionality for meshing and setting up flow discretizations for some standard geometries defined in benchmarks for 2d and 3d discretization of mixed-dimensional elliptic equations.
- Discretization matrices of Ad discretizations are now accessed as methods instead of attributes. Example: MpfaAd().flux is replaced by MpfaAd().flux().
Contributors
-
@Cirdans-Home made their first contribution in #1081
-
@enricoballini made their first contribution in #1088
-
@TorWollmann made their first contribution in #1139
Full Changelog: v1.8.1...v1.9.0
v1.8.1
PorePy version 1.8.0
This is mainly a maintenance release, with the following major maintenance tasks completed:
- The old Assembler class, previously used to compose mixed-dimensional problems, is deleted, as have many related classes and methods.
- The test suite has undergone a major rewrite.
- General maintenance of the source code.
In addition, new functionality has been added, the most important of which is:
- A new approach for setting boundary conditions in the model classes.
Contributors
- Omar Duran
- Ivar Stefansson
- Ingrid Kristine Jacobsen
- Marius Nevland
- Yury Zabegaev
- Veljko Lipovac
- Jhabriel Varela
- Peter von Schultzendorff
- Wietse Boon
- Alessio Fumagalli
- Eirik Keilegavlen
Full Changelog: v1.7.0...v1.8.0
PorePy version 1.7.0
This PR provides several major updates of PorePy. The most important changes are:
- The way equations are specified and solved is completely reworked. The new
Model
classes provide a flexible way to set up simulations, with extreme modularity to allow for manipulation of individual terms in equations. These classes are now the new recommended way of defining simulation models in PorePy. - Documentation is much improved, with updated tutorials as well as updated docstrings that cover a large part of the code.
- Bugs and other shortcomings have been corrected throughout the code base.
From now on, our aim is to move to a more regular schedule of 2-3 yearly releases. The next release of PorePy is tentatively scheduled for September 2023.
New Contributors
Full Changelog: v1.6.0...v1.7.0
PorePy version 1.6.0
Overview of main changes
This PR contains several major changes that require updates to runscripts:
- The data structures for the mixed-dimensional grid (formally the GridBucket) has been thoroughly overhauled, see #673 (comment) for a description of the new framework.
- The interface for export to Paraview has been rewritten, with the new version being more flexible, cleaner and a lot faster. An overview of how to interact with the new structure is given in https://github.com/pmgbergen/porepy/blob/develop/tutorials/exporter.ipynb.
- The tutorials have been thoroughly overhauled.
Other notable changes:
- Typing coverage has been much extended.
- Work on an improved
- Docker files have been updated, these will be further improved in the coming months.
- A test for point-in-polyhedron test has been implemented, removing the need to download an external file and thereby simplifying the installation procedure.
- Several bugfixes and performance improvements.
Deprecations
- It is becoming clear that the new Automatic Differentiation framework is the way to go for assembling multiphysics systems. To reduce the burden of maintenance, it has been decided to deprecate the Assembler, together with several associated methods and classes, with deletion scheduled for the second half of 2022. For further details, see #673 (comment) (towards the end of the description of the PR).
- Support for Python 3.7 has been dropped.
Contributors
The following users made their first contribution to PorePy:
- @OmarDuran made their first contribution in #600
- @vlipovac made their first contribution in #619
- @jwboth made their first contribution in #620
- @enricoballini made their first contribution in #637
- @IngridKJ made their first contribution in #671
Also contributing to this release were:
- Alessio Fumagalli
- Eirik Keilegavlen
- Ivar Stefansson
- Jhabriel Varela
Full Changelog: v1.5.0...v1.6.0
PorePy version 1.5
Main modifications in this release:
- Overhaul of the Ad framework:
- The EquationManager has new functionality, clearer interfaces and improved documentation.
- Syntax has been simplied, e.g. the class Expression has been removed so that evaluation of an Ad expression is done directly on an Operator.
- General improvements throughout this part of the code.
- Simple functionality for including wells. This should be considered experimental for the time being.
- Introduced a class for time step control, guided by the performance of a non-linear solver.
- Improved robustness of meshing of complex fracture networks.
- General maintenance.
Full Changelog: v1.4.2...v1.5.0
The following people have contributed to this pull request
- Runar Berge
- Alessio Fumagalli
- Eirik Keilegavlen
- Jhabriel Varela
- Ivar Stefansson
PorePy version 1.4.2
Minor changes to Ad framework. Some maintainance.
Contributions by:
- Runar Berge
- Ivar Stefansson
- Eirik Keilegavlen
PorePy version 1.4.1
Minor updates:
- Right hand side terms for some THM simulations
- maintenance.
PorePy version 1.4.0
This release contains several updates to the code. The most important changes are:
- Substantial improvements to the meshing of fractured domains.
- Introduction of a new abstraction level for the automatic differentiation framework.
- The Biot class for poro-elasticity has clearly been defined as a backend class. To solve poro-elastic problems, use ContactMechanicsBiotModel instead.
- Support for Python 3.9 is introduced, support for 3.6 has been dropped.
- The stable branch has changed name from master to main.
Details:
- Meshing should be faster and more stable, in particular for geometries with many fractures. PorePy now uses the Gmsh python API directly. This can be used to modify mesh size parameters etc., although this has not been explored.
- The new Ad functionality is currently immature, and prone to sudden changes in the API. The hope is that this will become the new framework for defining equations (thus extending the Assembler, which is mainly targeted towards linear problems). The Ad functionality will be expanded over the coming months.
The following people have contributed to this release:
- Runar Lie Berge
- Jakub Both
- Alessio Fumagalli
- Eirik Keilegavlen
- Jhabriel Varela