Collaborators
- Gerard Gorman at ICL Earth Science and Engineering
- Nicolas Barral at ICL Earth Science and Engineering
- Michael Lange at ICL Earth Science and Engineering
Projects
Parallel Unstructured Mesh Adaptivity
ProblemAlthough unstructured meshes are indispensible technology for both industrial and academic simulation of engineered systems based on continuum mechanics, no free, community software framework exists for this technology. Moreover, parallel adaptation which scales to the largest machines available remains out of reach.
ApproachWe have developed a topological abstraction from computational meshes which reduces them to certain Directed Acyclic Graphs (DAG). Rephrasing mesh operations as graph operations allows us to write code which is independent of the mesh dimension, cell shape, approximation order, and equation. This makes the code easier to optimize, portable and maintainable, and far more flexible than previous libraries. We are using this framework to add support for parallel adaptivity, leveraging the Pragmatic library from Imperial College London.
ImpactAutomatic mesh adaptivity for large, parallel finite element models would open the door to predictive simulations for complex, real-world engineering systems. In particular, we are applying this technology to additive manufacturing systems, as well as wave turbines for renewable energy generation. Scientifically, it enables simulations with unprecedented accuracy by individual investigators. We have examined the impact of earthquakes in California and New Zealand, and will simulate quantum field theories in curved spacetime necessary to interpret results from the CERN supercollider.
PlanWe have already added parallel unstructured mesh support to the PETSc libraries, supporting parallel loading of many mesh formats, parallel mesh redistribution and load balancing, and assembly of complex multiscale, multiphysics problems on the mesh. We have produced proof-of-concept adaptivity interfaces, which we will subsequently scale up to leadership-class supercomputers for our target applications.
Parallel Unstructured Nested Mesh Adaptivity
ApproachThis paper has a nice algorithm for local refinement of simplicial meshes. I think i know how to do it in parallel simply:
- Have each domain start marking edges for splits, using the original label
- Propogate the marking according to the SBR algorithm
- If any split edges are on the boundary (in the SF), flip a flag
- Allreduce the flag, and if it is true, send edge markers and repeat from Step 1
- Mark cells with one of the 4 posssible splits, the default value is for no change
- Run the refiner using the label value instead of celltype to decide the action
- PETSc tests for AMR complexity with Pragmatic
- PETSc tests for point location complexity with Pragmatic
- PETSc implementation of Achi's Systematic Upscaling
- Integrate DMPlex/Forest into IBAMR
- Integrate DMPlex/Forest into Salac's code
- Patrick claims there is a problem with the projector when a point falls outside the domain and we have a branch to look at this.
Finished Projects
- Parallel Mesh Redistribution
- Parallel Mesh Loading