Skip to content

Parallel periodic extruded adaptivity

Samuel Parkinson edited this page Jun 11, 2014 · 1 revision

Parallel Periodic Extruded Mesh Adaptivity (or any subset of those)

This page describes the current restrictions in combining the following four items of functionality:

  • Parallel
  • Periodic meshes
  • Extruded meshes (2+1D, 1+1D)
  • Adaptivity

Two out of Four

Parallel Adaptivity

For P1-P1 runs this old sam functionality. For all others this depends on ironing out all bugs related to our use of Zoltan. As far as I know, all bugs reported in 2D have been fixed. 3D parallel adaptivity is known to be broken? (Jon is this correct?)

Extrusion and Adaptivity

This is (serial, non-periodic) 2+1D and 1+1D adaptivity. Working correctly. Could do with a few more tests.

Periodic adaptivity

Singly periodic is working well (again some more tests would be good). Doubly (or more) periodic has turned out to be a hard problem. Some serious work is needed to get this implemented if anyone is interested.

Periodic Extrusion

Appears to work in both 1+1D and 2+1D (AJM)

Parallel Periodic

Appears to work (apart from with the python diagnostic on CX1 but that's another issue ;-) AJM)

Parallel Extrusion

This is functional, tested and described in the manual.

Three out of Four

The restrictions mentioned above (zoltan for parallel adaptivity and double periodic) of course still apply here as well.

Parallel Periodic Extrusion

This one actually works! See the periodic_2plus1_parallel test case, in particular the periodic_2plus1_parallel.xml. Also documented in the manual (AJM). I have also made a script (not committed) which manually periodises the 3D flml as you do not need to do the full periodise on it, can discuss whether this is useful or too specific (AJM)

Periodic Extruded Adaptivity

Also works, see periodic_2plus_adaptivity test. Not extensively tested afaik (skramer).

Parallel Extruded Adaptivity

This requires quite some work in the parallel adaptivity iterations, and the zoltan wrappers. If interpolation is to remain local, the extrusion needs to be repeated within each iteration of the parallel adaptivity loop, so that fields can be interpolated between the extruded old and new mesh. For data migration, zoltan not only needs to redistribute the nodes and elements of the horizontal mesh (this is always the start as the decomposition needs to remain columnar), but after that also needs to redistribute the fields on extruded meshes.

Update 2 Sep '10: this has now been implemented by CianW, but there still appear to be issues with the quality of the load balancing (and therefore perhaps of the mesh quality through domain locking).

Parallel Periodic Adaptivity

This still needs a lot of work. We need to think how it should be done in the first place. An idea would be to, instead of the moving front algorithm used in serial, use the parallel adaptivity iteration to move the locked periodic boundary region away. Either the global periodic boundary is always made to coincide with inter-domain boundaries, or local domains that have disconnected parts across the periodic boundary, locally reconstruct a connected domain to apply adaptivity to.

Clone this wiki locally