From 3b5866c1b31c2e2fb137fe66121f0bf3e8e86e9f Mon Sep 17 00:00:00 2001 From: - <-> Date: Fri, 3 Apr 2026 18:58:02 +0000 Subject: [PATCH] Introduce Gas base class and refactor Air to inherit from it Extract generic gas physics from the Air class into a new Gas base class, making the thermally perfect gas (TPG) capability usable for any gas species. - Add Gas class with configurable gas_constant field (required), dynamic_viscosity, thermally_perfect_gas, and prandtl_number. All physics methods (get_speed_of_sound, get_pressure, get_specific_heat_ratio, get_dynamic_viscosity) live on Gas. - Refactor Air to inherit from Gas with air-specific defaults (R=287.0529, Sutherland viscosity, gamma=1.4, Pr=0.72). Full backward compatibility preserved. - Add validation warning on Gas when gas_constant matches air's value (287.0529), alerting users who may have intended to use a different gas. - Add validation warning on Air (at Case-level validation) that Air may be deprecated in a future release in favor of Gas. - Update ThermalState.material type to Union[Gas, Air] with discriminator. - Update isinstance checks in solver_translator and validation to use Gas (Air instances still match via inheritance). - Export Gas from flow360.__init__. - Update 75 JSON snapshot files with new gas_constant field. - Add 7 new tests for Gas class construction, physics, serialization, and Air/Gas equivalence. Co-Authored-By: Claude Opus 4.6 (1M context) --- flow360/__init__.py | 1 + .../component/simulation/models/material.py | 256 ++++++++++++------ .../operating_condition.py | 6 +- .../component/simulation/simulation_params.py | 7 + .../translator/solver_translator.py | 5 +- .../validation_simulation_params.py | 23 +- .../simulation.json | 6 +- .../simulation.json | 6 +- .../simulation.json | 18 +- .../simulation.json | 18 +- .../simulation.json | 18 +- .../simulation.json | 6 +- .../simulation.json | 18 +- .../simulation.json | 12 +- .../simulation.json | 18 +- .../simulation.json | 6 +- .../simulation.json | 12 +- .../simulation.json | 6 +- .../simulation.json | 18 +- .../simulation.json | 18 +- .../simulation.json | 12 +- .../data/geo-entity-provider/simulation.json | 6 +- .../simulation.json | 18 +- tests/data/simulation/simulation_24_11_0.json | 6 +- tests/data/simulation/simulation_24_11_9.json | 6 +- .../simulation/simulation_pre_24_11_1.json | 12 +- .../simulation_pre_24_11_1_symmetry.json | 12 +- .../simulation/simulation_pre_24_11_7.json | 18 +- .../simulation/simulation_pre_25_2_0.json | 18 +- .../simulation/simulation_pre_25_2_1.json | 6 +- .../simulation/simulation_pre_25_2_3_geo.json | 18 +- .../simulation_pre_25_2_3_volume_zones.json | 18 +- .../simulation/simulation_pre_25_4_1.json | 6 +- .../simulation/simulation_pre_25_6_0-2.json | 18 +- .../simulation/simulation_pre_25_6_0.json | 12 +- .../simulation/simulation_pre_25_7_2.json | 6 +- .../simulation.json | 12 +- .../simulation.json | 12 +- .../simulation.json | 12 +- .../simulation.json | 18 +- .../simulation.json | 18 +- .../simulation.json | 12 +- .../ref/simulation/service_init_geometry.json | 18 +- .../simulation/service_init_surface_mesh.json | 18 +- .../simulation/service_init_volume_mesh.json | 18 +- ...tion_json_with_multi_constructor_used.json | 18 +- .../simulation/converter/ref/ref_monitor.json | 6 +- .../data/geometry_airplane/simulation.json | 18 +- .../geometry_grouped_by_file/simulation.json | 18 +- .../results/simulation_params.json | 18 +- tests/simulation/data/simulation.json | 18 +- .../data/simulation_by_face_id.json | 18 +- .../simulation_with_wrong_expr_syntax.json | 6 +- .../data/vm_entity_provider/simulation.json | 18 +- .../data/airplane_volume_mesh/simulation.json | 18 +- .../params/data/geometry/simulation.json | 6 +- .../data/simulation_force_output_webui.json | 18 +- .../simulation_stopping_criterion_webui.json | 6 +- .../params/data/surface_mesh/simulation.json | 18 +- .../params/test_automated_farfield.py | 8 +- .../params/test_validators_material.py | 142 ++++++++++ .../simulation_with_project_variables.json | 18 +- ...ependency_geometry_sphere1_simulation.json | 18 +- ...ependency_geometry_sphere2_simulation.json | 18 +- .../data/root_geometry_cube_simulation.json | 18 +- tests/simulation/service/data/simulation.json | 6 +- .../service/data/simulation_bet_disk.json | 6 +- .../data/simulation_missing_from_meshing.json | 18 +- .../service/data/simulation_param.json | 18 +- .../simulation_with_missing_symmetric.json | 6 +- .../simulation_with_old_ghost_surface.json | 18 +- .../service/data/updater_should_pass.json | 6 +- tests/simulation/service/params.json | 18 +- .../ref/unit_system_converted_CGS.json | 18 +- .../service/ref/unit_system_converted_SI.json | 18 +- .../ref/unit_system_converted_imperial.json | 18 +- .../service/ref/updater_to_25_2_2.json | 6 +- .../gai_geometry_entity_info/simulation.json | 6 +- .../simulation.json | 18 +- .../simulation.json | 18 +- .../data/simulation_isosurface.json | 18 +- .../data/simulation_stopping_criterion.json | 18 +- .../data/simulation_with_auto_area.json | 6 +- 83 files changed, 1200 insertions(+), 274 deletions(-) diff --git a/flow360/__init__.py b/flow360/__init__.py index 550dff008..93b4f96c2 100644 --- a/flow360/__init__.py +++ b/flow360/__init__.py @@ -62,6 +62,7 @@ from flow360.component.simulation.models.material import ( Air, FrozenSpecies, + Gas, NASA9Coefficients, NASA9CoefficientSet, SolidMaterial, diff --git a/flow360/component/simulation/models/material.py b/flow360/component/simulation/models/material.py index cfc24a15a..5f9c6cdf7 100644 --- a/flow360/component/simulation/models/material.py +++ b/flow360/component/simulation/models/material.py @@ -16,6 +16,10 @@ VelocityType, ViscosityType, ) +from flow360.component.simulation.validation.validation_context import ( + add_validation_warning, + contextual_model_validator, +) # ============================================================================= # NASA 9-Coefficient Polynomial Utility Functions @@ -417,124 +421,96 @@ def get_dynamic_viscosity( # pylint: disable=no-member, missing-function-docstring -class Air(MaterialBase): +class Gas(MaterialBase): """ - Represents the material properties for air. - This sets specific material properties for air, - including dynamic viscosity, specific heat ratio, gas constant, and Prandtl number. + Represents a generic gas material with thermally perfect gas properties. - The thermodynamic properties are specified using NASA 9-coefficient polynomials - for temperature-dependent specific heats via the `thermally_perfect_gas` parameter. - By default, coefficients are set to reproduce a constant gamma=1.4 (calorically perfect gas). + This class provides configurable gas properties including the specific gas constant, + dynamic viscosity, thermally perfect gas model (NASA 9-coefficient polynomials), + and Prandtl numbers. All fields must be explicitly specified (no defaults), + making it suitable for any gas species. + + For air specifically, use the :class:`Air` subclass which provides standard + air defaults. Example ------- - >>> fl.Air( - ... dynamic_viscosity=1.063e-05 * fl.u.Pa * fl.u.s - ... ) - - With custom NASA 9-coefficient polynomial for single species: - - >>> fl.Air( + >>> fl.Gas( + ... gas_constant=188.92 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + ... dynamic_viscosity=fl.Sutherland( + ... reference_viscosity=1.47e-5 * fl.u.Pa * fl.u.s, + ... reference_temperature=293.15 * fl.u.K, + ... effective_temperature=240.0 * fl.u.K, + ... ), ... thermally_perfect_gas=fl.ThermallyPerfectGas( ... species=[ ... fl.FrozenSpecies( - ... name="Air", + ... name="CO2", ... nasa_9_coefficients=fl.NASA9Coefficients( ... temperature_ranges=[ ... fl.NASA9CoefficientSet( ... temperature_range_min=200.0 * fl.u.K, - ... temperature_range_max=1000.0 * fl.u.K, - ... coefficients=[...], - ... ), - ... fl.NASA9CoefficientSet( - ... temperature_range_min=1000.0 * fl.u.K, ... temperature_range_max=6000.0 * fl.u.K, - ... coefficients=[...], + ... coefficients=[0.0, 0.0, 4.46, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], ... ), ... ] ... ), ... mass_fraction=1.0, ... ) ... ] - ... ) - ... ) - - With multi-species thermally perfect gas: - - >>> fl.Air( - ... thermally_perfect_gas=fl.ThermallyPerfectGas( - ... species=[ - ... fl.FrozenSpecies(name="N2", nasa_9_coefficients=..., mass_fraction=0.7555), - ... fl.FrozenSpecies(name="O2", nasa_9_coefficients=..., mass_fraction=0.2316), - ... fl.FrozenSpecies(name="Ar", nasa_9_coefficients=..., mass_fraction=0.0129), - ... ] - ... ) + ... ), + ... prandtl_number=0.77, ... ) ==== """ - type: Literal["air"] = pd.Field("air", frozen=True) - name: str = pd.Field("air") + type: Literal["gas"] = pd.Field("gas", frozen=True) + name: str = pd.Field("gas") + gas_constant: SpecificHeatCapacityType.Positive = pd.Field( + description="Specific gas constant (R) in units of energy per mass per temperature. " + "For example, air has R = 287.0529 J/(kg*K)." + ) dynamic_viscosity: Union[Sutherland, ViscosityType.NonNegative] = pd.Field( - Sutherland( - reference_viscosity=1.716e-5 * u.Pa * u.s, - reference_temperature=273.15 * u.K, - # pylint: disable=fixme - # TODO: validation error for effective_temperature not equal 110.4 K - effective_temperature=110.4 * u.K, - ), - description=( - "The dynamic viscosity model or value for air. Defaults to a `Sutherland` " - "model with standard atmospheric conditions." - ), + description="The dynamic viscosity model or constant value for the gas." ) thermally_perfect_gas: ThermallyPerfectGas = pd.Field( - default_factory=lambda: ThermallyPerfectGas( - species=[ - FrozenSpecies( - name="Air", - nasa_9_coefficients=NASA9Coefficients( - temperature_ranges=[ - NASA9CoefficientSet( - temperature_range_min=200.0 * u.K, - temperature_range_max=6000.0 * u.K, - # For constant gamma=1.4: cp/R = gamma/(gamma-1) = 1.4/0.4 = 3.5 - # In NASA9 format, constant cp/R is the a2 coefficient (index 2) - coefficients=[0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - ), - ] - ), - mass_fraction=1.0, - ) - ] - ), description=( "Thermally perfect gas model with NASA 9-coefficient polynomials for " - "temperature-dependent thermodynamic properties. Defaults to a single-species " - "'Air' with coefficients that reproduce constant gamma=1.4 (calorically perfect gas). " + "temperature-dependent thermodynamic properties. " "For multi-species gas mixtures, specify multiple FrozenSpecies with their " "respective mass fractions." ), ) prandtl_number: pd.PositiveFloat = pd.Field( - 0.72, - description="Laminar Prandtl number. Default is 0.72 for air.", + description="Laminar Prandtl number.", ) turbulent_prandtl_number: pd.PositiveFloat = pd.Field( 0.9, description="Turbulent Prandtl number. Default is 0.9.", ) + @contextual_model_validator(mode="after") + def _warn_if_air_gas_constant(self): + if self.type != "gas": + return self # Skip for subclasses like Air + gas_constant_value = self.gas_constant.to("m**2/s**2/K").v.item() + if abs(gas_constant_value - 287.0529) < 1e-3: + add_validation_warning( + "The gas_constant value 287.0529 J/(kg*K) corresponds to the standard gas " + "constant for air. If you are simulating a different gas, please update the " + "gas_constant accordingly." + ) + return self + def get_specific_heat_ratio(self, temperature: AbsoluteTemperatureType) -> pd.PositiveFloat: """ Computes the specific heat ratio (gamma) at a given temperature from NASA polynomial. For thermally perfect gas, gamma = cp/cv = (cp/R) / (cp/R - 1) varies with temperature. The cp/R is computed from the NASA 9-coefficient polynomial: - cp/R = a0*T^-2 + a1*T^-1 + a2 + a3*T + a4*T^2 + a5*T^3 + a6*T^4 + cp/R = a0*T^-2 + a1*T^-1 + a2 + a3*T + a4*T^2 + a5*T^3 + a6*T^4 Parameters ---------- @@ -574,32 +550,19 @@ def _get_coefficients_at_temperature(self, temp_k: float) -> list: coeffs[i] += species.mass_fraction * species_coeffs[i] return coeffs - @property - def gas_constant(self) -> SpecificHeatCapacityType.Positive: - """ - Returns the specific gas constant for air. - - Returns - ------- - SpecificHeatCapacityType.Positive - The specific gas constant for air. - """ - - return 287.0529 * u.m**2 / u.s**2 / u.K - @pd.validate_call def get_pressure( self, density: DensityType.Positive, temperature: AbsoluteTemperatureType ) -> PressureType.Positive: """ - Calculates the pressure of air using the ideal gas law. + Calculates the pressure using the ideal gas law. Parameters ---------- density : DensityType.Positive - The density of the air. + The density of the gas. temperature : AbsoluteTemperatureType - The temperature of the air. + The temperature of the gas. Returns ------- @@ -612,7 +575,7 @@ def get_pressure( @pd.validate_call def get_speed_of_sound(self, temperature: AbsoluteTemperatureType) -> VelocityType.Positive: """ - Calculates the speed of sound in air at a given temperature. + Calculates the speed of sound at a given temperature. For thermally perfect gas, uses the temperature-dependent gamma from the NASA polynomial. @@ -635,7 +598,7 @@ def get_dynamic_viscosity( self, temperature: AbsoluteTemperatureType ) -> ViscosityType.NonNegative: """ - Calculates the dynamic viscosity of air at a given temperature. + Calculates the dynamic viscosity at a given temperature. Parameters ---------- @@ -654,6 +617,119 @@ def get_dynamic_viscosity( return self.dynamic_viscosity +class Air(Gas): + """ + Represents the material properties for air. + This sets specific material properties for air, + including dynamic viscosity, specific heat ratio, gas constant, and Prandtl number. + + The thermodynamic properties are specified using NASA 9-coefficient polynomials + for temperature-dependent specific heats via the `thermally_perfect_gas` parameter. + By default, coefficients are set to reproduce a constant gamma=1.4 (calorically perfect gas). + + Example + ------- + + >>> fl.Air( + ... dynamic_viscosity=1.063e-05 * fl.u.Pa * fl.u.s + ... ) + + With custom NASA 9-coefficient polynomial for single species: + + >>> fl.Air( + ... thermally_perfect_gas=fl.ThermallyPerfectGas( + ... species=[ + ... fl.FrozenSpecies( + ... name="Air", + ... nasa_9_coefficients=fl.NASA9Coefficients( + ... temperature_ranges=[ + ... fl.NASA9CoefficientSet( + ... temperature_range_min=200.0 * fl.u.K, + ... temperature_range_max=1000.0 * fl.u.K, + ... coefficients=[...], + ... ), + ... fl.NASA9CoefficientSet( + ... temperature_range_min=1000.0 * fl.u.K, + ... temperature_range_max=6000.0 * fl.u.K, + ... coefficients=[...], + ... ), + ... ] + ... ), + ... mass_fraction=1.0, + ... ) + ... ] + ... ) + ... ) + + With multi-species thermally perfect gas: + + >>> fl.Air( + ... thermally_perfect_gas=fl.ThermallyPerfectGas( + ... species=[ + ... fl.FrozenSpecies(name="N2", nasa_9_coefficients=..., mass_fraction=0.7555), + ... fl.FrozenSpecies(name="O2", nasa_9_coefficients=..., mass_fraction=0.2316), + ... fl.FrozenSpecies(name="Ar", nasa_9_coefficients=..., mass_fraction=0.0129), + ... ] + ... ) + ... ) + + ==== + """ + + type: Literal["air"] = pd.Field("air", frozen=True) + name: str = pd.Field("air") + gas_constant: SpecificHeatCapacityType.Positive = pd.Field( + 287.0529 * u.m**2 / u.s**2 / u.K, + frozen=True, + description="Specific gas constant for air (287.0529 J/(kg*K)).", + ) + dynamic_viscosity: Union[Sutherland, ViscosityType.NonNegative] = pd.Field( + Sutherland( + reference_viscosity=1.716e-5 * u.Pa * u.s, + reference_temperature=273.15 * u.K, + # pylint: disable=fixme + # TODO: validation error for effective_temperature not equal 110.4 K + effective_temperature=110.4 * u.K, + ), + description=( + "The dynamic viscosity model or value for air. Defaults to a `Sutherland` " + "model with standard atmospheric conditions." + ), + ) + thermally_perfect_gas: ThermallyPerfectGas = pd.Field( + default_factory=lambda: ThermallyPerfectGas( + species=[ + FrozenSpecies( + name="Air", + nasa_9_coefficients=NASA9Coefficients( + temperature_ranges=[ + NASA9CoefficientSet( + temperature_range_min=200.0 * u.K, + temperature_range_max=6000.0 * u.K, + # For constant gamma=1.4: cp/R = gamma/(gamma-1) = 1.4/0.4 = 3.5 + # In NASA9 format, constant cp/R is the a2 coefficient (index 2) + coefficients=[0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + ), + ] + ), + mass_fraction=1.0, + ) + ] + ), + description=( + "Thermally perfect gas model with NASA 9-coefficient polynomials for " + "temperature-dependent thermodynamic properties. Defaults to a single-species " + "'Air' with coefficients that reproduce constant gamma=1.4 (calorically perfect gas). " + "For multi-species gas mixtures, specify multiple FrozenSpecies with their " + "respective mass fractions." + ), + ) + prandtl_number: pd.PositiveFloat = pd.Field( + 0.72, + description="Laminar Prandtl number. Default is 0.72 for air.", + ) + + class SolidMaterial(MaterialBase): """ Represents the solid material properties for heat transfer volume. @@ -719,4 +795,4 @@ class Water(MaterialBase): SolidMaterialTypes = SolidMaterial -FluidMaterialTypes = Union[Air, Water] +FluidMaterialTypes = Union[Gas, Air, Water] diff --git a/flow360/component/simulation/operating_condition/operating_condition.py b/flow360/component/simulation/operating_condition/operating_condition.py index 2c1f17e7c..f73075cc0 100644 --- a/flow360/component/simulation/operating_condition/operating_condition.py +++ b/flow360/component/simulation/operating_condition/operating_condition.py @@ -11,7 +11,7 @@ from flow360.component.simulation.framework.multi_constructor_model_base import ( MultiConstructorBaseModel, ) -from flow360.component.simulation.models.material import Air, Water +from flow360.component.simulation.models.material import Air, Gas, Water from flow360.component.simulation.operating_condition.atmosphere_model import ( StandardAtmosphereModel, ) @@ -77,7 +77,9 @@ class ThermalState(MultiConstructorBaseModel): density: DensityType.Positive = pd.Field( 1.225 * u.kg / u.m**3, frozen=True, description="The density of the fluid." ) - material: Air = pd.Field(Air(), frozen=True, description="The material of the fluid.") + material: Union[Gas, Air] = pd.Field( + Air(), frozen=True, discriminator="type", description="The material of the fluid." + ) private_attribute_input_cache: ThermalStateCache = ThermalStateCache() private_attribute_constructor: Literal["from_standard_atmosphere", "default"] = pd.Field( default="default", frozen=True diff --git a/flow360/component/simulation/simulation_params.py b/flow360/component/simulation/simulation_params.py index bb81a950f..d8c16a64d 100644 --- a/flow360/component/simulation/simulation_params.py +++ b/flow360/component/simulation/simulation_params.py @@ -132,6 +132,7 @@ _check_unsteadiness_to_use_hybrid_model, _check_valid_models_for_liquid, _populate_validated_field_to_validation_context, + _warn_air_deprecation, ) from flow360.component.simulation.validation.validation_utils import has_mirroring_usage from flow360.error_messages import ( @@ -625,6 +626,12 @@ def check_krylov_solver_restrictions(self): """Krylov solver is not compatible with limiters or unsteady time stepping.""" return _check_krylov_solver_restrictions(self) + @contextual_model_validator(mode="after") + @context_validator(context=CASE) + def warn_air_deprecation(self): + """Warn that Air class may be deprecated in favor of Gas.""" + return _warn_air_deprecation(self) + @contextual_model_validator(mode="after") @context_validator(context=CASE) def check_complete_boundary_condition_and_unknown_surface( diff --git a/flow360/component/simulation/translator/solver_translator.py b/flow360/component/simulation/translator/solver_translator.py index 23ed6b5ad..70aee6374 100644 --- a/flow360/component/simulation/translator/solver_translator.py +++ b/flow360/component/simulation/translator/solver_translator.py @@ -17,6 +17,7 @@ from flow360.component.simulation.framework.updater_utils import recursive_remove_key from flow360.component.simulation.models.material import ( Air, + Gas, Sutherland, ThermallyPerfectGas, compute_gamma_from_coefficients, @@ -2192,7 +2193,7 @@ def get_solver_json( ##:: Step 2.5: Get NASA 9-coefficient polynomial for gas model (Air material) # Always output thermallyPerfectGasModel for Air - even for CPG (constant gamma=1.4), # which uses default NASA9 coefficients [0, 0, 3.5, 0, 0, 0, 0, 0, 0] - if not isinstance(op, LiquidOperatingCondition) and isinstance(op.thermal_state.material, Air): + if not isinstance(op, LiquidOperatingCondition) and isinstance(op.thermal_state.material, Gas): # Get reference temperature for non-dimensionalization (freestream temperature) reference_temperature = op.thermal_state.temperature.to("K").v.item() @@ -2208,7 +2209,7 @@ def get_solver_json( "prandtlNumber": 7.0, "turbulentPrandtlNumber": 0.9, } - elif isinstance(op.thermal_state.material, Air): + elif isinstance(op.thermal_state.material, Gas): translated["fluidProperties"] = { "prandtlNumber": op.thermal_state.material.prandtl_number, "turbulentPrandtlNumber": op.thermal_state.material.turbulent_prandtl_number, diff --git a/flow360/component/simulation/validation/validation_simulation_params.py b/flow360/component/simulation/validation/validation_simulation_params.py index 138afdd6c..74ea6ad4f 100644 --- a/flow360/component/simulation/validation/validation_simulation_params.py +++ b/flow360/component/simulation/validation/validation_simulation_params.py @@ -20,7 +20,7 @@ CustomZones, WindTunnelFarfield, ) -from flow360.component.simulation.models.material import Air +from flow360.component.simulation.models.material import Air, Gas from flow360.component.simulation.models.solver_numerics import ( KrylovLinearSolver, NoneSolver, @@ -923,15 +923,15 @@ def _uses_compressible_isentropic_solver(params): return False -def _get_air_material(params): - """Get Air material from operating condition, or None if not applicable.""" +def _get_gas_material(params): + """Get Gas material from operating condition, or None if not applicable.""" if params.operating_condition is None: return None op = params.operating_condition if not hasattr(op, "thermal_state") or op.thermal_state is None: return None material = op.thermal_state.material - if isinstance(material, Air): + if isinstance(material, Gas): return material return None @@ -990,7 +990,7 @@ def _check_tpg_not_with_isentropic_solver(params): if not _uses_compressible_isentropic_solver(params): return params - material = _get_air_material(params) + material = _get_gas_material(params) if material is None: return params @@ -1004,3 +1004,16 @@ def _check_tpg_not_with_isentropic_solver(params): ) return params + + +def _warn_air_deprecation(params): + """Warn if the Air class is used instead of Gas.""" + material = _get_gas_material(params) + if material is None: + return params + if isinstance(material, Air): + add_validation_warning( + "The `Air` class may be deprecated in a future release. " + "The use of the `Gas` class is preferred." + ) + return params diff --git a/tests/data/case-11111111-1111-1111-1111-111111111111/simulation.json b/tests/data/case-11111111-1111-1111-1111-111111111111/simulation.json index 998459282..84ee69453 100644 --- a/tests/data/case-11111111-1111-1111-1111-111111111111/simulation.json +++ b/tests/data/case-11111111-1111-1111-1111-111111111111/simulation.json @@ -26,7 +26,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/case-2222222222-2222-2222-2222-2222222222/simulation.json b/tests/data/case-2222222222-2222-2222-2222-2222222222/simulation.json index ab7e71302..733b08e7d 100644 --- a/tests/data/case-2222222222-2222-2222-2222-2222222222/simulation.json +++ b/tests/data/case-2222222222-2222-2222-2222-2222222222/simulation.json @@ -26,7 +26,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/case-333333333-333333-3333333333-33333333/simulation.json b/tests/data/case-333333333-333333-3333333333-33333333/simulation.json index 01731b6e4..4f66f4c8e 100644 --- a/tests/data/case-333333333-333333-3333333333-33333333/simulation.json +++ b/tests/data/case-333333333-333333-3333333333-33333333/simulation.json @@ -210,7 +210,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -317,7 +321,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -353,7 +361,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-444444444-444444-4444444444-44444444/simulation.json b/tests/data/case-444444444-444444-4444444444-44444444/simulation.json index 781490498..d36c87b05 100644 --- a/tests/data/case-444444444-444444-4444444444-44444444/simulation.json +++ b/tests/data/case-444444444-444444-4444444444-44444444/simulation.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -220,7 +224,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -256,7 +264,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-5555-5555555-5555555555-555555555555/simulation.json b/tests/data/case-5555-5555555-5555555555-555555555555/simulation.json index 4ea316bfe..3712a61e6 100644 --- a/tests/data/case-5555-5555555-5555555555-555555555555/simulation.json +++ b/tests/data/case-5555-5555555-5555555555-555555555555/simulation.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -221,7 +225,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -257,7 +265,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-63fd6b73-cbd5-445c-aec6-e62eca4467e6/simulation.json b/tests/data/case-63fd6b73-cbd5-445c-aec6-e62eca4467e6/simulation.json index 0e82d9541..53e1e7c50 100644 --- a/tests/data/case-63fd6b73-cbd5-445c-aec6-e62eca4467e6/simulation.json +++ b/tests/data/case-63fd6b73-cbd5-445c-aec6-e62eca4467e6/simulation.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/case-666666666-66666666-666-6666666666666/simulation.json b/tests/data/case-666666666-66666666-666-6666666666666/simulation.json index 770c45a46..33f8f0c99 100644 --- a/tests/data/case-666666666-66666666-666-6666666666666/simulation.json +++ b/tests/data/case-666666666-66666666-666-6666666666666/simulation.json @@ -235,7 +235,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -331,7 +335,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -372,7 +380,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/data/case-69b8c249-fce5-412a-9927-6a79049deebb/simulation.json b/tests/data/case-69b8c249-fce5-412a-9927-6a79049deebb/simulation.json index 817670535..9bee88888 100644 --- a/tests/data/case-69b8c249-fce5-412a-9927-6a79049deebb/simulation.json +++ b/tests/data/case-69b8c249-fce5-412a-9927-6a79049deebb/simulation.json @@ -279,7 +279,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -379,7 +383,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-70489f25-d6b7-4a0b-81e1-2fa2e82fc57b/simulation.json b/tests/data/case-70489f25-d6b7-4a0b-81e1-2fa2e82fc57b/simulation.json index bc0ac13f6..64c1b59cf 100644 --- a/tests/data/case-70489f25-d6b7-4a0b-81e1-2fa2e82fc57b/simulation.json +++ b/tests/data/case-70489f25-d6b7-4a0b-81e1-2fa2e82fc57b/simulation.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -266,7 +270,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -305,7 +313,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-77777777-7777-7777-7777-777777777777/simulation.json b/tests/data/case-77777777-7777-7777-7777-777777777777/simulation.json index 038586e89..5f123015c 100644 --- a/tests/data/case-77777777-7777-7777-7777-777777777777/simulation.json +++ b/tests/data/case-77777777-7777-7777-7777-777777777777/simulation.json @@ -1971,7 +1971,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/case-84d4604e-f3cd-4c6b-8517-92a80a3346d3/simulation.json b/tests/data/case-84d4604e-f3cd-4c6b-8517-92a80a3346d3/simulation.json index 817670535..9bee88888 100644 --- a/tests/data/case-84d4604e-f3cd-4c6b-8517-92a80a3346d3/simulation.json +++ b/tests/data/case-84d4604e-f3cd-4c6b-8517-92a80a3346d3/simulation.json @@ -279,7 +279,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -379,7 +383,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/case-b3927b83-8af6-49cf-aa98-00d4f1838941/simulation.json b/tests/data/case-b3927b83-8af6-49cf-aa98-00d4f1838941/simulation.json index ff1c757eb..abd0023dc 100755 --- a/tests/data/case-b3927b83-8af6-49cf-aa98-00d4f1838941/simulation.json +++ b/tests/data/case-b3927b83-8af6-49cf-aa98-00d4f1838941/simulation.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/case-f7480884-4493-4453-9a27-dd5f8498c608/simulation.json b/tests/data/case-f7480884-4493-4453-9a27-dd5f8498c608/simulation.json index d024ac3ff..647cc530b 100644 --- a/tests/data/case-f7480884-4493-4453-9a27-dd5f8498c608/simulation.json +++ b/tests/data/case-f7480884-4493-4453-9a27-dd5f8498c608/simulation.json @@ -28,7 +28,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -268,7 +272,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -304,7 +312,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/geo-b2ca24af-f60d-4fb3-8120-c653f3e65be6/simulation.json b/tests/data/geo-b2ca24af-f60d-4fb3-8120-c653f3e65be6/simulation.json index 188c5db84..c5b2221d6 100644 --- a/tests/data/geo-b2ca24af-f60d-4fb3-8120-c653f3e65be6/simulation.json +++ b/tests/data/geo-b2ca24af-f60d-4fb3-8120-c653f3e65be6/simulation.json @@ -91,7 +91,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -190,7 +194,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -222,7 +230,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/geo-e5c01a98-2180-449e-b255-d60162854a83/simulation.json b/tests/data/geo-e5c01a98-2180-449e-b255-d60162854a83/simulation.json index f60889098..878b2fe54 100644 --- a/tests/data/geo-e5c01a98-2180-449e-b255-d60162854a83/simulation.json +++ b/tests/data/geo-e5c01a98-2180-449e-b255-d60162854a83/simulation.json @@ -49,7 +49,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -137,7 +141,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/geo-entity-provider/simulation.json b/tests/data/geo-entity-provider/simulation.json index b43257ec8..fd3627241 100644 --- a/tests/data/geo-entity-provider/simulation.json +++ b/tests/data/geo-entity-provider/simulation.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/geo-fcbe1113-a70b-43b9-a4f3-bbeb122d64fb/simulation.json b/tests/data/geo-fcbe1113-a70b-43b9-a4f3-bbeb122d64fb/simulation.json index 5b39f2dfa..bb4d1dc39 100644 --- a/tests/data/geo-fcbe1113-a70b-43b9-a4f3-bbeb122d64fb/simulation.json +++ b/tests/data/geo-fcbe1113-a70b-43b9-a4f3-bbeb122d64fb/simulation.json @@ -86,7 +86,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -182,7 +186,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -214,7 +222,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/simulation/simulation_24_11_0.json b/tests/data/simulation/simulation_24_11_0.json index 3223cb74b..9a81320ed 100644 --- a/tests/data/simulation/simulation_24_11_0.json +++ b/tests/data/simulation/simulation_24_11_0.json @@ -26,7 +26,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/simulation/simulation_24_11_9.json b/tests/data/simulation/simulation_24_11_9.json index c690612fa..d6e66d93e 100644 --- a/tests/data/simulation/simulation_24_11_9.json +++ b/tests/data/simulation/simulation_24_11_9.json @@ -54,7 +54,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/simulation/simulation_pre_24_11_1.json b/tests/data/simulation/simulation_pre_24_11_1.json index c727429c1..7a810c16e 100644 --- a/tests/data/simulation/simulation_pre_24_11_1.json +++ b/tests/data/simulation/simulation_pre_24_11_1.json @@ -63,7 +63,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -163,7 +167,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_24_11_1_symmetry.json b/tests/data/simulation/simulation_pre_24_11_1_symmetry.json index 7c4bc0601..3f055327a 100644 --- a/tests/data/simulation/simulation_pre_24_11_1_symmetry.json +++ b/tests/data/simulation/simulation_pre_24_11_1_symmetry.json @@ -742,7 +742,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -844,7 +848,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_24_11_7.json b/tests/data/simulation/simulation_pre_24_11_7.json index 0707f7cb1..236fd54cb 100644 --- a/tests/data/simulation/simulation_pre_24_11_7.json +++ b/tests/data/simulation/simulation_pre_24_11_7.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -224,7 +228,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -260,7 +268,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_2_0.json b/tests/data/simulation/simulation_pre_25_2_0.json index e70133b9e..ffbb90fc4 100644 --- a/tests/data/simulation/simulation_pre_25_2_0.json +++ b/tests/data/simulation/simulation_pre_25_2_0.json @@ -28,7 +28,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -290,7 +294,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -326,7 +334,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_2_1.json b/tests/data/simulation/simulation_pre_25_2_1.json index 1ba3b77dd..f9d419fd8 100644 --- a/tests/data/simulation/simulation_pre_25_2_1.json +++ b/tests/data/simulation/simulation_pre_25_2_1.json @@ -54,7 +54,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/simulation/simulation_pre_25_2_3_geo.json b/tests/data/simulation/simulation_pre_25_2_3_geo.json index 40cf1d60d..6ba8eeeb4 100644 --- a/tests/data/simulation/simulation_pre_25_2_3_geo.json +++ b/tests/data/simulation/simulation_pre_25_2_3_geo.json @@ -709,7 +709,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -815,7 +819,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -851,7 +859,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_2_3_volume_zones.json b/tests/data/simulation/simulation_pre_25_2_3_volume_zones.json index e568b1aa2..fb712a62a 100644 --- a/tests/data/simulation/simulation_pre_25_2_3_volume_zones.json +++ b/tests/data/simulation/simulation_pre_25_2_3_volume_zones.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -257,7 +261,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -296,7 +304,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_4_1.json b/tests/data/simulation/simulation_pre_25_4_1.json index 0543abc37..e0dbecc56 100644 --- a/tests/data/simulation/simulation_pre_25_4_1.json +++ b/tests/data/simulation/simulation_pre_25_4_1.json @@ -53,7 +53,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/simulation/simulation_pre_25_6_0-2.json b/tests/data/simulation/simulation_pre_25_6_0-2.json index d20a27843..ee2a4da86 100644 --- a/tests/data/simulation/simulation_pre_25_6_0-2.json +++ b/tests/data/simulation/simulation_pre_25_6_0-2.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -446,7 +450,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -485,7 +493,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_6_0.json b/tests/data/simulation/simulation_pre_25_6_0.json index ca9d9ca6d..cde050b62 100644 --- a/tests/data/simulation/simulation_pre_25_6_0.json +++ b/tests/data/simulation/simulation_pre_25_6_0.json @@ -27,7 +27,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -220,7 +224,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/data/simulation/simulation_pre_25_7_2.json b/tests/data/simulation/simulation_pre_25_7_2.json index 4074685f0..4d75e7c6f 100644 --- a/tests/data/simulation/simulation_pre_25_7_2.json +++ b/tests/data/simulation/simulation_pre_25_7_2.json @@ -53,7 +53,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/data/sm-3a7eb4c4-e8c0-4664-b85c-255fe23a3474/simulation.json b/tests/data/sm-3a7eb4c4-e8c0-4664-b85c-255fe23a3474/simulation.json index ac1b36e54..ab1b89cf6 100644 --- a/tests/data/sm-3a7eb4c4-e8c0-4664-b85c-255fe23a3474/simulation.json +++ b/tests/data/sm-3a7eb4c4-e8c0-4664-b85c-255fe23a3474/simulation.json @@ -40,7 +40,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -130,7 +134,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/vm-11111111-1111-1111-1111-111111111111/simulation.json b/tests/data/vm-11111111-1111-1111-1111-111111111111/simulation.json index f27322564..dd800d28c 100644 --- a/tests/data/vm-11111111-1111-1111-1111-111111111111/simulation.json +++ b/tests/data/vm-11111111-1111-1111-1111-111111111111/simulation.json @@ -40,7 +40,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -130,7 +134,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/vm-1cfdec99-3ce3-428c-85f8-2054812b2ddc/simulation.json b/tests/data/vm-1cfdec99-3ce3-428c-85f8-2054812b2ddc/simulation.json index 6ba1053d9..0f005f194 100644 --- a/tests/data/vm-1cfdec99-3ce3-428c-85f8-2054812b2ddc/simulation.json +++ b/tests/data/vm-1cfdec99-3ce3-428c-85f8-2054812b2ddc/simulation.json @@ -40,7 +40,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -130,7 +134,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/vm-22222222-22222222-2222-2222-22222222/simulation.json b/tests/data/vm-22222222-22222222-2222-2222-22222222/simulation.json index f7cc46a5c..5d8609bde 100644 --- a/tests/data/vm-22222222-22222222-2222-2222-22222222/simulation.json +++ b/tests/data/vm-22222222-22222222-2222-2222-22222222/simulation.json @@ -51,7 +51,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -147,7 +151,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -179,7 +187,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/data/vm-33333333-33333-3333333-333333333333/simulation.json b/tests/data/vm-33333333-33333-3333333-333333333333/simulation.json index 770c45a46..33f8f0c99 100644 --- a/tests/data/vm-33333333-33333-3333333-333333333333/simulation.json +++ b/tests/data/vm-33333333-33333-3333333-333333333333/simulation.json @@ -235,7 +235,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -331,7 +335,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -372,7 +380,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/data/vm-93a5dad9-a54c-4db9-a8ab-e22a976bb27a/simulation.json b/tests/data/vm-93a5dad9-a54c-4db9-a8ab-e22a976bb27a/simulation.json index 6ba1053d9..0f005f194 100644 --- a/tests/data/vm-93a5dad9-a54c-4db9-a8ab-e22a976bb27a/simulation.json +++ b/tests/data/vm-93a5dad9-a54c-4db9-a8ab-e22a976bb27a/simulation.json @@ -40,7 +40,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -130,7 +134,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/ref/simulation/service_init_geometry.json b/tests/ref/simulation/service_init_geometry.json index 6e5b079d0..0d0a4e015 100644 --- a/tests/ref/simulation/service_init_geometry.json +++ b/tests/ref/simulation/service_init_geometry.json @@ -135,7 +135,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -276,7 +280,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -347,7 +355,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/ref/simulation/service_init_surface_mesh.json b/tests/ref/simulation/service_init_surface_mesh.json index c48f8a747..a3ba1b4cf 100644 --- a/tests/ref/simulation/service_init_surface_mesh.json +++ b/tests/ref/simulation/service_init_surface_mesh.json @@ -135,7 +135,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -276,7 +280,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -347,7 +355,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/ref/simulation/service_init_volume_mesh.json b/tests/ref/simulation/service_init_volume_mesh.json index 358e2e191..605250584 100644 --- a/tests/ref/simulation/service_init_volume_mesh.json +++ b/tests/ref/simulation/service_init_volume_mesh.json @@ -90,7 +90,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -231,7 +235,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -302,7 +310,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/ref/simulation/simulation_json_with_multi_constructor_used.json b/tests/ref/simulation/simulation_json_with_multi_constructor_used.json index e38dcbb4d..b130a5831 100644 --- a/tests/ref/simulation/simulation_json_with_multi_constructor_used.json +++ b/tests/ref/simulation/simulation_json_with_multi_constructor_used.json @@ -222,7 +222,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -310,7 +314,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -351,7 +359,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/simulation/converter/ref/ref_monitor.json b/tests/simulation/converter/ref/ref_monitor.json index 25f868b8d..448d2c69b 100644 --- a/tests/simulation/converter/ref/ref_monitor.json +++ b/tests/simulation/converter/ref/ref_monitor.json @@ -65,7 +65,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, diff --git a/tests/simulation/data/geometry_airplane/simulation.json b/tests/simulation/data/geometry_airplane/simulation.json index 1e85ce7e3..4cf584410 100644 --- a/tests/simulation/data/geometry_airplane/simulation.json +++ b/tests/simulation/data/geometry_airplane/simulation.json @@ -162,7 +162,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -387,7 +391,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -419,7 +427,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/data/geometry_grouped_by_file/simulation.json b/tests/simulation/data/geometry_grouped_by_file/simulation.json index 00bc7fe3a..0b2672748 100644 --- a/tests/simulation/data/geometry_grouped_by_file/simulation.json +++ b/tests/simulation/data/geometry_grouped_by_file/simulation.json @@ -336,7 +336,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -679,7 +683,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -715,7 +723,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/data/real_case_coefficients/results/simulation_params.json b/tests/simulation/data/real_case_coefficients/results/simulation_params.json index 8ee681c12..9cce848e1 100644 --- a/tests/simulation/data/real_case_coefficients/results/simulation_params.json +++ b/tests/simulation/data/real_case_coefficients/results/simulation_params.json @@ -1825,7 +1825,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -12197,7 +12201,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -12233,7 +12241,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/simulation/data/simulation.json b/tests/simulation/data/simulation.json index a3b63b511..2fe6b5b32 100644 --- a/tests/simulation/data/simulation.json +++ b/tests/simulation/data/simulation.json @@ -135,7 +135,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -231,7 +235,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -263,7 +271,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/data/simulation_by_face_id.json b/tests/simulation/data/simulation_by_face_id.json index 46ad94d10..86d7e4d54 100644 --- a/tests/simulation/data/simulation_by_face_id.json +++ b/tests/simulation/data/simulation_by_face_id.json @@ -318,7 +318,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -716,7 +720,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -755,7 +763,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/simulation/data/simulation_with_wrong_expr_syntax.json b/tests/simulation/data/simulation_with_wrong_expr_syntax.json index 596706a4c..94e588f85 100644 --- a/tests/simulation/data/simulation_with_wrong_expr_syntax.json +++ b/tests/simulation/data/simulation_with_wrong_expr_syntax.json @@ -45,7 +45,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/data/vm_entity_provider/simulation.json b/tests/simulation/data/vm_entity_provider/simulation.json index d98376db3..4a49cba5c 100644 --- a/tests/simulation/data/vm_entity_provider/simulation.json +++ b/tests/simulation/data/vm_entity_provider/simulation.json @@ -51,7 +51,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -147,7 +151,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -179,7 +187,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/framework/data/airplane_volume_mesh/simulation.json b/tests/simulation/framework/data/airplane_volume_mesh/simulation.json index a50220f72..6b1df6a13 100644 --- a/tests/simulation/framework/data/airplane_volume_mesh/simulation.json +++ b/tests/simulation/framework/data/airplane_volume_mesh/simulation.json @@ -51,7 +51,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -150,7 +154,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -182,7 +190,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/params/data/geometry/simulation.json b/tests/simulation/params/data/geometry/simulation.json index 5090a92f3..b9a283f91 100644 --- a/tests/simulation/params/data/geometry/simulation.json +++ b/tests/simulation/params/data/geometry/simulation.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/params/data/simulation_force_output_webui.json b/tests/simulation/params/data/simulation_force_output_webui.json index 79143275a..ab6a7b9df 100644 --- a/tests/simulation/params/data/simulation_force_output_webui.json +++ b/tests/simulation/params/data/simulation_force_output_webui.json @@ -26,7 +26,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -465,7 +469,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -497,7 +505,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/params/data/simulation_stopping_criterion_webui.json b/tests/simulation/params/data/simulation_stopping_criterion_webui.json index 74bd9465d..7858f8735 100644 --- a/tests/simulation/params/data/simulation_stopping_criterion_webui.json +++ b/tests/simulation/params/data/simulation_stopping_criterion_webui.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/params/data/surface_mesh/simulation.json b/tests/simulation/params/data/surface_mesh/simulation.json index 3f8111a62..1c2edebbd 100644 --- a/tests/simulation/params/data/surface_mesh/simulation.json +++ b/tests/simulation/params/data/surface_mesh/simulation.json @@ -85,7 +85,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -181,7 +185,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -213,7 +221,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/params/test_automated_farfield.py b/tests/simulation/params/test_automated_farfield.py index 665c2b827..5a50f9c18 100644 --- a/tests/simulation/params/test_automated_farfield.py +++ b/tests/simulation/params/test_automated_farfield.py @@ -235,7 +235,7 @@ def test_symmetric_existence(surface_mesh): params.models.append(SymmetryPlane(surfaces=[farfield.symmetry_plane])) errors, warnings = _run_validation(params, surface_mesh) assert errors is None - assert warnings == [] + assert all("may be deprecated" in w["msg"] for w in warnings) # Invalid Symmetric params.meshing.defaults.planar_face_tolerance = 1e-100 @@ -256,7 +256,7 @@ def test_symmetric_existence(surface_mesh): "The following boundaries do not have a boundary condition: preexistingSymmetry." in errors[0]["msg"] ) - assert warnings == [] + assert all("may be deprecated" in w["msg"] for w in warnings) def test_user_defined_farfield_symmetry_plane(surface_mesh): @@ -289,7 +289,7 @@ def test_user_defined_farfield_symmetry_plane(surface_mesh): params, surface_mesh, use_beta_mesher=True, use_geometry_AI=True ) assert errors is None - assert warnings == [] + assert all("may be deprecated" in w["msg"] for w in warnings) def test_user_defined_farfield_symmetry_plane_requires_half_domain(surface_mesh): @@ -346,7 +346,7 @@ def test_user_defined_farfield_auto_symmetry_plane(surface_mesh): params, surface_mesh, use_beta_mesher=True, use_geometry_AI=True ) assert errors is None - assert warnings == [] + assert all("may be deprecated" in w["msg"] for w in warnings) def test_rotated_symmetric_existence(): diff --git a/tests/simulation/params/test_validators_material.py b/tests/simulation/params/test_validators_material.py index 8c4184553..569b24ec9 100644 --- a/tests/simulation/params/test_validators_material.py +++ b/tests/simulation/params/test_validators_material.py @@ -5,8 +5,10 @@ import flow360 as fl from flow360.component.simulation.models.material import ( FrozenSpecies, + Gas, NASA9Coefficients, NASA9CoefficientSet, + Sutherland, ThermallyPerfectGas, ) from flow360.component.simulation.unit_system import SI_unit_system @@ -461,3 +463,143 @@ def test_thermally_perfect_gas_mass_fraction_renormalization(): # After renormalization, mass fractions should sum to exactly 1.0 total = sum(s.mass_fraction for s in tpg.species) assert total == pytest.approx(1.0, abs=1e-10) + + +# ============================================================================= +# Gas Class Tests +# ============================================================================= + + +def _make_simple_tpg(gamma=1.4): + """Helper to create a simple single-species ThermallyPerfectGas.""" + cp_r = gamma / (gamma - 1) + return ThermallyPerfectGas( + species=[ + FrozenSpecies( + name="TestGas", + nasa_9_coefficients=NASA9Coefficients( + temperature_ranges=[ + NASA9CoefficientSet( + temperature_range_min=200.0 * fl.u.K, + temperature_range_max=6000.0 * fl.u.K, + coefficients=[0.0, 0.0, cp_r, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + ), + ] + ), + mass_fraction=1.0, + ) + ] + ) + + +def test_gas_with_custom_properties(): + """Test creating Gas with custom gas properties (e.g., CO2).""" + with SI_unit_system: + gas = Gas( + gas_constant=188.92 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=1.47e-5 * fl.u.Pa * fl.u.s, + thermally_perfect_gas=_make_simple_tpg(gamma=1.3), + prandtl_number=0.77, + ) + assert gas.type == "gas" + assert gas.gas_constant.to("m**2/s**2/K").v.item() == pytest.approx(188.92) + assert gas.prandtl_number == 0.77 + assert gas.turbulent_prandtl_number == 0.9 # default + + +def test_gas_with_sutherland_viscosity(): + """Test creating Gas with Sutherland viscosity model.""" + with SI_unit_system: + gas = Gas( + gas_constant=188.92 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=Sutherland( + reference_viscosity=1.47e-5 * fl.u.Pa * fl.u.s, + reference_temperature=293.15 * fl.u.K, + effective_temperature=240.0 * fl.u.K, + ), + thermally_perfect_gas=_make_simple_tpg(), + prandtl_number=0.77, + ) + assert isinstance(gas.dynamic_viscosity, Sutherland) + + +def test_gas_speed_of_sound(): + """Test that Gas computes speed of sound correctly.""" + with SI_unit_system: + gas = Gas( + gas_constant=287.0529 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=1.716e-5 * fl.u.Pa * fl.u.s, + thermally_perfect_gas=_make_simple_tpg(gamma=1.4), + prandtl_number=0.72, + ) + sos = gas.get_speed_of_sound(288.15 * fl.u.K) + # For air at 288.15 K: sqrt(1.4 * 287.0529 * 288.15) ≈ 340.29 m/s + assert sos.to("m/s").v.item() == pytest.approx(340.29, abs=0.5) + + +def test_gas_get_pressure(): + """Test that Gas computes pressure correctly via ideal gas law.""" + with SI_unit_system: + gas = Gas( + gas_constant=287.0529 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=1.716e-5 * fl.u.Pa * fl.u.s, + thermally_perfect_gas=_make_simple_tpg(), + prandtl_number=0.72, + ) + # P = rho * R * T = 1.225 * 287.0529 * 288.15 ≈ 101325 Pa + pressure = gas.get_pressure(1.225 * fl.u.kg / fl.u.m**3, 288.15 * fl.u.K) + assert pressure.to("Pa").v.item() == pytest.approx(101325, rel=0.01) + + +def test_air_inherits_from_gas(): + """Test that Air inherits from Gas and is recognized as Gas.""" + with SI_unit_system: + air = fl.Air() + assert isinstance(air, Gas) + assert isinstance(air, fl.Air) + assert air.type == "air" + assert air.gas_constant.to("m**2/s**2/K").v.item() == pytest.approx(287.0529) + + +def test_air_and_gas_produce_same_results(): + """Test that Air and Gas with air properties produce identical physics results.""" + with SI_unit_system: + air = fl.Air() + gas = Gas( + gas_constant=287.0529 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=Sutherland( + reference_viscosity=1.716e-5 * fl.u.Pa * fl.u.s, + reference_temperature=273.15 * fl.u.K, + effective_temperature=110.4 * fl.u.K, + ), + thermally_perfect_gas=_make_simple_tpg(gamma=1.4), + prandtl_number=0.72, + ) + temp = 288.15 * fl.u.K + assert air.get_speed_of_sound(temp).to("m/s").v.item() == pytest.approx( + gas.get_speed_of_sound(temp).to("m/s").v.item(), rel=1e-6 + ) + density = 1.225 * fl.u.kg / fl.u.m**3 + assert air.get_pressure(density, temp).to("Pa").v.item() == pytest.approx( + gas.get_pressure(density, temp).to("Pa").v.item(), rel=1e-6 + ) + + +def test_gas_serialization_roundtrip(): + """Test that Gas serializes and deserializes correctly.""" + with SI_unit_system: + gas = Gas( + gas_constant=188.92 * fl.u.m**2 / fl.u.s**2 / fl.u.K, + dynamic_viscosity=1.47e-5 * fl.u.Pa * fl.u.s, + thermally_perfect_gas=_make_simple_tpg(), + prandtl_number=0.77, + ) + data = gas.model_dump(mode="json") + assert data["type"] == "gas" + assert data["gas_constant"]["value"] == pytest.approx(188.92) + + # Deserialize + with SI_unit_system: + gas2 = Gas(**data) + assert gas2.type == "gas" + assert gas2.gas_constant.to("m**2/s**2/K").v.item() == pytest.approx(188.92) diff --git a/tests/simulation/ref/simulation_with_project_variables.json b/tests/simulation/ref/simulation_with_project_variables.json index 617481c08..e474d79cb 100644 --- a/tests/simulation/ref/simulation_with_project_variables.json +++ b/tests/simulation/ref/simulation_with_project_variables.json @@ -65,7 +65,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -206,7 +210,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -281,7 +289,11 @@ "type_name": "ThermallyPerfectGas" }, "turbulent_prandtl_number": 0.9, - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/service/data/dependency_geometry_sphere1_simulation.json b/tests/simulation/service/data/dependency_geometry_sphere1_simulation.json index c60744ae1..06284cbc9 100644 --- a/tests/simulation/service/data/dependency_geometry_sphere1_simulation.json +++ b/tests/simulation/service/data/dependency_geometry_sphere1_simulation.json @@ -99,7 +99,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -199,7 +203,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -231,7 +239,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/service/data/dependency_geometry_sphere2_simulation.json b/tests/simulation/service/data/dependency_geometry_sphere2_simulation.json index e2344dca8..244410cea 100644 --- a/tests/simulation/service/data/dependency_geometry_sphere2_simulation.json +++ b/tests/simulation/service/data/dependency_geometry_sphere2_simulation.json @@ -99,7 +99,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -199,7 +203,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -231,7 +239,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/service/data/root_geometry_cube_simulation.json b/tests/simulation/service/data/root_geometry_cube_simulation.json index 0e3c8d0f4..cbeba6aa0 100644 --- a/tests/simulation/service/data/root_geometry_cube_simulation.json +++ b/tests/simulation/service/data/root_geometry_cube_simulation.json @@ -99,7 +99,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -199,7 +203,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -231,7 +239,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/service/data/simulation.json b/tests/simulation/service/data/simulation.json index d3f7b3ba6..f8ac8f9c5 100644 --- a/tests/simulation/service/data/simulation.json +++ b/tests/simulation/service/data/simulation.json @@ -52,7 +52,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/service/data/simulation_bet_disk.json b/tests/simulation/service/data/simulation_bet_disk.json index 07951d961..0954715e1 100644 --- a/tests/simulation/service/data/simulation_bet_disk.json +++ b/tests/simulation/service/data/simulation_bet_disk.json @@ -249,7 +249,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/service/data/simulation_missing_from_meshing.json b/tests/simulation/service/data/simulation_missing_from_meshing.json index 4c2ff7d4e..935851311 100644 --- a/tests/simulation/service/data/simulation_missing_from_meshing.json +++ b/tests/simulation/service/data/simulation_missing_from_meshing.json @@ -182,7 +182,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -278,7 +282,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -310,7 +318,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/service/data/simulation_param.json b/tests/simulation/service/data/simulation_param.json index 437f7b0e4..b8b5f55a0 100644 --- a/tests/simulation/service/data/simulation_param.json +++ b/tests/simulation/service/data/simulation_param.json @@ -186,7 +186,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -273,7 +277,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -314,7 +322,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/simulation/service/data/simulation_with_missing_symmetric.json b/tests/simulation/service/data/simulation_with_missing_symmetric.json index 81b7aa37f..cb220be94 100644 --- a/tests/simulation/service/data/simulation_with_missing_symmetric.json +++ b/tests/simulation/service/data/simulation_with_missing_symmetric.json @@ -142,7 +142,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/service/data/simulation_with_old_ghost_surface.json b/tests/simulation/service/data/simulation_with_old_ghost_surface.json index 5358e4b09..308d4b442 100644 --- a/tests/simulation/service/data/simulation_with_old_ghost_surface.json +++ b/tests/simulation/service/data/simulation_with_old_ghost_surface.json @@ -140,7 +140,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -246,7 +250,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -282,7 +290,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/simulation/service/data/updater_should_pass.json b/tests/simulation/service/data/updater_should_pass.json index 939847846..cca335780 100644 --- a/tests/simulation/service/data/updater_should_pass.json +++ b/tests/simulation/service/data/updater_should_pass.json @@ -46,7 +46,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/service/params.json b/tests/simulation/service/params.json index 3ebc0c571..d61ba578f 100644 --- a/tests/simulation/service/params.json +++ b/tests/simulation/service/params.json @@ -231,7 +231,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -341,7 +345,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { @@ -377,7 +385,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": { diff --git a/tests/simulation/service/ref/unit_system_converted_CGS.json b/tests/simulation/service/ref/unit_system_converted_CGS.json index 84abce68e..22cc20646 100644 --- a/tests/simulation/service/ref/unit_system_converted_CGS.json +++ b/tests/simulation/service/ref/unit_system_converted_CGS.json @@ -186,7 +186,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 2870529.0, + "units": "cm**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -273,7 +277,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 2870529.0, + "units": "cm**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -314,7 +322,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 2870529.0, + "units": "cm**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/simulation/service/ref/unit_system_converted_SI.json b/tests/simulation/service/ref/unit_system_converted_SI.json index 57998b07d..578979901 100644 --- a/tests/simulation/service/ref/unit_system_converted_SI.json +++ b/tests/simulation/service/ref/unit_system_converted_SI.json @@ -186,7 +186,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -273,7 +277,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -314,7 +322,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/simulation/service/ref/unit_system_converted_imperial.json b/tests/simulation/service/ref/unit_system_converted_imperial.json index d12456266..057b7bb87 100644 --- a/tests/simulation/service/ref/unit_system_converted_imperial.json +++ b/tests/simulation/service/ref/unit_system_converted_imperial.json @@ -186,7 +186,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 1716.5620558092971, + "units": "ft**2/(degF*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -273,7 +277,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 1716.5620558092971, + "units": "ft**2/(degF*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { @@ -314,7 +322,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 1716.5620558092971, + "units": "ft**2/(degF*s**2)" + } }, "private_attribute_constructor": "from_standard_atmosphere", "private_attribute_input_cache": { diff --git a/tests/simulation/service/ref/updater_to_25_2_2.json b/tests/simulation/service/ref/updater_to_25_2_2.json index 1577551ff..3c94fe4e8 100644 --- a/tests/simulation/service/ref/updater_to_25_2_2.json +++ b/tests/simulation/service/ref/updater_to_25_2_2.json @@ -46,7 +46,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, diff --git a/tests/simulation/translator/data/gai_geometry_entity_info/simulation.json b/tests/simulation/translator/data/gai_geometry_entity_info/simulation.json index e1a213f81..6727f672b 100644 --- a/tests/simulation/translator/data/gai_geometry_entity_info/simulation.json +++ b/tests/simulation/translator/data/gai_geometry_entity_info/simulation.json @@ -43,7 +43,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, diff --git a/tests/simulation/translator/data/gai_windtunnel_farfield_info/simulation.json b/tests/simulation/translator/data/gai_windtunnel_farfield_info/simulation.json index 176e5eec0..119528937 100644 --- a/tests/simulation/translator/data/gai_windtunnel_farfield_info/simulation.json +++ b/tests/simulation/translator/data/gai_windtunnel_farfield_info/simulation.json @@ -126,7 +126,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -430,7 +434,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -462,7 +470,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/translator/data/ghost_periodic_geometry_entity_info/simulation.json b/tests/simulation/translator/data/ghost_periodic_geometry_entity_info/simulation.json index f4f6c60a3..0cd45a563 100644 --- a/tests/simulation/translator/data/ghost_periodic_geometry_entity_info/simulation.json +++ b/tests/simulation/translator/data/ghost_periodic_geometry_entity_info/simulation.json @@ -155,7 +155,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1, @@ -255,7 +259,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -287,7 +295,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/translator/data/simulation_isosurface.json b/tests/simulation/translator/data/simulation_isosurface.json index 1ab5ebf34..b873c2371 100644 --- a/tests/simulation/translator/data/simulation_isosurface.json +++ b/tests/simulation/translator/data/simulation_isosurface.json @@ -25,7 +25,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -180,7 +184,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -212,7 +220,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/translator/data/simulation_stopping_criterion.json b/tests/simulation/translator/data/simulation_stopping_criterion.json index 22f1be81d..4019bed26 100644 --- a/tests/simulation/translator/data/simulation_stopping_criterion.json +++ b/tests/simulation/translator/data/simulation_stopping_criterion.json @@ -25,7 +25,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1.0, @@ -204,7 +208,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, @@ -236,7 +244,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "private_attribute_constructor": "default", "private_attribute_input_cache": {}, diff --git a/tests/simulation/translator/data/simulation_with_auto_area.json b/tests/simulation/translator/data/simulation_with_auto_area.json index afee626e3..a51b2a152 100644 --- a/tests/simulation/translator/data/simulation_with_auto_area.json +++ b/tests/simulation/translator/data/simulation_with_auto_area.json @@ -55,7 +55,11 @@ } }, "name": "air", - "type": "air" + "type": "air", + "gas_constant": { + "value": 287.0529, + "units": "m**2/(K*s**2)" + } }, "navier_stokes_solver": { "CFL_multiplier": 1,