"""base class - generic flux modifier"""
from typing import Tuple, TYPE_CHECKING
from numpy import ndarray
import os
if os.environ.get('__USE_CUDA', '0') == '1':
import cupy as np
else:
import numpy as np
from g3d.gas import Gas
from g3d.flow.geo import Mesh
from g3d.flow.domain import Domain
from g3d.flow.placeholders import ConsField
if TYPE_CHECKING:
from g3d.flow.solver.rhs import Flux
[docs]
class FluxModifier:
"""
"""
def __init__(self) -> None:
self._gas = Gas()
self._domain = Domain()
self._mesh = Mesh()
self._dt = np.zeros(0)
self._voli = self._mesh.get_inverse_volume()
self._vol = self._mesh.get_volume()
self._dcons = ConsField()
self.__first = self._dcons.first
self.__last = self._dcons.last
self._n_var = self._dcons.n_var
self._pointers = []
[docs]
def associate(self, flux: 'Flux', dt: ndarray, dom: Domain) -> None:
"""
:param flux:
:param dt:
:param dom:
"""
self._domain = dom
self._mesh = dom.mesh
self._gas = dom.gas
self._dt = dt
self._voli = self._mesh.get_inverse_volume()
self._vol = self._mesh.get_volume()
self._dcons = flux
self.__first = self._dcons.first
self.__last = self._dcons.last
self._n_var = self._dcons.n_var
self._pointers = self._dcons.get_pointers()
def _get_range(self) -> Tuple[int, int]:
return self.__first, self.__last
[docs]
def evaluate(self) -> None:
"""
"""
# base class FluxModifier does not have an associated evaluate function
pass