Exemple #1
0
    def Xtest4_mvESMFRegrid_esmfSlabs(self):
        print('\ntest4')
        srcDims, srcXYZCenter, srcData, srcBounds = makeGrid(5, 4, 3)
        dstDims, dstXYZCenter, dstData, dstBounds = makeGrid(5, 4, 3)

        ro = ESMFRegrid(srcXYZCenter[0].shape,
                        dstXYZCenter[0].shape,
                        srcData.dtype,
                        'conserve',
                        'center',
                        0,
                        'cart',
                        staggerloc='center',
                        hasSrcBounds=True,
                        hasDstBounds=True)
        ro.setCoords(srcXYZCenter,
                     dstXYZCenter,
                     srcBounds=srcBounds,
                     dstBounds=dstBounds,
                     globalIndexing=True)
        ro.computeWeights()

        ro.apply(srcData, dstData, rootPe=self.rootPe, globalIndexing=True)
        print(('src', srcData.min(), srcData.max(), srcData.shape))
        print(('dst', dstData.min(), dstData.max(), dstData.shape))

        sA = ro.getSrcAreas(rootPe=self.rootPe)
        dA = ro.getDstAreas(rootPe=self.rootPe)
        sF = ro.getSrcAreaFractions(rootPe=self.rootPe)
        dF = ro.getDstAreaFractions(rootPe=self.rootPe)
Exemple #2
0
    def Xtest3_mvESMFRegrid_pregenSlabs(self):
        print '\ntest3'
        srcDims, srcXYZCenter, srcData, srcBounds = makeGrid(5, 4, 3)
        dstDims, dstXYZCenter, dstData, dstBounds = makeGrid(5, 4, 3)
                        
        ro = ESMFRegrid(srcXYZCenter[0].shape, dstXYZCenter[0].shape, srcData.dtype,
                        'conserve','center', 0,'cart', staggerloc = 'center',
                        hasSrcBounds = True, 
                        hasDstBounds = True)
        srcSlab = ro.getSrcLocalSlab('center')
        dstSlab = ro.getDstLocalSlab('center')
        srcCds = [coord[srcSlab] for coord in srcXYZCenter]
        dstCds = [coord[dstSlab] for coord in dstXYZCenter]
        srcSlab = ro.getSrcLocalSlab('vface')
        dstSlab = ro.getDstLocalSlab('vface')
        srcBnd = [bound[srcSlab] for bound in srcBounds]
        dstBnd = [bound[dstSlab] for bound in dstBounds]

        ro.setCoords(srcCds, dstCds, 
                     srcBounds = srcBnd, dstBounds = dstBnd)
        ro.computeWeights()

        srcDataSec = numpy.array(srcData[srcSlab], srcData.dtype)
        dstDataSec = numpy.array(dstData[dstSlab], dstData.dtype)

        ro.apply(srcDataSec, dstDataSec, rootPe = None)

        print 'src', srcDataSec.min(), srcDataSec.max(), srcDataSec.shape
        print 'dst', dstDataSec.min(), dstDataSec.max(), dstDataSec.shape

        sA = ro.getSrcAreas(rootPe = self.rootPe)
        dA = ro.getDstAreas(rootPe = self.rootPe)
        sF = ro.getSrcAreaFractions(rootPe = self.rootPe)
        dF = ro.getDstAreaFractions(rootPe = self.rootPe)
    def Xtest4_mvESMFRegrid_esmfSlabs(self):
        print '\ntest4'
        srcDims, srcXYZCenter, srcData, srcBounds = makeGrid(5, 4, 3)
        dstDims, dstXYZCenter, dstData, dstBounds = makeGrid(5, 4, 3)
                        
        ro = ESMFRegrid(srcXYZCenter[0].shape, dstXYZCenter[0].shape, srcData.dtype,
                        'conserve','center', 0,'cart', staggerloc = 'center',
                        hasSrcBounds = True,
                        hasDstBounds = True)
        ro.setCoords(srcXYZCenter, dstXYZCenter, 
                     srcBounds = srcBounds, dstBounds = dstBounds,
                     globalIndexing = True)
        ro.computeWeights()

        ro.apply(srcData, dstData, rootPe = self.rootPe, globalIndexing = True)
        print 'src', srcData.min(), srcData.max(), srcData.shape
        print 'dst', dstData.min(), dstData.max(), dstData.shape

        sA = ro.getSrcAreas(rootPe = self.rootPe)
        dA = ro.getDstAreas(rootPe = self.rootPe)
        sF = ro.getSrcAreaFractions(rootPe = self.rootPe)
        dF = ro.getDstAreaFractions(rootPe = self.rootPe)