from __future__ import print_function from dynamico import meshes from dynamico.meshes import Unstructured_PMesh, compute_hybrid_coefs from dynamico.meshes import DYNAMICO_Format, MPAS_Format from dynamico.dev import unstructured as unst from dynamico.dev import numba, parallel from dynamico.dev.numba import int32, int64, float64 class MeshData(numba.NumbaData): def to_dynamico(self): max_primal_deg, max_dual_deg, max_trisk_deg = [x.shape[1] for x in self.primal_edge, self.dual_edge, self.trisk] unst.init_mesh(self.llm, self.nqdyn, self.edge_num, self.primal_num, self.dual_num, max_trisk_deg, max_primal_deg, max_dual_deg, self.primal_deg, self.primal_edge, self.primal_ne, self.dual_deg, self.dual_edge, self.dual_ne, self.dual_vertex, self.left, self.right, self.down, self.up, self.trisk_deg, self.trisk, self.Ai, self.Av, self.fv, self.le_de, self.Riv2, self.wee) # note inheritance order : inherit first from DevMesh to override empty to_dynamico() from AbstractMesh class Cartesian_Mesh(MeshData, meshes.Cartesian_Mesh): pass class Unstructured_Mesh(MeshData, meshes.Unstructured_Mesh): pass class Local_Mesh(MeshData, meshes.Local_Mesh): Halo_Xchange = parallel.Halo_Xchange # dynamico.dev.parallel instead pf dynamico.parallel