Source code for pyfr.solvers.aceuler.inters

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


[docs] class ACEulerIntInters(BaseAdvectionIntInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.aceuler.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 ACEulerMPIInters(BaseAdvectionMPIInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.aceuler.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 ACEulerBaseBCInters(BaseAdvectionBCInters): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._be.pointwise.register('pyfr.solvers.aceuler.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 ACEulerInflowBCInters(ACEulerBaseBCInters): type = 'ac-in-fv' def __init__(self, be, lhs, elemap, cfgsect, cfg): super().__init__(be, lhs, elemap, cfgsect, cfg) self.c |= self._exp_opts('uvw'[:self.ndims], lhs) class ACEulerOutflowBCInters(ACEulerBaseBCInters): type = 'ac-out-fp' def __init__(self, be, lhs, elemap, cfgsect, cfg): super().__init__(be, lhs, elemap, cfgsect, cfg) self.c |= self._exp_opts('p', lhs) class ACEulerSlpWallBCInters(ACEulerBaseBCInters): type = 'slp-wall' class ACEulerCharRiemInvBCInters(ACEulerBaseBCInters): type = 'ac-char-riem-inv' def __init__(self, be, lhs, elemap, cfgsect, cfg): super().__init__(be, lhs, elemap, cfgsect, cfg) self.c['niters'] = cfg.getint(cfgsect, 'niters', 4) self.c['bc-ac-zeta'] = cfg.getfloat(cfgsect, 'ac-zeta') self.c |= self._exp_opts( ['p', 'u', 'v', 'w'][:self.ndims + 1], lhs )