-
Notifications
You must be signed in to change notification settings - Fork 69
Description
to_silo supports this non-idiomatic case that does not conform to the Blueprint:
volume_fractions:
Material1:
values: [1.0, 1.0, 1.0, ..., 0.53, 0.53]
Material2:
values: [1.0, 1.0, 1.0, ..., 0.14, 0.14]
The cases we support everywhere are these:
# full (element_dominant and multi_buffer)
# matset:
# topology: "topo"
# volume_fractions:
# background: [1.0, 1.0, 1.0, ..., 1.0, 1.0]
# circle_a: [0.0, 0.0, 0.0, ..., 0.0, 0.0]
# circle_b: [0.0, 0.0, 0.0, ..., 0.0, 0.0]
# circle_c: [0.0, 0.0, 0.0, ..., 0.0, 0.0]
# sparse_by_material (material_dominant and multi_buffer)
# matset:
# volume_fractions:
# background: [1.0, 1.0, 1.0, ..., 1.0, 1.0]
# circle_a: [1.0, 1.0, 0.5, ..., 1.0, 1.0]
# circle_b: [0.333333333333333, 0.5, 1.0, ..., 1.0, 1.0]
# circle_c: [1.0, 1.0, 1.0, ..., 0.333333333333333, 0.5]
# element_ids:
# background: [0, 1, 2, ..., 98, 99]
# circle_a: [52, 53, 54, ..., 93, 94]
# circle_b: [55, 56, 57, ..., 96, 97]
# circle_c: [15, 23, 24, ..., 55, 56]
# topology: "topo"
# sparse_by_element (uni_buffer and element_dominant)
# matset:
# topology: "topo"
# material_map:
# circle_a: 1
# circle_b: 2
# circle_c: 3
# background: 0
# volume_fractions: [1.0, 1.0, 1.0, ..., 1.0, 1.0]
# material_ids: [0, 0, 0, ..., 0, 0]
# sizes: [1, 1, 1, ..., 1, 1]
# offsets: [0, 1, 2, ..., 105, 106]
We never usually have a values child underneath a specific material volume fraction. Because this case is in to_silo, this case is supported in VisIt and in Conduit Relay's Silo I/O features.
This came to light here: Alpine-DAV/ascent#1620
Removing this extra case in to_silo caused no tests to fail across the entire test suite.
I would like to remove this as it does not conform to the Blueprint and it is generally unsupported, so any matset operations other than to_silo will fail if your data looks like this. I would imagine that eventually the matset transforms will come to be used in other tools like Ascent, at which point we will either need to disallow this case or add it to the Blueprint and force all matset operations to support it.
@cyrush will investigate if there are other places that are relying on this case or if we can just remove support for it.