rank_from_position / position_from_rank are now helper functions
This commit is contained in:
parent
aec0cdead6
commit
4f2e8488fe
11
helper.py
11
helper.py
|
|
@ -88,4 +88,13 @@ def convert_coordinate_to_absolute(coord,bounds):
|
|||
if len(coord)==3:
|
||||
return tuple(bounds[2*ii]+(bounds[2*ii+1]-bounds[2*ii])*coord[ii] for ii in range(3))
|
||||
else:
|
||||
return tuple(bounds[2*(ii//2)]+(bounds[2*(ii//2)+1]-bounds[2*(ii//2)])*coord[ii] for ii in range(6))
|
||||
return tuple(bounds[2*(ii//2)]+(bounds[2*(ii//2)+1]-bounds[2*(ii//2)])*coord[ii] for ii in range(6))
|
||||
|
||||
def rank_from_position(ip,jp,kp,nyp,nzp):
|
||||
return ip*nyp*nzp+jp*nzp+kp
|
||||
|
||||
def position_from_rank(rank,nyp,nzp):
|
||||
ip = rank//(nyp*nzp)
|
||||
jp = (rank//nzp)%nyp
|
||||
kp = rank%nzp
|
||||
return (ip,jp,kp)
|
||||
21
parallel.py
21
parallel.py
|
|
@ -1,4 +1,6 @@
|
|||
import numpy as np
|
||||
from .helper import position_from_rank, rank_from_position
|
||||
|
||||
class PPP:
|
||||
"""Parallel Python Postprocessor for suspend"""
|
||||
def __init__(self,comm,func_load,
|
||||
|
|
@ -823,25 +825,14 @@ class PPP:
|
|||
nyp,nzp = self.nyp_ext,self.nzp_ext
|
||||
else:
|
||||
nyp,nzp = self.nyp,self.nzp
|
||||
return self._rank_from_position(ip,jp,kp,nyp,nzp)
|
||||
return rank_from_position(ip,jp,kp,nyp,nzp)
|
||||
|
||||
def position_from_rank(self,rank,external=False):
|
||||
if external:
|
||||
nyp,nzp = self.nyp_ext,self.nzp_ext
|
||||
else:
|
||||
nyp,nzp = self.nyp,self.nzp
|
||||
return self._position_from_rank(rank,nyp,nzp)
|
||||
|
||||
@staticmethod
|
||||
def _rank_from_position(ip,jp,kp,nyp,nzp):
|
||||
return ip*nyp*nzp+jp*nzp+kp
|
||||
|
||||
@staticmethod
|
||||
def _position_from_rank(rank,nyp,nzp):
|
||||
ip = rank//(nyp*nzp)
|
||||
jp = (rank//nzp)%nyp
|
||||
kp = rank%nzp
|
||||
return (ip,jp,kp)
|
||||
return position_from_rank(rank,nyp,nzp)
|
||||
|
||||
def shifting_state(self,key,axis=None):
|
||||
'''Returns the relative shift of first global grid point to domain
|
||||
|
|
@ -1095,7 +1086,7 @@ class PPP:
|
|||
proc_grid[key][4] = proc_grid_ext[key][4][0::nzcpp]
|
||||
proc_grid[key][5] = proc_grid_ext[key][5][nzcpp-1::nzcpp]
|
||||
# Get position in processor grid
|
||||
ip,jp,kp = PPP._position_from_rank(rank,nyp,nzp)
|
||||
ip,jp,kp = position_from_rank(rank,nyp,nzp)
|
||||
# Determine local grid indices and size
|
||||
for key in proc_grid:
|
||||
nxl = proc_grid[key][1][ip]-proc_grid[key][0][ip]+1
|
||||
|
|
@ -1145,7 +1136,7 @@ class PPP:
|
|||
if inghbr[ip]<0 or jnghbr[jp]<0 or knghbr[kp]<0:
|
||||
nghbr[ip,jp,kp] = -1
|
||||
else:
|
||||
nghbr[ip,jp,kp] = PPP._rank_from_position(inghbr[ip],jnghbr[jp],knghbr[kp],nyp,nzp)
|
||||
nghbr[ip,jp,kp] = rank_from_position(inghbr[ip],jnghbr[jp],knghbr[kp],nyp,nzp)
|
||||
return (proc_grid,nxp,nyp,nzp,
|
||||
proc_grid_ext,nxp_ext,nyp_ext,nzp_ext,
|
||||
nghbr)
|
||||
|
|
|
|||
Loading…
Reference in New Issue