Closed loganharbour closed 3 years ago
I like this idea. Off the top of my head, it might be nice to have a hierarchy of info, eg, for the overall mesh, what are number of eles and nodes, but also, for each subdomain, what are its number of eles and nodes. OK, that was poor grammar, but i hope you understand!
Absolutely! This is the kind of information I've got so far (formatting/titles/etc still a WIP):
Detailed information for the mesh generated by ParsedGenerateSideset "interior":
Mesh Information:
elem_dimensions()={2}
spatial_dimension()=2
n_nodes()=117
n_local_nodes()=117
n_elem()=144
n_local_elem()=144
n_active_elem()=144
n_subdomains()=4
n_partitions()=1
n_processors()=1
n_threads()=1
processor_id()=0
Mesh Global Bounding Box:
Minimum: (x,y,z)=( 0, -1, 0)
Maximum: (x,y,z)=( 3, 1, 0)
Mesh Element Type(s):
TRI3, QUAD4
Mesh Sidesets:
0 (bottom), 12 sides (EDGE2), 12 elems (TRI3, QUAD4), 13 nodes, side volume = 3
Bounding box minimum: (x,y,z)=( 0, -1, 0)
Bounding box maximum: (x,y,z)=( 3, -1, 0)
1 (right), 8 sides (EDGE2), 8 elems (QUAD4), 9 nodes, side volume = 2
Bounding box minimum: (x,y,z)=( 3, -1, 0)
Bounding box maximum: (x,y,z)=( 3, 1, 0)
2 (top), 12 sides (EDGE2), 12 elems (TRI3, QUAD4), 13 nodes, side volume = 3
Bounding box minimum: (x,y,z)=( 0, 1, 0)
Bounding box maximum: (x,y,z)=( 3, 1, 0)
3 (left), 8 sides (EDGE2), 8 elems (TRI3, QUAD4), 9 nodes, side volume = 2
Bounding box minimum: (x,y,z)=( 0, -1, 0)
Bounding box maximum: (x,y,z)=( 0, 1, 0)
4 (interior), 8 sides (EDGE2), 8 elems (TRI3, QUAD4), 9 nodes, side volume = 2
Bounding box minimum: (x,y,z)=( 1, -1, 0)
Bounding box maximum: (x,y,z)=( 1, 1, 0)
Mesh Subdomains:
Subdomain 0 (bottom): 24 elems (QUAD4), 42 nodes, volume = 1.5
Bounding box minimum: (x,y,z)=( 0, -1, 0)
Bounding box maximum: (x,y,z)=( 2.5, 1, 0)
Subdomain 1 (right): 24 elems (QUAD4), 42 nodes, volume = 1.5
Bounding box minimum: (x,y,z)=( 0.5, -1, 0)
Bounding box maximum: (x,y,z)=( 3, 1, 0)
Subdomain 2 (top): 48 elems (TRI3), 42 nodes, volume = 1.5
Bounding box minimum: (x,y,z)=( 0, -0.5, 0)
Bounding box maximum: (x,y,z)=( 2, 1, 0)
Subdomain 3 (left): 48 elems (TRI3), 42 nodes, volume = 1.5
Bounding box minimum: (x,y,z)=( 0, -1, 0)
Bounding box maximum: (x,y,z)=( 2, 0.5, 0)
If anything else comes to mind that's not included above - let me know.
Reason
It would be useful to know detailed information about meshes that are generated by a MeshGenerator. Information like the bounding box, sidesets, nodesets, subdomains, etc.
Design
Add a
show_info
parameter (name tbd) toMeshGenerator
that prints this information.Impact
Will help with debugging mesh generation using MeshGenerators.