"""unit tests for finite non-linear wave calculator (moving expansion regions)"""
import unittest
import os
if os.environ.get('__USE_CUDA', '0') == '1':
import cupy as np
else:
import numpy as np
from g3d.calc.tests import CFlowTestCase
from g3d.calc.calculators.moving_expansion import G3DMovingExpansionCalculator
[docs]
class TestMovingExpansion(CFlowTestCase):
"""CFlow unit tests: moving expansion waves"""
def _setup(self) -> None:
super()._setup()
self.__moving_expansion = G3DMovingExpansionCalculator()
self.__U = 199.4450981
self.__T = 235.02514
self.__P = 212787.2996
self.__RO = 3.15464
self.__C = 307.29969
self.__T4 = 300.
self.__P4 = 5.e5
self.__RO4 = 5.8072009
self.__C4 = 347.1887095
self.__prec_U2 = 3
self.__U2 = np.round(self.__U, self.__prec_U2)
[docs]
def test_moving_expansion_relations_kwargs(self) -> None:
"""CFlow unit tests: moving expansion waves (kwargs)"""
self._setup()
self.assertEqual(self.__moving_expansion.get_pressure(
U=self.__U,
T4=self.__T4,
P4=self.__P4,
precision=self._prec),
self.__P)
self.assertEqual(self.__moving_expansion.get_density(
U=self.__U,
T4=self.__T4,
RO4=self.__RO4,
precision=self._prec),
self.__RO)
self.assertEqual(self.__moving_expansion.get_temperature(
U=self.__U,
T4=self.__T4,
precision=self._prec),
self.__T)
self.assertEqual(self.__moving_expansion.get_speed_of_sound(
U=self.__U,
T4=self.__T4,
precision=self._prec),
self.__C)
self.assertEqual(self.__moving_expansion.get_U_from_pressure_ratio(
P=self.__P,
P4=self.__P4,
T4=self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_temperature_ratio(
T=self.__T,
T4=self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_density_ratio(
RO=self.__RO,
RO4=self.__RO4,
T4=self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_C_ratio(
C=self.__C,
C4=self.__C4,
precision=self.__prec_U2),
self.__U2)
[docs]
def test_moving_expansion_relations_args(self) -> None:
"""CFlow unit tests: moving expansion waves (args)"""
self._setup()
self.assertEqual(self.__moving_expansion.get_pressure(
self.__U,
self.__T4,
self.__P4,
precision=self._prec),
self.__P)
self.assertEqual(self.__moving_expansion.get_density(
self.__U,
self.__T4,
self.__RO4,
precision=self._prec),
self.__RO)
self.assertEqual(self.__moving_expansion.get_temperature(
self.__U,
self.__T4,
precision=self._prec),
self.__T)
self.assertEqual(self.__moving_expansion.get_speed_of_sound(
self.__U,
self.__T4,
precision=self._prec),
self.__C)
self.assertEqual(self.__moving_expansion.get_U_from_pressure_ratio(
self.__P,
self.__P4,
self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_temperature_ratio(
self.__T,
self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_density_ratio(
self.__RO,
self.__RO4,
self.__T4,
precision=self.__prec_U2),
self.__U2)
self.assertEqual(self.__moving_expansion.get_U_from_C_ratio(
self.__C,
self.__C4,
precision=self.__prec_U2),
self.__U2)
if __name__ == '__main__':
unittest.main()