Ignore:
Timestamp:
11/25/17 01:28:45 (7 years ago)
Author:
dubos
Message:

devel : get unstructured/slice test cases to work

Location:
codes/icosagcm/devel/Python/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/Python/src

    • Property svn:ignore set to
      build
      xios.c
      unstructured.c
  • codes/icosagcm/devel/Python/src/unstructured.pyx

    r615 r618  
    1313 
    1414cdef extern from "functions.h": 
    15      cpdef void init_params() 
    16      cpdef void setup_xios() 
    17      cpdef void call_xios_set_timestep(double) 
    18      cpdef void call_xios_update_calendar(int) 
     15     cdef void dynamico_init_params() 
     16     cpdef void dynamico_setup_xios() 
     17     cpdef void dynamico_xios_set_timestep(double) 
     18     cpdef void dynamico_xios_update_calendar(int) 
    1919 
    2020#------------- import and wrap DYNAMICO routines -------------# 
     
    2525 
    2626try:     
    27     kernels = wrap.SharedLib(vars(ker), 'libkernels.so', check_args=check_args)  
     27    kernels = wrap.SharedLib(vars(ker), 'libicosa.so', check_args=check_args)  
    2828    setvar, setvars, getvar, getvars = kernels.setvar, kernels.setvars, kernels.getvar, kernels.getvars 
    2929except OSError: 
     
    4040#                     ['call_xios_update_calendar',c_int] 
    4141#                     ['init_params',c_double], 
    42                      ['init_mesh',c_void_p,13], 
    43                      ['init_metric', c_void_p,6], 
    44                      ['init_hybrid', c_void_p,3], 
    45                      ['caldyn_hevi', c_double, c_void_p,20], 
    46                      ['partition_graph', c_int,2, c_void_p,3, c_int, c_void_p], 
     42                     ['dynamico_init_mesh',c_void_p,13], 
     43                     ['dynamico_init_metric', c_void_p,6], 
     44                     ['dynamico_init_hybrid', c_void_p,3], 
     45                     ['dynamico_caldyn_unstructured', c_double, c_void_p,20], 
     46#                     ['dynamico_partition_graph', c_int,2, c_void_p,3, c_int, c_void_p], 
    4747                     ]) 
    4848 
     
    8181        return flow,fast,slow 
    8282 
    83 # when calling caldyn_hevi, arrays for tendencies must be re-created each time 
     83# when calling caldyn_unstructured, arrays for tendencies must be re-created each time 
    8484# to avoid overwriting in the same memory space when time scheme is multi-stage 
    8585 
     
    9292                (True,thermo_boussinesq,eta_lag)) 
    9393        self.dhs = self.fmass() 
    94         ker.init_params() 
     94        dynamico_init_params() 
    9595    def _bwd_fast_slow_(self, flow, tau): 
    9696        h,u = flow 
    9797        # h*s = h => uniform buoyancy s=1 => shallow-water 
    9898        dh, du_slow, du_fast, hs, buf = self.fmass(), self.fu(), self.fu(), h.copy(), self.geopot 
    99         ker.caldyn_hevi(tau, self.ms, h, hs, u, self.geopot, buf, 
     99        ker.dynamico_caldyn_unstructured(tau, self.ms, h, hs, u, self.geopot, buf, 
    100100                  self.s, self.ps, self.pk, self.hflux, self.qv, 
    101101                  self.dms, dh, self.dhs, du_fast, du_slow, 
     
    112112                (True,caldyn_thermo,caldyn_eta, 
    113113                 g,BC.ptop,thermo.Rd,thermo.Cpd,thermo.p0,thermo.T0)) 
    114         ker.init_params() 
     114        dynamico_init_params() 
    115115    def _bwd_fast_slow_(self, flow, tau): 
    116116        dm, dS, du_slow, du_fast, buf = self.fmass(), self.ftheta(), self.fu(), self.fu(), self.geopot 
    117117        m,S,u = flow 
    118         ker.caldyn_hevi(tau, self.ms, m, S, u, self.geopot, buf, 
     118        ker.dynamico_caldyn_unstructured(tau, self.ms, m, S, u, self.geopot, buf, 
    119119                  self.s, self.ps, self.pk, self.hflux, self.qv, 
    120120                  self.dms, dm, dS, du_fast, du_slow, 
     
    133133                 g,BC.ptop,thermo.Rd,thermo.Cpd,thermo.p0,thermo.T0, 
    134134                 BC.pbot.max(), BC.rho_bot.max())) 
    135         ker.init_params() 
     135        dynamico_init_params() 
    136136    def bwd_fast_slow(self, flow, tau): 
    137137        ftheta, fmass, fu, fw = self.ftheta, self.fmass, self.fu, self.fw  
     
    139139        dPhi_slow, dPhi_fast, dW_slow, dW_fast = fw(), fw(), fw(), fw() 
    140140        m,S,u,Phi,W = flow 
    141         ker.caldyn_hevi(tau, self.ms, m, S, u, Phi, W, 
     141        ker.dynamico_caldyn_unstructured(tau, self.ms, m, S, u, Phi, W, 
    142142                  self.s, self.ps, self.pk, self.hflux, self.qv, 
    143143                  self.dms, dm, dS, du_fast, du_slow, 
     
    269269                 'max_trisk_deg','max_primal_deg','max_dual_deg'), 
    270270                (llm,nqdyn,2*nx*ny,nx*ny,nx*ny,4,4,4) )         
    271         ker.init_mesh(primal_nb,primal_edge,primal_ne, 
     271        print('init_mesh ...') 
     272        ker.dynamico_init_mesh(primal_nb,primal_edge,primal_ne, 
    272273                  dual_nb,dual_edge,dual_ne,dual_vertex, 
    273274                  left,right,down,up,trisk_deg,trisk) 
    274  
     275        print ('...done') 
     276         
    275277        Aiv=np.zeros(nx*ny)+dx*dy # Ai=Av=dx*dy 
    276         ker.init_metric(Aiv,Aiv,f+0.*Aiv,le_de,Riv2,-wee) 
     278        
     279        print('init_metric ...') 
     280        ker.dynamico_init_metric(Aiv,Aiv,f+0.*Aiv,le_de,Riv2,-wee) 
     281        print ('...done') 
    277282    def field_theta(self): return squeeze((self.nqdyn,self.ny,self.nx,self.llm)) 
    278283    def field_mass(self): return squeeze((self.ny,self.nx,self.llm)) 
     
    384389                      max_trisk_deg, max_primal_deg, max_dual_deg) ) 
    385390 
    386         ker.init_mesh(primal_deg,primal_edge,primal_ne, 
     391        ker.dynamico_init_mesh(primal_deg,primal_edge,primal_ne, 
    387392                       dual_deg,dual_edge,dual_ne,dual_vertex, 
    388393                       left,right,down,up,trisk_deg,trisk) 
    389         ker.init_metric(self.Ai,self.Av,self.fv,le/de,Riv2,wee) 
     394        ker.dynamico_init_metric(self.Ai,self.Av,self.fv,le/de,Riv2,wee) 
    390395         
    391396        for edge in range(edge_num): 
     
    457462    adjncy_loc, xadj_loc = [np.asarray(list(x), dtype=np.int32) for x in (adjncy_loc, xadj_loc)] 
    458463    owner = np.zeros(idx_end-idx_start, dtype=np.int32); 
    459     ker.partition_graph(mpi_rank, mpi_size, vtxdist, xadj_loc, adjncy_loc, nparts, owner) 
     464    ker.dynamico_partition_graph(mpi_rank, mpi_size, vtxdist, xadj_loc, adjncy_loc, nparts, owner) 
    460465    return owner 
    461466 
Note: See TracChangeset for help on using the changeset viewer.