-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Potential new system: MeshDivisions #25901
Comments
Can you clarify this a bit more? This has nothing to do with Partition_er_s, right? How would a |
It could though. You could use the Partition from the Partitions system to re-partition ? With a PartitionPartitioner in the Partitioner system! |
A CartesianLattice can have a single indexing as ix * nz * ny + iy * nz + nz . So if there are 2, 1 , 3 bins in X, Y and Z, we have 6 parts to this Lattice partitioning
from any position you can land the ix, iy, iz index so that would get you the ID for that element |
My first thought which is not about the functionality of the new system is that unless there's a guaranteed one-to-one mapping from the Partitioner to the Partition then we should rename the latter |
definitely not that's a non-starter.
|
Bounder is my best initial idea haha |
If we have multiple Partitions objects isnt it clear that they are not both parallel partitions? |
When I think of a partition, I think of a processor ID partition. But I could deal with the Partition name; it's not a "non-starter" for me. I like to go to @friedmud for possibly opinionated answers although he's gotten more and more diplomatic with time. @roystgnr is one who thinks about partitions all the time so would welcome his input on the name |
If I was writing a user interface from scratch, I'd have gone with "Partitioning" (because to a math geek that's a weird but understandable way to say "Partition", whereas to an HPC geek it's clearer because "Partition" may get used to refer to just a single subset contained in a partition). Then "ParallelPartitioning" or "ProcessorPartitioning" would be the specialization of that which assigns each MPI rank its own set. But at this point there's probably too many people who think of "Partitioner" being synonymous with parallel partitioning. So what other name can we steal... I don't like "Cuts"; too overloaded with XFEM and mesh generation stuff. "Parts" too overloaded with engineering stuff. "Portions" is good. "Shares" and "Divisions" aren't bad. The math geek in me wants to use "Cover" (an "exact cover" is basically "a partitioning, but the set has a topology!", and a more general cover would be a very useful thing in some search algorithms too). But I don't recall ever hearing that term in an engineering class, so maybe it would be more confusing than helpful? |
Once everyone s weighted in here we could poll the best names in #moose on slack? |
sounds good to me |
How about |
I like it |
The word "grid" always makes me think of a structured Cartesian mesh, perhaps passed through a differentiable map. Using it to name a hexagonal lattice is a bit of a stretch; using it to name a division based on unstructured subdomain ids doesn't feel right at all.
|
Actually, "grid" is so overloaded that if we settle on that I won't whine. |
Taking notes: my favorite suggestion from the Teams meeting would be "sectioning" (with |
From the slack poll, MeshDivisions won. I m going to add this to a warehouse on Problem for convenience (having an easy pointer to the problem makes life easier) |
- public getters for which division and number of divisions - meshChanged causes new initialize
Divisions isn't bad - but what about |
Doesn't have to cover the whole area. |
- public getters for which division and number of divisions - meshChanged causes new initialize
- public getters for which division and number of divisions - meshChanged causes new initialize
- public getters for which division and number of divisions - meshChanged causes new initialize
- public getters for which division and number of divisions - meshChanged causes new initialize
- public getters for which division and number of divisions - meshChanged causes new initialize
changing: spherical, cylindrical, cartesian, hexagonal divisions refs idaholab#26223 Also only output a warning for positions being too close, it's not always relevant as cell centroids can still be well within the uniquely defined divisions refs idaholab#25901
changing: spherical, cylindrical, cartesian, hexagonal divisions refs idaholab#26223 Also only output a warning for positions being too close, it's not always relevant as cell centroids can still be well within the uniquely defined divisions refs idaholab#25901
Reason
in #25883 a User wants to be able to transfer data while respecting an underlying hexagonal grid in two simulations. This is essentially already covered in a "nearest" positions kind of approach but there are some inefficiencies as:
I would suggest to introduce the Partitions system that would be able to cut the mesh and return from any location the index in the partition. Then we only need to search regions with that same index (or if subapps are matched to a partition, the one subapp with that index). This would replace the bounding box checks in the transfer
Design
A new system that hosts a way to cut the mesh
A few examples of cutting things:
New objects using the system
Impact
Any other ideas?
The text was updated successfully, but these errors were encountered: