pmgbergen/porepy: PorePy version 1.11
Authors/Creators
- Eirik Keilegavlen1
- Alessio Fumagalli2
- Ivar Stefansson3
- Veljko Lipovac1
- Jhabriel Varela4
- Omar Duran5
- Ingrid Kristine Jacobsen1
- Jakub W. Both1
- Yury Zabegaev
- Haakon Ludvig Langeland Ervik
- mariusnevland
- pschultzendorff
- Micheal Oguntola6
- Isak Hammer7
- DavideBaroliUniLu
- mstarnoni
- Wietse M. Boon
- TorWollmann
- Ana
- solveigste
- Yuhe Zhang
- enricoballini
- Runar Lie Berge8
- taj004
- Sæunn Halldorsdottir1
- Fabio Durastante9
- Scott McKean10
- 1. University of Bergen
- 2. Politecnico di Milano
- 3. @pmgbergen
- 4. National University of Asunción
- 5. Stanford University
- 6. MaPSI, University of Bergen
- 7. Revolve NTNU
- 8. Volda University College
- 9. Dipartimento di Matematica, Università di Pisa
- 10. @scotthmckean
Description
Highlights
• A model for non-isothermal multiphase compositional flows has been added. See a new tutorial tracer_flow for more information. Currently, only simple equations of state are available, a phase separation routine will be added in a future release. • The evaluation of Ad operators has undergone major changes, with at times significant reductions in the assembly of Jacobian matrices. • Package data has been moved from requirements.txt to pyproject.toml. • PorePy is now formatted with ruff.
API breaking changes
• Evaluation of Ad operators has been moved to the EquationSystem class. Use the method 'evaluate', with a parameter 'derivative=True' to also assemble the Jacobian matrix. • The old module default_domains was deleted. Use 'applications.md_grids.domains' instead. • The methods scalar_divergence and vector_divergence were moved from the module fvutils, and are now available as methods of the Grid class. • The module sort_points has been moved to the geometry folder and is accessible through pp.sort_points. The function sort_points_on_line is moved to the sort_points module. • The method cell_face_as_dense is the Grid class is now called cell_faces_as_dense. Some methods and classes that previously were marked as ceprecated has been deleted. Deprecation warnings have been added to some new code.
Cleanup of array operations
• The following functions operating on numpy arrays were moved: o pp.utils.mcolon.mcolon -> pp.array_operations.expand_index_pointers o pp.fvutils.expand_indices_incr -> pp.array_operations.expand_indices_increment o pp.fvutils.expand_indices_nd -> pp.array_operations.expand_indices_nd o pp.utils.setmembership.ismember_rows -> pp.array_operations.ismember_coluumns o pp.utils.setmembership.uniquify_point_set -> pp.array_operations. uniquify_point_set • The following functions were deleted, as they can be replaced by numpy functions : o pp.utils.setmembership.unique_columns_tol -> pp.array_operations. uniquify_point_set (for floats) or np.unique(.., axis=1) (for ints) o pp.array_operations.unique_rows -> np.unique o pp.utils.accumarray.accum -> np.bincount. As a consequence of these changes, the following modules have been deleted: • utils.accumarray • utils.mcolon • utils.setmembership Be aware that for some of the functions used to probe membership (i.e. unique_*), the alternative method may have different order in terms of whether the returned values are order preserving. The code has been adjusted to account for this, but caution is needed when updating application scripts.
Minor changes:
• The Grid class has a new method trace(). • Constants relating to numerical parameters are set as separate object in the models, search for class NumericalConstants. • Added a 2d benchmark for single phase flow with a 64 fracture geometry. See examples/flow_benchmark_2d_case_4.py for details. • Added a setup for fracture mechanics based on Sneddon's analytical solution. • Much work has been done to prepare PorePy for the use of scipy sparse arrays (as opposed to sparse matrices). Some work remains in this direction, though.
Contributors
- @isakhammer made their first contribution in https://github.com/pmgbergen/porepy/pull/1276
- @zhangyh0713 made their first contribution in https://github.com/pmgbergen/porepy/pull/1334
- @alessiofumagalli
- @IngridKJ
- @IvarStefansson
- @jhabriel
- @jwboth
- @keileg
- @mariusnevland
- @mikeljordan
- @OmarDuran
- @pschultzendorff
- @vlipovac
- @Yuriyzabegaev
- @wmboon
Full Changelog: https://github.com/pmgbergen/porepy/compare/v1.10...v1.11
Files
pmgbergen/porepy-v1.11.zip
Files
(5.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:873f69f8354433a591b7f1968a3c9509
|
5.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/pmgbergen/porepy/tree/v1.11 (URL)
Software
- Repository URL
- https://github.com/pmgbergen/porepy