![]() |
Chi-Tech
|
Modules | |
chi_mesh.ExtruderMeshGenerator | |
chi_mesh.FromFileMeshGenerator | |
chi_mesh.MeshGenerator | |
chi_mesh.OrthogonalMeshGenerator | |
We split a MeshGenerator
's execution into a phase that generates an unpartitioned mesh and a phase that then converts this mesh into partitioned chi_mesh::MeshContinuum
(with both steps customizable). The phase that creates the MeshContinuum
object can be hooked up to a partitioner that can also be designed to be pluggable.
In this example we created a set of nodes (monotonically increasing in value) for use with the chi_mesh.OrthogonalMeshGenerator. We supplied the same set twice meaning the generator will build a 2D mesh.
We did not specify a partitioner and therefore the generator will use the chi.PETScGraphPartitioner with type="parmetis"
by default. Using 8 processes, we can see the mesh and it's partitioning below.
In this example we created a mesh by reading it from a file, using the chi_mesh.FromFileMeshGenerator. The types of file-types we can support is ever growing. At the time of writing this we support the following formats:
.obj
Wavefront.msh
gmesh,.e
ExodusII,.vtu
VTK Unstructured grid,.pvtu
Pieced VTK Unstructured grid,.case
Ensight GoldUsing 8 processes, we can see the mesh and it's partitioning below.
In this example we use an chi_mesh.ExtruderMeshGenerator with another mesh generator as an input to create an extruded mesh. Using 8 processes, we can see the mesh and it's partitioning below.
ChiTech now has a set of Graph Partitioners (i.e. based off GraphPartitioner
) that support different forms of partitioning, for example we have:
"parmetis"
).An example of changing the partitioning to PETSc's "average"
option is shown below:
Another example using the KBAGraphPartitioner
is shown below