## Main feature
-Creation of [_OpenFOAM_](https://www.openfoam.com) simulation models from given input images using [_Gmsh_](https://gmsh.info).
+Creation of [_OpenFOAM_](https://openfoam.org) simulation models from given input images using [_Gmsh_](https://gmsh.info).
## Installation
You will first need to install
-* OpenFOAM (https://www.openfoam.com) (tested with OpenFOAM-13)
+* OpenFOAM (https://openfoam.org) (tested with OpenFOAM-14)
* Gmsh (https://gmsh.info) (tested with Gmsh 4.15.2)
To install the _pymm_ executable from the development version:
@@ -43,7 +43,7 @@ pip install -e .
pip install -r dev-requirements.txt
```
-See the [_OpenFOAM page_](https://openfoam.org/download/13-ubuntu/), where from OpenFOAM-12 the simulator is available via apt get, and OpenFOAM-13 is the latest release.
+See the [_OpenFOAM page_](https://openfoam.org/download/14-ubuntu/), where from OpenFOAM-12 the simulator is available via apt get, and OpenFOAM-14 is the latest release.
## Running pymm
You can run _pymm_ as a single command line:
diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt
index c2d25f5..b737495 100644
--- a/docs/_sources/installation.rst.txt
+++ b/docs/_sources/installation.rst.txt
@@ -46,11 +46,11 @@ OpenFOAM
--------
See the `OpenFOAM page See the OpenFOAM page, where from OpenFOAM-12 the simulator is available via apt get, -and OpenFOAM-13 is the latest release. To test if OpenFoam is installed and working, you could type in the terminal:
-source /opt/openfoam13/etc/bashrc
+and OpenFOAM-14 is the latest release. To test if OpenFoam is installed and working, you could type in the terminal:
+source /opt/openfoam14/etc/bashrc
foamRun -help
@@ -136,7 +136,7 @@ Gmsh<
Tip
See the CI.yml script
-for installation of pymm, gmsh, and OpenFOAM-13 in Ubuntu using Python 3.14.
+for installation of pymm, gmsh, and OpenFOAM-14 in Ubuntu using Python 3.14.
diff --git a/docs/introduction.html b/docs/introduction.html
index 18143ba..4ebe302 100644
--- a/docs/introduction.html
+++ b/docs/introduction.html
@@ -93,7 +93,7 @@ Descriptionskimage) to generate the spatial domains for the simulations from
the microsystem images, and Gmsh as a mesh generator.
The numerical simulations for the water flow and tracer are performed using
-the OpenFOAM simulator. This framework could be applied to general images and
+the OpenFOAM simulator. This framework could be applied to general images and
the current implementation could be (‘easily’) extended to consider further
geometry of devices and solvers in OpenFOAM.
diff --git a/docs/output_folder.html b/docs/output_folder.html
index b80718b..c146939 100644
--- a/docs/output_folder.html
+++ b/docs/output_folder.html
@@ -91,7 +91,7 @@ Output folderparaview is used for the visualization.
+paraview is used for the visualization.
Then after running pymm, one could modify the generated OpenFOAM related files and
run directly the simulations calling the OpenFOAM solvers, e.g., to change additional
tolerances that are not currently included in the parameters.toml file and/or to change
diff --git a/docs/pymm.core.pymm.html b/docs/pymm.core.pymm.html
index 52f412a..9cfac69 100644
--- a/docs/pymm.core.pymm.html
+++ b/docs/pymm.core.pymm.html
@@ -205,19 +205,19 @@
-
-pymm.core.pymm._assign_boundary(point: ndarray[tuple[Any, ...], dtype[float64]], start_index: int, number_of_segments: int, reference_value: float, coordinate_index: int, target: list[int], wall: list[int]) int
+pymm.core.pymm._assign_boundary(point: NDArray[float64], start_index: int, number_of_segments: int, reference_value: float, coordinate_index: int, target: list[int], wall: list[int]) int
Assign the boundary tags
-
-pymm.core.pymm.boundary_tags_left_top(point: ndarray[tuple[Any, ...], dtype[float64]], pl: ndarray[tuple[Any, ...], dtype[float64]], pt: ndarray[tuple[Any, ...], dtype[float64]], bl: float, bt: float, wall: list[int]) tuple[list[int], list[int], int]
+pymm.core.pymm.boundary_tags_left_top(point: NDArray[float64], pl: NDArray[float64], pt: NDArray[float64], bl: float, bt: float, wall: list[int]) tuple[list[int], list[int], int]
Assign the boundary left-top tags
-
-pymm.core.pymm.boundary_tags_right_bottom(point: ndarray[tuple[Any, ...], dtype[float64]], start_index: int, pr: ndarray[tuple[Any, ...], dtype[float64]], pb: ndarray[tuple[Any, ...], dtype[float64]], bb: float, br: float, wall: list[int]) tuple[list[int], list[int]]
+pymm.core.pymm.boundary_tags_right_bottom(point: NDArray[float64], start_index: int, pr: NDArray[float64], pb: NDArray[float64], bb: float, br: float, wall: list[int]) tuple[list[int], list[int]]
Assign the boundary right-bottom tags
@@ -229,7 +229,7 @@
-
-pymm.core.pymm.extract_borders(boundary: ndarray[tuple[Any, ...], dtype[float64]]) tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]], float, float, float, float]
+pymm.core.pymm.extract_borders(boundary: NDArray[float64]) tuple[NDArray[float64], NDArray[float64], NDArray[float64], NDArray[float64], float, float, float, float]
Function to extract the borders of the image
@@ -241,20 +241,20 @@
-
-pymm.core.pymm.make_figures(cfg: PymmConfig, fol: Path, im: ndarray[tuple[Any, ...], dtype[bool]], border: ndarray[tuple[Any, ...], dtype[bool]], cn_grains: list[ndarray[tuple[Any, ...], dtype[float64]]], cn_border: list[ndarray[tuple[Any, ...], dtype[float64]]]) ndarray[tuple[Any, ...], dtype[float64]]
+pymm.core.pymm.make_figures(cfg: PymmConfig, fol: Path, im: NDArray[bool], border: NDArray[bool], cn_grains: list[NDArray[float64]], cn_border: list[NDArray[float64]]) NDArray[float64]
Function to make figures with the extract grains and contours
-
-pymm.core.pymm.pad_with(vector: ndarray[tuple[Any, ...], dtype[float64]], pad_width: tuple[int, int], _iaxis: int, kwargs: dict) None
+pymm.core.pymm.pad_with(vector: NDArray[float64], pad_width: tuple[int, int], _iaxis: int, kwargs: dict) None
Function to add extra border to later extract the image boundaries
see https://numpy.org/doc/stable/reference/generated/numpy.pad.html
-
-pymm.core.pymm.process_image(cfg: PymmConfig, fol: Path, mode: str, in_image: str) tuple[int, int, list[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]
+pymm.core.pymm.process_image(cfg: PymmConfig, fol: Path, mode: str, in_image: str) tuple[int, int, list[NDArray[float64]], NDArray[float64]]
Function to process the input image
@@ -272,7 +272,7 @@
-
-pymm.core.pymm.write_geo(cfg: PymmConfig, fol: Path, pat: Path, mode: str, gmsh: str, imH: int, imL: int, cn_grains: list[ndarray[tuple[Any, ...], dtype[float64]]], pl: ndarray[tuple[Any, ...], dtype[float64]], pt: ndarray[tuple[Any, ...], dtype[float64]], pr: ndarray[tuple[Any, ...], dtype[float64]], pb: ndarray[tuple[Any, ...], dtype[float64]], bdnL: list[int], bdnT: list[int], bdnR: list[int], bdnB: list[int], wall: list[int]) None
+pymm.core.pymm.write_geo(cfg: PymmConfig, fol: Path, pat: Path, mode: str, gmsh: str, imH: int, imL: int, cn_grains: list[NDArray[float64]], pl: NDArray[float64], pt: NDArray[float64], pr: NDArray[float64], pb: NDArray[float64], bdnL: list[int], bdnT: list[int], bdnR: list[int], bdnB: list[int], wall: list[int]) None
Function to write the Gmsh .geo file
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 43bfadf..1c4b386 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"About pymm":[[0,null]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"Description":[[7,"description"]],"Device":[[4,"device"]],"Examples":[[4,null]],"Figure- and device-related parameters":[[2,"figure-and-device-related-parameters"]],"Gmsh":[[6,"gmsh"]],"Ground Rules":[[3,"ground-rules"]],"Image":[[4,"image"]],"Image-related parameters":[[2,"image-related-parameters"]],"Indices and tables":[[5,"indices-and-tables"]],"Installation":[[6,null]],"Introduction":[[7,null]],"Mesh-related parameters":[[2,"mesh-related-parameters"]],"Module contents":[[10,"module-pymm"],[11,"module-pymm.core"]],"Online":[[4,"online"]],"OpenFOAM":[[6,"openfoam"]],"Output folder":[[9,null]],"Overview":[[7,"overview"]],"Python package":[[6,"python-package"]],"Related":[[13,null]],"Remaining parameters":[[2,"remaining-parameters"]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Seek support":[[3,"seek-support"]],"Submodules":[[11,"submodules"]],"Subpackages":[[10,"subpackages"]],"Welcome to pymm\u2019s documentation!":[[5,null]],"ad-micp":[[13,"ad-micp"]],"expreccs":[[13,"expreccs"]],"plopm":[[13,"plopm"]],"pofff":[[13,"pofff"]],"pycopm":[[13,"pycopm"]],"pymm":[[1,"pymm"],[8,null]],"pymm Python API":[[1,null]],"pymm package":[[10,null]],"pymm.core package":[[11,null]],"pymm.core.pymm module":[[12,null]],"pyopmnearwell":[[13,"pyopmnearwell"]],"pyopmspe11":[[13,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","index","installation","introduction","modules","output_folder","pymm","pymm.core","pymm.core.pymm","related"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["about.rst","api.rst","configuration_file.rst","contributing.rst","examples.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","pymm.rst","pymm.core.rst","pymm.core.pymm.rst","related.rst"],"indexentries":{},"objects":{"":[[10,0,0,"-","pymm"]],"pymm":[[11,0,0,"-","core"]],"pymm.core":[[12,0,0,"-","pymm"]],"pymm.core.pymm":[[12,1,1,"","PymmConfig"],[12,3,1,"","_assign_boundary"],[12,3,1,"","boundary_tags_left_top"],[12,3,1,"","boundary_tags_right_bottom"],[12,3,1,"","copy_and_replace"],[12,3,1,"","extract_borders"],[12,3,1,"","main"],[12,3,1,"","make_figures"],[12,3,1,"","pad_with"],[12,3,1,"","process_image"],[12,3,1,"","run_stokes"],[12,3,1,"","run_tracer"],[12,3,1,"","write_geo"]],"pymm.core.pymm.PymmConfig":[[12,2,1,"","borderTol"],[12,2,1,"","channelWidth"],[12,2,1,"","diffusion"],[12,2,1,"","grainMeaning"],[12,2,1,"","grainsSize"],[12,2,1,"","grainsTol"],[12,2,1,"","inletLocation"],[12,2,1,"","inletValue"],[12,2,1,"","iterationsMax"],[12,2,1,"","length"],[12,2,1,"","lineWidth"],[12,2,1,"","meshSize"],[12,2,1,"","pressureConv"],[12,2,1,"","rescale"],[12,2,1,"","thickness"],[12,2,1,"","threshold"],[12,2,1,"","tracerStep"],[12,2,1,"","tracerTime"],[12,2,1,"","tracerWrite"],[12,2,1,"","velocityConv"],[12,2,1,"","viscosity"],[12,2,1,"","width"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:function"},"terms":{"03e":2,"0e":[2,4],"1068x1068":4,"1c":2,"1e":[2,4],"2a":4,"2d":2,"2e":2,"3d":2,"5e":2,"600e":4,"6e":4,"74e":2,"805x252":2,"8e":[2,4],"A":13,"About":5,"An":[3,13],"As":0,"Below":13,"For":[0,2,6],"Here":4,"If":6,"In":[3,4],"NO":4,"On":2,"The":[0,1,2,3,4,6,7,9],"Then":[2,4,9],"There":2,"This":[2,7],"To":6,"We":[2,3],"While":6,"_assign_boundari":[10,11,12],"_build":3,"_iaxi":12,"accept":3,"action":3,"activ":6,"ad":[4,5],"add":[4,12],"addit":9,"al":4,"allow":2,"also":3,"altern":3,"alway":2,"anaconda":6,"analys":3,"ani":[3,12],"anoth":2,"answer":3,"api":5,"appli":7,"applic":2,"approach":[0,3],"approxim":[2,4],"approximate_polygon":2,"apt":6,"argument":7,"assign":12,"assum":4,"auto":3,"avail":[4,6],"base":[0,7,12,13],"bashrc":6,"bb":12,"bc":[2,4],"bdnb":12,"bdnl":12,"bdnr":12,"bdnt":12,"befor":3,"benali2019":2,"benchmark":13,"bin":6,"binari":[2,4],"bl":12,"black":[2,3,4],"bool":12,"border":[2,4,12],"bordertol":[2,4,11,12],"bottom":[2,4,12],"boundari":[4,7,12],"boundary_tags_left_top":[10,11,12],"boundary_tags_right_bottom":[10,11,12],"br":12,"bt":12,"build":[3,4],"built":4,"ca":4,"calcit":13,"call":9,"can":[2,3,6],"case":[2,4],"cd":6,"center":0,"central":12,"cfg":12,"chang":[3,9],"channel":[2,4],"channelwidth":[2,4,11,12],"check":[3,13],"checker":3,"checkout":6,"ci":[3,6],"class":12,"clone":6,"cluster":[2,4],"cn_border":12,"cn_grain":12,"co2":13,"code":[3,6,10],"coeffici":[2,4],"collabor":3,"color":[2,4],"com":[6,7],"command":[4,6],"commit":3,"comput":[0,2],"concentr":4,"condit":[2,4],"configur":[4,5,7,12],"consid":[2,4,7],"consist":2,"contain":[1,4],"content":[1,3,5,8],"contour":[2,4,12],"contribut":[0,5,6],"control":2,"converg":[2,4],"convert":[2,4],"coordinate_index":12,"copi":3,"copy_and_replac":[10,11,12],"core":[1,8,10],"corner":4,"correspond":[2,4],"cov":3,"creat":[2,3,6],"criteria":[2,4],"criterium":[2,4],"cross":2,"csp":13,"cssr":[6,7],"current":[2,7,9],"dark":[2,4],"de":2,"decreas":2,"default":[4,7],"defin":2,"depend":6,"depth":[2,4],"describ":[3,4,7],"descript":5,"detail":2,"dev":[3,6],"develop":6,"devic":[5,7],"dict":12,"differ":2,"diffus":[2,4,11,12],"dimens":2,"direct":9,"dmar":4,"doc":[3,12],"document":[3,7,9],"domain":7,"dst":12,"dtype":12,"dynam":[0,2,4,13],"e":[2,4,6,7,9],"easili":7,"edg":6,"edit":12,"element":2,"em":13,"email":3,"end":[2,4],"entri":[2,4],"environ":6,"et":4,"etc":[2,6],"exampl":[2,5],"exectu":4,"execut":[1,2,3,4,6,7,9],"exprecc":5,"extend":[2,3,7],"extra":12,"extract":[2,4,12],"extract_bord":[10,11,12],"factor":[2,4],"familiar":3,"featur":0,"field":7,"fig":[2,4],"figur":[4,5,7,12],"file":[1,3,4,5,7,9,12],"filter":[],"first":2,"fix":3,"flag":4,"float":12,"float64":12,"flow":[4,7,12,13],"flow_trac":7,"fluid":[0,2,4],"fluid_dens":[2,4],"fluidflow":13,"foamrun":6,"fol":12,"folder":[1,3,4,5,6,7],"follow":[2,4,6,7,9],"fork":[0,3],"format":3,"found":2,"framework":[4,7,13],"full":7,"function":12,"fund":0,"g":[2,4,6,7,9],"gave":4,"general":7,"generat":[2,3,7,9,12,13],"geo":12,"geolog":13,"geometri":[2,7],"get":[3,6],"gif":13,"git":6,"github":[3,4,6,7],"gmsh":[4,5,7,12],"grain":[2,4,7,12],"grainmean":[2,4,11,12],"grainssiz":[2,4,11,12],"grainstol":[2,4,11,12],"gray":2,"greater":2,"grid":2,"ground":5,"height":[2,4],"help":[3,6],"higher":2,"histori":13,"home":4,"host":7,"howev":2,"html":[3,12],"https":[6,7,12],"ignor":3,"im":12,"imag":[0,5,7,12,13],"imh":12,"iml":12,"implement":[2,7],"import":3,"in_imag":12,"includ":[2,9],"increas":2,"index":5,"induc":13,"inject":2,"inlet":[2,4],"inletloc":[2,4,11,12],"inletvalu":[2,4,11,12],"input":[2,4,12],"insid":6,"instal":[3,5],"int":12,"interest":[4,6,13],"intern":2,"interv":[2,4],"introduct":5,"issu":[0,5],"iter":[2,4],"iterationsmax":[2,4,11,12],"joekar":4,"keep":7,"kg":[2,4],"kinemat":[2,4],"kwarg":12,"l":6,"later":12,"latest":6,"leakag":13,"left":[2,4,12],"length":[2,4,11,12],"let":2,"light":[2,4],"line":[2,3,4],"linewidth":[2,4,11,12],"link":2,"lint":6,"linux":6,"list":12,"liu2022":2,"local":3,"locat":[1,2,4],"look":[2,3],"m":[2,4,6,7],"m2":[2,4],"m3":[2,4],"main":[1,3,10,11,12],"maintain":3,"make":[3,12],"make_figur":[10,11,12],"mako":[1,2],"mamba":6,"manag":6,"mantain":3,"match":13,"mathemat":2,"maximum":[2,4],"mean":2,"measur":2,"merg":3,"mesh":[4,5,7],"mesh_flow":7,"meshsiz":[2,4,11,12],"micp":5,"microbi":13,"micromodel":[2,4],"microsystem":[2,4,7,12],"middl":[2,4],"might":[3,6,13],"miniforg":6,"minimum":[2,4],"minut":4,"miss":3,"mode":[2,7,12],"model":[2,13],"modifi":[2,6,9],"modul":[1,5,8,13],"morpholog":2,"much":2,"mypi":3,"n":3,"name":[4,7],"navier":12,"ndarray":12,"near":13,"need":3,"new":[0,2,3],"next":2,"niasar":4,"nice":[2,3],"none":12,"norc":0,"norceresearch":4,"now":4,"number":[0,2,4],"number_of_seg":12,"numer":[2,4,7,9],"numpi":12,"o":7,"object":12,"one":[2,4,9],"onli":[2,7],"onlin":[2,5],"open":13,"openfoam":[2,5,7,9,12],"openfoam13":6,"opm":13,"opt":6,"option":7,"org":12,"output":[2,5,7],"overview":5,"p":[4,7],"pa":[2,4],"packag":[0,1,5,7,8],"pad":12,"pad_width":12,"pad_with":[10,11,12],"page":[3,4,5,6],"paramet":[4,5,7,9],"paraview":9,"pat":12,"path":[4,7,12],"pattern":2,"pb":12,"perform":7,"pip":[3,6],"pixel":[2,4],"pl":12,"pleas":[0,3],"plopm":5,"png":[4,7],"pngs":[7,13],"pofff":5,"point":[2,12],"polygon":[2,4],"pore":2,"porespi":[],"possibl":3,"pr":12,"precipit":13,"prefer":3,"present":2,"pressur":[2,4],"pressureconv":[2,4,11,12],"previous":[3,4],"problem":5,"process":12,"process_imag":[10,11,12],"produc":[2,4],"project":[0,13],"prs":3,"pt":12,"pull":[0,3],"push":3,"pushd":3,"py312":3,"pycopm":5,"pylint":3,"pymm":[2,3,4,6,7,9],"pymmconfig":[10,11,12],"pyopmnearwel":5,"pyopmspe11":5,"pytest":3,"python":[0,5,7,12,13],"python3":6,"quad":2,"quick":13,"r":[3,6],"rais":[0,3],"reach":[2,4],"real":2,"reduc":2,"refer":[2,12],"reference_valu":12,"region":13,"relat":[4,5,9],"releas":6,"reli":7,"remain":5,"remark":2,"remedi":13,"remove_small_object":2,"replac":[3,12],"repo":[3,6],"report":5,"repositori":[3,6],"request":[0,3],"requir":[3,6],"rescal":[2,4,11,12],"research":0,"reservoir":13,"resolut":2,"resourc":[0,2],"respect":2,"result":[2,4,9],"review":3,"right":[2,4,12],"rise":3,"ruff":3,"rule":5,"run":[2,3,4,7,9,12],"run_stok":[10,11,12],"run_trac":[10,11,12],"s":[2,4],"save":[4,9],"scalartransportfoam":2,"scale":2,"scheme":[2,4,9],"screenshot":[4,9],"script":[1,3,6,12],"search":5,"section":4,"see":[2,3,6,9,12],"seek":5,"segment":7,"select":9,"send":3,"set":[2,4],"setup":4,"setuptool":6,"shape":2,"show":[2,4,9],"side":2,"simpl":7,"simplefoam":2,"simul":[2,4,6,7,9,12,13],"sinc":4,"singl":3,"site":13,"six":3,"size":[2,4],"skimag":[2,7],"skip":6,"slip":2,"smaller":2,"softwar":5,"solut":[2,4],"solver":[2,4,7,9],"soon":3,"sourc":[4,6,13],"space":2,"spatial":7,"spe11":13,"specif":6,"squash":3,"src":[3,12],"stabl":12,"start_index":12,"static":3,"step":[2,3,4,6],"stoke":[2,4,12],"storag":13,"str":12,"studi":13,"submodul":[1,8,10],"subpackag":[1,5,8],"subsect":2,"subsurfac":0,"succeed":3,"support":[5,6,7],"sustain":0,"t":[4,7],"tag":[6,12],"tailor":13,"target":[3,12],"templat":[1,2],"term":3,"termin":[4,6,7],"test":[3,6],"text":4,"thick":[2,4,11,12],"three":2,"threshold":[2,4,11,12],"time":[2,4],"toler":[2,4,9],"toml":[4,7,9,12],"tool":[6,7,13],"top":[2,4,12],"tracer":[2,4,7,12],"tracerstep":[2,4,11,12],"tracertim":[2,4,11,12],"tracerwrit":[2,4,11,12],"transform":2,"tri":3,"trim_small_clust":[],"tupl":12,"tutori":3,"two":2,"txt":[3,6],"type":[2,6,7,13],"ubuntu":[3,6],"upgrad":6,"us":2,"use":[0,2,3,4,6,7,9,13],"user":3,"v2026":6,"valid":2,"valu":2,"vector":12,"veloc":[2,4,7],"velocityconv":[2,4,11,12],"venv":6,"version":[3,4,6,10],"vertic":2,"via":[2,4,6],"virtual":6,"viscos":[2,4,11,12],"visit":3,"visual":9,"void":7,"vpymm":6,"vtk_flowstok":9,"vtk_tracertransport":9,"vtks":13,"wall":[2,12],"water":7,"welcom":[0,3],"well":[3,13],"wheel":6,"white":[2,4],"whole":[4,7],"width":[2,4,11,12],"will":3,"work":[3,6],"write":[2,4,6,12],"write_geo":[10,11,12],"x":2,"yml":[3,6]},"titles":["About pymm","pymm Python API","Configuration file","Contributing","Examples","Welcome to pymm\u2019s documentation!","Installation","Introduction","pymm","Output folder","pymm package","pymm.core package","pymm.core.pymm module","Related"],"titleterms":{"About":0,"ad":13,"api":1,"configur":2,"content":[10,11],"contribut":3,"core":[11,12],"descript":7,"devic":[2,4],"document":5,"exampl":4,"exprecc":13,"figur":2,"file":2,"folder":9,"gmsh":6,"ground":3,"imag":[2,4],"indic":5,"instal":6,"introduct":7,"issu":3,"mesh":2,"micp":13,"modul":[10,11,12],"onlin":4,"openfoam":6,"output":9,"overview":7,"packag":[6,10,11],"paramet":2,"plopm":13,"pofff":13,"problem":3,"pycopm":13,"pymm":[0,1,5,8,10,11,12],"pyopmnearwel":13,"pyopmspe11":13,"python":[1,6],"relat":[2,13],"remain":2,"report":3,"rule":3,"s":5,"seek":3,"softwar":3,"submodul":11,"subpackag":10,"support":3,"tabl":5,"welcom":5}})
\ No newline at end of file
+Search.setIndex({"alltitles":{"About pymm":[[0,null]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"Description":[[7,"description"]],"Device":[[4,"device"]],"Examples":[[4,null]],"Figure- and device-related parameters":[[2,"figure-and-device-related-parameters"]],"Gmsh":[[6,"gmsh"]],"Ground Rules":[[3,"ground-rules"]],"Image":[[4,"image"]],"Image-related parameters":[[2,"image-related-parameters"]],"Indices and tables":[[5,"indices-and-tables"]],"Installation":[[6,null]],"Introduction":[[7,null]],"Mesh-related parameters":[[2,"mesh-related-parameters"]],"Module contents":[[10,"module-pymm"],[11,"module-pymm.core"]],"Online":[[4,"online"]],"OpenFOAM":[[6,"openfoam"]],"Output folder":[[9,null]],"Overview":[[7,"overview"]],"Python package":[[6,"python-package"]],"Related":[[13,null]],"Remaining parameters":[[2,"remaining-parameters"]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Seek support":[[3,"seek-support"]],"Submodules":[[11,"submodules"]],"Subpackages":[[10,"subpackages"]],"Welcome to pymm\u2019s documentation!":[[5,null]],"ad-micp":[[13,"ad-micp"]],"expreccs":[[13,"expreccs"]],"plopm":[[13,"plopm"]],"pofff":[[13,"pofff"]],"pycopm":[[13,"pycopm"]],"pymm":[[1,"pymm"],[8,null]],"pymm Python API":[[1,null]],"pymm package":[[10,null]],"pymm.core package":[[11,null]],"pymm.core.pymm module":[[12,null]],"pyopmnearwell":[[13,"pyopmnearwell"]],"pyopmspe11":[[13,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","index","installation","introduction","modules","output_folder","pymm","pymm.core","pymm.core.pymm","related"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["about.rst","api.rst","configuration_file.rst","contributing.rst","examples.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","pymm.rst","pymm.core.rst","pymm.core.pymm.rst","related.rst"],"indexentries":{},"objects":{"":[[10,0,0,"-","pymm"]],"pymm":[[11,0,0,"-","core"]],"pymm.core":[[12,0,0,"-","pymm"]],"pymm.core.pymm":[[12,1,1,"","PymmConfig"],[12,3,1,"","_assign_boundary"],[12,3,1,"","boundary_tags_left_top"],[12,3,1,"","boundary_tags_right_bottom"],[12,3,1,"","copy_and_replace"],[12,3,1,"","extract_borders"],[12,3,1,"","main"],[12,3,1,"","make_figures"],[12,3,1,"","pad_with"],[12,3,1,"","process_image"],[12,3,1,"","run_stokes"],[12,3,1,"","run_tracer"],[12,3,1,"","write_geo"]],"pymm.core.pymm.PymmConfig":[[12,2,1,"","borderTol"],[12,2,1,"","channelWidth"],[12,2,1,"","diffusion"],[12,2,1,"","grainMeaning"],[12,2,1,"","grainsSize"],[12,2,1,"","grainsTol"],[12,2,1,"","inletLocation"],[12,2,1,"","inletValue"],[12,2,1,"","iterationsMax"],[12,2,1,"","length"],[12,2,1,"","lineWidth"],[12,2,1,"","meshSize"],[12,2,1,"","pressureConv"],[12,2,1,"","rescale"],[12,2,1,"","thickness"],[12,2,1,"","threshold"],[12,2,1,"","tracerStep"],[12,2,1,"","tracerTime"],[12,2,1,"","tracerWrite"],[12,2,1,"","velocityConv"],[12,2,1,"","viscosity"],[12,2,1,"","width"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:function"},"terms":{"03e":2,"0e":[2,4],"1068x1068":4,"1c":2,"1e":[2,4],"2a":4,"2d":2,"2e":2,"3d":2,"5e":2,"600e":4,"6e":4,"74e":2,"805x252":2,"8e":[2,4],"A":13,"About":5,"An":[3,13],"As":0,"Below":13,"For":[0,2,6],"Here":4,"If":6,"In":[3,4],"NO":4,"On":2,"The":[0,1,2,3,4,6,7,9],"Then":[2,4,9],"There":2,"This":[2,7],"To":6,"We":[2,3],"While":6,"_assign_boundari":[10,11,12],"_build":3,"_iaxi":12,"accept":3,"action":3,"activ":6,"ad":[4,5],"add":[4,12],"addit":9,"al":4,"allow":2,"also":3,"altern":3,"alway":2,"anaconda":6,"analys":3,"ani":[3,12],"anoth":2,"answer":3,"api":5,"appli":7,"applic":2,"approach":[0,3],"approxim":[2,4],"approximate_polygon":2,"apt":6,"argument":7,"assign":12,"assum":4,"auto":3,"avail":[4,6],"base":[0,7,12,13],"bashrc":6,"bb":12,"bc":[2,4],"bdnb":12,"bdnl":12,"bdnr":12,"bdnt":12,"befor":3,"benali2019":2,"benchmark":13,"bin":6,"binari":[2,4],"bl":12,"black":[2,3,4],"bool":12,"border":[2,4,12],"bordertol":[2,4,11,12],"bottom":[2,4,12],"boundari":[4,7,12],"boundary_tags_left_top":[10,11,12],"boundary_tags_right_bottom":[10,11,12],"br":12,"bt":12,"build":[3,4],"built":4,"ca":4,"calcit":13,"call":9,"can":[2,3,6],"case":[2,4],"cd":6,"center":0,"central":12,"cfg":12,"chang":[3,9],"channel":[2,4],"channelwidth":[2,4,11,12],"check":[3,13],"checker":3,"checkout":6,"ci":[3,6],"class":12,"clone":6,"cluster":[2,4],"cn_border":12,"cn_grain":12,"co2":13,"code":[3,6,10],"coeffici":[2,4],"collabor":3,"color":[2,4],"com":[6,7],"command":[4,6],"commit":3,"comput":[0,2],"concentr":4,"condit":[2,4],"configur":[4,5,7,12],"consid":[2,4,7],"consist":2,"contain":[1,4],"content":[1,3,5,8],"contour":[2,4,12],"contribut":[0,5,6],"control":2,"converg":[2,4],"convert":[2,4],"coordinate_index":12,"copi":3,"copy_and_replac":[10,11,12],"core":[1,8,10],"corner":4,"correspond":[2,4],"cov":3,"creat":[2,3,6],"criteria":[2,4],"criterium":[2,4],"cross":2,"csp":13,"cssr":[6,7],"current":[2,7,9],"dark":[2,4],"de":2,"decreas":2,"default":[4,7],"defin":2,"depend":6,"depth":[2,4],"describ":[3,4,7],"descript":5,"detail":2,"dev":[3,6],"develop":6,"devic":[5,7],"dict":12,"differ":2,"diffus":[2,4,11,12],"dimens":2,"direct":9,"dmar":4,"doc":[3,12],"document":[3,7,9],"domain":7,"dst":12,"dynam":[0,2,4,13],"e":[2,4,6,7,9],"easili":7,"edg":6,"edit":12,"element":2,"em":13,"email":3,"end":[2,4],"entri":[2,4],"environ":6,"et":4,"etc":[2,6],"exampl":[2,5],"exectu":4,"execut":[1,2,3,4,6,7,9],"exprecc":5,"extend":[2,3,7],"extra":12,"extract":[2,4,12],"extract_bord":[10,11,12],"factor":[2,4],"familiar":3,"featur":0,"field":7,"fig":[2,4],"figur":[4,5,7,12],"file":[1,3,4,5,7,9,12],"first":2,"fix":3,"flag":4,"float":12,"float64":12,"flow":[4,7,12,13],"flow_trac":7,"fluid":[0,2,4],"fluid_dens":[2,4],"fluidflow":13,"foamrun":6,"fol":12,"folder":[1,3,4,5,6,7],"follow":[2,4,6,7,9],"fork":[0,3],"format":3,"found":2,"framework":[4,7,13],"full":7,"function":12,"fund":0,"g":[2,4,6,7,9],"gave":4,"general":7,"generat":[2,3,7,9,12,13],"geo":12,"geolog":13,"geometri":[2,7],"get":[3,6],"gif":13,"git":6,"github":[3,4,6,7],"gmsh":[4,5,7,12],"grain":[2,4,7,12],"grainmean":[2,4,11,12],"grainssiz":[2,4,11,12],"grainstol":[2,4,11,12],"gray":2,"greater":2,"grid":2,"ground":5,"height":[2,4],"help":[3,6],"higher":2,"histori":13,"home":4,"host":7,"howev":2,"html":[3,12],"https":[6,7,12],"ignor":3,"im":12,"imag":[0,5,7,12,13],"imh":12,"iml":12,"implement":[2,7],"import":3,"in_imag":12,"includ":[2,9],"increas":2,"index":5,"induc":13,"inject":2,"inlet":[2,4],"inletloc":[2,4,11,12],"inletvalu":[2,4,11,12],"input":[2,4,12],"insid":6,"instal":[3,5],"int":12,"interest":[4,6,13],"internal":2,"interval":[2,4],"introduct":5,"issu":[0,5],"iter":[2,4],"iterationsmax":[2,4,11,12],"joekar":4,"keep":7,"kg":[2,4],"kinemat":[2,4],"kwarg":12,"l":6,"later":12,"latest":6,"leakag":13,"left":[2,4,12],"length":[2,4,11,12],"let":2,"light":[2,4],"line":[2,3,4],"linewidth":[2,4,11,12],"link":2,"lint":6,"linux":6,"list":12,"liu2022":2,"local":3,"locat":[1,2,4],"look":[2,3],"m":[2,4,6,7],"m2":[2,4],"m3":[2,4],"main":[1,3,10,11,12],"maintain":3,"make":[3,12],"make_figur":[10,11,12],"mako":[1,2],"mamba":6,"manag":6,"mantain":3,"match":13,"mathemat":2,"maximum":[2,4],"mean":2,"measur":2,"merg":3,"mesh":[4,5,7],"mesh_flow":7,"meshsiz":[2,4,11,12],"micp":5,"microbi":13,"micromodel":[2,4],"microsystem":[2,4,7,12],"middl":[2,4],"might":[3,6,13],"miniforg":6,"minimum":[2,4],"minut":4,"miss":3,"mode":[2,7,12],"model":[2,13],"modifi":[2,6,9],"modul":[1,5,8,13],"morpholog":2,"much":2,"mypi":3,"n":3,"name":[4,7],"navier":12,"ndarray":12,"near":13,"need":3,"new":[0,2,3],"next":2,"niasar":4,"nice":[2,3],"none":12,"norc":0,"norceresearch":4,"now":4,"number":[0,2,4],"number_of_seg":12,"numer":[2,4,7,9],"numpi":12,"o":7,"object":12,"one":[2,4,9],"onli":[2,7],"onlin":[2,5],"open":13,"openfoam":[2,5,7,9,12],"openfoam14":6,"opm":13,"opt":6,"option":7,"org":12,"output":[2,5,7],"overview":5,"p":[4,7],"pa":[2,4],"packag":[0,1,5,7,8],"pad":12,"pad_width":12,"pad_with":[10,11,12],"page":[3,4,5,6],"paramet":[4,5,7,9],"paraview":9,"pat":12,"path":[4,7,12],"pattern":2,"pb":12,"perform":7,"pip":[3,6],"pixel":[2,4],"pl":12,"pleas":[0,3],"plopm":5,"png":[4,7],"pngs":[7,13],"pofff":5,"point":[2,12],"polygon":[2,4],"pore":2,"possibl":3,"pr":12,"precipit":13,"prefer":3,"present":2,"pressur":[2,4],"pressureconv":[2,4,11,12],"previous":[3,4],"problem":5,"process":12,"process_imag":[10,11,12],"produc":[2,4],"project":[0,13],"prs":3,"pt":12,"pull":[0,3],"push":3,"pushd":3,"py312":3,"pycopm":5,"pylint":3,"pymm":[2,3,4,6,7,9],"pymmconfig":[10,11,12],"pyopmnearwel":5,"pyopmspe11":5,"pytest":3,"python":[0,5,7,12,13],"python3":6,"quad":2,"quick":13,"r":[3,6],"rais":[0,3],"reach":[2,4],"real":2,"reduc":2,"refer":[2,12],"reference_valu":12,"region":13,"relat":[4,5,9],"releas":6,"reli":7,"remain":5,"remark":2,"remedi":13,"remove_small_object":2,"replac":[3,12],"repo":[3,6],"report":5,"repositori":[3,6],"request":[0,3],"requir":[3,6],"rescal":[2,4,11,12],"research":0,"reservoir":13,"resolut":2,"resourc":[0,2],"respect":2,"result":[2,4,9],"review":3,"right":[2,4,12],"rise":3,"ruff":3,"rule":5,"run":[2,3,4,7,9,12],"run_stok":[10,11,12],"run_trac":[10,11,12],"s":[2,4],"save":[4,9],"scalartransportfoam":2,"scale":2,"scheme":[2,4,9],"screenshot":[4,9],"script":[1,3,6,12],"search":5,"section":4,"see":[2,3,6,9,12],"seek":5,"segment":7,"select":9,"send":3,"set":[2,4],"setup":4,"setuptool":6,"shape":2,"show":[2,4,9],"side":2,"simpl":7,"simplefoam":2,"simul":[2,4,6,7,9,12,13],"sinc":4,"singl":3,"site":13,"six":3,"size":[2,4],"skimag":[2,7],"skip":6,"slip":2,"smaller":2,"softwar":5,"solut":[2,4],"solver":[2,4,7,9],"soon":3,"sourc":[4,6,13],"space":2,"spatial":7,"spe11":13,"specif":6,"squash":3,"src":[3,12],"stabl":12,"start_index":12,"static":3,"step":[2,3,4,6],"stoke":[2,4,12],"storag":13,"str":12,"studi":13,"submodul":[1,8,10],"subpackag":[1,5,8],"subsect":2,"subsurfac":0,"succeed":3,"support":[5,6,7],"sustain":0,"t":[4,7],"tag":[6,12],"tailor":13,"target":[3,12],"templat":[1,2],"term":3,"termin":[4,6,7],"test":[3,6],"text":4,"thick":[2,4,11,12],"three":2,"threshold":[2,4,11,12],"time":[2,4],"toler":[2,4,9],"toml":[4,7,9,12],"tool":[6,7,13],"top":[2,4,12],"tracer":[2,4,7,12],"tracerstep":[2,4,11,12],"tracertim":[2,4,11,12],"tracerwrit":[2,4,11,12],"transform":2,"tri":3,"tupl":12,"tutori":3,"two":2,"txt":[3,6],"type":[2,6,7,13],"ubuntu":[3,6],"upgrad":6,"us":2,"use":[0,2,3,4,6,7,9,13],"user":3,"v2026":6,"valid":2,"valu":2,"vector":12,"veloc":[2,4,7],"velocityconv":[2,4,11,12],"venv":6,"version":[3,4,6,10],"vertic":2,"via":[2,4,6],"virtual":6,"viscos":[2,4,11,12],"visit":3,"visual":9,"void":7,"vpymm":6,"vtk_flowstok":9,"vtk_tracertransport":9,"vtks":13,"wall":[2,12],"water":7,"welcom":[0,3],"well":[3,13],"wheel":6,"white":[2,4],"whole":[4,7],"width":[2,4,11,12],"will":3,"work":[3,6],"write":[2,4,6,12],"write_geo":[10,11,12],"x":2,"yml":[3,6]},"titles":["About pymm","pymm Python API","Configuration file","Contributing","Examples","Welcome to pymm\u2019s documentation!","Installation","Introduction","pymm","Output folder","pymm package","pymm.core package","pymm.core.pymm module","Related"],"titleterms":{"About":0,"ad":13,"api":1,"configur":2,"content":[10,11],"contribut":3,"core":[11,12],"descript":7,"devic":[2,4],"document":5,"exampl":4,"exprecc":13,"figur":2,"file":2,"folder":9,"gmsh":6,"ground":3,"imag":[2,4],"indic":5,"instal":6,"introduct":7,"issu":3,"mesh":2,"micp":13,"modul":[10,11,12],"onlin":4,"openfoam":6,"output":9,"overview":7,"packag":[6,10,11],"paramet":2,"plopm":13,"pofff":13,"problem":3,"pycopm":13,"pymm":[0,1,5,8,10,11,12],"pyopmnearwel":13,"pyopmspe11":13,"python":[1,6],"relat":[2,13],"remain":2,"report":3,"rule":3,"s":5,"seek":3,"softwar":3,"submodul":11,"subpackag":10,"support":3,"tabl":5,"welcom":5}})
\ No newline at end of file
diff --git a/docs/text/installation.rst b/docs/text/installation.rst
index c2d25f5..b737495 100644
--- a/docs/text/installation.rst
+++ b/docs/text/installation.rst
@@ -46,11 +46,11 @@ OpenFOAM
--------
See the `OpenFOAM page `_, where from OpenFOAM-12 the simulator is available via apt get,
-and OpenFOAM-13 is the latest release. To test if OpenFoam is installed and working, you could type in the terminal:
+and OpenFOAM-14 is the latest release. To test if OpenFoam is installed and working, you could type in the terminal:
.. code-block:: console
- source /opt/openfoam13/etc/bashrc
+ source /opt/openfoam14/etc/bashrc
foamRun -help
Gmsh
@@ -62,4 +62,4 @@ See the `Gmsh page `_.
.. tip::
See the `CI.yml `_ script
- for installation of pymm, gmsh, and OpenFOAM-13 in Ubuntu using Python 3.14.
+ for installation of pymm, gmsh, and OpenFOAM-14 in Ubuntu using Python 3.14.
diff --git a/docs/text/introduction.rst b/docs/text/introduction.rst
index 66d3273..e71da01 100644
--- a/docs/text/introduction.rst
+++ b/docs/text/introduction.rst
@@ -12,7 +12,7 @@ Description
The **pymm** tool relies on Python packages (e.g., `skimage `_) to generate the spatial domains for the simulations from
the microsystem images, and `Gmsh `_ as a mesh generator.
The numerical simulations for the water flow and tracer are performed using
-the `OpenFOAM `_ simulator. This framework could be applied to general images and
+the `OpenFOAM `_ simulator. This framework could be applied to general images and
the current implementation could be ('easily') extended to consider further
geometry of devices and solvers in OpenFOAM.
diff --git a/docs/text/output_folder.rst b/docs/text/output_folder.rst
index 7167660..12419da 100644
--- a/docs/text/output_folder.rst
+++ b/docs/text/output_folder.rst
@@ -10,7 +10,7 @@ executing **pymm**.
Generated files after executing **pymm**.
The simulation results are saved in the VTK_flowSTokes and VTK_tracerTransport folders, and
-`paraview `_ is used for the visualization.
+`paraview `_ is used for the visualization.
Then after running **pymm**, one could modify the generated OpenFOAM related files and
run directly the simulations calling the OpenFOAM solvers, e.g., to change additional
tolerances that are not currently included in the parameters.toml file and/or to change
diff --git a/src/pymm/templates/OpenFOAM/tracerTransport/constant/fvConstraints b/src/pymm/templates/OpenFOAM/tracerTransport/constant/fvConstraints
index be779b7..ea52640 100644
--- a/src/pymm/templates/OpenFOAM/tracerTransport/constant/fvConstraints
+++ b/src/pymm/templates/OpenFOAM/tracerTransport/constant/fvConstraints
@@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\
-| ========= | |
-| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
-| \\ / O peration | Version: 12 |
-| \\ / A nd | Website: www.openfoam.com |
-| \\/ M anipulation | |
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Version: 12
+ \\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{