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)
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)