Multimesh gap and mrg tree #18320
-
Hi, I have a question about the adjacency of the multimesh. For the mesh of domain0, the meshes start from 0 to M, if I make the mesh of domain1 start from M+1, then there will be a gap between the domains when visualized in VisIt. The way that I tried to shun this problem is making domain1 starts from M so that it overlaps with domain0. It works as expected but I suspect that it may cause some discontinuity in post-processing. My data is structured, node-centered quadmesh.
Thanks a lot. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 7 replies
-
@mqiyang very sorry for delay in responding. Lemme see if I can help with some of your questions...
Hmm...are you using the
Well, short answer is yes. But, it also depends. For structured meshes, VisIt does have the ability to generate this information while it is reading data in. For UNstructured meshes, the database itself must resolve the overlap for VisIt. You mention you have a structured mesh. So, in theory, VisIt can compute this for you. In VisIt parlance, these extra zones to resolve overlap are called ghost zones. Another name for ghost is halo. The idea is these are kinda sorta extra zones/cells in the mesh. They are there for proposes of computing things (like normals for shading or derivatives or getting contouring correct) but are not intended to actually be displayed as part of the final result. They are there but you can't see 'em. They are ghosts. Some other refs...
Now, a common issue with structured grid in parallel is that two neighboring pieces include only the nodes up to their adjoining boundary. Niether piece has any nodes in common along that boundary. That will lead to gaps. So, both pieces that share a boundary also need to share the nodes on that boundary. And, those shared nodes are NOT GHOSTS. They are displayed in every view of the data on both pieces. This is true regardless of mesh type (structured or UNstructured) and VisIt cannot fill such a gap itself. Sometimes, both pieces need to share multiple layers of nodes (or zones). For example, to compute 2nd order derivatives at the nodes on a piece boundary, two-layers of ghost nodes are required, etc. For strong scaling scenarios where you increase the number of pieces and each piece gets smaller and smaller, the relative cost of the ghost (or halo) data gets to be hugely prohibitive which is why not having the data producer write it and instead have the consumer produce it on the fly is sometimes very important.
No. VisIt handles both ghost nodes and ghost zones. In Silo's
Ok, so indeed you are using MRG trees. But, I don't think you need to for the special case of ghosting. Try using the |
Beta Was this translation helpful? Give feedback.
@mqiyang very sorry for delay in responding. Lemme see if I can help with some of your questions...
Hmm...are you using the
DBPutMultimeshadj()
call for this or Mesh Region Group (MRG) trees? Your headline suggests m…