v2.1.0
🚀 New features
- Added
pc_to_satnfunction to filters #new - Added
satn_to_seqfunction to filters #new - Added
satn_profileto metrics #new - Added
find_hto metrics #new - Added
pc_curveto metrics which accepts either sizes or pressures #new - Added
satn_to_panelsto visualization folder to create a montage of invasion steps #new - Added
prep_for_imshowto visualization folder to adjust image for passing to plt.imshow #new - Created
simulationsmodule to replacedns#new #api - Moved
tortuosityfunction tosimulationsand renamed ittortuosity_fdfor finite difference #new #api - Added
drainagefunction to the newsimulationsmodule, which incorporates the effect of gravity #new
🍰 Enhancements
- Added ability to pass custom peaks to snow algorithms #enh
- Phase labels no longer need to be contiguous in snow functions or
snow2extraction #enh - Phase labels of 0 can now be passed to
snow2, ifphase_aliasargument is provided #enh - Added ability to specify residual invading phase in
drainage#enh - Added surface option to trim/fill functions to optionally remove artifacts on the surfaces #enh
- Added optional strel arg to
trim_nonpercolating_paths#enh
🔧 Maintenance
- Removed joss folder from top level of repo #maint
- Decreased size of examples to accelerate testing and building #maint
- Added many quantitative unit tests for snow functions #maint
- Using much small images in snow tests to improve testing speed #maint
- Minor adjustments/improvements to various trim peaks functions #maint
- Consolidated jit sphere insertion funcs into a single file under
tools#maint - Streamlined and simplified CI workflows #maint
- Renamed how-tos to reference and other maintenance of docs #docs #maint
- Added citations file to repo #maint
- Dropped support for Python 3.6 and 3.7 per NEP29 #maint
- Fixed examples CI to use the official pytest-split #maint
- Temporarily excluded
imagejmodule from coverage due to CI/dependency issues #maint - Removed transforms3d from requirements as it's no longer needed #maint
- Added 4th digit to semantic version to indicate number of merges into dev branch
⚠️ API changes
- Deprecated
pc_curve_from_mioin favor of justpc_curve(sizes=sizes)#api - Created
simulationsmodule to replacedns#new #api - Moved
tortuosityfunction tosimulationsand renamed ittortuosity_fdfor finite difference #new #api - Deprecated
dns.tortuositythough provided a wrapper to the moved and renamed versiontortuosity_fd#api
🐛 Bugfixes
- Fixed bug in
region_volumesmethod #bug - Fixed
cylindrical_pluggenerator to work in 2D #bug - Fixed bugs in
snow2when accuracy was 'high': missing throat_perimeters and incorrect voxel scaling #bug - Fixed a memory leak in
tortuosity_fd
📗 Documentation
- Removed excess badges from readme #doc
- Major updates to all example notebooks #docs
- Renamed how-tos to reference and other maintenance of docs #docs #maint
- Added 2 new examples on the basic use of
drainageand explaining its inner workings #docs - Updated some notebooks to work with new version of openpnm (2.8+) #doc
Installation
Normally porespy can be installed using conda install -c conda-forge porespy=2.1; however, to reproduce the exact environment which this release was built upon (i.e. at some point in the future), download one of the requirements files below (i.e. requirements_ps21_py310_win64.txt), then run the following at the conda prompt:
conda create --name <env> --file requirements_ps21_py310_win64.txt
conda activate <env>
where <env> is your chosen environment name.