Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
005b37a
Add type level support for passing Path instances to download_file
Gobot1234 Sep 19, 2025
a41b780
Pre-emptively fix isort
Gobot1234 Sep 19, 2025
e06bbbd
Fix black
Gobot1234 Sep 20, 2025
79beceb
fix: solver session settings access in tests and examples
Gobot1234 Oct 2, 2025
a9d95d3
revert: some of the broken updates
Gobot1234 Oct 6, 2025
c3fc60e
chore: add acronym for DOE
Gobot1234 Oct 6, 2025
376508f
Move the boundary layer update
Gobot1234 Oct 7, 2025
0063e0c
Apply suggestion from @Gobot1234
Gobot1234 Oct 9, 2025
a6c1804
Fix some review issues
Gobot1234 Oct 9, 2025
0aa7841
Merge branch 'main' into example-updates
Gobot1234 Oct 9, 2025
9e02c58
Fix typo
Gobot1234 Oct 10, 2025
5f9fd49
fix: old syntax for camera position
Gobot1234 Oct 20, 2025
e101c51
refactor: make the code more pythonic
Gobot1234 Oct 22, 2025
313b069
Merge branch 'main' into example-updates
Gobot1234 Oct 30, 2025
2343b7a
fix ci
Gobot1234 Nov 3, 2025
c8a59db
chore: adding changelog file 4579.fixed.md [dependabot-skip]
pyansys-ci-bot Nov 3, 2025
ebc90ce
Adda couple of missed deprecations
Gobot1234 Nov 5, 2025
af2156f
Merge branch 'main' into jhilton-/example-updates
Gobot1234 Dec 2, 2025
5b0326f
fmt
Gobot1234 Dec 2, 2025
701650b
oops
Gobot1234 Dec 2, 2025
4f8fa85
fix tui change
Gobot1234 Dec 2, 2025
a3fcc89
rm the unnecessary space
Gobot1234 Dec 3, 2025
60f3292
Improve session guide
Gobot1234 Dec 3, 2025
f632441
fix ci potentially
Gobot1234 Dec 3, 2025
387ce45
Apply more of Sean's comments
Gobot1234 Dec 3, 2025
ab758a2
fix ci more
Gobot1234 Dec 3, 2025
22e7f71
penultimate round of fixes before bed
Gobot1234 Dec 4, 2025
a93ae3c
fmt again :)
Gobot1234 Dec 4, 2025
a6e3199
revert changes to tests
Gobot1234 Dec 18, 2025
8ea0f85
Merge main branch to resolve test file conflicts
Gobot1234 Dec 18, 2025
673a5f2
Revert all test file changes to match main
Gobot1234 Dec 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix ci potentially
  • Loading branch information
Gobot1234 committed Dec 3, 2025
commit f63244140c6272074d18f05da04443d74cc9a5a2
89 changes: 46 additions & 43 deletions tests/test_reduction.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@
from ansys.fluent.core.examples import download_file
from ansys.fluent.core.exceptions import DisallowedValuesError
from ansys.fluent.core.services.reduction import _locn_names_and_objs
from ansys.fluent.core.session_solver import Solver
from ansys.fluent.core.solver.function import reduction
from ansys.units import VariableCatalog


def _test_locn_extraction(solver1, solver2):
def _test_locn_extraction(solver1: Solver, solver2: Solver):
solver1_boundary_conditions = solver1.settings.setup.boundary_conditions
solver2_boundary_conditions = solver2.settings.setup.boundary_conditions
locns = _locn_names_and_objs(["inlet1"])
Expand Down Expand Up @@ -89,7 +90,7 @@ def _test_locn_extraction(solver1, solver2):
]


def _test_context(solver):
def _test_context(solver: Solver):
solver.settings.solution.initialization.hybrid_initialize()

assert solver.fields.reduction.area(
Expand All @@ -104,9 +105,9 @@ def _test_area_average(solver):
solver.settings.solution.initialization.hybrid_initialize()
solver_named_expressions = solver.settings.setup.named_expressions
solver_named_expressions["test_expr_1"] = {}
solver_named_expressions["test_expr_1"].definition = (
"AreaAve(AbsolutePressure, ['inlet1'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "AreaAve(AbsolutePressure, ['inlet1'])"
expr_val = solver_named_expressions["test_expr_1"].get_value()
assert isinstance(expr_val, float) and expr_val != 0.0
val = solver.fields.reduction.area_average(
Expand Down Expand Up @@ -160,17 +161,17 @@ def _test_count_if(solver):
solver_named_expressions = solver.settings.setup.named_expressions
s_velocity_inlet = solver.settings.setup.boundary_conditions.velocity_inlet
solver_named_expressions["test_expr_1"] = {}
solver_named_expressions["test_expr_1"].definition = (
"CountIf(AbsolutePressure > 0[Pa], ['inlet1'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "CountIf(AbsolutePressure > 0[Pa], ['inlet1'])"
expr_val_1 = solver_named_expressions["test_expr_1"].get_value()
solver_named_expressions["test_expr_1"].definition = (
"CountIf(AbsolutePressure > 0[Pa], ['inlet2'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "CountIf(AbsolutePressure > 0[Pa], ['inlet2'])"
expr_val_2 = solver_named_expressions["test_expr_1"].get_value()
solver_named_expressions["test_expr_1"].definition = (
"CountIf(AbsolutePressure > 0[Pa], ['inlet1', 'inlet2'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "CountIf(AbsolutePressure > 0[Pa], ['inlet1', 'inlet2'])"
expr_val_3 = solver_named_expressions["test_expr_1"].get_value()
assert expr_val_3 == expr_val_1 + expr_val_2
red_val_1 = solver.fields.reduction.count_if(
Expand All @@ -197,9 +198,9 @@ def _test_centroid(solver):
expr_val_1 = solver_named_expressions["test_expr_1"].get_value()
solver_named_expressions["test_expr_1"].definition = "Centroid(['inlet2'])"
expr_val_2 = solver_named_expressions["test_expr_1"].get_value()
solver_named_expressions["test_expr_1"].definition = (
"Centroid(['inlet1', 'inlet2'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "Centroid(['inlet1', 'inlet2'])"
expr_val_3 = solver_named_expressions["test_expr_1"].get_value()
red_val_1 = solver.fields.reduction.centroid(locations=[velocity_inlet["inlet1"]])
red_val_2 = solver.fields.reduction.centroid(locations=[velocity_inlet["inlet2"]])
Expand All @@ -219,18 +220,18 @@ def _test_area_integrated_average(solver1, solver2):
solver2_named_expr = solver2.settings.setup.named_expressions

solver1_named_expr["test_expr_1"] = {}
solver1_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet1'])"
)
solver1_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet1'])"
expr_val_1 = solver1_named_expr["test_expr_1"].get_value()

solver1_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet2'])"
)
solver1_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet2'])"
expr_val_2 = solver1_named_expr["test_expr_1"].get_value()
solver1_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet1', 'inlet2'])"
)
solver1_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet1', 'inlet2'])"
expr_val_3 = solver1_named_expr["test_expr_1"].get_value()

assert expr_val_3 - (expr_val_1 + expr_val_2) <= 0.000000001
Expand All @@ -253,18 +254,18 @@ def _test_area_integrated_average(solver1, solver2):
assert red_val_3 == expr_val_3

solver2_named_expr["test_expr_1"] = {}
solver2_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet1'])"
)
solver2_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet1'])"
expr_val_4 = solver2_named_expr["test_expr_1"].get_value()

solver2_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet2'])"
)
solver2_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet2'])"
expr_val_5 = solver2_named_expr["test_expr_1"].get_value()
solver2_named_expr["test_expr_1"].definition = (
"AreaInt(AbsolutePressure, ['inlet1', 'inlet2'])"
)
solver2_named_expr[
"test_expr_1"
].definition = "AreaInt(AbsolutePressure, ['inlet1', 'inlet2'])"
expr_val_6 = solver2_named_expr["test_expr_1"].get_value()

assert expr_val_6 - (expr_val_4 + expr_val_5) <= 0.000000001
Expand Down Expand Up @@ -339,9 +340,9 @@ def _test_moment(solver):
solver_named_expressions = solver.settings.setup.named_expressions
location = solver.settings.setup.boundary_conditions.wall
solver_named_expressions["test_expr_1"] = {}
solver_named_expressions["test_expr_1"].definition = (
"Moment(Force(['wall']),['wall'])"
)
solver_named_expressions[
"test_expr_1"
].definition = "Moment(Force(['wall']),['wall'])"
expr_val_1 = solver_named_expressions["test_expr_1"].get_value()

solver_named_expressions["test_expr_1"].definition = "Moment(['inlet1'],['wall'])"
Expand All @@ -368,9 +369,9 @@ def _test_moment(solver):
def _test_sum(solver):
solver.settings.solution.initialization.hybrid_initialize()
solver.settings.setup.named_expressions["test_expr_1"] = {}
solver.settings.setup.named_expressions["test_expr_1"].definition = (
"Sum(AbsolutePressure, ['inlet1'], Weight=Area)"
)
solver.settings.setup.named_expressions[
"test_expr_1"
].definition = "Sum(AbsolutePressure, ['inlet1'], Weight=Area)"
expr_val = solver.settings.setup.named_expressions["test_expr_1"].get_value()
assert isinstance(expr_val, float) and expr_val != 0.0

Expand All @@ -387,7 +388,9 @@ def _test_sum(solver):
def _test_sum_if(solver):
solver.settings.solution.initialization.hybrid_initialize()
solver.settings.setup.named_expressions["test_expr_1"] = {}
solver.settings.setup.named_expressions["test_expr_1"].definition = (
solver.settings.setup.named_expressions[
"test_expr_1"
].definition = (
"SumIf(AbsolutePressure, AbsolutePressure > 0[Pa], ['inlet1'], Weight=Area)"
)
expr_val = solver.settings.setup.named_expressions["test_expr_1"].get_value()
Expand Down Expand Up @@ -426,7 +429,7 @@ def static_mixer_case_session2(static_mixer_case_session: Any):
return static_mixer_case_session


@pytest.mark.fluent_version(">=24.1")
@pytest.mark.fluent_version(">=25.2")
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The minimum Fluent version requirement was changed from >=24.1 to >=25.2. Unless there's a specific feature dependency on 25.2, this unnecessarily restricts test coverage on earlier compatible versions.

Suggested change
@pytest.mark.fluent_version(">=25.2")
@pytest.mark.fluent_version(">=24.2")

Copilot uses AI. Check for mistakes.
def test_reductions(
static_mixer_case_session: Any, static_mixer_case_session2: Any
) -> None:
Expand Down
56 changes: 19 additions & 37 deletions tests/test_settings_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,9 +287,9 @@ def test_deprecated_settings_with_custom_aliases(new_solver_session):
== 2
)

solver.settings.setup.boundary_conditions.wall["wall-inlet"].thermal.thermal_bc = (
"Temperature"
)
solver.settings.setup.boundary_conditions.wall[
"wall-inlet"
].thermal.thermal_bc = "Temperature"
assert (
len(
solver.settings.setup.boundary_conditions.wall[
Expand Down Expand Up @@ -327,9 +327,9 @@ def test_deprecated_settings_with_custom_aliases(new_solver_session):
_Alias,
)
with pytest.warns(DeprecatedSettingWarning):
solver.settings.setup.boundary_conditions.wall["wall-inlet"].thermal.t.value = (
410
)
solver.settings.setup.boundary_conditions.wall[
"wall-inlet"
].thermal.t.value = 410

assert (
solver.settings.setup.boundary_conditions.wall[
Expand Down Expand Up @@ -559,12 +559,8 @@ def test_child_alias_with_parent_path(mixing_elbow_settings_session):
"option": ("../kernel_type", "option"),
}
)
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.enabled = (
True
)
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.kernel_type = (
"inverse-distance"
)
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.enabled = True
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.kernel_type = "inverse-distance"
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.kernel = {
"option": "gaussian",
"gaussian_factor": 0.5,
Expand All @@ -584,9 +580,7 @@ def test_child_alias_with_parent_path(mixing_elbow_settings_session):
"solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.gaussian_factor = 0.6"
),
):
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.kernel.gaussian_factor = (
0.6
)
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.kernel.gaussian_factor = 0.6
assert (
solver.settings.setup.models.discrete_phase.numerics.node_based_averaging.gaussian_factor()
== 0.6
Expand All @@ -609,9 +603,7 @@ def test_nested_alias(mixing_elbow_settings_session):
"solver.settings.setup.models.viscous.k_omega.k_omega_low_re_correction = False"
),
):
solver.settings.setup.models.viscous.k_omega_options.k_omega_low_re_correction = (
False
)
solver.settings.setup.models.viscous.k_omega_options.k_omega_low_re_correction = False
with pytest.warns(
DeprecatedSettingWarning,
match=(
Expand Down Expand Up @@ -645,7 +637,7 @@ def test_deprecated_command_arguments(mixing_elbow_case_data_session):
with pytest.warns(
PyFluentUserWarning,
match=(
"Unknown keyword 'all_boundary_zones' for command '<session>.results.report.fluxes.mass_flow'. "
"Unknown keyword 'all_boundary_zones' for command '<session>.settings.results.report.fluxes.mass_flow'. "
"It will be ignored."
),
):
Expand Down Expand Up @@ -761,9 +753,9 @@ def test_settings_with_deprecated_flag(mixing_elbow_settings_session):

# Named-object
solver.settings.solution.report_definitions.surface["report-def-1"] = {}
solver.settings.solution.report_definitions.surface["report-def-1"].report_type = (
"surface-area"
)
solver.settings.solution.report_definitions.surface[
"report-def-1"
].report_type = "surface-area"
solver.settings.solution.report_definitions.surface[
"report-def-1"
].surface_names = ["cold-inlet", "hot-inlet"]
Expand Down Expand Up @@ -850,28 +842,18 @@ def test_migration_adapter_for_strings(mixing_elbow_settings_session):
True
)

solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.enabled = (
True
)
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.option = (
"particle-time-step"
)
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.dpm_time_step_size = (
0.0002
)
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.enabled = True
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.option = "particle-time-step"
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.dpm_time_step_size = 0.0002

# Migration adapter is set on the 'create_particles_at' to accept boolean values as well besides string
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = (
False
)
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = False
assert (
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at()
== "fluid-flow-time-step"
)

solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = (
True
)
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = True
assert (
solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at()
== "particle-time-step"
Expand Down
5 changes: 4 additions & 1 deletion tests/test_tui_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ def test_api_upgrade_message(new_solver_session):
if solver.get_fluent_version() >= FluentVersion.v251:
assert s.split("\n")[-2].split("(")[0] == r"<solver_session>.file.read_case"
else:
assert s.split("\n")[-2].split("(")[0] == r"<solver_session>.file.read_case"
assert (
s.split("\n")[-2].split("(")[0]
== r"<solver_session>.settings.file.read_case"
)


def test_exit_not_in_meshing_tui(new_meshing_session):
Expand Down