Skip to content

Commit

Permalink
feat: Changes to support Fluent 25.2 dev (#3412)
Browse files Browse the repository at this point in the history
* feat: Changes to support Fluent 25.2 dev

* feat: Changes to support Fluent 25.2 dev

* ci: disable till image update

* fix: minor

* fix: tests

* fix: tests

* chore: code style
  • Loading branch information
mkundu1 authored Nov 12, 2024
1 parent dac1e25 commit 3d7c7eb
Show file tree
Hide file tree
Showing 10 changed files with 211 additions and 13 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,36 @@ jobs:
cat src/ansys/fluent/core/generated/fluent_version_251.py
python -c "from ansys.fluent.core.generated.solver.settings_251 import SHASH; print(f'SETTINGS_HASH = {SHASH}')"
# - name: Cache 25.2 API Code
# uses: actions/cache@v4
# id: cache-252-api-code
# with:
# path:
# src/ansys/fluent/core/generated
# doc/source/api/core/meshing/tui
# doc/source/api/core/meshing/datamodel
# doc/source/api/core/solver/tui
# doc/source/api/core/solver/datamodel
# key: API-Code-v${{ env.API_CODE_CACHE }}-${{ steps.version.outputs.PYFLUENT_VERSION }}-v25.2.0-${{ hashFiles('src/ansys/fluent/core/codegen/**') }}
# restore-keys: API-Code-v${{ env.API_CODE_CACHE }}-${{ steps.version.outputs.PYFLUENT_VERSION }}-v25.2.0

# - name: Pull 25.2 Fluent docker image
# if: steps.cache-252-api-code.outputs.cache-hit != 'true'
# run: make docker-pull
# env:
# FLUENT_IMAGE_TAG: v25.2.0

# - name: Run 25.2 API codegen
# if: steps.cache-252-api-code.outputs.cache-hit != 'true'
# run: make api-codegen
# env:
# FLUENT_IMAGE_TAG: v25.2.0

# - name: Print 25.2 Fluent version info
# run: |
# cat src/ansys/fluent/core/generated/fluent_version_252.py
# python -c "from ansys.fluent.core.generated.solver.settings_252 import SHASH; print(f'SETTINGS_HASH = {SHASH}')"

- name: Install again after codegen
run: |
rm -rf dist
Expand Down Expand Up @@ -457,6 +487,8 @@ jobs:
version: 242
- image-tag: v25.1.0
version: 251
# - image-tag: v25.2.0
# version: 252
timeout-minutes: 120
env:
FLUENT_IMAGE_TAG: ${{ matrix.version == 251 && vars.FLUENT_STABLE_IMAGE_DEV || matrix.image-tag }}
Expand Down
20 changes: 20 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ unittest-dev-251:
@sudo rm -rf /home/ansys/Downloads/ansys_fluent_core_examples/*
@poetry run python -m pytest --fluent-version=25.1 $(PYTESTEXTRA) || poetry run python -m pytest --fluent-version=25.1 $(PYTESTRERUN)

unittest-dev-252:
@echo "Running unittests"
@sudo rm -rf /home/ansys/Documents/ansys_fluent_core_examples/*
@poetry run python -m pytest --fluent-version=25.2 $(PYTESTEXTRA) || poetry run python -m pytest --fluent-version=25.2 $(PYTESTRERUN)

unittest-all-222:
@echo "Running all unittests"
@sudo rm -rf /home/ansys/Downloads/ansys_fluent_core_examples/*
Expand Down Expand Up @@ -123,6 +128,21 @@ unittest-all-251-no-codegen:
@sudo rm -rf /home/ansys/Downloads/ansys_fluent_core_examples/*
@poetry run python -m pytest --nightly --fluent-version=25.1 -m "not codegen_required" $(PYTESTEXTRA) || poetry run python -m pytest --nightly --fluent-version=25.1 -m "not codegen_required" $(PYTESTRERUN)

unittest-all-252:
@echo "Running all unittests"
@sudo rm -rf /home/ansys/Documents/ansys_fluent_core_examples/*
@poetry run python -m pytest --nightly --fluent-version=25.2 $(PYTESTEXTRA) || poetry run python -m pytest --nightly --fluent-version=25.2 $(PYTESTRERUN)

unittest-solvermode-252:
@echo "Running all unittests"
@sudo rm -rf /home/ansys/Documents/ansys_fluent_core_examples/*
@poetry run python -m pytest --fluent-version=25.2 --solvermode $(PYTESTEXTRA) || poetry run python -m pytest --fluent-version=25.2 --solvermode $(PYTESTRERUN)

unittest-all-252-no-codegen:
@echo "Running all unittests"
@sudo rm -rf /home/ansys/Documents/ansys_fluent_core_examples/*
@poetry run python -m pytest --nightly --fluent-version=25.2 -m "not codegen_required" $(PYTESTEXTRA) || poetry run python -m pytest --nightly --fluent-version=25.2 -m "not codegen_required" $(PYTESTRERUN)

api-codegen:
@echo "Running API codegen"
@python -m venv env
Expand Down
5 changes: 0 additions & 5 deletions devel/update_pyfluent_in_fluent.md

This file was deleted.

37 changes: 37 additions & 0 deletions devel/update_settings_builtin_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""
Script to update the settings_builtin_data.py file with the new Fluent version.
Usage: python devel/update_settings_builtin_data.py --version 252
"""

import argparse
from pathlib import Path

from ansys.fluent.core.utils.fluent_version import FluentVersion

parser = argparse.ArgumentParser()
parser.add_argument("--version", type=str, required=True)
args = parser.parse_args()
new_version = FluentVersion(args.version).name
index = FluentVersion._member_names_.index(new_version)
previous_version = FluentVersion._member_names_[index + 1]

file_path = (
Path(__file__).parent.parent
/ "src"
/ "ansys"
/ "fluent"
/ "core"
/ "solver"
/ "settings_builtin_data.py"
).resolve()
lines = []

with open(file_path, "r") as file:
for line in file:
if previous_version in line:
new_line = line.replace(previous_version, new_version)
lines.append(new_line)
lines.append(line)

with open(file_path, "w") as file:
file.writelines(lines)
9 changes: 7 additions & 2 deletions doc/settings_rstgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
import importlib
import os

from ansys.fluent.core.utils.fluent_version import get_version_for_file_name
from ansys.fluent.core.utils.fluent_version import (
FluentVersion,
get_version_for_file_name,
)

parents_dict = {}
rst_list = []
Expand Down Expand Up @@ -216,7 +219,9 @@ def _populate_rst_from_settings(rst_dir, cls, version):
if not os.path.exists(rst_dir):
os.makedirs(rst_dir)

image_tag = os.getenv("FLUENT_IMAGE_TAG", "v24.2.0")
image_tag = os.getenv(
"FLUENT_IMAGE_TAG", FluentVersion.current_release().docker_image_tag
)
version = get_version_for_file_name(image_tag.lstrip("v"))
settings = importlib.import_module(
f"ansys.fluent.core.generated.solver.settings_{version}"
Expand Down
7 changes: 5 additions & 2 deletions src/ansys/fluent/core/codegen/allapigen.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,11 @@ def generate(version: str, static_infos: dict):
Path(api_tree_file).parent.mkdir(parents=True, exist_ok=True)
with open(api_tree_file, "wb") as f:
pickle.dump(api_tree, f)
if codegen.CODEGEN_GENERATE_BUILTIN_SETTINGS and FluentVersion(version) == next(
iter(FluentVersion)
# Built-in settings are always generated for the latest version
# TODO: Change the hardcoded version after 25.2 Fluent image is available
if (
codegen.CODEGEN_GENERATE_BUILTIN_SETTINGS
and FluentVersion(version) == FluentVersion.v251
):
builtin_settingsgen.generate(version)

Expand Down
4 changes: 2 additions & 2 deletions src/ansys/fluent/core/codegen/builtin_settingsgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def generate(version: str):
kind = f"{final_type}NamedObject"
f.write(f"class {name}(_{kind}Setting):\n")
f.write(f' """{name} setting."""\n\n')
f.write(f" def __init__(self")
f.write(" def __init__(self")
for named_object in named_objects:
f.write(f", {named_object}: str")
f.write(", settings_source: SettingsBase | Solver | None = None")
Expand All @@ -83,7 +83,7 @@ def generate(version: str):
elif kind == "CreatableNamedObject":
f.write(", name: str = None, new_instance_name: str = None")
f.write("):\n")
f.write(f" super().__init__(settings_source=settings_source")
f.write(" super().__init__(settings_source=settings_source")
if kind == "NonCreatableNamedObject":
f.write(", name=name")
elif kind == "CreatableNamedObject":
Expand Down
Loading

0 comments on commit 3d7c7eb

Please sign in to comment.