Skip to main content
Ctrl+K
Flow360 Computational Fluid Dynamics Solver - Home
  • 1. Introduction
    • Capabilities
    • Feature Compatibility Matrix
  • 2. Quick Start
    • Introduction to the Flow360 WebUI
    • Automated Meshing with the WebUI
    • Launching a case with the WebUI
    • Postprocessing a case with the WebUI
    • Flow360 API Quickstart
  • 3. User Guide
    • 3.1. How Does It Work?
    • 3.2. Workflows & Interfaces
    • 3.3. Asset Drafts
    • 3.4. Meshing
    • 3.5. Output Configuration
    • 3.6. Run Control
    • 3.7. Units & Expressions
      • Units
      • User Defined Expressions
      • Legacy User Defined Expressions
    • 3.8. Non-Dimensionalization
      • Introduction
      • Non-Dimensional Inputs
      • Non-Dimensional Outputs
      • Force and Moment Coefficients
    • 3.9. Troubleshooting
      • Error when calculating patch interpolation coefficients
      • Fixing Divergence Issues
    • 3.10. User Defined Dynamics
    • 3.11. Report
  • 4. GUI
    • 4.1. Introduction
      • Dashboard
      • Starting Project
      • Workbench Layout
        • Top Bar
        • Viewer Region
        • Status Bar
      • General Workflow in Flow360 GUI
      • Project Tree
      • Keyboard Shortcuts
      • Project Settings
    • 4.2. Simulation Setup
      • Operating condition
      • Mesh
        • Farfield
        • Mesh parameters
        • Rotation regions
        • Custom zones
        • Volume mesh slices
        • Refinements
          • Surface Edge Refinement
          • Surface Refinement
          • Boundary Layer Refinement
          • Passive Spacing
          • Uniform Refinement
          • Axisymmetric Refinement
          • Geometry Refinement
      • Flow solver
        • Boundary Conditions
          • Wall Boundary Condition
          • Freestream Boundary Condition
          • Inflow Boundary Condition
          • Outflow Boundary Condition
          • Periodic Boundary Condition
          • Symmetry Boundary Condition
          • Slip Wall Boundary Condition
          • Turbulence Quantities
        • Time Stepping
        • Physics
          • Fluid model
          • Solid model
          • Rotation model
          • BET disk model
          • Actuator disk model
          • Porous medium model
        • User-defined dynamics
      • Output
        • Reference Dimensions
        • Outputs List
          • Volume Output
          • Time-averaging Volume Output
          • Surface Output
          • Time-averaging Surface Output
          • Slice Output
          • Time-averaging Slice Output
          • Probe Outputs
          • Time-averaging Probe Outputs
          • Surface Probe Outputs
          • Surface Slice Output [Python only]
          • Isosurface Output
          • Time-averaging Isosurface Output
          • Aeroacoustic Output
          • Streamline Output
          • Time-averaging Streamline Output
          • Force Output
          • Force Distribution Output
          • Time-averaging Force Distribution Output
          • Output Fields and Nondimensional Values
          • Output Formats
    • 4.3. Analysis
      • Dashboard
      • Convergence Monitoring in Flow360
      • Monitor
      • Visualization
      • Aeroacoustic Interface
    • 4.4. Entities browser
      • Geometry
        • Edges
        • Faces
      • Surface Mesh
      • Volume Mesh
        • Zones
        • Boundaries
      • Volumes
        • Box
        • Cylinder
        • Axisymmetric volume
        • Custom volume
      • Points
      • Slices
      • Sample Surfaces
      • Derived Entities
      • Viewpoints
      • Coordinate Systems
      • Environment
      • Entity Tags
    • 4.5. Tools
  • 5. Python API
    • 5.1. Getting Started
    • 5.2. Grab-and-Go Snippets
      • Calculate Dimensional Forces
      • Change Account and Submit
      • Download Results
      • Folder Operations
      • Fork a Case
      • Generate Multiple Meshes
      • Transform geometric entities with coordinate systems
      • Get Averaged Forces from a Boundary
      • Interpolate
      • List Projects
      • Move Case to Folder
      • Plot Probe Monitor Time History
      • Print Occupied Storage
      • Reuse Cloud Project
      • Total Flex Credits
      • List Cases
      • List Mesh Resources
    • 5.3. Examples Library
      • RANS CFD on 2D CRM Airfoil
      • Aeroacoustics
      • Alpha Sweep
      • Time-Accurate BET eVTOL Simulation Example
      • Conjugate Heat Transfer
      • DARPA SUBOFF Actuator Disk
      • Dynamic Derivatives Using Sliding Interfaces
      • F1 Car Demo
      • Flat Plate with Structural Aerodynamic Load
      • UDD Alpha Controller (Constant CL)
      • Hinge Torques Monitoring
      • Isolated Wing with Propeller BET Model
      • MRF rotor
      • Periodic BCs
      • SRF with Cube
      • Time‑Accurate XV‑15 rotor
      • Unsteady 2D cylinder
      • Unsteady DDES HLPW4
      • Transition Model 2D Airfoil
      • Wall Roughness
      • Windsor Body
    • 5.4. Migration Guide
      • BET Migration Tools
      • Example Monitor Conversion
    • 5.5. API Reference
      • Setup
        • flow360.SimulationParams
      • Cloud Assets
        • flow360.Project
        • flow360.Case
        • flow360.Geometry
        • flow360.SurfaceMesh
        • flow360.VolumeMesh
        • flow360.component.surface_mesh_v2.SurfaceMeshV2
        • flow360.component.volume_mesh.VolumeMeshV2
      • Entities
        • flow360.Box
        • flow360.Cylinder
        • flow360.AxisymmetricBody
        • flow360.CustomVolume
        • flow360.SeedpointVolume
        • flow360.RotationVolume
      • Draft
        • flow360.component.simulation.draft_context.DraftContext
        • flow360.create_draft
        • flow360.component.simulation.draft_context.DraftContext.body_groups
        • flow360.component.simulation.draft_context.DraftContext.surfaces
        • flow360.component.simulation.draft_context.DraftContext.mirrored_body_groups
        • flow360.component.simulation.draft_context.DraftContext.mirrored_surfaces
        • flow360.component.simulation.draft_context.DraftContext.edges
        • flow360.component.simulation.draft_context.DraftContext.volumes
        • flow360.component.simulation.draft_context.DraftContext.boxes
        • flow360.component.simulation.draft_context.DraftContext.cylinders
        • flow360.component.simulation.draft_context.DraftContext.imported_geometries
        • flow360.component.simulation.draft_context.DraftContext.imported_surfaces
        • flow360.component.simulation.draft_context.DraftContext.coordinate_systems
        • flow360.component.simulation.draft_context.DraftContext.mirror
        • flow360.component.simulation.draft_context.coordinate_system_manager.CoordinateSystemManager
        • flow360.component.simulation.draft_context.mirror.MirrorManager
      • Meshing
        • flow360.MeshingParams
        • flow360.ModularMeshingWorkflow
        • flow360.MeshingDefaults
        • flow360.SurfaceEdgeRefinement
        • flow360.AngleBasedRefinement
        • flow360.HeightBasedRefinement
        • flow360.AspectRatioBasedRefinement
        • flow360.ProjectAnisoSpacing
        • flow360.SurfaceRefinement
        • flow360.BoundaryLayer
        • flow360.PassiveSpacing
        • flow360.UniformRefinement
        • flow360.AxisymmetricRefinement
        • flow360.GeometryRefinement
        • flow360.snappy.SurfaceMeshingParams
        • flow360.snappy.CastellatedMeshControls
        • flow360.snappy.QualityMetrics
        • flow360.snappy.SmoothControls
        • flow360.snappy.SnapControls
        • flow360.snappy.SurfaceMeshingDefaults
        • flow360.OctreeSpacing
        • flow360.snappy.BodyRefinement
        • flow360.snappy.RegionRefinement
        • flow360.snappy.SurfaceEdgeRefinement
        • flow360.VolumeMeshingParams
        • flow360.VolumeMeshingDefaults
        • flow360.AutomatedFarfield
        • flow360.UserDefinedFarfield
        • flow360.WindTunnelFarfield
        • flow360.CustomZones
        • flow360.MeshSliceOutput
        • Farfield Specifications
          • flow360.StaticFloor
          • flow360.FullyMovingFloor
          • flow360.CentralBelt
          • flow360.WheelBelts
      • Reference Geometry
        • flow360.ReferenceGeometry
      • Material
        • flow360.Air
        • flow360.Sutherland
        • flow360.SolidMaterial
        • flow360.Water
      • Operating Condition
        • flow360.AerospaceCondition
        • flow360.LiquidOperatingCondition
        • flow360.GenericReferenceCondition
        • flow360.ThermalState
      • Volume Models
        • flow360.Fluid
        • flow360.Solid
        • flow360.ActuatorDisk
        • flow360.BETDisk
        • flow360.Rotation
        • flow360.PorousMedium
      • Surface Models
        • flow360.Wall
        • flow360.SlipWall
        • flow360.Freestream
        • flow360.Inflow
        • flow360.Outflow
        • flow360.Periodic
        • flow360.SymmetryPlane
        • flow360.PorousJump
      • Time Stepping
        • flow360.Steady
        • flow360.Unsteady
        • CFL
          • flow360.AdaptiveCFL
          • flow360.RampCFL
      • Solver Configurations
        • flow360.NavierStokesSolver
        • flow360.SpalartAllmaras
        • flow360.KOmegaSST
        • flow360.NoneSolver
        • flow360.TransitionModelSolver
        • flow360.HeatEquationSolver
        • Solver Specs
          • flow360.LinearSolver
          • flow360.DetachedEddySimulation
          • flow360.SpalartAllmarasModelConstants
          • flow360.KOmegaSSTModelConstants
          • flow360.TurbulenceModelControls
      • Run Control
        • flow360.RunControl
        • flow360.StoppingCriterion
      • User Defined Expressions
        • flow360.UserVariable
      • User Defined Dynamics
        • flow360.UserDefinedDynamic
      • Outputs
        • flow360.VolumeOutput
        • flow360.TimeAverageVolumeOutput
        • flow360.SliceOutput
        • flow360.TimeAverageSliceOutput
        • flow360.SurfaceOutput
        • flow360.TimeAverageSurfaceOutput
        • flow360.IsosurfaceOutput
        • flow360.SurfaceIntegralOutput
        • flow360.SurfaceSliceOutput
        • flow360.ProbeOutput
        • flow360.TimeAverageProbeOutput
        • flow360.SurfaceProbeOutput
        • flow360.TimeAverageSurfaceProbeOutput
        • flow360.ForceOutput
        • flow360.ForceDistributionOutput
        • flow360.TimeAverageForceDistributionOutput
        • flow360.StreamlineOutput
        • flow360.TimeAverageStreamlineOutput
        • flow360.AeroAcousticOutput
        • flow360.MovingStatistic
        • Output Fields
        • Output Entities
          • flow360.Isosurface
          • flow360.Slice
          • flow360.Point
          • flow360.PointArray
          • flow360.PointArray2D
          • flow360.Observer
      • Results
        • flow360.component.case.CaseResultsModel
        • flow360.component.case.CaseResultsModel.surfaces
        • flow360.component.case.CaseResultsModel.volumes
        • flow360.component.case.CaseResultsModel.slices
        • flow360.component.case.CaseResultsModel.isosurfaces
        • flow360.component.case.CaseResultsModel.monitors
        • flow360.component.case.CaseResultsModel.nonlinear_residuals
        • flow360.component.case.CaseResultsModel.linear_residuals
        • flow360.component.case.CaseResultsModel.cfl
        • flow360.component.case.CaseResultsModel.minmax_state
        • flow360.component.case.CaseResultsModel.max_residual_location
        • flow360.component.case.CaseResultsModel.surface_forces
        • flow360.component.case.CaseResultsModel.total_forces
        • flow360.component.case.CaseResultsModel.bet_forces
        • flow360.component.case.CaseResultsModel.bet_forces_radial_distribution
        • flow360.component.case.CaseResultsModel.actuator_disks
        • flow360.component.case.CaseResultsModel.legacy_force_distribution
        • flow360.component.case.CaseResultsModel.x_slicing_force_distribution
        • flow360.component.case.CaseResultsModel.y_slicing_force_distribution
        • flow360.component.case.CaseResultsModel.user_defined_dynamics
        • flow360.component.case.CaseResultsModel.aeroacoustics
        • flow360.component.case.CaseResultsModel.surface_heat_transfer
        • flow360.component.results.case_results.MonitorsResultModel
        • flow360.component.results.case_results.NonlinearResidualsResultCSVModel
        • flow360.component.results.case_results.LinearResidualsResultCSVModel
        • flow360.component.results.case_results.CFLResultCSVModel
        • flow360.component.results.case_results.MinMaxStateResultCSVModel
        • flow360.component.results.case_results.MaxResidualLocationResultCSVModel
        • flow360.component.results.case_results.TotalForcesResultCSVModel
        • flow360.component.results.case_results.SurfaceForcesResultCSVModel
        • flow360.component.results.case_results.SurfaceHeatTransferResultCSVModel
        • flow360.component.results.case_results.AeroacousticsResultCSVModel
        • flow360.component.results.case_results.LegacyForceDistributionResultCSVModel
        • flow360.component.results.case_results.XSlicingForceDistributionResultCSVModel
        • flow360.component.results.case_results.YSlicingForceDistributionResultCSVModel
        • flow360.component.results.case_results.UserDefinedDynamicsResultModel
        • flow360.component.results.case_results.ActuatorDiskResultCSVModel
        • flow360.component.results.case_results.ActuatorDiskCoefficientsCSVModel
        • flow360.component.results.case_results.BETForcesResultCSVModel
        • flow360.component.results.case_results.BETDiskCoefficientsCSVModel
        • flow360.component.results.case_results.BETForcesRadialDistributionResultCSVModel
        • flow360.component.results.case_results.PorousMediumResultCSVModel
        • flow360.component.results.case_results.PorousMediumCoefficientsCSVModel
      • Report
        • flow360.report.Chart2D
        • flow360.report.Chart3D
        • flow360.report.NonlinearResiduals
        • flow360.report.ReportTemplate
        • flow360.report.Summary
        • flow360.report.Table
        • Figure Specifications
          • flow360.report.Grouper
          • flow360.report.PatternCaption
          • flow360.report.Settings
          • flow360.report.FixedRangeLimit
          • flow360.report.ManualLimit
          • flow360.report.SubsetLimit
        • Data Utilities
          • flow360.report.DataItem
          • flow360.report.Delta
          • flow360.report.Variable
          • flow360.report.Average
          • flow360.report.Expression
          • flow360.report.GetAttribute
        • Chart3D Cameras
          • flow360.report.Camera
          • flow360.report.BottomCamera
          • flow360.report.FrontCamera
          • flow360.report.FrontLeftBottomCamera
          • flow360.report.FrontLeftTopCamera
          • flow360.report.LeftCamera
          • flow360.report.RearCamera
          • flow360.report.RearLeftTopCamera
          • flow360.report.RearRightBottomCamera
          • flow360.report.TopCamera
  • 6. Knowledge Base
    • 6.1. Preprocessing
      • Meshing Recommendations
      • CGNS Mesh Format and Multizone Interface Connectivity
      • STEP Format CAD Import for Automated Meshing
      • BET Disk
      • ESP Tutorials
        • ESP Tutorial for the ONERA M6 Wing
        • ESP Tutorial for a 2D Multi-element Airfoil
    • 6.2. Simulation
      • Time Stepping
      • NavierStokesSolver
      • TurbulenceModelSolver
      • TransitionModelSolver
      • HeatEquationSolver
      • Propeller Models and Rotational Volume Zones
      • Aeroacoustics
      • Solid
      • PorousMedium
    • 6.3. Validation Studies
      • NACA 0012 Low Speed Airfoil
      • 2D NACA 4412 Airfoil Trailing Edge Separation
      • 2D Backward Facing Step
      • Transition Modeling
      • Wall Model
      • High Lift Common Research Model (HL-CRM)
      • Drag Prediction of Common Research Model
      • ONERA M6 Wing
      • XV-15 Rotor Blade Analysis using the Blade Element Disk Method
      • DTU 10MW Wind Turbine
      • Scale-Resolving Simulations Past a Circular Cylinder
      • Aeroacoustics and Noise Simulation
      • Underwater Flow Around the DARPA Model 4740 Submarine
    • 6.4. Papers
  • 7. Release Notes
  • Repository
  • Open issue
  • .rst

NavierStokesSolver

Contents

  • absolute_tolerance
  • relative_tolerance
  • kappa_MUSCL
  • order_of_accuracy
  • Limiters
  • linear_solver
  • update_jacobian_frequency
  • equation_evaluation_frequency
  • numerical_dissipation_factor
  • Solver setup recommendation for the low-dissipation scheme

NavierStokesSolver#

absolute_tolerance#

The absolute_tolerance is the primary convergence metric for steady cases. At least 5 orders of magnitude reduction is recommended for all residual values. The absolute_tolerance can also be used for unsteady cases, but is less meaningful than the relative_tolerance, as the initial residual values change between different physical steps.

relative_tolerance#

The relative residual is defined as the ratio of the current pseudoStep’s residual to the maximum residual present in the first 10 pseudoSteps within the current physicalStep. When running unsteady cases, the relative_tolerance is typically set to 1e-2 or 1e-3. Once the nonlinear residuals drop by 2 or 3 orders of magnitude, the solver will continue to the next physicalStep. The relative_tolerance is ignored for steady cases.

kappa_MUSCL#

The default value of -1 leads to a second-order upwind scheme, which is the most stable. A value of 0.33 leads to a blended upwind/central scheme, which is recommended for low subsonic flows to reduce dissipation. Values greater than 0.33 are not recommended and a value of 1 leads to an unstable scheme.

order_of_accuracy#

The order_of_accuracy determines whether the solver will use 1st or 2nd order spatial discretization. The 1st order solver is faster, cheaper and most importantly, it is more dissipative, making it less likely to diverge. However, such numerical dissipation may also significantly impact the accuracy of the solution.

When initializing the flow field for unsteady cases with rotating components, such as simulating a rotor enclosed in a sliding interface, the user may need to run the 1st-order solver for around 1 or 2 revolutions. Once the flow field has been initialized, the user can fork the first-order case and switch order_of_accuracy from 1 to 2 for the child cases.

While adjusting the order_of_accuracy for the NavierStokesSolver, the TurbulenceModelSolver should also be adjusted.

The recommended time_stepping is slightly different for the 1st and 2nd order cases. For more details, see Rotational Angle per Step, maxPseudoSteps and CFL

Limiters#

If the case is transonic or supersonic, the user should set limit_velocity and limit_pressure_density as TRUE in the NavierStokesSolver class.

linear_solver#

linear_solver controls the configuration for the linear solver. It includes information max_iterations which specifies the number of linear iteration performed in each pseudo-step. Typically, max_iterations is set to 25~35 for the NS solver. The user might need to increase it to 50-55 if the linear residual reduction ratio after linear solver is not enough. The default max_iterations for NS solver is 30.

update_jacobian_frequency#

The default value for update_jacobian_frequency is 4, which means that the Jacobian for evaluating the NS equation is updated every 4 pseudo-steps. For some challenging cases, reducing update_jacobian_frequency from 4 to 1 may help, however, this may slow the NS solver by up to approximately 30%.

equation_evaluation_frequency#

The default value for equation_evaluation_frequency is 1, which means that the Navier-Stokes solution is updated every pseudo-step. For loosely-coupled simulations, the equation_evaluation_frequency value can be changed to introduce a solution update at a different frequency than the turbulence/transition model solvers. The recommended value for this parameter is 1 for a large majority of simulations.

numerical_dissipation_factor#

The low-dissipation Roe scheme in Flow360 is a modification of the Roe scheme designed to address low Mach number problems and achieve reduced numerical dissipation in the range of higher-resolved wave numbers.

For steady simulations with the low-dissipation scheme, it is strongly recommend NOT to use Ramp CFL and use adaptive CFL instead due to divergence issue. For flow conditions with low Mach numbers and low Reynolds numbers, it is more effective.

The low-dissipation parameter determines the reduction in numerical flux dissipation. The recommended value for this parameter is 0.2. However, to achieve better convergence, a value of 0.5 can be used.

The solver setup parameters for the low-dissipation feature are described below.

Solver setup recommendation for the low-dissipation scheme#

The following recommendations are provided to assist in running simulations with the low-dissipation scheme:

  • It is recommended to first run a steady or unsteady simulation, and from that solution, start a simulation with the low-dissipation scheme.

  • It is recommended to achieve a two-order-of-magnitude reduction in nonlinear residuals and keep the linear residual below 5 when running a simulation with the low-dissipation scheme. To achieve this, the step_size can be halved. Additionally, it is advisable to slightly increase the Unsteady.max_pseudo_steps / Steady.max_steps, and max_iterations parameter in the linear_solver.

  • Since the low-dissipation scheme contributes to high-fidelity simulation, it is recommended to use a second-order spatial discretization with the low-dissipation scheme by setting the order_of_accuracy to 2 for both the Navier-Stokes and turbulence solvers. Alternatively, the first-order option can be used to initially march in time and space and create a well-developed initial solution before switching to the second-order scheme. This is beneficial when the flow field needs to be fully developed throughout the domain in an unsteady simulation.

  • To achieve accuracy between 2nd and 3rd order in the solution, it is recommended to use a value of 1/3 for kappa_MUSCL with the low-dissipation scheme.

  • In the case of poor convergence, the numerical_dissipation_factor can be increased to 0.5 or a value higher than that. Additionally, when facing such issues, setting the kappa_MUSCL parameter to -1 may also be helpful.

  • It is recommended to use a value of 1 for the update_jacobian_frequency with the low-dissipation scheme.

  • For CFL ramping when using the low-dissipation scheme, it is recommended to set a high value (such as 1e+5) for the CFL number and set the ramp_steps to 1. Both the initial and final CFL values can be set to the same number to keep the CFL number fixed. By using a high fixed CFL number and a small step_size, the required values for max_pseudo_steps and max_iterations can be reduced to meet the convergence criteria.

  • In the case of divergence, it is recommended to reduce the step_size by half until the divergence issue is resolved.

previous

Time Stepping

next

TurbulenceModelSolver

Contents
  • absolute_tolerance
  • relative_tolerance
  • kappa_MUSCL
  • order_of_accuracy
  • Limiters
  • linear_solver
  • update_jacobian_frequency
  • equation_evaluation_frequency
  • numerical_dissipation_factor
  • Solver setup recommendation for the low-dissipation scheme

By Flexcompute Inc

© Copyright Flexcompute 2020-2026.