##### About Flow360 ** (Whitepaper) **

### Equations

- Steady and unsteady viscous flows
- Coupled stationary and rotating domains
- Reynolds-Averaged Navier-Stokes
- Detached Eddy Simulation

### Turbulence Models

- Spalart-Allmaras (sa-neg)
- Spalart-Allmaras with Rotation-Curvature correction

### Boundary conditions

- Freestream
- Slip Wall
- No-slip Wall
- Subsonic Inflow (total pressure, total temperature)
- Subsonic Outflow (back pressure)
- Subsonic Outflow (Mach)
- Mass Flow In
- Mass Flow Out

### Input

- AFLR3 (.ugrid)
- CGNS (single and multi-block)
- ParaView (.pvtu)
- Tecplot (.dat and .szplt)
- Web Interface
- Python API

### Output

### User Interface

Flow360 currently specializes in the simulation of external and internal flows at a wide range of speed regime. Applications include, but are certainly not limited to aircraft, cars, and engine components.

### Performance

Flow360 is extremely fast compared to current industry-leading solvers. For example, Flow360 can converge the 26M-node Common Research Model from the High Lift Workshop in just 90 seconds. For comparison, NASA’s FUN3D solver requires 2 hours to converge the same mesh using 360 cores on Amazon Web Service C5 instances.

Coefficient of friction (Cf) on the surface of the Common Research Model.

### Flow360 has been validated against many large-scale test cases

#### High Lift Workshop Common Research Model

Flow360 has been validated against the committee-provided meshes in the 3rd AIAA High Lift Workshop. The following figures show the results obtained on the NAAS Common Research Model (CRM) with a full flap gap, meshed with mixed hexahedral, tetrahedral, prism, and pyramid elements.

Grid convergence of Flow360 compared to the participants of the 3rd AIAA CFD High Lift Prediction Workshop in 2017. The x-axis is the scale of the expected numerical error; the y-axis shows the lift (left plots) and drag (right plots) coefficients computed on various grids, at 8 (upper plots) and 16 (lower plots) degrees angle of attack.

#### Drag Prediction Workshop

The 6th AIAA CFD Drag Prediction Workshop (DPW).

Please contact John Moore if you would like to see additional validation data.

### How do I download or view a finished case result?

To download the surface data (surface distributions and slices):

Replace the second parameter with your target location and output file name, ending with '.tar.gz'.

To download the entire flowfield:

### My case is still running, but how can I check current residual or surface force result?

### Where are my AWS credentials stored locally?

Your AWS credential is encrypted and stored locally (if you hit Yes previously at authentication step) at

For security, your password is stored as hashed value, so nobody can guess your password.

### How to check my mesh processing status?

>>> flow360client.mesh.ListMeshes()

## to view one particular mesh

>>> flow360client.mesh.GetMeshInfo('

### How can I delete my mesh or case?

>>>flow360client.mesh.DeleteMesh('

## Delete a case

>>> flow360client.case.DeleteCase('

Caution: You won't be able to recover your deleted case or mesh files including its results after your deletion.

### Python API Tutorial

This tutorial will show you how to set up and run the High Lift Workshop CRM case with the Flow360 Python API.

### Step 1. Download python client and install

Make sure you have setuptools. If not, sudo apt-get install python3-setuptools

flow360

cd flow360

python3 setup.py install --user

### Step 2. Signing in with your account and password

An account can be created at www.flexcompute.com

Python3

>>> import flow360client

simulation.cloud email:********@gmail.com

Password: ***********

Do you want to keep logged in on this machine ([Y]es / [N]o)Y

### Step 3. Download the HLCRM case

Download the HLCRM mesh

### Step 3. Upload a mesh file

First, specify a list of no-slip walls. If you have a .mapbc file, there is a function that will do this for you:

flow360client.noSlipWallsFromMapbc('/path/to/hlcrm.mapbc')

Then submit a mesh

flow360client.NewMesh(fname='/path/to/hlcrm.b8.ugrid',

noSlipWalls=noSlipWalls, meshName='HLCRM_medium',

tags=['alpha16'])

Replace above fname and noSlipWalls with your own file path and parameter. Parameter inputs
of mesh name and tags are optional. Upon this command finishing, it will return the mesh Id
'

Note: By default, submitted mesh file will be processed using latest major release (e.g. 0.2.x) . If you want to run with another version of the solve, please specify in the argument as example:

flow360client.NewMesh(fname='flow360/tests/

data/wing_tetra.1.lb8.ugrid', noSlipWalls=noSlipWalls, meshName='my_experiment',

tags=['HLCRM'], solverVersion='release-0.2.1')

### Step 4. Upload a case file

First, prepare a JSON input file, either manually or by using the fun3d_to_flow360.py script:

/path/to/fun3d.nml /path/to/hlcrm.mapbc

/output/path/for/Flow360.json

Then submit a case:

config='/output/path/for/Flow360.json', caseName='HLCRM_case',

tags=['alpha16'])

Replace the mesh id generated from above step, and give your own config path. Parameter
inputs of caseName and tags are optional. Upon this command finishing, it will return the
case Id '

### Step 5. Checking the case status

Look for field of "status" from printed result. A case status can be:

1) queued

2) running

3) completed

### Current Solver Input Options and Default Values

You can download the latest Flow360.json configuration file here

Type | Options | Default | Description |
---|---|---|---|

geometry | refArea | 1.0 | The reference area of the geometry |

momentCenter | [0.0, 0.0, 0.0] | The x, y, z moment center of the geometry in grid units | |

momentLength | [1.0, 1.0, 1.0] | The x, y, z moment reference lengths | |

freestream | Reynolds | REQUIRED | Nondimensional Reynolds number. Reynolds number should be computed based on the reference length in grid units. For example, if you have a mesh with a MAC of 100 in grid units and want to simulate a physical Reynolds number of 1M, then the you should set Reynolds = 100,000. |

Mach | REQUIRED | The Mach number, the ratio of freestream speed to the speed of sound. | |

Temperature | REQUIRED | The reference temperature in Kelvin. | |

alphaAngle | REQUIRED | The angle of attack in degrees | |

betaAngle | REQUIRED | The side slip angle in degrees | |

runControl | firstOrderIterations | -1 | Number of iterations to perform before turning on second order accuracy |

startControl | -1 | Time step at which to start targetCL control. -1 is no trim control. | |

targetCL | -1 | The desired trim CL to achieve | |

maxSteps | 10000 | the maximum number of time steps or iterations to take | |

boundaries | YOUR_FIRST_BOUNDARY_ID: type | YOUR_BOUNDARY_TYPE | List of boundary conditions. |

YOUR_SECOND_BOUNDARY_ID: type | YOUR_BOUNDARY_TYPE | ||

volumeOutput | outputFormat | paraview | "paraview" or "tecplot" |

animationFrequency | -1 | Frequency at which volume output is saved. -1 is at end of simulation | |

startAverageIntegrationStep | 0 | Sub-iteration or time-step to start averaging forces/moments | |

computeTimeAverages | false | Whether or not to compute time-averaged quantities | |

primitiveVars | true | Outputs rho, u, v, w, p | |

vorticity | false | Vorticity | |

residualNavierStokes | false | 5 components of the N-S residual | |

residualTurbulence | false | nuHat | |

T | false | Temperature | |

s | false | Entropy | |

Cp | true | Coefficient of pressure | |

mut | true | Turbulent viscosity | |

nuHat | true | mut/mu_inf | |

mutRatio | false | mut/mu_inf | |

Mach | 10000 | Mach number | |

gradW | false | Gradient of W | |

surfaceOutput | outputFormat | paraview | "paraview" or "tecplot" |

animationFrequency | -1 | Frequency at which surface output is saved. -1 is at end of simulation | |

primitiveVars | false | rho, u, v, w, p | |

Cp | false | Coefficient of pressure | |

Cf | false | Skin friction coefficient | |

CfVec | false | Viscous stress coefficient vector | |

yPlus | false | y+ | |

wallDistance | false | Wall Distance | |

Mach | false | Mach number | |

residualSA | false | Spalart-Allmaras residual magnitude | |

sliceOutput | outputFormat | paraview | "paraview" or "tecplot" |

animationFrequency | -1 | Frequency at which slice output is saved. -1 is at end of simulation | |

primitiveVars | true | Outputs rho, u, v, w, p | |

vorticity | false | Vorticity | |

residualNavierStokes | false | Residual components for Navier-stokes equations | |

residualTurbulence | false | Residual magnitude of turbulence equations | |

T | false | Temperature | |

s | false | Entropy | |

Cp | false | Coefficient of pressure | |

mut | false | Turbulent viscosity | |

mutRatio | false | mut/mu_inf | |

Mach | true | Mach number | |

gradW | false | gradient of W | |

slices | [] | List of slices to save after the solver has finished | |

navierStokesSolver | tolerance | 1e-10 | Tolerance for the NS residual, below which the solver exits |

CFL: initial | 10.0 | Exponential CFL ramping, from initial to final, over _rampSteps_ steps | |

CFL: final | 200.0 | ||

CFL: rampSteps | 200 | ||

linearIterations | 25 | Number of linear solver iterations | |

kappaMUSCL | -1.0 | Kappa for the MUSCL scheme, range from [-1, 1], with 1 being unstable. | |

maxDt | 1.0e100 | Maximum time step | |

startEnforcingMaxDtStep | -1 | Time step at which to start enforcing maxDtStep. Default of -1 does not enforce a max time step. | |

updateJacobianFrequency | 4 | Frequency at which the jacobian is updated. | |

equationEvalFrequency | 1 | Frequency at which to update the NS equation in loosely-coupled simulations | |

viscousWaveSpeedScale | 0.0 | Scales the wave speed acording to a viscous flux. 0.0 is no speed correction, with larger values providing a larger viscous wave speed correction. | |

turbulenceModelSolver | modelType | SpalartAllmaras | Only SA supported at this point |

CFL: initial | 10.0 | Exponential CFL ramping, from initial to final, over _rampSteps_ steps | |

CFL: final | 200.0 | ||

CFL: rampSteps | 200.0 | ||

linearIterations | 15 | Number of linear iterations for the SA linear system | |

updateJacobianFrequency | 1 | Frequency at which to update the Jacobian | |

equationEvalFrequency | 4 | Frequency at which to evaluate the turbulence equation in loosely-coupled simulations | |

kappaMUSCL | -1.0 | Kappa for the muscle scheme, range from [-1, 1] with 1 being unstable. | |

rotationCorrection | false | SARC model | |

DDES | false | _true_ Enables DDES simulation |

### Flow360 Version history

Results between major versions (e.g. x.y.0) may differ slightly. However, results among minor versions (e.g. 0.2.x) will not change.

#### release-0.1

- Viscous gradient scheme changed from node-based Green-Gauss gradients to a Least-squares gradient scheme
- Improved both pressure and velocity limiters to help with supersonic and transonic cases.

#### release-0.2.0

- Minor modifications to enhance convergence

#### release-0.2.1

- Added support for tecplot .szplt output
- Added support for slicing of the final flowfield

#### beta

- Implemented incremental back-off in solution update
- Replaced the pressure/density limiters which were edge-based with node-based limiters.
- Improved the stability properties of the solution gradient used for the viscous fluxes.
- Now using a blending of corrected and uncorrected viscous scheme. This effectively limits how much the corrected viscous scheme can differ from the uncorrected scheme. This is necessary because the Jacobian only includes contributions from the uncorrected scheme.
- Bug fix for supersonic farfield boundary condition.