All Projects → PMEAL → Openpnm

PMEAL / Openpnm

Licence: mit
A Python package for performing pore network modeling of porous media

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Openpnm

Asl
Advanced Simulation Library - hardware accelerated multiphysics simulation platform.
Stars: ✭ 142 (-31.4%)
Mutual labels:  scientific-computing
Avogadrolibs
Avogadro libraries provide 3D rendering, visualization, analysis and data processing useful in computational chemistry, molecular modeling, bioinformatics, materials science, and related areas.
Stars: ✭ 164 (-20.77%)
Mutual labels:  scientific-computing
Collapse
Advanced and Fast Data Transformation in R
Stars: ✭ 184 (-11.11%)
Mutual labels:  scientific-computing
Nd4j
Fast, Scientific and Numerical Computing for the JVM (NDArrays)
Stars: ✭ 1,742 (+741.55%)
Mutual labels:  scientific-computing
Samrai
Structured Adaptive Mesh Refinement Application Infrastructure - a scalable C++ framework for block-structured AMR application development
Stars: ✭ 160 (-22.71%)
Mutual labels:  scientific-computing
Matplotplusplus
Matplot++: A C++ Graphics Library for Data Visualization 📊🗾
Stars: ✭ 2,433 (+1075.36%)
Mutual labels:  scientific-computing
Scilab
Free and Open Source software for numerical computation providing a powerful computing environment for engineering and scientific applications.
Stars: ✭ 138 (-33.33%)
Mutual labels:  scientific-computing
Peroxide
Rust numeric library with R, MATLAB & Python syntax
Stars: ✭ 191 (-7.73%)
Mutual labels:  scientific-computing
Bmspy
Python Block-Model Simulator. An alternative to simulink in python.
Stars: ✭ 165 (-20.29%)
Mutual labels:  scientific-computing
Scikit Optimize
Sequential model-based optimization with a `scipy.optimize` interface
Stars: ✭ 2,258 (+990.82%)
Mutual labels:  scientific-computing
Opencoarrays
A parallel application binary interface for Fortran 2018 compilers.
Stars: ✭ 151 (-27.05%)
Mutual labels:  scientific-computing
Mobulaop
A Simple & Flexible Cross Framework Operators Toolkit
Stars: ✭ 161 (-22.22%)
Mutual labels:  scientific-computing
Computator.net
Computator.NET is a special kind of numerical software that is fast and easy to use but not worse than others feature-wise. It's features include: - Real and complex functions charts - Real and complex calculator - Real functions numerical calculations including different methods - Over 107 Elementary functions - Over 141 Special functions - Over 21 Matrix functions and operations - Scripting language with power to easy computations including matrices - You can declare your own custom functions with scripting language
Stars: ✭ 174 (-15.94%)
Mutual labels:  scientific-computing
Solidspy
2D-Finite Element Analysis with Python
Stars: ✭ 142 (-31.4%)
Mutual labels:  scientific-computing
Compute.scala
Scientific computing with N-dimensional arrays
Stars: ✭ 191 (-7.73%)
Mutual labels:  scientific-computing
Visit
VisIt - Visualization and Data Analysis for Mesh-based Scientific Data
Stars: ✭ 140 (-32.37%)
Mutual labels:  scientific-computing
Spack
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Stars: ✭ 2,425 (+1071.5%)
Mutual labels:  scientific-computing
Sundials
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This is a mirror of current releases, and development will move here eventually. Pull requests are welcome for bug fixes and minor changes.
Stars: ✭ 194 (-6.28%)
Mutual labels:  scientific-computing
Findiff
Python package for numerical derivatives and partial differential equations in any number of dimensions.
Stars: ✭ 191 (-7.73%)
Mutual labels:  scientific-computing
Phpsci Carray
PHP library for scientific computing powered by C
Stars: ✭ 176 (-14.98%)
Mutual labels:  scientific-computing



Please cite as:

Gostick et al. "OpenPNM: a pore network modeling package." Computing in Science & Engineering 18, no. 4 (2016): 60-74. doi:10.1109/MCSE.2016.49

Overview of OpenPNM

OpenPNM is a comprehensive framework for performing pore network simulations of porous materials.

For more details about the package can be found in the on-line documentation

To be notified of new releases click the Watch button on the Github repo page. To show your support for this project click the Star button, as we use this as a proxy for the size of our userbase when applying for funding.

Installation and Requirements

Preferred method

The preferred way of installing OpenPNM is through Anaconda Cloud using:

conda install -c conda-forge openpnm

Alternative method

OpenPNM can also be installed from the Python Package Index using:

pip install openpnm

However, we don't recommend installing using pip since pypardiso, which is a blazing fast direct solver, is not available for Windows users who use Python 3.7+.

For developers

For developers who intend to change the source code or contribute to OpenPNM, the source code can be downloaded from Github and installed by running:

pip install -e 'path/to/downloaded/files'

The advantage to installing from the source code is that you can edit the files and have access to your changes each time you import OpenPNM.

OpenPNM requires the Scipy Stack (Numpy, Scipy, Matplotlib, etc), which is most conveniently obtained by installing the Anaconda Distribution.

Example Usage

The following code block illustrates how to use OpenPNM to perform a mercury intrusion porosimetry simulation:

import openpnm as op
pn = op.network.Cubic(shape=[10, 10, 10], spacing=0.0001)
geo = op.geometry.StickAndBall(network=pn, pores=pn.Ps, throats=pn.Ts)
Hg = op.phases.Mercury(network=pn)
phys = op.physics.Standard(network=pn, phase=Hg, geometry=geo)
mip = op.algorithms.Porosimetry(network=pn)
mip.setup(phase=Hg)
mip.set_inlets(pores=pn.pores(['left', 'right', 'top', 'bottom']))
mip.run()

The network can be visualized in ParaView giving the following:

The drainage curve can be visualized with mip.plot_intrusion_curve() giving something like this:

A collection of examples is available in the examples folder of this repository: Examples

Asking Questions and Getting Help

Github now has a Discussions function, which works similarly to stack overflow. Please post your question in the Q&A category so devs or users can provide answers, vote on accepted answers, improve on each other's answers, and generally discuss things. Most importantly, all answers are searchable so eventually, once enough questions have been posted and answered, you can find what you're looking for with a simple search.

Contact

OpenPNM is developed by the Porous Materials Engineering and Analysis Lab (PMEAL), in the Department of Chemical Engineering at the University of Waterloo in Waterloo, Ontario, Canada.

The lead developer for this project is Prof. Jeff Gostick ([email protected]).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].