import numpy as np
class MatchingInterpolator:
    def __init__(self, cfg):
        self.cfg = cfg

    def inviscidToViscous(self, iDict, vDict, couplIter):
        ## Airfoil
        # Find stagnation point
        if self.cfg['nDim'] == 2:
            for iReg in range(len(iDict)):
                vDict[0][iReg].updateVars(iDict[iReg].nodesCoord, iDict[iReg].V, iDict[iReg].M, iDict[iReg].Rho)
        elif self.cfg['nDim'] == 3:
            for iSec, ysec in enumerate(self.cfg['sections']):
                for iReg in range(2):
                    print(iDict[iReg].nodesCoord[iDict[iReg].nodesCoord[:,1] == ysec])
                    print(iDict[iReg].V[iDict[iReg].nodesCoord[:,1] == ysec])
                    vDict[iSec][iReg].updateVars(iDict[iReg].nodesCoord[iDict[iReg].nodesCoord[:,1] == ysec], iDict[iReg].V[iDict[iReg].nodesCoord[:,1] == ysec], iDict[iReg].Rho[iDict[iReg].nodesCoord[:,1] == ysec])

    def viscousToInviscid(self, iDict, vDict):
        if self.cfg['nDim'] == 2:
            for iReg in range(2):
                iDict[iReg].blowingVel = vDict[0][iReg].blowingVel
        else:
            raise RuntimeError('Incorrect number of dimensions', self.nDim)