Source code for pyfr.solvers.euler.inters

# -*- coding: utf-8 -*-

from pyfr.solvers.baseadvec import (BaseAdvectionIntInters,
                                    BaseAdvectionMPIInters,
                                    BaseAdvectionBCInters)


[docs]class EulerIntInters(BaseAdvectionIntInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.euler.kernels.intcflux') rsolver = self.cfg.get('solver-interfaces', 'riemann-solver') tplargs = dict(ndims=self.ndims, nvars=self.nvars, rsolver=rsolver, c=self.c) self.kernels['comm_flux'] = lambda: self._be.kernel( 'intcflux', tplargs=tplargs, dims=[self.ninterfpts], ul=self._scal_lhs, ur=self._scal_rhs, nl=self._pnorm_lhs )
[docs]class EulerMPIInters(BaseAdvectionMPIInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.euler.kernels.mpicflux') rsolver = self.cfg.get('solver-interfaces', 'riemann-solver') tplargs = dict(ndims=self.ndims, nvars=self.nvars, rsolver=rsolver, c=self.c) self.kernels['comm_flux'] = lambda: self._be.kernel( 'mpicflux', tplargs, dims=[self.ninterfpts], ul=self._scal_lhs, ur=self._scal_rhs, nl=self._pnorm_lhs )
class EulerBaseBCInters(BaseAdvectionBCInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.euler.kernels.bccflux') rsolver = self.cfg.get('solver-interfaces', 'riemann-solver') tplargs = dict(ndims=self.ndims, nvars=self.nvars, rsolver=rsolver, c=self.c, bctype=self.type) self.kernels['comm_flux'] = lambda: self._be.kernel( 'bccflux', tplargs=tplargs, dims=[self.ninterfpts], extrns=self._external_args, ul=self._scal_lhs, nl=self._pnorm_lhs, **self._external_vals ) class EulerSupInflowBCInters(EulerBaseBCInters): type = 'sup-in-fa' def __init__(self, be, lhs, elemap, cfgsect, cfg): super().__init__(be, lhs, elemap, cfgsect, cfg) self.c |= self._exp_opts( ['rho', 'p', 'u', 'v', 'w'][:self.ndims + 2], lhs ) class EulerSupOutflowBCInters(EulerBaseBCInters): type = 'sup-out-fn' cflux_state = 'ghost' class EulerCharRiemInvBCInters(EulerBaseBCInters): type = 'char-riem-inv' def __init__(self, be, lhs, elemap, cfgsect, cfg): super().__init__(be, lhs, elemap, cfgsect, cfg) self.c |= self._exp_opts( ['rho', 'p', 'u', 'v', 'w'][:self.ndims + 2], lhs ) class EulerSlpAdiaWallBCInters(EulerBaseBCInters): type = 'slp-adia-wall'