Skip to content

Mesh adaptation on distributed mesh in PUMIPic #137

@zhangchonglin

Description

@zhangchonglin

Documenting this here for future reference:

  • Through some tests, I was able to perform mesh adaptation for both 2D and 3D meshes in PUMIPic when the mesh is not distributed.
    • After omega_h mesh adaptation, particles are deleted in the mesh and new PICpart is created from the adapted mesh.
    • More time efficient approach will be to keep the particle data and assign the particles to newly adapted mesh elements based on particle positions.
  • However, PUMIPic currently does not support mesh adaptation on distributed mesh, primarily due to the following reasons (without considering copying particle data from old to new mesh):
    • If starting with an omega_h distributed mesh (with limited number of buffer cell layers), it can adapt (refine/coarsen) the mesh properly, including ensuring the adapted buffer cells residing on different processes are consistently generated (according to the adapted mesh in the core region, communications involved): the mesh elements from different processes are the same across the processes. This can be thought of as: mesh is adapted parallelly between different processes.
    • This, however, cannot be guaranteed in PUMIPic PICpart distributed mesh. In PICpart, mesh from different processes are an independent copy of the core mesh part and the buffer mesh part. When calling omega_h to perform mesh adaptation, mesh of each PICpart is treated serially, and the mesh adaptation on each process does not insure that the mesh from different processes are consistent.
    • See for example the below image, where some edges (in the buffer region) for from 2 processes are created differently.

Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions