Legacy meshing interface#
The legacy PyFluent meshing interface for the API-based meshing infrastructure is distinct from the classic meshing workflow (Classic meshing workflow).
Supported versions#
Available in PyFluent with Ansys Fluent versions prior to 2026 R1.
Also supported when using PyFluent with Ansys Fluent 2026 R1 or later version.
Enable the legacy interface#
Pass legacy=True during the workflow initialization:
watertight = meshing_session.watertight(legacy=True)
fault_tolerant = meshing_session.fault_tolerant(legacy=True)
Portability#
You can pass legacy=True unconditionally to avoid version checks and keep earlier scripts working unchanged.
Fault-tolerant meshing workflow#
In the legacy fault-tolerant workflow, PartManagement and PMFileManagement are accessed directly from the meshing session. Use these objects and their methods as shown below:
- meshing_session.PartManagement.InputFileChanged(...)
- meshing_session.PMFileManagement.FileManager.LoadFiles()
- meshing_session.PartManagement.Node["Meshing Model"].Copy(...)
- meshing_session.PartManagement.ObjectSetting["DefaultObjectSetting"].OneZonePer.set_state(...)
Note
Backward compatible: These entries are still supported in PyFluent using Ansys Fluent 2026 R1 for legacy scripts.
Import CAD and part management#
import ansys.fluent.core as pyfluent
from ansys.fluent.core import examples
import_file_name = examples.download_file(
"exhaust_system.fmd", "pyfluent/exhaust_system"
)
meshing_session = pyfluent.launch_fluent(precision=pyfluent.Precision.DOUBLE, processor_count=2, mode=pyfluent.FluentMode.MESHING)
fault_tolerant = meshing_session.fault_tolerant(legacy=True)
meshing_session.PartManagement.InputFileChanged(
FilePath=import_file_name, IgnoreSolidNames=False, PartPerBody=False
)
meshing_session.PMFileManagement.FileManager.LoadFiles()
meshing_session.PartManagement.Node["Meshing Model"].Copy(
Paths=[
"/dirty_manifold-for-wrapper," + "1/dirty_manifold-for-wrapper,1/main,1",
"/dirty_manifold-for-wrapper," + "1/dirty_manifold-for-wrapper,1/flow-pipe,1",
"/dirty_manifold-for-wrapper," + "1/dirty_manifold-for-wrapper,1/outpipe3,1",
"/dirty_manifold-for-wrapper," + "1/dirty_manifold-for-wrapper,1/object2,1",
"/dirty_manifold-for-wrapper," + "1/dirty_manifold-for-wrapper,1/object1,1",
]
)
meshing_session.PartManagement.ObjectSetting["DefaultObjectSetting"].OneZonePer.set_state("part")
import_cad = fault_tolerant.import_cad_and_part_management
import_cad.context.set_state(0)
import_cad.create_object_per.set_state("Custom")
import_cad.fmd_file_name.set_state(import_file_name)
import_cad.file_loaded.set_state("yes")
import_cad.object_setting.set_state("DefaultObjectSetting")
import_cad()
Renaming tasks in workflow#
In the legacy workflow, renaming a task updates its Python attribute path. Access the task by the new name.
Note
Not backward compatible: In the enhanced workflow (Ansys Fluent 2026 R1 and later), changing a task’s display name does not change its Python attribute path.
watertight.import_geometry.rename(new_name="import_geom_wtm")
assert watertight.import_geom_wtm
Deleting tasks from workflow#
In the legacy workflow, you delete tasks by passing their Python attribute
names as strings in list_of_tasks.
Note
Partly backward compatible: In the enhanced workflow (Ansys Fluent 2026 R1 and later),
delete-by-name has been replaced by passing task objects to list_of_tasks.
Calling task.delete() on a task object still works.
watertight.delete_tasks(list_of_tasks=["create_volume_mesh_wtm", "add_boundary_layers"])
watertight.update_regions.delete()