updating documentation
This commit is contained in:
parent
86be403b18
commit
ae2e542cf5
5
docs/source/examples/color/steadyState.rst
Normal file
5
docs/source/examples/color/steadyState.rst
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
*******************
|
||||||
|
Steady-state flow
|
||||||
|
*******************
|
||||||
|
|
||||||
|
In this example we simulate a steady-state flow with a constant driving force.
|
106
docs/source/examples/morphology/morphOpen.rst
Normal file
106
docs/source/examples/morphology/morphOpen.rst
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
*****************************
|
||||||
|
Morphological pre-processors
|
||||||
|
*****************************
|
||||||
|
|
||||||
|
LBPM includes morphological pre-processing tools as utility functions.
|
||||||
|
It is often useful to generate initial conditions for a 2-phase flow simulation based on a morphological approach. In particular, morphological tools can be used to provide a physical reasonable initial condition in cases where direct experimental observations are not available. These initial configurations are compatible with any of the 2-phase simulation protocols used by lbpm_color_simulator. These initialization approaches alter the fluid labels within the input files, writing a new file with the new morphologically assigned labels.
|
||||||
|
|
||||||
|
There are two main morphological pre-processors in LBPM
|
||||||
|
|
||||||
|
* ``lbpm_morphdrain_pp`` -- initialize fluid configuration based on morphological drainage
|
||||||
|
* ``lbpm_morphopen_pp`` -- initialize fluid configuration based on morphological opening
|
||||||
|
|
||||||
|
Here we demonstrate ``lbpm_morphdrain_pp`` because it offers the most information. Although it is not perfect, the morphological drainage operation does a good job of approximating configurations observed along primary drainage processes performed under water-wet conditions. A limitation is that fluid trapped in the corners will not stop the morphological operation from eroding it. This should not discourage you too much -- morphological tools are very practical and can save you a lot of time! It is also a good thing to be skeptical.
|
||||||
|
|
||||||
|
Since the morphological operation works on the input domain, associated parameters are added to the ``Domain`` section of the input file. Here we will set a target saturation Sw = 0.20, which will run the morphological drainage operation until the fluid labeled as 2 occupies 20% of the pore space or less. For the case considered in
|
||||||
|
``example/DiscPack`` we specify the following information in the input file
|
||||||
|
|
||||||
|
.. code:: c
|
||||||
|
|
||||||
|
Domain {
|
||||||
|
Filename = "discs_3x128x128.raw"
|
||||||
|
ReadType = "16bit" // data type
|
||||||
|
N = 3, 128, 128 // size of original image
|
||||||
|
nproc = 1, 2, 2 // process grid
|
||||||
|
n = 3, 64, 64 // sub-domain size
|
||||||
|
voxel_length = 7.0 // voxel length (in microns)
|
||||||
|
ReadValues = 0, 1, 2 // labels within the original image
|
||||||
|
WriteValues = 0, 2, 2 // associated labels to be used by LBPM
|
||||||
|
InletLayers = 0, 0, 6 // specify 6 layers along the z-inlet
|
||||||
|
BC = 0 // fully periodic BC
|
||||||
|
Sw = 0.20 // target saturation for morphological tools
|
||||||
|
}
|
||||||
|
|
||||||
|
Once this has been set, we launch lbpm_morphdrain_pp in the same way as other parallel tools
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
mpirun -np 4 $LBPM_BIN/lbpm_morphdrain_pp input.db
|
||||||
|
|
||||||
|
Successful output looks like the following
|
||||||
|
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
Performing morphological opening with target saturation 0.500000
|
||||||
|
voxel length = 1.000000 micron
|
||||||
|
voxel length = 1.000000 micron
|
||||||
|
Input media: discs_3x128x128.raw
|
||||||
|
Relabeling 3 values
|
||||||
|
oldvalue=0, newvalue =0
|
||||||
|
oldvalue=1, newvalue =2
|
||||||
|
oldvalue=2, newvalue =2
|
||||||
|
Dimensions of segmented image: 3 x 128 x 128
|
||||||
|
Reading 8-bit input data
|
||||||
|
Read segmented data from discs_3x128x128.raw
|
||||||
|
Label=0, Count=11862
|
||||||
|
Label=1, Count=37290
|
||||||
|
Label=2, Count=0
|
||||||
|
Distributing subdomains across 4 processors
|
||||||
|
Process grid: 1 x 2 x 2
|
||||||
|
Subdomain size: 3 x 64 x 64
|
||||||
|
Size of transition region: 0
|
||||||
|
Media porosity = 0.758667
|
||||||
|
Initialized solid phase -- Converting to Signed Distance function
|
||||||
|
Volume fraction for morphological opening: 0.758667
|
||||||
|
Maximum pore size: 116.773801
|
||||||
|
1.000000 110.935111
|
||||||
|
1.000000 105.388355
|
||||||
|
1.000000 100.118937
|
||||||
|
1.000000 95.112990
|
||||||
|
1.000000 90.357341
|
||||||
|
1.000000 85.839474
|
||||||
|
1.000000 81.547500
|
||||||
|
1.000000 77.470125
|
||||||
|
1.000000 73.596619
|
||||||
|
1.000000 69.916788
|
||||||
|
1.000000 66.420949
|
||||||
|
1.000000 63.099901
|
||||||
|
1.000000 59.944906
|
||||||
|
1.000000 56.947661
|
||||||
|
1.000000 54.100278
|
||||||
|
1.000000 51.395264
|
||||||
|
1.000000 48.825501
|
||||||
|
1.000000 46.384226
|
||||||
|
1.000000 44.065014
|
||||||
|
1.000000 41.861764
|
||||||
|
1.000000 39.768675
|
||||||
|
1.000000 37.780242
|
||||||
|
1.000000 35.891230
|
||||||
|
1.000000 34.096668
|
||||||
|
1.000000 32.391835
|
||||||
|
0.805149 30.772243
|
||||||
|
0.727353 29.233631
|
||||||
|
0.719791 27.771949
|
||||||
|
0.714883 26.383352
|
||||||
|
0.710861 25.064184
|
||||||
|
0.637249 23.810975
|
||||||
|
0.444570 22.620426
|
||||||
|
Final void fraction =0.444570
|
||||||
|
Final critical radius=22.620426
|
||||||
|
Writing ID file
|
||||||
|
Writing file to: discs_3x128x128.raw.morphdrain.raw
|
||||||
|
|
||||||
|
|
||||||
|
The final configuration can be visualized in python by loading the output file
|
||||||
|
``discs_3x128x128.raw.morphdrain.raw``.
|
@ -1,5 +1,5 @@
|
|||||||
==============
|
==============
|
||||||
LBPM examples
|
Examples
|
||||||
==============
|
==============
|
||||||
|
|
||||||
There are two main components to running LBPM simulators.
|
There are two main components to running LBPM simulators.
|
||||||
|
@ -12,9 +12,9 @@ LBPM -- Documentation
|
|||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
install
|
install
|
||||||
examples/*
|
|
||||||
userGuide/*
|
userGuide/*
|
||||||
developerGuide/*
|
developerGuide/*
|
||||||
|
examples/*
|
||||||
publications/*
|
publications/*
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
@ -5,9 +5,9 @@ I/O conventions for LBPM
|
|||||||
There are three main kinds of output file that are supported by LBPM.
|
There are three main kinds of output file that are supported by LBPM.
|
||||||
|
|
||||||
|
|
||||||
* CSV files --
|
* CSV files -- space-delimited CSV files are used by the internal analysis framework
|
||||||
|
|
||||||
* formatted binary files --
|
* formatted binary files -- SILO and HDF5 formats are supported for visualization data
|
||||||
|
|
||||||
* unformatted binary files --
|
* unformatted binary files -- ``.raw`` extension
|
||||||
|
|
||||||
|
@ -12,3 +12,4 @@ Welcome to the LBPM user guide.
|
|||||||
|
|
||||||
visualization/*
|
visualization/*
|
||||||
|
|
||||||
|
IO/*
|
||||||
|
@ -266,3 +266,8 @@ the inlet or outlet, the ``Domain`` section of the database may specify the foll
|
|||||||
- ``InletLayerPhase = 2`` -- establish a reservoir of component B at the inlet
|
- ``InletLayerPhase = 2`` -- establish a reservoir of component B at the inlet
|
||||||
- ``OutletLayerPhase = 1`` -- establish a reservoir of component A at the outlet
|
- ``OutletLayerPhase = 1`` -- establish a reservoir of component A at the outlet
|
||||||
|
|
||||||
|
****************
|
||||||
|
Example data
|
||||||
|
****************
|
||||||
|
|
||||||
|
Example data can be downloaded from https://www.digitalrocksportal.org/projects/326
|
||||||
|
Loading…
Reference in New Issue
Block a user