From 949f5f1f6b26812f1a635e351ce40c7030f5d8e2 Mon Sep 17 00:00:00 2001 From: Yogesh Patel Date: Tue, 5 Jul 2022 00:23:40 -0400 Subject: [PATCH 1/2] Adding some more user guide examples --- doc/source/user_guide/boundary_conditions.rst | 122 +++- doc/source/user_guide/general_settings.rst | 46 +- .../user_guide/launching_ansys_fluent.rst | 6 +- doc/source/user_guide/materials.rst | 57 +- doc/source/user_guide/meshing_workflows.rst | 588 +++++++++--------- doc/source/user_guide/models.rst | 64 +- doc/source/user_guide/solution.rst | 56 +- doc/source/user_guide/solver_settings.rst | 40 +- 8 files changed, 626 insertions(+), 353 deletions(-) diff --git a/doc/source/user_guide/boundary_conditions.rst b/doc/source/user_guide/boundary_conditions.rst index c58caf888a8..4c0a60d2a95 100644 --- a/doc/source/user_guide/boundary_conditions.rst +++ b/doc/source/user_guide/boundary_conditions.rst @@ -9,20 +9,97 @@ The following example demonstrates how you can define boundary conditions using .. code:: python + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') session.solver.tui.define.boundary_conditions.set.velocity_inlet( - "cold-inlet", [], "vmag", "no", 0.4, "quit" + 'cold-inlet', + [], + 'vmag', + 'no', + 0.4, + 'quit' ) session.solver.tui.define.boundary_conditions.set.velocity_inlet( - "cold-inlet", [], "ke-spec", "no", "no", "no", "yes", "quit" + 'cold-inlet', + [], + 'ke-spec', + 'no', + 'no', + 'no', + 'yes', + 'quit' ) session.solver.tui.define.boundary_conditions.set.velocity_inlet( - "cold-inlet", [], "turb-intensity", 5, "quit" + 'cold-inlet', + [], + 'turb-intensity', + 5, + 'quit' ) session.solver.tui.define.boundary_conditions.set.velocity_inlet( - "cold-inlet", [], "turb-hydraulic-diam", 4, "quit" + 'cold-inlet', + [], + 'turb-hydraulic-diam', + 4, + 'quit' ) session.solver.tui.define.boundary_conditions.set.velocity_inlet( - "cold-inlet", [], "temperature", "no", 293.15, "quit" + 'cold-inlet', + [], + 'temperature', + 'no', + 293.15, + 'quit' + ) + +Copying Boundary Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +define/boundary-conditions/copy-bc TUI: Copies boundary conditions to other zones. + +.. code:: python + + session.solver.tui.define.boundary_conditions.copy_bc('cold-inlet','hot-inlet','()') + +Listing Zones +~~~~~~~~~~~~~ +define/boundary-conditions/list-zones TUI: Prints out the types and IDs of all +zones in the console window. + +.. code:: python + + session.solver.tui.define.boundary_conditions.list_zones() + +Modifying Cell Zone Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: python + + #Enabling Laminar Zone + session.solver.tui.define.boundary_conditions.fluid( + 'elbow-fluid', + 'no', + 'no', + 'no', + 'no', + 'no', + 0, + 'no', + 0, + 'no', + 0, + 'no', + 0, + 'no', + 0, + 'no', + 1, + 'no', + 'yes', + 'yes', + 'no', + 'no', + 'no' ) Settings Objects @@ -30,22 +107,33 @@ Settings Objects The following example demonstrates how you can define boundary conditions using :ref:`ref_settings`: +Defining Boundary Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. code:: python - session.solver.root.setup.boundary_conditions.velocity_inlet["cold-inlet"].vmag = { - "option": "constant or expression", - "constant": 0.4, + session.solver.root.setup.boundary_conditions.velocity_inlet['cold-inlet'].vmag = { + 'option': 'constant or expression', + 'constant': 0.4, } session.solver.root.setup.boundary_conditions.velocity_inlet[ - "cold-inlet" - ].ke_spec = "Intensity and Hydraulic Diameter" + 'cold-inlet' + ].ke_spec = 'Intensity and Hydraulic Diameter' session.solver.root.setup.boundary_conditions.velocity_inlet[ - "cold-inlet" + 'cold-inlet' ].turb_intensity = 5 session.solver.root.setup.boundary_conditions.velocity_inlet[ - "cold-inlet" - ].turb_hydraulic_diam = "4 [in]" - session.solver.root.setup.boundary_conditions.velocity_inlet["cold-inlet"].t = { - "option": "constant or expression", - "constant": 293.15, - } \ No newline at end of file + 'cold-inlet' + ].turb_hydraulic_diam = '4 [in]' + session.solver.root.setup.boundary_conditions.velocity_inlet['cold-inlet'].t = { + 'option': 'constant or expression', + 'constant': 293.15, + } + +Modifying Cell Zone Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: python + + #Enabling Laminar Zone + session.solver.root.setup.cell_zone_conditions.fluid['elbow-fluid'] = {'laminar' : True} \ No newline at end of file diff --git a/doc/source/user_guide/general_settings.rst b/doc/source/user_guide/general_settings.rst index 087ac7035d7..b09218c011b 100644 --- a/doc/source/user_guide/general_settings.rst +++ b/doc/source/user_guide/general_settings.rst @@ -1,13 +1,53 @@ Applying General Settings ========================= -PyFluent supports defining general settings using the TUI API and +PyFluent supports defining general settings using the :ref:`ref_solver_tui_commands` and :ref:`ref_settings`. Solver TUI Commands ------------------- -The following example demonstrates how you can define units using +The following examples demonstrate how you can use solver meshing commands +and setup units using :ref:`ref_solver_tui_commands`: +Checking Mesh +~~~~~~~~~~~~~ +mesh/check TUI: Performs various mesh consistency checks and displays a +report in the console that lists the domain extents, the volume statistics, +the face area statistics, and any warnings, as well as details about the +various checks and mesh failures (depending on the setting specified for +mesh/check-verbosity). + +.. code:: python + + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') + session.solver.tui.mesh.check() + +Reporting Mesh Quality +~~~~~~~~~~~~~~~~~~~~~~ +mesh/quality TUI: Displays information about the quality of the mesh in the +console, including the minimum orthogonal quality and the maximum aspect ratio. +The level of detail displayed depends on the setting specified for +mesh/check-verbosity. + +.. code:: python + + session.solver.tui.mesh.quality() + +Scaling Mesh +~~~~~~~~~~~~ +mesh/scale TUI: Prompts for the scaling factors in each of the active Cartesian +coordinate directions. + +.. code:: python + + session.solver.tui.mesh.scale(1,1,1) + +Defining Units +~~~~~~~~~~~~~~ +define/units TUI: Sets unit conversion factors. + .. code:: python - session.solver.tui.define.units("length", "in") \ No newline at end of file + session.solver.tui.define.units('length', 'in') \ No newline at end of file diff --git a/doc/source/user_guide/launching_ansys_fluent.rst b/doc/source/user_guide/launching_ansys_fluent.rst index 551b293294f..73f17303ce5 100644 --- a/doc/source/user_guide/launching_ansys_fluent.rst +++ b/doc/source/user_guide/launching_ansys_fluent.rst @@ -38,7 +38,7 @@ The following example demonstrates how you can select double precision in soluti .. code:: python - solver_session = pyfluent.launch_fluent(precision="double") + solver_session = pyfluent.launch_fluent(precision='double') Dimension ~~~~~~~~~ @@ -46,7 +46,7 @@ The following example demonstrates how you can select double precision and 2D in .. code:: python - solver_session = pyfluent.launch_fluent(precision="double", version="2d") + solver_session = pyfluent.launch_fluent(precision='double', version='2d') Number of Processors ~~~~~~~~~~~~~~~~~~~~ @@ -54,7 +54,7 @@ The following example demonstrates how you can select the number of processors: .. code:: python - solver_session = pyfluent.launch_fluent(precision="double", version="2d", processor_count=2) + solver_session = pyfluent.launch_fluent(precision='double', version='2d', processor_count=2) API Reference ------------- diff --git a/doc/source/user_guide/materials.rst b/doc/source/user_guide/materials.rst index df44857128e..de8e638c1c6 100644 --- a/doc/source/user_guide/materials.rst +++ b/doc/source/user_guide/materials.rst @@ -8,33 +8,38 @@ Solver TUI Commands The following example demonstrates how you can define materials using the :ref:`ref_solver_tui_commands`: +define/materials TUI: Enters the materials menu. + .. code:: python - session.solver.tui.define.materials.copy("fluid", "water-liquid") + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') + session.solver.tui.define.materials.copy('fluid', 'water-liquid') session.solver.tui.define.boundary_conditions.fluid( - "elbow-fluid", - "yes", - "water-liquid", - "no", - "no", - "no", - "no", - "0", - "no", - "0", - "no", - "0", - "no", - "0", - "no", - "0", - "no", - "1", - "no", - "no", - "no", - "no", - "no", + 'elbow-fluid', + 'yes', + 'water-liquid', + 'no', + 'no', + 'no', + 'no', + '0', + 'no', + '0', + 'no', + '0', + 'no', + '0', + 'no', + '0', + 'no', + '1', + 'no', + 'no', + 'no', + 'no', + 'no', ) Settings Objects @@ -44,5 +49,5 @@ The following example demonstrates how you can define materials using .. code:: python - session.solver.root.setup.materials.copy_database_material_by_name(type="fluid", name="water-liquid") - session.solver.root.setup.cell_zone_conditions.fluid["elbow-fluid"].material = "water-liquid" \ No newline at end of file + session.solver.root.setup.materials.copy_database_material_by_name(type='fluid', name='water-liquid') + session.solver.root.setup.cell_zone_conditions.fluid['elbow-fluid'].material = 'water-liquid' \ No newline at end of file diff --git a/doc/source/user_guide/meshing_workflows.rst b/doc/source/user_guide/meshing_workflows.rst index 794b3b6e23f..ed16ed0b1e7 100644 --- a/doc/source/user_guide/meshing_workflows.rst +++ b/doc/source/user_guide/meshing_workflows.rst @@ -17,102 +17,102 @@ Importing Your Geometry import ansys.fluent.core as pyfluent from ansys.fluent.core import examples - import_filename = examples.download_file("mixing_elbow.pmdb", "pyfluent/mixing_elbow") + import_filename = examples.download_file('mixing_elbow.pmdb', 'pyfluent/mixing_elbow') session = pyfluent.launch_fluent( - meshing_mode=True, precision="double", processor_count=2 + meshing_mode=True, precision='double', processor_count=2 ) - session.meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry") - session.meshing.workflow.TaskObject["Import Geometry"].Arguments = dict( - FileName=import_filename, LengthUnit="in" + session.meshing.workflow.InitializeWorkflow(WorkflowType='Watertight Geometry') + session.meshing.workflow.TaskObject['Import Geometry'].Arguments = dict( + FileName=import_filename, LengthUnit='in' ) - session.meshing.workflow.TaskObject["Import Geometry"].Execute() + session.meshing.workflow.TaskObject['Import Geometry'].Execute() Adding Local Sizing ~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Add Local Sizing"].AddChildToTask() - session.meshing.workflow.TaskObject["Add Local Sizing"].Execute() + session.meshing.workflow.TaskObject['Add Local Sizing'].AddChildToTask() + session.meshing.workflow.TaskObject['Add Local Sizing'].Execute() Generating the Surface Mesh ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Generate the Surface Mesh"].Arguments = { - "CFDSurfaceMeshControls": {"MaxSize": 0.3} + session.meshing.workflow.TaskObject['Generate the Surface Mesh'].Arguments = { + 'CFDSurfaceMeshControls': {'MaxSize': 0.3} } - session.meshing.workflow.TaskObject["Generate the Surface Mesh"].Execute() + session.meshing.workflow.TaskObject['Generate the Surface Mesh'].Execute() Describing the Geometry ~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Describe Geometry"].UpdateChildTasks( + session.meshing.workflow.TaskObject['Describe Geometry'].UpdateChildTasks( SetupTypeChanged=False ) - session.meshing.workflow.TaskObject["Describe Geometry"].Arguments = dict( - SetupType="The geometry consists of only fluid regions with no voids" + session.meshing.workflow.TaskObject['Describe Geometry'].Arguments = dict( + SetupType='The geometry consists of only fluid regions with no voids' ) - session.meshing.workflow.TaskObject["Describe Geometry"].UpdateChildTasks( + session.meshing.workflow.TaskObject['Describe Geometry'].UpdateChildTasks( SetupTypeChanged=True ) - session.meshing.workflow.TaskObject["Describe Geometry"].Execute() + session.meshing.workflow.TaskObject['Describe Geometry'].Execute() Updating Boundaries ~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Update Boundaries"].Arguments = { - "BoundaryLabelList": ["wall-inlet"], - "BoundaryLabelTypeList": ["wall"], - "OldBoundaryLabelList": ["wall-inlet"], - "OldBoundaryLabelTypeList": ["velocity-inlet"], + session.meshing.workflow.TaskObject['Update Boundaries'].Arguments = { + 'BoundaryLabelList': ['wall-inlet'], + 'BoundaryLabelTypeList': ['wall'], + 'OldBoundaryLabelList': ['wall-inlet'], + 'OldBoundaryLabelTypeList': ['velocity-inlet'], } - session.meshing.workflow.TaskObject["Update Boundaries"].Execute() + session.meshing.workflow.TaskObject['Update Boundaries'].Execute() Updating Regions ~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Update Regions"].Execute() + session.meshing.workflow.TaskObject['Update Regions'].Execute() Adding Boundary Layers ~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Add Boundary Layers"].AddChildToTask() - session.meshing.workflow.TaskObject["Add Boundary Layers"].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["smooth-transition_1"].Arguments = { - "BLControlName": "smooth-transition_1", + session.meshing.workflow.TaskObject['Add Boundary Layers'].AddChildToTask() + session.meshing.workflow.TaskObject['Add Boundary Layers'].InsertCompoundChildTask() + session.meshing.workflow.TaskObject['smooth-transition_1'].Arguments = { + 'BLControlName': 'smooth-transition_1', } - session.meshing.workflow.TaskObject["Add Boundary Layers"].Arguments = {} - session.meshing.workflow.TaskObject["smooth-transition_1"].Execute() + session.meshing.workflow.TaskObject['Add Boundary Layers'].Arguments = {} + session.meshing.workflow.TaskObject['smooth-transition_1'].Execute() Generating the Volume Mesh ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Generate the Volume Mesh"].Arguments = { - "VolumeFill": "poly-hexcore", - "VolumeFillControls": { - "HexMaxCellLength": 0.3, + session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Arguments = { + 'VolumeFill': 'poly-hexcore', + 'VolumeFillControls': { + 'HexMaxCellLength': 0.3, }, } - session.meshing.workflow.TaskObject["Generate the Volume Mesh"].Execute() + session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Execute() Switching to Solution Mode ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.tui.switch_to_solution_mode("yes") + session.meshing.tui.switch_to_solution_mode('yes') Using the Fault-tolerant Meshing Workflow ----------------------------------------- @@ -127,76 +127,76 @@ Importing CAD and Part Management from ansys.fluent.core import examples import_filename = examples.download_file( - "exhaust_system.fmd", "pyfluent/exhaust_system" + 'exhaust_system.fmd', 'pyfluent/exhaust_system' ) session = pyfluent.launch_fluent( - meshing_mode=True, precision="double", processor_count=2 + meshing_mode=True, precision='double', processor_count=2 ) - session.meshing.workflow.InitializeWorkflow(WorkflowType="Fault-tolerant Meshing") + session.meshing.workflow.InitializeWorkflow(WorkflowType='Fault-tolerant Meshing') session.meshing.PartManagement.InputFileChanged( FilePath=import_filename, IgnoreSolidNames=False, PartPerBody=False ) session.meshing.PMFileManagement.FileManager.LoadFiles() - session.meshing.PartManagement.Node["Meshing Model"].Copy( + session.meshing.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", + '/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', ] ) session.meshing.PartManagement.ObjectSetting[ - "DefaultObjectSetting" - ].OneZonePer.setState("part") + 'DefaultObjectSetting' + ].OneZonePer.setState('part') session.meshing.workflow.TaskObject[ - "Import CAD and Part Management" + 'Import CAD and Part Management' ].Arguments.setState( { - "Context": 0, - "CreateObjectPer": "Custom", - "FMDFileName": import_filename, - "FileLoaded": "yes", - "ObjectSetting": "DefaultObjectSetting", - "Options": { - "Line": False, - "Solid": False, - "Surface": False, + 'Context': 0, + 'CreateObjectPer': 'Custom', + 'FMDFileName': import_filename, + 'FileLoaded': 'yes', + 'ObjectSetting': 'DefaultObjectSetting', + 'Options': { + 'Line': False, + 'Solid': False, + 'Surface': False, }, } ) - session.meshing.workflow.TaskObject["Import CAD and Part Management"].Execute() + session.meshing.workflow.TaskObject['Import CAD and Part Management'].Execute() Describing Geometry and Flow ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Describe Geometry and Flow"].Arguments.setState( + session.meshing.workflow.TaskObject['Describe Geometry and Flow'].Arguments.setState( { - "AddEnclosure": "No", - "CloseCaps": "Yes", - "FlowType": "Internal flow through the object", + 'AddEnclosure': 'No', + 'CloseCaps': 'Yes', + 'FlowType': 'Internal flow through the object', } ) - session.meshing.workflow.TaskObject["Describe Geometry and Flow"].UpdateChildTasks( + session.meshing.workflow.TaskObject['Describe Geometry and Flow'].UpdateChildTasks( SetupTypeChanged=False ) - session.meshing.workflow.TaskObject["Describe Geometry and Flow"].Arguments.setState( + session.meshing.workflow.TaskObject['Describe Geometry and Flow'].Arguments.setState( { - "AddEnclosure": "No", - "CloseCaps": "Yes", - "DescribeGeometryAndFlowOptions": { - "AdvancedOptions": True, - "ExtractEdgeFeatures": "Yes", + 'AddEnclosure': 'No', + 'CloseCaps': 'Yes', + 'DescribeGeometryAndFlowOptions': { + 'AdvancedOptions': True, + 'ExtractEdgeFeatures': 'Yes', }, - "FlowType": "Internal flow through the object", + 'FlowType': 'Internal flow through the object', } ) - session.meshing.workflow.TaskObject["Describe Geometry and Flow"].UpdateChildTasks( + session.meshing.workflow.TaskObject['Describe Geometry and Flow'].UpdateChildTasks( SetupTypeChanged=False ) - session.meshing.workflow.TaskObject["Describe Geometry and Flow"].Execute() + session.meshing.workflow.TaskObject['Describe Geometry and Flow'].Execute() Enclosing Fluid Regions (Capping) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -204,340 +204,340 @@ Enclosing Fluid Regions (Capping) .. code:: python session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "CreatePatchPreferences": { - "ShowCreatePatchPreferences": False, + 'CreatePatchPreferences': { + 'ShowCreatePatchPreferences': False, }, - "PatchName": "inlet-1", - "SelectionType": "zone", - "ZoneSelectionList": ["inlet.1"], + 'PatchName': 'inlet-1', + 'SelectionType': 'zone', + 'ZoneSelectionList': ['inlet.1'], } ) session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "CreatePatchPreferences": { - "ShowCreatePatchPreferences": False, + 'CreatePatchPreferences': { + 'ShowCreatePatchPreferences': False, }, - "PatchName": "inlet-1", - "SelectionType": "zone", - "ZoneLocation": [ - "1", - "351.68205", - "-361.34322", - "-301.88668", - "396.96205", - "-332.84759", - "-266.69751", - "inlet.1", + 'PatchName': 'inlet-1', + 'SelectionType': 'zone', + 'ZoneLocation': [ + '1', + '351.68205', + '-361.34322', + '-301.88668', + '396.96205', + '-332.84759', + '-266.69751', + 'inlet.1', ], - "ZoneSelectionList": ["inlet.1"], + 'ZoneSelectionList': ['inlet.1'], } ) - session.meshing.workflow.TaskObject["Enclose Fluid Regions (Capping)"].AddChildToTask() + session.meshing.workflow.TaskObject['Enclose Fluid Regions (Capping)'].AddChildToTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].InsertCompoundChildTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState({}) - session.meshing.workflow.TaskObject["inlet-1"].Execute() + session.meshing.workflow.TaskObject['inlet-1'].Execute() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "inlet-2", - "SelectionType": "zone", - "ZoneSelectionList": ["inlet.2"], + 'PatchName': 'inlet-2', + 'SelectionType': 'zone', + 'ZoneSelectionList': ['inlet.2'], } ) session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "inlet-2", - "SelectionType": "zone", - "ZoneLocation": [ - "1", - "441.68205", - "-361.34322", - "-301.88668", - "486.96205", - "-332.84759", - "-266.69751", - "inlet.2", + 'PatchName': 'inlet-2', + 'SelectionType': 'zone', + 'ZoneLocation': [ + '1', + '441.68205', + '-361.34322', + '-301.88668', + '486.96205', + '-332.84759', + '-266.69751', + 'inlet.2', ], - "ZoneSelectionList": ["inlet.2"], + 'ZoneSelectionList': ['inlet.2'], } ) - session.meshing.workflow.TaskObject["Enclose Fluid Regions (Capping)"].AddChildToTask() + session.meshing.workflow.TaskObject['Enclose Fluid Regions (Capping)'].AddChildToTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].InsertCompoundChildTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState({}) - session.meshing.workflow.TaskObject["inlet-2"].Execute() + session.meshing.workflow.TaskObject['inlet-2'].Execute() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "inlet-3", - "SelectionType": "zone", - "ZoneSelectionList": ["inlet"], + 'PatchName': 'inlet-3', + 'SelectionType': 'zone', + 'ZoneSelectionList': ['inlet'], } ) session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "inlet-3", - "SelectionType": "zone", - "ZoneLocation": [ - "1", - "261.68205", - "-361.34322", - "-301.88668", - "306.96205", - "-332.84759", - "-266.69751", - "inlet", + 'PatchName': 'inlet-3', + 'SelectionType': 'zone', + 'ZoneLocation': [ + '1', + '261.68205', + '-361.34322', + '-301.88668', + '306.96205', + '-332.84759', + '-266.69751', + 'inlet', ], - "ZoneSelectionList": ["inlet"], + 'ZoneSelectionList': ['inlet'], } ) - session.meshing.workflow.TaskObject["Enclose Fluid Regions (Capping)"].AddChildToTask() + session.meshing.workflow.TaskObject['Enclose Fluid Regions (Capping)'].AddChildToTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].InsertCompoundChildTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState({}) - session.meshing.workflow.TaskObject["inlet-3"].Execute() + session.meshing.workflow.TaskObject['inlet-3'].Execute() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "outlet-1", - "SelectionType": "zone", - "ZoneSelectionList": ["outlet"], - "ZoneType": "pressure-outlet", + 'PatchName': 'outlet-1', + 'SelectionType': 'zone', + 'ZoneSelectionList': ['outlet'], + 'ZoneType': 'pressure-outlet', } ) session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState( { - "PatchName": "outlet-1", - "SelectionType": "zone", - "ZoneLocation": [ - "1", - "352.22702", - "-197.8957", - "84.102381", - "394.41707", - "-155.70565", - "84.102381", - "outlet", + 'PatchName': 'outlet-1', + 'SelectionType': 'zone', + 'ZoneLocation': [ + '1', + '352.22702', + '-197.8957', + '84.102381', + '394.41707', + '-155.70565', + '84.102381', + 'outlet', ], - "ZoneSelectionList": ["outlet"], - "ZoneType": "pressure-outlet", + 'ZoneSelectionList': ['outlet'], + 'ZoneType': 'pressure-outlet', } ) - session.meshing.workflow.TaskObject["Enclose Fluid Regions (Capping)"].AddChildToTask() + session.meshing.workflow.TaskObject['Enclose Fluid Regions (Capping)'].AddChildToTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].InsertCompoundChildTask() session.meshing.workflow.TaskObject[ - "Enclose Fluid Regions (Capping)" + 'Enclose Fluid Regions (Capping)' ].Arguments.setState({}) - session.meshing.workflow.TaskObject["outlet-1"].Execute() + session.meshing.workflow.TaskObject['outlet-1'].Execute() Extracting Edge Features ~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Extract Edge Features"].Arguments.setState( + session.meshing.workflow.TaskObject['Extract Edge Features'].Arguments.setState( { - "ExtractMethodType": "Intersection Loops", - "ObjectSelectionList": ["flow_pipe", "main"], + 'ExtractMethodType': 'Intersection Loops', + 'ObjectSelectionList': ['flow_pipe', 'main'], } ) - session.meshing.workflow.TaskObject["Extract Edge Features"].AddChildToTask() + session.meshing.workflow.TaskObject['Extract Edge Features'].AddChildToTask() - session.meshing.workflow.TaskObject["Extract Edge Features"].InsertCompoundChildTask() + session.meshing.workflow.TaskObject['Extract Edge Features'].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["edge-group-1"].Arguments.setState( + session.meshing.workflow.TaskObject['edge-group-1'].Arguments.setState( { - "ExtractEdgesName": "edge-group-1", - "ExtractMethodType": "Intersection Loops", - "ObjectSelectionList": ["flow_pipe", "main"], + 'ExtractEdgesName': 'edge-group-1', + 'ExtractMethodType': 'Intersection Loops', + 'ObjectSelectionList': ['flow_pipe', 'main'], } ) - session.meshing.workflow.TaskObject["Extract Edge Features"].Arguments.setState({}) + session.meshing.workflow.TaskObject['Extract Edge Features'].Arguments.setState({}) - session.meshing.workflow.TaskObject["edge-group-1"].Execute() + session.meshing.workflow.TaskObject['edge-group-1'].Execute() Identifying Regions ~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Identify Regions"].Arguments.setState( + session.meshing.workflow.TaskObject['Identify Regions'].Arguments.setState( { - "SelectionType": "zone", - "X": 377.322045740589, - "Y": -176.800676988458, - "Z": -37.0764628583475, - "ZoneSelectionList": ["main.1"], + 'SelectionType': 'zone', + 'X': 377.322045740589, + 'Y': -176.800676988458, + 'Z': -37.0764628583475, + 'ZoneSelectionList': ['main.1'], } ) - session.meshing.workflow.TaskObject["Identify Regions"].Arguments.setState( + session.meshing.workflow.TaskObject['Identify Regions'].Arguments.setState( { - "SelectionType": "zone", - "X": 377.322045740589, - "Y": -176.800676988458, - "Z": -37.0764628583475, - "ZoneLocation": [ - "1", - "213.32205", - "-225.28068", - "-158.25531", - "541.32205", - "-128.32068", - "84.102381", - "main.1", + 'SelectionType': 'zone', + 'X': 377.322045740589, + 'Y': -176.800676988458, + 'Z': -37.0764628583475, + 'ZoneLocation': [ + '1', + '213.32205', + '-225.28068', + '-158.25531', + '541.32205', + '-128.32068', + '84.102381', + 'main.1', ], - "ZoneSelectionList": ["main.1"], + 'ZoneSelectionList': ['main.1'], } ) - session.meshing.workflow.TaskObject["Identify Regions"].AddChildToTask() + session.meshing.workflow.TaskObject['Identify Regions'].AddChildToTask() - session.meshing.workflow.TaskObject["Identify Regions"].InsertCompoundChildTask() + session.meshing.workflow.TaskObject['Identify Regions'].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["fluid-region-1"].Arguments.setState( + session.meshing.workflow.TaskObject['fluid-region-1'].Arguments.setState( { - "MaterialPointsName": "fluid-region-1", - "SelectionType": "zone", - "X": 377.322045740589, - "Y": -176.800676988458, - "Z": -37.0764628583475, - "ZoneLocation": [ - "1", - "213.32205", - "-225.28068", - "-158.25531", - "541.32205", - "-128.32068", - "84.102381", - "main.1", + 'MaterialPointsName': 'fluid-region-1', + 'SelectionType': 'zone', + 'X': 377.322045740589, + 'Y': -176.800676988458, + 'Z': -37.0764628583475, + 'ZoneLocation': [ + '1', + '213.32205', + '-225.28068', + '-158.25531', + '541.32205', + '-128.32068', + '84.102381', + 'main.1', ], - "ZoneSelectionList": ["main.1"], + 'ZoneSelectionList': ['main.1'], } ) - session.meshing.workflow.TaskObject["Identify Regions"].Arguments.setState({}) + session.meshing.workflow.TaskObject['Identify Regions'].Arguments.setState({}) - session.meshing.workflow.TaskObject["fluid-region-1"].Execute() - session.meshing.workflow.TaskObject["Identify Regions"].Arguments.setState( + session.meshing.workflow.TaskObject['fluid-region-1'].Execute() + session.meshing.workflow.TaskObject['Identify Regions'].Arguments.setState( { - "MaterialPointsName": "void-region-1", - "NewRegionType": "void", - "ObjectSelectionList": ["inlet-1", "inlet-2", "inlet-3", "main"], - "X": 374.722045740589, - "Y": -278.9775145640143, - "Z": -161.1700719416913, + 'MaterialPointsName': 'void-region-1', + 'NewRegionType': 'void', + 'ObjectSelectionList': ['inlet-1', 'inlet-2', 'inlet-3', 'main'], + 'X': 374.722045740589, + 'Y': -278.9775145640143, + 'Z': -161.1700719416913, } ) - session.meshing.workflow.TaskObject["Identify Regions"].AddChildToTask() + session.meshing.workflow.TaskObject['Identify Regions'].AddChildToTask() - session.meshing.workflow.TaskObject["Identify Regions"].InsertCompoundChildTask() + session.meshing.workflow.TaskObject['Identify Regions'].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["Identify Regions"].Arguments.setState({}) + session.meshing.workflow.TaskObject['Identify Regions'].Arguments.setState({}) - session.meshing.workflow.TaskObject["void-region-1"].Execute() + session.meshing.workflow.TaskObject['void-region-1'].Execute() Defining Leakage Threshold ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Define Leakage Threshold"].Arguments.setState( + session.meshing.workflow.TaskObject['Define Leakage Threshold'].Arguments.setState( { - "AddChild": "yes", - "FlipDirection": True, - "PlaneDirection": "X", - "RegionSelectionSingle": "void-region-1", + 'AddChild': 'yes', + 'FlipDirection': True, + 'PlaneDirection': 'X', + 'RegionSelectionSingle': 'void-region-1', } ) - session.meshing.workflow.TaskObject["Define Leakage Threshold"].AddChildToTask() + session.meshing.workflow.TaskObject['Define Leakage Threshold'].AddChildToTask() session.meshing.workflow.TaskObject[ - "Define Leakage Threshold" + 'Define Leakage Threshold' ].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["leakage-1"].Arguments.setState( + session.meshing.workflow.TaskObject['leakage-1'].Arguments.setState( { - "AddChild": "yes", - "FlipDirection": True, - "LeakageName": "leakage-1", - "PlaneDirection": "X", - "RegionSelectionSingle": "void-region-1", + 'AddChild': 'yes', + 'FlipDirection': True, + 'LeakageName': 'leakage-1', + 'PlaneDirection': 'X', + 'RegionSelectionSingle': 'void-region-1', } ) - session.meshing.workflow.TaskObject["Define Leakage Threshold"].Arguments.setState( + session.meshing.workflow.TaskObject['Define Leakage Threshold'].Arguments.setState( { - "AddChild": "yes", + 'AddChild': 'yes', } ) - session.meshing.workflow.TaskObject["leakage-1"].Execute() + session.meshing.workflow.TaskObject['leakage-1'].Execute() Updating Regions Settings ~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Update Region Settings"].Arguments.setState( + session.meshing.workflow.TaskObject['Update Region Settings'].Arguments.setState( { - "AllRegionFilterCategories": ["2"] * 5 + ["1"] * 2, - "AllRegionLeakageSizeList": ["none"] * 6 + ["6.4"], - "AllRegionLinkedConstructionSurfaceList": ["n/a"] * 6 + ["no"], - "AllRegionMeshMethodList": ["none"] * 6 + ["wrap"], - "AllRegionNameList": [ - "main", - "flow_pipe", - "outpipe3", - "object2", - "object1", - "void-region-1", - "fluid-region-1", + 'AllRegionFilterCategories': ['2'] * 5 + ['1'] * 2, + 'AllRegionLeakageSizeList': ['none'] * 6 + ['6.4'], + 'AllRegionLinkedConstructionSurfaceList': ['n/a'] * 6 + ['no'], + 'AllRegionMeshMethodList': ['none'] * 6 + ['wrap'], + 'AllRegionNameList': [ + 'main', + 'flow_pipe', + 'outpipe3', + 'object2', + 'object1', + 'void-region-1', + 'fluid-region-1', ], - "AllRegionOversetComponenList": ["no"] * 7, - "AllRegionSourceList": ["object"] * 5 + ["mpt"] * 2, - "AllRegionTypeList": ["void"] * 6 + ["fluid"], - "AllRegionVolumeFillList": ["none"] * 6 + ["tet"], - "FilterCategory": "Identified Regions", - "OldRegionLeakageSizeList": [""], - "OldRegionMeshMethodList": ["wrap"], - "OldRegionNameList": ["fluid-region-1"], - "OldRegionOversetComponenList": ["no"], - "OldRegionTypeList": ["fluid"], - "OldRegionVolumeFillList": ["hexcore"], - "RegionLeakageSizeList": [""], - "RegionMeshMethodList": ["wrap"], - "RegionNameList": ["fluid-region-1"], - "RegionOversetComponenList": ["no"], - "RegionTypeList": ["fluid"], - "RegionVolumeFillList": ["tet"], + 'AllRegionOversetComponenList': ['no'] * 7, + 'AllRegionSourceList': ['object'] * 5 + ['mpt'] * 2, + 'AllRegionTypeList': ['void'] * 6 + ['fluid'], + 'AllRegionVolumeFillList': ['none'] * 6 + ['tet'], + 'FilterCategory': 'Identified Regions', + 'OldRegionLeakageSizeList': [''], + 'OldRegionMeshMethodList': ['wrap'], + 'OldRegionNameList': ['fluid-region-1'], + 'OldRegionOversetComponenList': ['no'], + 'OldRegionTypeList': ['fluid'], + 'OldRegionVolumeFillList': ['hexcore'], + 'RegionLeakageSizeList': [''], + 'RegionMeshMethodList': ['wrap'], + 'RegionNameList': ['fluid-region-1'], + 'RegionOversetComponenList': ['no'], + 'RegionTypeList': ['fluid'], + 'RegionVolumeFillList': ['tet'], } ) - session.meshing.workflow.TaskObject["Update Region Settings"].Execute() + session.meshing.workflow.TaskObject['Update Region Settings'].Execute() Choosing Mesh Control Options @@ -545,66 +545,66 @@ Choosing Mesh Control Options .. code:: python - session.meshing.workflow.TaskObject["Choose Mesh Control Options"].Execute() + session.meshing.workflow.TaskObject['Choose Mesh Control Options'].Execute() Generating the Surface Mesh ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Generate the Surface Mesh"].Execute() + session.meshing.workflow.TaskObject['Generate the Surface Mesh'].Execute() Updating Boundaries ~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Update Boundaries"].Execute() + session.meshing.workflow.TaskObject['Update Boundaries'].Execute() Adding Boundary Layers ~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Add Boundary Layers"].AddChildToTask() + session.meshing.workflow.TaskObject['Add Boundary Layers'].AddChildToTask() - session.meshing.workflow.TaskObject["Add Boundary Layers"].InsertCompoundChildTask() + session.meshing.workflow.TaskObject['Add Boundary Layers'].InsertCompoundChildTask() - session.meshing.workflow.TaskObject["aspect-ratio_1"].Arguments.setState( + session.meshing.workflow.TaskObject['aspect-ratio_1'].Arguments.setState( { - "BLControlName": "aspect-ratio_1", + 'BLControlName': 'aspect-ratio_1', } ) - session.meshing.workflow.TaskObject["Add Boundary Layers"].Arguments.setState({}) + session.meshing.workflow.TaskObject['Add Boundary Layers'].Arguments.setState({}) - session.meshing.workflow.TaskObject["aspect-ratio_1"].Execute() + session.meshing.workflow.TaskObject['aspect-ratio_1'].Execute() Generating the Volume Mesh ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.workflow.TaskObject["Generate the Volume Mesh"].Arguments.setState( + session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Arguments.setState( { - "AllRegionNameList": [ - "main", - "flow_pipe", - "outpipe3", - "object2", - "object1", - "void-region-1", - "fluid-region-1", + 'AllRegionNameList': [ + 'main', + 'flow_pipe', + 'outpipe3', + 'object2', + 'object1', + 'void-region-1', + 'fluid-region-1', ], - "AllRegionSizeList": ["11.33375"] * 7, - "AllRegionVolumeFillList": ["none"] * 6 + ["tet"], - "EnableParallel": True, + 'AllRegionSizeList': ['11.33375'] * 7, + 'AllRegionVolumeFillList': ['none'] * 6 + ['tet'], + 'EnableParallel': True, } ) - session.meshing.workflow.TaskObject["Generate the Volume Mesh"].Execute() + session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Execute() Switching to Solution Mode ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.meshing.tui.switch_to_solution_mode("yes") \ No newline at end of file + session.meshing.tui.switch_to_solution_mode('yes') \ No newline at end of file diff --git a/doc/source/user_guide/models.rst b/doc/source/user_guide/models.rst index 09840827a20..9767db466a7 100644 --- a/doc/source/user_guide/models.rst +++ b/doc/source/user_guide/models.rst @@ -4,18 +4,70 @@ PyFluent supports defining models using :ref:`ref_solver_tui_commands` and :ref: Solver TUI Commands ------------------- -The following example demonstrates how you can define the energy model -using :ref:`ref_solver_tui_commands`: +The following examples demonstrate how you can define some models using :ref:`ref_solver_tui_commands`: + +Enabling Energy Model +~~~~~~~~~~~~~~~~~~~~~ +define/models/energy TUI: Enables/disables the energy model. + +.. code:: python + + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') + session.solver.tui.define.models.energy('yes', 'no', 'no', 'no', 'yes') + +Enabling Viscous Model +~~~~~~~~~~~~~~~~~~~~~~ +define/models/viscous/laminar TUI: Enables/disables laminar flow model. + +define/models/viscous/kw-sst TUI: Enables/disables the SST-kw turbulence model. + +define/models/viscous/ke-standard TUI: Enables/disables the standard-ke +turbulence model. + +.. code:: python + + session.solver.tui.define.models.viscous.laminar('yes') + session.solver.tui.define.models.viscous.kw_sst('yes') + session.solver.tui.define.models.viscous.ke_standard('yes') + +Enabling Radiation Model +~~~~~~~~~~~~~~~~~~~~~~~~ +define/models/radiation TUI: Provide options to select different radiation models. .. code:: python - session.solver.tui.define.models.energy("yes", ", ", ", ", ", ", ", ") + session.solver.tui.define.models.radiation.s2s('yes') + session.solver.tui.define.models.radiation.p1('yes') + +Enabling Multiphase Model +~~~~~~~~~~~~~~~~~~~~~~~~~ +define/models/multiphase TUI: Provide options to select different multiphase models. + + +.. code:: python + + session.solver.tui.define.models.multiphase.model('vof') + session.solver.tui.define.models.multiphase.model('eulerian') + session.solver.tui.define.models.multiphase.model('mixture') + session.solver.tui.define.models.multiphase.model('wetsteam') Settings Objects ---------------- -The following example demonstrates how you can define the energy model -using :ref:`ref_settings`: +The following examples demonstrate how you can define some models using :ref:`ref_settings`: + +Enabling Energy Model +~~~~~~~~~~~~~~~~~~~~~ + +.. code:: python + + session.solver.root.setup.models.energy.enabled = True + +Enabling Viscous Model +~~~~~~~~~~~~~~~~~~~~~~ .. code:: python - session.solver.root.setup.models.energy.enabled = True \ No newline at end of file + session.solver.root.setup.models.viscous.k_epsilon_model.enabled = True + session.solver.root.setup.models.viscous.k_omega_model.enabled = True \ No newline at end of file diff --git a/doc/source/user_guide/solution.rst b/doc/source/user_guide/solution.rst index b12d8cfa364..5eab3f2016f 100644 --- a/doc/source/user_guide/solution.rst +++ b/doc/source/user_guide/solution.rst @@ -6,9 +6,61 @@ PyFluent allows you to apply solution settings, initialize and solve using both Solver TUI Commands ------------------- -The following example demonstrates how you can apply solution settings +The following example demonstrates how you can apply some solution settings using :ref:`ref_solver_tui_commands`: +Selecting Solution Methods +~~~~~~~~~~~~~~~~~~~~~~~~~~ +solve/set/p-v-coupling TUI: Selects which pressure-velocity coupling scheme is to be used. + +Five schemes are available: (Index-Model) 20-SIMPLE, 21-SIMPLEC, 22-PISO, +24-Coupled, 25-Fractional Step + +solve/set/gradient-scheme: Sets gradient options. + +.. code:: python + + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') + session.solver.tui.solve.set.p_v_coupling(24) # Coupled + session.solver.tui.solve.set.gradient_scheme('yes') # Green-Gauss Node Based + session.solver.tui.solve.set.gradient_scheme('no','yes') # Least Squares Cell Based + +Selecting Solution Controls +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +solve/set/p-v-controls TUI: Sets pressure-velocity controls. + +.. code:: python + + session.solver.tui.solve.set.p_v_controls(0.3,0.4) # Momentum and Pressure + +Creating Report Definition +~~~~~~~~~~~~~~~~~~~~~~~~~~ +solve/report-definitions TUI: Enters the report definitions menu. + +.. code:: python + + session.solver.tui.solve.report_definitions.add( + 'outlet-temp-avg', + 'surface-massavg', + 'field', + 'temperature', + 'surface-names', + 'outlet', + '()', + 'quit', + ) + +Initialize and Solve +~~~~~~~~~~~~~~~~~~~~ +solve/initialize TUI: Enters the flow initialization menu. + +solve/initialize/hyb-initialization TUI: Initializes using the hybrid +initialization method. + +solve/iterate TUI: Performs a specified number of iterations. + .. code:: python session.solver.tui.solve.initialize.hyb_initialization() @@ -22,4 +74,4 @@ using the :ref:`ref_settings`: .. code:: python session.solver.root.solution.initialization.hybrid_initialize() - session.solver.root.solution.run_calculation.iterate(number_of_iterations=150) \ No newline at end of file + session.solver.root.solution.run_calculation.iterate(number_of_iterations=150) diff --git a/doc/source/user_guide/solver_settings.rst b/doc/source/user_guide/solver_settings.rst index cc8346254fc..a93ff333278 100644 --- a/doc/source/user_guide/solver_settings.rst +++ b/doc/source/user_guide/solver_settings.rst @@ -7,9 +7,45 @@ PyFluent supports specifying solver settings using both Solver TUI Commands ------------------- -The following example demonstrates how you can specify solver +The following examples demonstrate how you can specify some solver settings using the :ref:`ref_solver_tui_commands`: +Selecting Steady or Transient +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +define/models/steady TUI: Enables/disables the steady solution model. + +define/models/unsteady-1st-order TUI: Selects the first-order implicit +formulation for transient simulations. + +.. code:: python + + import ansys.fluent.core as pyfluent + session = pyfluent.launch_fluent(precision='double', processor_count=2) + session.solver.tui.file.read_case(case_file_name='file.cas.h5') + session.solver.tui.define.models.steady('yes') + session.solver.tui.define.models.unsteady_1st_order('yes') + +Selecting Pressure Based or Density Based Solver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +define/models/solver/density-based-explicit TUI: Enables/disables the +density-based-explicit solver. + +define/models/solver/density-based-implicit TUI: Enables/disables the +density-based-implicit solver. + +define/models/solver/pressure-based TUI: Enables/disables the +pressure-based solver. + +.. code:: python + + session.solver.tui.define.models.solver.density_based_explicit('yes') + session.solver.tui.define.models.solver.density_based_implicit('yes') + session.solver.tui.define.models.solver.pressure_based('yes') + +Defining Gravitational Acceleration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +define/operating-conditions/gravity TUI: Sets gravitational acceleration. + .. code:: python - session.solver.tui.define.models.unsteady_2nd_order('yes’)​ \ No newline at end of file + session.solver.tui.define.operating_conditions.gravity('yes','0','-9.81','0') From 4511703abde237feeb55fa86f7a785268fa5893f Mon Sep 17 00:00:00 2001 From: Yogesh Patel Date: Tue, 5 Jul 2022 00:34:01 -0400 Subject: [PATCH 2/2] Adding some more user guide examples. --- doc/source/user_guide/models.rst | 4 ++-- doc/source/user_guide/solution.rst | 2 +- doc/source/user_guide/solver_settings.rst | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/user_guide/models.rst b/doc/source/user_guide/models.rst index 9767db466a7..bbb44d4ab4a 100644 --- a/doc/source/user_guide/models.rst +++ b/doc/source/user_guide/models.rst @@ -4,7 +4,7 @@ PyFluent supports defining models using :ref:`ref_solver_tui_commands` and :ref: Solver TUI Commands ------------------- -The following examples demonstrate how you can define some models using :ref:`ref_solver_tui_commands`: +The following examples demonstrate how you can define models using :ref:`ref_solver_tui_commands`: Enabling Energy Model ~~~~~~~~~~~~~~~~~~~~~ @@ -55,7 +55,7 @@ define/models/multiphase TUI: Provide options to select different multiphase mod Settings Objects ---------------- -The following examples demonstrate how you can define some models using :ref:`ref_settings`: +The following examples demonstrate how you can define models using :ref:`ref_settings`: Enabling Energy Model ~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/source/user_guide/solution.rst b/doc/source/user_guide/solution.rst index 5eab3f2016f..39ea324fae8 100644 --- a/doc/source/user_guide/solution.rst +++ b/doc/source/user_guide/solution.rst @@ -6,7 +6,7 @@ PyFluent allows you to apply solution settings, initialize and solve using both Solver TUI Commands ------------------- -The following example demonstrates how you can apply some solution settings +The following example demonstrates how you can apply solution settings using :ref:`ref_solver_tui_commands`: Selecting Solution Methods diff --git a/doc/source/user_guide/solver_settings.rst b/doc/source/user_guide/solver_settings.rst index a93ff333278..c44cde377c1 100644 --- a/doc/source/user_guide/solver_settings.rst +++ b/doc/source/user_guide/solver_settings.rst @@ -7,7 +7,7 @@ PyFluent supports specifying solver settings using both Solver TUI Commands ------------------- -The following examples demonstrate how you can specify some solver +The following examples demonstrate how you can specify solver settings using the :ref:`ref_solver_tui_commands`: Selecting Steady or Transient