ImageSubdomainGenerator

Samples an image at the coordinates of each element centroid, using the resulting pixel color value as each element's subdomain ID

Example Syntax

Normal usage of ImageSubdomainGenerator involves creation of a standard mesh (in the example, GeneratedMeshGenerator), using that mesh as the input for ImageSubdomainGenerator, and providing an image to sample. See an example below:

[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 41
    ny = 41
  []
  [./image]
    input = gen
    type = ImageSubdomainGenerator
    file = kitten.png
    threshold = 100
  [../]
[]
(moose/test/tests/preconditioners/fsp/fsp_test_image.i)
commentnote

In this example, the parameter threshold is used. This sets a color value above which the subdomain ID is set to upper_value (default = 1) and below which the subdomain ID is set to lower_value (default = 0). More information about these and other extended parameters can be seen below in the Input Parameters section.

Input Image (kitten.png)

Mesh Subdomain ID Output

Input Parameters

  • inputThe mesh we want to modify

    C++ Type:MeshGeneratorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The mesh we want to modify

Required Parameters

  • componentThe image RGB-component to return, leaving this blank will result in a greyscale value for the image to be created. The component number is zero based, i.e. 0 returns the first (RED) component of the image.

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The image RGB-component to return, leaving this blank will result in a greyscale value for the image to be created. The component number is zero based, i.e. 0 returns the first (RED) component of the image.

  • dimensionsx,y,z dimensions of the image (defaults to mesh dimensions)

    C++ Type:libMesh::Point

    Unit:(no unit assumed)

    Controllable:No

    Description:x,y,z dimensions of the image (defaults to mesh dimensions)

  • fileName of single image file to extract mesh parameters from. If provided, a 2D mesh is created.

    C++ Type:FileName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of single image file to extract mesh parameters from. If provided, a 2D mesh is created.

  • file_baseImage file base to open, use this option when a stack of images must be read (ignored if 'file' is given)

    C++ Type:FileNameNoExtension

    Unit:(no unit assumed)

    Controllable:No

    Description:Image file base to open, use this option when a stack of images must be read (ignored if 'file' is given)

  • file_rangeRange of images to analyze, used with 'file_base' (ignored if 'file' is given)

    C++ Type:std::vector<unsigned int>

    Unit:(no unit assumed)

    Controllable:No

    Description:Range of images to analyze, used with 'file_base' (ignored if 'file' is given)

  • file_suffixSuffix of the file to open, e.g. 'png'

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Suffix of the file to open, e.g. 'png'

  • originOrigin of the image (defaults to mesh origin)

    C++ Type:libMesh::Point

    Unit:(no unit assumed)

    Controllable:No

    Description:Origin of the image (defaults to mesh origin)

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • flip_xFalseFlip the image along the x-axis

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Flip the image along the x-axis

  • flip_yFalseFlip the image along the y-axis

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Flip the image along the y-axis

  • flip_zFalseFlip the image along the z-axis

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Flip the image along the z-axis

Flip Parameters

  • lower_value0The value to set for data less than the threshold value

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The value to set for data less than the threshold value

  • thresholdThe threshold value

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The threshold value

  • upper_value1The value to set for data greater than the threshold value

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The value to set for data greater than the threshold value

Threshold Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters

  • scale1Multiplier to apply to all pixel values; occurs after shifting

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Multiplier to apply to all pixel values; occurs after shifting

  • shift0Value to add to all pixels; occurs prior to scaling

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Value to add to all pixels; occurs prior to scaling

Rescale Parameters