source: codes/icosagcm/devel/Python/dynamico/dev/meshes.py @ 931

Last change on this file since 931 was 931, checked in by dubos, 5 years ago

devel/Python : fixed info for Numba

File size: 1.6 KB
Line 
1from __future__ import print_function
2
3from dynamico import meshes
4from dynamico.meshes import Unstructured_PMesh, compute_hybrid_coefs
5from dynamico.meshes import DYNAMICO_Format, MPAS_Format
6from dynamico.dev import unstructured as unst
7from dynamico.dev import numba, parallel
8from dynamico.dev.numba import int32, int64, float64
9
10class MeshData(numba.NumbaData):
11    signature=(int64,      'primal_num dual_num edge_num',
12               int32[:],   'primal_deg left right',
13               int32[:,:], 'primal_edge primal_ne',
14               float64[:], 'le_de le de lon_e lat_e lon_v lat_v Ai Av')
15    def to_dynamico(self):
16        max_primal_deg, max_dual_deg, max_trisk_deg = [x.shape[1] for x in self.primal_edge, self.dual_edge, self.trisk]
17        unst.init_mesh(self.llm, self.nqdyn, self.edge_num, self.primal_num, self.dual_num,
18                  max_trisk_deg, max_primal_deg, max_dual_deg,
19                  self.primal_deg, self.primal_edge, self.primal_ne,
20                  self.dual_deg, self.dual_edge, self.dual_ne, self.dual_vertex,
21                  self.left, self.right, self.down, self.up, self.trisk_deg, self.trisk,
22                  self.Ai, self.Av, self.fv, self.le_de, self.Riv2, self.wee)
23
24# note inheritance order : inherit first from DevMesh to override empty to_dynamico() from AbstractMesh
25class Cartesian_Mesh(MeshData, meshes.Cartesian_Mesh): pass
26class Unstructured_Mesh(MeshData, meshes.Unstructured_Mesh): pass
27class Local_Mesh(MeshData, meshes.Local_Mesh):
28    Halo_Xchange = parallel.Halo_Xchange # dynamico.dev.parallel instead pf dynamico.parallel
Note: See TracBrowser for help on using the repository browser.