You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, three Cherab submodules: cherab-solps, cherab-edge2d and cherab-imas use very similar interpolators for mesh data. I propose to include in the core module the general interpolators for mesh data suggested by the General Grid Description approach introduced in IMAS. This will be useful for users working with transport codes that do not have Cherab submodules yet. This will also help avoiding code duplication in the submodules.
Five types of spatial meshes should cover all possible cases:
Structured 2D mesh (cells are quadrilaterals)
Structured 3D mesh (cells are hexahedra)
Unstructured 2D mesh (cells are arbitrary polygons)
Unstructured 3D mesh (cells are arbitrary polyhedra)
Hybrid 3D mesh (cells are formed by polygons extended structurally in the 3rd dimension)
I propose to add Cython grid interpolators to cherab/core/math/interpolators/mesh/, and Python classes working with such meshes to cherab/tools/mesh/.
Structured and unstructured mesh interpolators should be implemented separately for performance reasons (find_index vs KDTree search).
Although implementing an unstructured 3D mesh in general can be difficult due to the tetrahedralisation problem (unlike polygons, not all polyhedra can be tetrahedralised without introducing additional vertices), some common cases, such as meshes where all cells are convex polyhedra, are easy to implement.
The text was updated successfully, but these errors were encountered:
Currently, three Cherab submodules: cherab-solps, cherab-edge2d and cherab-imas use very similar interpolators for mesh data. I propose to include in the core module the general interpolators for mesh data suggested by the General Grid Description approach introduced in IMAS. This will be useful for users working with transport codes that do not have Cherab submodules yet. This will also help avoiding code duplication in the submodules.
Five types of spatial meshes should cover all possible cases:
I propose to add Cython grid interpolators to
cherab/core/math/interpolators/mesh/
, and Python classes working with such meshes tocherab/tools/mesh/
.Structured and unstructured mesh interpolators should be implemented separately for performance reasons (
find_index
vs KDTree search).Although implementing an unstructured 3D mesh in general can be difficult due to the tetrahedralisation problem (unlike polygons, not all polyhedra can be tetrahedralised without introducing additional vertices), some common cases, such as meshes where all cells are convex polyhedra, are easy to implement.
The text was updated successfully, but these errors were encountered: