visit icon indicating copy to clipboard operation
visit copied to clipboard

Handle Silo periodic boundary conditions

Open markcmiller86 opened this issue 1 year ago • 2 comments

Description

Resolves #19501

Type of change

  • ~~[ ] Bug fix~~
  • [x] New feature~~
  • ~~[ ] Documentation update~~
  • ~~[ ] Other~~

How Has This Been Tested?

Reminders:

  • Please follow the style guidelines of this project.
  • Please perform a self-review of your code before submitting a PR and asking others to review it.
  • Please assign reviewers (see VisIt's PR procedures for more information).

Checklist:

  • [ ] I have commented my code where applicable.~~
  • [ ] I have updated the release notes.~~
  • [ ] I have made corresponding changes to the documentation.~~
  • [ ] I have added debugging support to my changes.~~
  • [ ] I have added tests that prove my fix is effective or that my feature works.~~
  • [ ] I have confirmed new and existing unit tests pass locally with my changes.~~
  • [ ] I have added new baselines for any new tests to the repo.~~
  • [ ] I have NOT made any changes to protocol or public interfaces in an RC branch.~~

markcmiller86 avatar Oct 22 '24 04:10 markcmiller86

This is close but I am still getting issues with top and bottom faces of the global mesh...they are rendering all black.

markcmiller86 avatar Oct 22 '24 04:10 markcmiller86

I wonder if the black bottom/top faces is something to do with wrong normal directions? If I slice or clip right near the top/bottom edges, it looks right.

markcmiller86 avatar Oct 22 '24 16:10 markcmiller86

The below remarks capture some of the basic understanding I needed to write the code based on an example involving 3584 rectangular domains organized into a globally rectangular arrangement of 14x16x16 domains. Where should I put this? Is having just here in this PR ok?

For a globally and locally rectangular structure: each domain has 26 neighbors (6 face, 12 edge, 8 vertex neighbors) indexed 0...25. The DBmultimeshadj object’s neighbors member, A lines below, holds the 26 global domain ids for each domain’s neighbors.

The B line is the contents of the PeriodicDomList array (global domain ids) and the C line is the contents of the PeriodicBndList array (locally indexed to one of the possible 26 neighbors) formatted to align with the local indices. These two arrays are 1:1. Note that all array entries are sorted in monotone increasing domain id and the associated Silo plugin code takes advantage of this.

Domain on one of the the global mesh’s vertices (domain 0, 19 neighbors are periodic neighbors, 7 are non-periodic)

A. 1, 13, 14, 15, 27, 210, 211, 223, 224, 225, 237, 238, 239, 251, 434, 435, 447, 3360, 3361, 3373, 3374, 3375, 3387, 3570, 3571, 3583,
B.     0,          0,   0,   0,   0,             0,             0,   0,   0,    0,   0,    0,    0,    0,    0,    0,    0,    0,    0
C.     1,          4,   5,   6,   7,            10,            13,  14,  15,   16,  17,   18,   19,   20,   21,   22,   23,   24,   25

Domain on one of the global mesh’s edges (domain 1, 15 neighbors are periodic neighbors, 11 are non-periodic)

A. 0, 2, 14, 15, 16, 210, 211, 212, 224, 225, 226, 238, 239, 240, 434, 435, 436, 3360, 3361, 3362, 3374, 3375, 3376, 3570, 3571, 3572,
B.                     1,   1,   1,                                 1,   1,    1,   1,    1,    1,    1,    1,    1,    1,    1,    1,
C.                     5,   6,   7,                                14,  15,   16,  17,   18,   19,   20,   21,   22,   23,   24,   25,

Domain on one of he global mesh’s faces (domain 23, 9 periodic neighbors, 17 are non-periodic)

A. 9, 10, 11, 23, 25, 37, 38, 39, 233, 234, 235, 247, 248, 249, 261, 262, 263, 3369, 3370, 3371, 3383, 3384, 3385, 3397, 3398, 3399,
B.                                                                               23,   23,   23,   23,   23,   23,   23,   23,   23
C.                                                                               17,   18,   19,   20,   21,   22,   23,   24,   25

Domain wholly interior in the global mesh (domain 239, 0 periodic neighbors, 26 are non-periodic)

Domain 239 is first domain wholly contained in the interior of the original set of domains.

markcmiller86 avatar Oct 25 '24 17:10 markcmiller86