dumux issueshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/issues2022-01-21T08:57:16Zhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/issues/1119Improve documentation of pore-network grid creator parameters2022-01-21T08:57:16ZKilian Weishauptkilian.weishaupt@iws.uni-stuttgart.deImprove documentation of pore-network grid creator parametersThe generic pore-network grid creator comes with a lot of parameters which are not quite clear immediately.
We should document those properly.
See also !2996
Should this go into the generic `Parameters` documentation table? Not sure...The generic pore-network grid creator comes with a lot of parameters which are not quite clear immediately.
We should document those properly.
See also !2996
Should this go into the generic `Parameters` documentation table? Not sure if this is enough because they would probably be scattered all over the table. Maybe we also need a wiki entry for summary?
Just a brief explanation how the `StructuredLatticeGridCreator` works (based on https://link.springer.com/article/10.1007/s11242-009-9412-3):
1.) Create a regular, axis-parallel 2D or 3D host grid using YaspGrid (can also have grading)
2.) All 2D/3D element edges are considered as throats, connecting the pores located on the bulk element vertices
3.) Add additional throats by connecting the element vertices diagonally
4.) From this "fully-connected" network, delete throats by specifying a certain `DeletionProbability` for each spatial direction (x,y,z and diagonals). This allows to generate anisotropy.
When setting a value of one to the diagonals, a regular axis-aligned lattice grid is created.
5.) Run a sanitation algorithm to remove potential isolated clusters
6.) Assign parameters like `PoreInscribedRadius` to the remaining entities
__Collection of parameters for StructuredLatticeGridCreator__
* `Grid.RemoveThroatsOnBoundary`: Takes list of integers for specifying the side of a cubic domain (0 = xMin, 1 = xMax, 2 = yMin, 3 = yMax, 4 = zMin, 5 = zMax). Removes throats lying on the given sides, i.e. remove throats whose center touches the sides.
* `Grid.DeletionRandomNumberSeed`: Random number seed used when randomly deleting throats from the fully connected lattice. Needed for reproducibility.
* `Grid.RegularLattice`: When set to `true`, a regular axis-aligned lattice grid without any diagonal throats is created. Corresponds to setting `Grid.DeletionProbability`to `1.0` for all diagonal directions.
* `Grid.DeletionProbability` Takes list of doubles corresponding to the deletion probability of throats for each possible spatial direction.
The directions in 2D are : (1, 0), (0, 1), (1, 1) (1, -1)
Example: 0.0, 0.5, 1.0 , 1.0 will delete all diagonal throats and 50% of all throats in y-direction.
The directions in 3D are (1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, -1, 0), (1, 0, 1), (1, 0, -1), (0, 1, 1), (0, 1, -1), (1, 1, 1), (1, 1, -1), (-1, 1, 1), (-1, -1, 1)
* `Grid.Positions`: The host grid positions when using tensor grid coordinates.
* `Grid.LowerLeft`: The host grid lower left
* `Grid.UpperRight`: The host grid upper right
* `Grid.NumPores`: The number of pores in each directions (equals hostGridElements + 1)
* `Grid.Grading`: The host grid grading when using tensor grid coordinates.
* `Grid.AllowIntersectingDiagonals`. If set `true`, diagonal throats in an host grid element may intersect. Default is `true`.
__Collection of parameters for ParametersForGeneratedGrid__
* `Grid.SubregionX.LowerLeft`: The lower left of a network subregion, for which individual parameters may be set. X is the subregion id (int).
* `Grid.SubregionX.UpperRight`: The upper right of a network subregion, for which individual parameters may be set. X is the subregion id (int).
* `Grid.PoreInscribedRadius`: Sets a fixed inscribed radius for all pores.
* `Grid.PoreVolume`. Sets a fixed volume for all pores. If not set, the value will be calculated automatically based on the pore geometry and inscribed radius.
* `Grid.ThroatInscribedRadius`. Sets a fixed inscribed radius for all throats. If not set, the value will be calculated automatically based on the throat length and the adjacent pore body radii.
* `Grid.ThroatLength`: Sets a fixed length for all throat. If not set the value will be calculated automatically based on the adjacent pore body centers and radii.
* `Grid.PriorityList`: Takes list of integers for specifying the side of a cubic domain (0 = xMin, 1 = xMax, 2 = yMin, 3 = yMax, 4 = zMin, 5 = zMax). Need to avoid ambiguities when setting the boundary pore labels for pores on corners. The order within the lists determines the precedence of labels.
* `Grid.BoundaryFaceMarker`: Takes a list of integers to specifiy the pore label at each boundary.
2D example: `Grid.BoundaryFaceMarker = 1 2 0 0` results in label(xMin) = 1, label(xMax) = 2, label(yMin) = 0, label(yMax) = 0
* `Grid.CapPoreRadii`. If set `true` (default), pore body inscribed radii are capped such that the pores do not intersect.
* `Grid.MinThroatLength`. Sets a minimum throat length (default 1e-9) in case pores are capped.
* `Grid.PoreLabelsToSetFixedRadius`. Takes a list of pore labels at which a certain fixed radius shall be set. Should probably be removed as we have `SubRegions`. Those could also be set based on labels instead of locations.
* `Grid.PoreLabelsToApplyFactorForRadius` Takes a list of pore labels at which the given pore radius shall be multiplied by a given factor. Should probably be removed as we have `SubRegions`. Those could also be set based on labels instead of locations.
* Grid.FixedPoreRadiusForLabel
* Grid.PoreRadiusFactorForLabel
* `Grid.ParameterRandomNumberSeed`: Random number seed for setting randomly generated parameter. Needed for reproducibility.
* `Grid.ParameterType (uniform / lognormal)`: Specifies the type of random number distribution for setting parameters.
* `Grid.PoreGeometry`: Sets the pore body geometry for all pores.
* `Grid.CapPoresOnBoundaries`: If set `true` pores on boundaries will be cut in half (affects volume).
* `Grid.PoreHeight`: Parameter needed if cylindrical or non-cubic/non-spherical pores are considered.
* `Grid.SubstractRadiiFromThroatLength`: If set true, the pore body inscribed radii will be subtracted from the throat length (which is the Euclidean distance between pore body centers). TODO: fix typo and deprecate!
* `Grid.MeanPoreInscribedRadius`: Sets the mean inscribed pore radius for random parameters.
* `Grid.StandardDeviationPoreInscribedRadius`: Sets the standard deviation of the inscribed pore radius for random parameters.
__Collection of parameters for GridManager__
* `Grid.File`: The grid file.
* `Grid.Sanitize`: If set `true`, isolated network clusters will be found and removed.
* `Grid.SanitationMode`: Options are `KeepLargestCluster` (default) and `UsePoreLabels` keeps all pores connected to a list of labels (`PruningSeedIndices`).
* `Grid.PruningSeedIndices` See `SanitationMode`. Default is (1)
__Collection of parameters for GridData__
* `Grid.NumSubregions`. The number of network subregions. Default is zero.