Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • dumux dumux
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 85
    • Issues 85
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 80
    • Merge requests 80
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • dumux-repositories
  • dumuxdumux
  • Issues
  • #1119

Closed
Open
Created Jan 17, 2022 by Kilian Weishaupt@kweisOwner

Improve documentation of pore-network grid creator parameters

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 (merged)

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.DeletionProbabilityto 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.
Edited Jan 18, 2022 by Kilian Weishaupt
Assignee
Assign to
Time tracking