-
Notifications
You must be signed in to change notification settings - Fork 8
AMR Spatial Field Extension #117
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
base: next_release
Are you sure you want to change the base?
Conversation
762c573 to
e77387f
Compare
e77387f to
0b2babd
Compare
|
Regarding the
Thus proposed to replace Regarding the name: AMR is used in the original paper and seems established. If there are other adaptive refinement schemes those will have a different name (like HTG). |
7aa9baf to
e28bbc4
Compare
|
@ingowald any thoughts on @johguenther's response? |
|
Re "refinement levels are integers" - yes, they are. IIRC in practice they're always powers of two, in fact. Re "always the same between levels" - in that paper they probably are, but in their definition they probably dont' have to be. IIRC their definition only stated the finer levels fully cover coarser level grid cells, that could in theory be any integer at any level. That said, IIRC the actual chombo file format doesn't actually talk much about levels at all, it just specifies bricks with dimension, cell width, and position. Re cellWidth vs spacing. Yes, in pinricple they'll be the same value. It might still increase readablity to have both, because 'spacing' implies distance between cell centers, which - though the same value as that between cell boundaries - sounds like something else. Also, it is perfectly possible to interpret these as two different values: "cell width" as a per-brick logical cell width (ie, integer values that correspond to that brick's total refinement ratio), and "spacing" as a world-space spacing between finest-level grid cells, same as for structured volumes. |
e28bbc4 to
ba60e9d
Compare
|
Updates based on last discussions. Ready to be squashed and merged. |
ba60e9d to
1dd60d9
Compare
|
@johguenther is |
|
for
where logical grid is the one you would get, hypothetically, if you projected all the cells on that level onto one big cartesian grid. |
|
@jeffamstutz in regards to the WG discussion on the correct extension name, I recommend (patch or block) structured AMR. My preference is
instead of
However block and patch are generally used to mean the same thing. Here's some references that helped inform this recommendation: VTK
VisIt AMReX |
|
Concur on 'block structured' over 'patch structured'. |
Yeah...patch-based seems to be used to imply patch structured as there's nothing preventing the patches from being unstructured. In the same vein, block-based has been used a few times to imply block structured. |
|
Currently implementing the latest changes on my side. One thing I'm debating that I'd really rather have block.data be a single linear array, that would be much more flexible in my opinion. As currently there is no way to just I think the representation I would prefer is more SoA-like:
|
|
Interesting idea; OSPRay/VKL supports this for VDB volumes with the
|
|
Yes exactly. An issue with the current draft is that it conflates what is raw data and what is topology. As the topology of the subgrids is in parts encoded in the array-of-array data structure holding the values. Currently it's only the subgrid sizes that are encoded in that data structure though, which seems arbitrary. I would prefer a design that clearly distinguishes between data and topology, not only from an efficiency, but also from a software design perspective. This would also make the field type more similar to the unstructured field type, where data and topology are separated as well. |
|
I implemented that on my side and it simplifies things a lot. This branch contains a patched version of TSD that implements these changes: https://github.com/szellmann/VisRTX/tree/amr |
See AMR Spatial Field Implementation for a concrete example implementing this proposed AMR Spatial Field extension.