-
Notifications
You must be signed in to change notification settings - Fork 8
Mesh ideas
Simon Byrne edited this page Jul 27, 2021
·
2 revisions
Currently ClimaCore:
- Domain: mathematical domain, e.g. RectangularDomain
- Mesh: how to divide up domain into elements, e.g. EquispacedRectangular
- Topology: how the elements are connected
- Space: place quadrature points, compute metric terms
- Wrapper around a domain
WarpedDomain(domain, (x,y) -> (x, y + sin(x))
- Mesh: applied to the underlying domain
- Topology: applied to the underlying mesh
- Space: place quadrature points on underlying mesh, then transform (and calculate Jacobian, etc)
domain = SphereDomain(radius=...)
mesh = EquiangularCubedSphere(domain)
- 6 charts
- each with their own warping function (SquareDomain -> SphereDomain)
- each has their own "flat" mesh, which might connect to other meshes?
- implicit underlying cube mesh, which has 6 facets/patches/charts
- Topology:
-
CubeTopology
:- store # faces per cube
- has 6 facets
- Unstructured
- Space: rule to place nodes & compute Jacobians a. directly from warp func b. via polynomial interpolations (a la ClimateMachine) c. Guba (specific to sphere: bilinear interpolate, re-normalize)
- a warped mesh has an underlying "flat" mesh, with a warping function from
(flatcoord, facet) -> coord
- placing quadrature points/dofs & grid refinement require a flat mesh
- alternatively we can place quadrature points like HOMME
- topology/connectivity depends only on the flat mesh (can use standard grid partitioning)
- some notion of facets/charts: a warping function is homeomorphic within a given chart (i.e. we can compute partial derivatives)