From 7e2b47ceb5a6806c6d1383d7efe7cd522b7e37c2 Mon Sep 17 00:00:00 2001 From: Paul Dechamps <paul.dechamps@uliege.be> Date: Tue, 7 Jan 2025 17:37:45 +0100 Subject: [PATCH] (format) Renamed arguments of RBF interpolator --- .../interpolators/DRbfInterpolator.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/blast/interfaces/interpolators/DRbfInterpolator.py b/blast/interfaces/interpolators/DRbfInterpolator.py index 1eda4a3..d18b723 100644 --- a/blast/interfaces/interpolators/DRbfInterpolator.py +++ b/blast/interfaces/interpolators/DRbfInterpolator.py @@ -3,9 +3,11 @@ import numpy as np from scipy.interpolate import RBFInterpolator class RbfInterpolator: - def __init__(self, _cfg, _nDim): - self.cfg = _cfg - self.nDim = _nDim + def __init__(self, cfg, ndim): + self._cfg = cfg + if ndim != 2 and ndim != 3: + raise ValueError('Number of dimensions must be 2 or 3 but {} was given'.format(ndim)) + self._ndim = ndim def inviscidToViscous(self, iDict, vDict): ## Airfoil @@ -16,35 +18,33 @@ class RbfInterpolator: M = np.zeros(reg.nodesCoord.shape[0]) rho = np.zeros(reg.nodesCoord.shape[0]) for iDim in range(3): - v[:,iDim] = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].V[:,iDim], reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)]) - M = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].M, reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)]) - rho = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].Rho, reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)]) + v[:,iDim] = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].V[:,iDim], reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)]) + M = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].M, reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)]) + rho = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].Rho, reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)]) vDict[iSec][iReg].updateVars(v, M, rho) def viscousToInviscid(self, iDict, vDict): - if self.nDim == 2: + if self._ndim == 2: for iReg, reg in enumerate(iDict): - iDict[iReg].blowingVel = self.__rbfToSection(vDict[0][iReg].elemsCoordTr[:,:(self.cfg['nDim']-1 if 'vAirfoil' in reg.name else 1)], vDict[0][iReg].blowingVel, reg.elemsCoordTr[:,:(self.cfg['nDim']-1 if reg.name == 'iWing' else 1)]) - elif self.nDim == 3: + iDict[iReg].blowingVel = self.__rbfToSection(vDict[0][iReg].elemsCoordTr[:,:(self._ndim-1 if 'vAirfoil' in reg.name else 1)], vDict[0][iReg].blowingVel, reg.elemsCoordTr[:,:(self._ndim-1 if reg.name == 'iWing' else 1)]) + elif self._ndim == 3: for iReg, reg in enumerate(iDict): viscElemsCoord = np.zeros((0,3)) viscBlowing = np.zeros(0) for iSec, sec in enumerate(vDict): viscElemsCoord = np.row_stack((viscElemsCoord, sec[iReg].elemsCoord[:,:3])) viscBlowing = np.concatenate((viscBlowing, sec[iReg].blowingVel)) - if 'Sym' in self.cfg: - for s in self.cfg['Sym']: + if 'Sym' in self._cfg: + for s in self._cfg['Sym']: dummy = viscElemsCoord.copy() dummy[:,1] = (dummy[:,1] - s)*(-1) + s viscElemsCoord = np.row_stack((viscElemsCoord, dummy)) viscBlowing = np.concatenate((viscBlowing, viscBlowing)) reg.blowingVel = self.__rbfToSection(viscElemsCoord, viscBlowing, reg.elemsCoord[:,:3]) - else: - raise RuntimeError('Incorrect number of dimensions', self.cfg['nDim']) def __rbfToSection(self, x, var, xs): if np.all(var == var[0]): varOut = RBFInterpolator(x, var, neighbors=1, kernel='linear', smoothing=0.0, degree=0)(xs) else: - varOut = RBFInterpolator(x, var, neighbors=self.cfg['neighbors'], kernel=self.cfg['rbftype'], smoothing=self.cfg['smoothing'], degree=self.cfg['degree'])(xs) + varOut = RBFInterpolator(x, var, neighbors=self._cfg['neighbors'], kernel=self._cfg['rbftype'], smoothing=self._cfg['smoothing'], degree=self._cfg['degree'])(xs) return varOut \ No newline at end of file -- GitLab