Skip to content

Commit 5ec8a65

Browse files
authored
Merge pull request #21 from EMSL-Computing/joss-edits
Joss edits for paper acceptance and Zenodo archive
2 parents b557c59 + ac85a7a commit 5ec8a65

File tree

16 files changed

+134
-107
lines changed

16 files changed

+134
-107
lines changed

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ authors:
3838
given-names: "Satish"
3939
orcid: "https://orcid.org/0000-0001-7847-6293"
4040
affiliation: "EMSL"
41-
version: "0.1.0"
41+
version: "0.2.0"
4242
date-released: "2024-7-15"
4343
repository-code: "https://github.com/EMSL-Computing/Pore2Chip/"
4444
license: "MIT"

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Pore2Chip: All-in-One Python Tool for Soil Microstructure Analysis and Micromodel Design
22

33
## What is Pore2Chip?
4-
Pore2Chip is a Python module designed to streamline the process of analyzing X-ray computed tomography (XCT) images of soil and creating 2D micromodel designs based on that analysis. It leverages the power of open-source libraries like OpenPNM, PoreSpy, and drawsvg to extract key information about the soil's porous structure and translate it into a blueprint for microfluidic simulations or physical "lab-on-a-chip" devices developed using additive manufacturing.
4+
Pore2Chip is a Python module designed to streamline the process of analyzing X-ray computed tomography (XCT) images of soil and creating 2D micromodel designs based on that analysis. It leverages the power of open-source libraries like OpenPNM, PoreSpy, and drawsvg to extract key information about the soil's porous structure and translate it into a blueprint for microfluidic simulations or physical `lab-on-a-chip` devices developed using additive manufacturing.
55

66
### A workflow for model-data-experiment (ModEx) design:
77

@@ -15,15 +15,15 @@ Below is a conceptual figure, workflow, and vision for this all-in-one Python to
1515

1616
(3) **Transform 3D Pore Network into 2D Rendering (Pore2Chip):** The complex 3D network is simplified into a 2D rendering for easier analysis and visualization.
1717

18-
(4) **Build Micromodels for Environmental Experiments (Pore2Chip):** Micromodels replicate environmental conditions, enabling controlled experiments to observe fluid flow and chemical species degradation.
18+
(4) **Build Micromodels for Experiments (Pore2Chip):** Micromodels replicate environmental conditions, enabling controlled experiments to observe fluid flow and chemical species degradation.
1919

2020
(5) **Microscale Experimental Data on Chemical Hotspots (Chip2Flow):** Detailed experiments using techniques like ToF-SIMS and SEM-EDS provide data on chemical hotspots within the porous media.
2121

2222
(6a) **Pore-Scale Multi-Physics Modeling (Chip2Flow):** Simulations model fluid flow, heat transfer, and chemical reactions at the pore scale, which is needed to predict system behavior under different environmental conditions.
2323

2424
(6b) **Calibration and Validation (Chip2Flow):** Predictive AI/ML-enabled models are calibrated and validated using experimental data for accuracy and reliability.
2525

26-
(7a) **Understanding Fluid Flow and Species Degradation in Soil Core Experiments (Chip2Flow):** Experiments on soil cores provide vital information on fluid flow and chemical species degradation, connecting back to micromodel generation.
26+
(7a) **Understanding Fluid Flow and Reactive-Transport in Soil Core Experiments (Chip2Flow):** Experiments on soil cores provide vital information on fluid flow and chemical species degradation, connecting back to micromodel generation.
2727

2828
(7b) **Upscaled Properties (Chip2Flow):** Properties and behaviors observed at smaller scales are upscaled to larger scales (mm to cm) for real-world application.
2929

@@ -345,7 +345,7 @@ Additionally, your contributions can be as simple as:
345345
```
346346

347347
## Acknowledgements
348-
This research was performed on a project award (Award DOIs: 10.46936/ltds.proj.2024.61069/60012423; 10.46936/intm.proj.2023.60674/60008777; 10.46936/intm.proj.2023.60904/60008965) from the Environmental Molecular Sciences Laboratory, a DOE Office of Science User Facility sponsored by the Biological and Environmental Research program under contract no. DE-AC05-76RL01830. The authors acknowledge the contributions of Michael Perkins at PNNL’s Creative Services, who developed the conceptual graphics in this paper.
348+
This research was performed on a project award (Award DOIs: 10.46936/ltds.proj.2024.61069/60012423; 10.46936/intm.proj.2023.60674/60008777; 10.46936/intm.proj.2023.60904/60008965) from the Environmental Molecular Sciences Laboratory, a DOE Office of Science User Facility sponsored by the Biological and Environmental Research program under contract no. DE-AC05-76RL01830. The authors acknowledge the contributions of Michael Perkins and Ben Watson at PNNL’s Creative Services, who developed the conceptual graphics in this paper.
349349

350350
PNNL-SA-197910
351351

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
project = 'Pore2Chip'
1010
copyright = '2025, Aramy Truong, Maruti Mudunuru, Md Lal Mamud'
1111
author = 'Aramy Truong, Maruti Mudunuru, Md Lal Mamud'
12-
release = '0.1.1'
12+
release = '0.2.0'
1313

1414
# -- General configuration ---------------------------------------------------
1515
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

docs/source/coordination_api.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,8 @@ Functionality:
6969
..
7070
7171
- This function assumes the `porespy` and `openpnm` libraries are installed and imported.
72-
- The specific implementation of `ps.networks.snow2` might require further investigation depending on the exact functionality of the PoresPy library.
72+
- The specific implementation of `ps.networks.snow2` might require further investigation depending on the exact functionality of the PoresPy library.
73+
74+
.. note::
75+
76+
This project is under active development.

docs/source/export_api.rst

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11

2-
export
3-
======
2+
**export**
3+
==========
44

5-
(WIP)
5+
The ``export`` module contains functions to draw a visual micromodel mask from an OpenPNM network generated
6+
from the ``generate`` module (see ``generate`` for more info on generating a network).
7+
8+
9+
network2svg()
10+
-------------
11+
12+
.. autofunction:: pore2chip.export.network2svg
13+
14+
----
15+
16+
network2dxf()
17+
-------------
18+
19+
.. autofunction:: pore2chip.export.network2dxf
20+
21+
22+
.. note::
23+
24+
This project is under active development.

docs/source/generate_api.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,9 @@ contains a 2D network based on input pore data (see ``metrics`` for more info on
1010
generate_network()
1111
------------------
1212

13-
.. autofunction:: pore2chip.generate.generate_network
13+
.. autofunction:: pore2chip.generate.generate_network
14+
15+
16+
.. note::
17+
18+
This project is under active development.

docs/source/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
Pore2Chip Documentation
77
=======================
8-
A python package that takes XCT images of porous materials and generates representative digital twin micromodels.
8+
A python package that takes XCT images of porous materials and generates representative reduced complexity micromodels.
99

1010
.. figure:: _static/ModEx_Loop_SoilChip.jpg
1111
:width: 636px
@@ -35,7 +35,7 @@ Acknowledgements
3535
----------------
3636
This research was performed on a project award (Award DOIs: 10.46936/ltds.proj.2024.61069/60012423; 10.46936/intm.proj.2023.60674/60008777; 10.46936/intm.proj.2023.60904/60008965)
3737
from the Environmental Molecular Sciences Laboratory, a DOE Office of Science User Facility sponsored by the Biological and Environmental Research program under contract no. DE-AC05-76RL01830.
38-
The authors acknowledge the contributions of Michael Perkins at PNNL’s Creative Services, who developed the conceptual graphics in this paper.
38+
The authors acknowledge the contributions of Michael Perkins and Ben Watson at PNNL’s Creative Services, who developed the conceptual graphics in this paper.
3939

4040
PNNL-SA-197910
4141

docs/source/io_api.rst

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11

2-
io
3-
==
2+
**io**
3+
======
44

5-
(WIP)
5+
The ``io`` module contain a function that writes a 2D image array to a VTK format file.
6+
7+
----
8+
9+
img2vtk()
10+
---------
11+
12+
.. autofunction:: pore2chip.io.img2vtk
13+
14+
15+
.. note::
16+
17+
This project is under active development.

docs/source/quickstart.rst

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ custom threshold values, and gray value masking can also be set in the function
3333

3434
Step 3: Pore Data Extraction
3535
----------------------------
36-
Now that the segmented data is loaded into memory, we will use the ``metrics`` module to extract the necessary information needed to
37-
cunstruct the micromodel design. This extraction is based on pore network extraction via watershed segmentation and the SNOW
38-
algorithm provided by `Porespy`.
36+
Now that the segmented data is loaded into memory, we will use the ``metrics`` module to extract the necessary information needed to construct the micromodel design.
37+
This extraction is based on pore network extraction via watershed segmentation and the SNOW algorithm provided by `Porespy`.
3938

4039
First, we will extract the pore and pore throat diameters:
4140

@@ -51,8 +50,7 @@ Next, we will extract the pore coordination numbers:
5150
:start-after: # Step 3.2 Start
5251
:end-before: # Step 3.2 End
5352

54-
The variables we extracted are arrays that contain all of the pore diameters, throat diameters, and coordination numbers for all the
55-
extracted pores in the pore network. We can visualize the distribution of the data using `matplotlib`:
53+
The variables we extracted are arrays that contain all of the pore diameters, throat diameters, and coordination numbers for all the extracted pores in the pore network. We can visualize the distribution of the data using `matplotlib`:
5654

5755
.. literalinclude:: ./examples/quickstart_example.py
5856
:language: python
-307 KB
Loading

0 commit comments

Comments
 (0)