Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continued Silo/Overlink I/O Support #1111

Open
5 of 24 tasks
JustinPrivitera opened this issue May 3, 2023 · 5 comments
Open
5 of 24 tasks

Continued Silo/Overlink I/O Support #1111

JustinPrivitera opened this issue May 3, 2023 · 5 comments
Assignees
Labels

Comments

@JustinPrivitera
Copy link
Member

JustinPrivitera commented May 3, 2023

Once #850 is complete these will be the next important tasks:

Short term:

  • materials - Add I/O support for Silo Materials #1171
  • ability to output sparse by material and full matsets from silo -> blueprint - Silo I/O choose matset type on read #1236
  • row major/column major + striding for quadvars, reorder??? - see visit plugin for inspiration
  • specsets - add species I/O support for Silo meshes #1242 - Silo/Overlink I/O: Specsets #1348
  • adjsets - Overlink I/O: Read and Write Support for Adjsets #1210
  • overlink support - nearly there; requires materials support and a few other considerations - Overlink support 1.0 #1249
  • a new solution is needed for the opts mesh name name collision problem. Perhaps for the root only single domain case we could always force 1 domain. Thus mmesh name will always be the topo name. opts mesh name will not be used anymore. If there is going to be a directory name collision we could make it be dom0.
  • name schemes
  • polytopal support - Silo/Overlink I/O Polygon Support + Misc Fixes #1253
  • plumbing the write and read silo calls into blueprint write and read at a high level
  • units/labels
  • overlink conduit tests over in the overlink conduit repo
  • visit tests
  • ability to read files with no multimeshes
  • fix naming conventions so there are no name collisions and save names appropriately
  • parallel error handling
  • refactor blueprint and silo i/o so they use the same logic under the hood - blueprint load_mesh needs to call silo load_mesh if it detects the file is a silo file. HDF5 detection. Errors if Silo isn't there.
  • take advantage of expanded specset representation - for reading, writing, and test utils. Test all the representations diff correctly for round trip. See TODOs around the code. Do it once Specset flavor converters #1349 is complete.

Long Term:

  • support the "pre-mixed" case, the list case
  • AMR silo to blueprint support
  • we would like it if, when reading overlink, we could use the padding dimensions to create a field that paints the nodes one color if they are ghosts and another if they are not. Extra credit if you also check for the existence of this field when writing padding dimensions, walk it and determine if padding dims can be extracted from it.

Optional:

  • we can add a recursive read of multivars and multimeshes placed in subdirectories (like what visit does) if someone needs it.
  • For now we are not supporting material-dependent fields, only material-independent and mixed fields are allowed. We could do some math to take a material-independent field and calculate per-element values for it so we can feed that to silo. We can decide later if we want to add that capability.
  • Someday, if someone asks us, we can do some work to enable matsets for strided structured cases. There is a detailed info message that gets printed right now that explains why this is such a difficult case.
@JustinPrivitera
Copy link
Member Author

investigate why silo_save_option_overlink_basic breaks VisIt when rendering fields.

@JustinPrivitera
Copy link
Member Author

JustinPrivitera commented Apr 17, 2024

places I can get bit by major order:

  • quadmesh
  • quadvar
  • meshvar (pointvar) - probably means nothing
  • material - unknown if I have solved this
  • species

places I can get bit by min and max index

  • quadmesh
  • quadvar
  • meshvar (pointvar) - probably means nothing
  • zonelist

places I can be bit by stride

  • quadmesh
  • quadvar
  • meshvar (pointvar) - probably means nothing
  • material - see below comment
  • species

@JustinPrivitera
Copy link
Member Author

I think it might actually be possible to handle strided structured case when reading materials. I just need to be smart about how I index into the matlist. The tools to help me do that should be in the DBmaterial. I don't think it will require transforming the matset to remove entries.

@JustinPrivitera
Copy link
Member Author

JustinPrivitera commented May 23, 2024

Polyhedral topologies have a node ordering requirement in Silo that is not required for Blueprint. See the Silo docs for more information. What this means is that Blueprint data that does not conform to that requirement will not render properly in VisIt. So, meshes like basic don't look right. Perhaps we could look at some kind of inside-out test and then reorder nodes. We can investigate for the future.

@JustinPrivitera
Copy link
Member Author

How is specmix_quad.silo able to have multiple materials defined? Am I not remembering how these things work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants