Solver Configuration
Contents
4. Solver Configuration#
The current Mesh processor and Solver input configuration parameters for Flow360 are:
4.1. Flow360Mesh.json#
Type 
Options 
Default 
Description 

boundaries 
noSlipWalls 
[] 
list of names of boundary patches, e.g. [2,3,7] (for .ugrid), [“blk1/wall1”,”blk2/wall2”] (for .cgns) 
slidingInterfaces 
[] 
list of pairs of sliding interfaces 

stationaryPatches 
[] 
list of names of stationary boundary patches, e.g. [“stationaryField/interface”] 

rotatingPatches 
[] 
list of names of dynamic boundary patches, e.g. [“rotatingField/interface”] 

axisOfRotation 
[] 
axis of rotation, e.g. [0,0,1] 

centerOfRotation 
[] 
center of rotation, e.g. [0,0,0] 
Warning
“slidingInterfaces” can be only used for multiblock meshes.
4.2. Flow360.json#
Most input quantities in case configuration file Flow360.json is dimensionless. The convention of nondimensional input in Flow360 can be found at Nondimensional input. Some commonly used variables in the table below:
 \(L_{gridUnit}\) (SI unit = \(m\))
physical length represented by unit length in the given mesh file, e.g. if your grid is in feet, \(L_{gridUnit}=1 \text{ feet}=0.3048 \text{ meter}\); if your grid is in millimeter, \(L_{gridUnit}=1 \text{ millimeter}=0.001 \text{ meter}\).
 \(C_\infty\) (SI unit = \(m/s\))
speed of sound of freestream
 \(\rho_\infty\) (SI unit = \(kg/m^3\))
density of freestream
 \(\mu_\infty\) (SI unit = \(N \cdot s/m^2\))
dynamic viscosity of freestream
 \(p_\infty\) (SI unit = \(N/m^2\))
static pressure of freestream
 \(U_\text{ref} \triangleq \text{MachRef}\times C_\infty\) (SI unit = \(m/s\))
reference velocity
4.2.1. geometry#
Options 
Default 
Description 

refArea 
1 
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 
4.2.2. freestream#
Options 
Default 
Description 

Reynolds 
Not required if muRef exists 
The Reynolds number (nondimensional) in our solver, = \(\frac{\rho_\infty U_{ref} L_{gridUnit}}{\mu_\infty}\). For example, for a mesh with phyiscal length 1.5m represented by 1500 grid units (i.e. mesh is in mm), the \(L_{gridUnit}\) in the numerator is 0.001m. 
muRef 
Not required if Reynolds exists 
The reference dynamic viscosity (nondimensional) in our solver, = \(\frac{\mu_\infty}{\rho_\infty C_\infty L_{gridUnit}}\) 
Mach 
REQUIRED 
The Mach number, the ratio of freestream speed to the speed of sound. 
MachRef 
Required if Mach == 0 
The reference Mach number to compute nondimensional quantities, e.g. CL, CD, CFx, CFy, CFz, CMz, CMy, CMz, etc…, = \(U_{ref}/C_\infty\). Its default value is “freestream”>”Mach”. 
Temperature 
REQUIRED 
The reference temperature in Kelvin. 1 means globally constant viscosity. 
alphaAngle 
REQUIRED 
The angle of attack in degrees, see: Eq.(4.2.1). 
betaAngle 
REQUIRED 
The side slip angle in degrees, see: Eq.(4.2.1). 
turbulentViscosityRatio 
DEPENDS 
The ratio between the freestream turbulent viscosity and freestream laminar viscosity. This value is used by the turbulence models to determine the reference values for solution variables for freestream boundary conditions and also to set the initial condition. For SpalartAllmaras turbulence model, the default value is \(0.210438\) if transition is not used and \(2.794\times10^{7}\) if transition model is used. For kOmegaSST, the default value is \(0.01\). 
According to Flow360’s definitions of the angle of attack \(\alpha\) and the sideslip angle \(\beta\), as given in the above table, with respect to the grid coordinates, the following values of velocity components are imposed at a “Freestream” farfield boundary as defined in the next subsection.
Where, the velocity components are nondimensionalized by the freestream speed of sound \(C_{\infty}\). Also, the effects of these two angles are intrinsically taken into account by the solver in the computed \(C_l\) and \(C_d\) values, etc.
4.2.3. boundaries#
Type 
Format 
Description 

SlipWall 
"boundary_name" :
{
"type" : "SlipWall"
}

Slip wall condition. Also used for symmetry. 
NoSlipWall 
"boundary_name" :
{
"type" : "NoSlipWall",
"Velocity": (default: [0, 0, 0]) [
float or "expression",
float or "expression",
float or "expression"]
}

Sets noslip wall condition. Optionally, a tangential velocity can be prescribed on the wall using the keyword “Velocity”. An example: sample 
IsothermalWall 
"boundary_name" :
{
"type" : "IsothermalWall",
"Temperature":
float or "expression" (REQUIRED),
"Velocity": (default: [0, 0, 0]) [
float or "expression",
float or "expression",
float or "expression"]
}

Isothermal wall boundary condition. “Temperature” is specified in Kelvin. Optionally a tangential velocity can be presribed on the wall using the keyword “Velocity”. 
Freestream 
"boundary_name" :
{
"type" : "Freestream",
"Velocity": (default: freestream) [
float or "expression",
float or "expression",
float or "expression"]
}

External freestream condition. Optionally, an expression for each of the velocity components can be specified using the keyword “Velocity”. 
SubsonicOutflowPressure 
"boundary_name" :
{
"type" : "SubsonicOutflowPressure",
"staticPressureRatio" : float
}

Subsonic outflow, enforced through static pressure ratio. 
SubsonicOutflowMach 
"boundary_name" :
{
"type" : "SubsonicOutflowMach",
"MachNumber" : float
}

Static pressure outflow boundary condition set via a specified subsonic Mach number. 
SubsonicInflow 
"boundary_name" :
{
"type" : "SubsonicInflow",
"totalPressureRatio" : float,
"totalTemperatureRatio" : float,
"rampSteps" : Integer
}

Subsonic inflow (enforced via total pressure ratio and total temperature ratio) for nozzle or tunnel plenum. 
MassOutflow 
"boundary_name" :
{
"type" : "MassOutflow",
"massFlowRate" : float
}

Specification of massflow out of the control volume. 
MassInflow 
"boundary_name" :
{
"type" : "MassInflow",
"massFlowRate" : float
}

Specification of massflow into the control volume. 
SlidingInterface 
"boundary_name" :
{
"type" : "SlidingInterface"
}

Sliding interface condition. Details of each sliding interface need to be prescribed in a seperate section: slidingInterfaces 
WallFunction (beta feature) 
"boundary_name" :
{
"type" : "WallFunction"
}

This boundary type uses wall functions to estimate the velocity field close to the solid boundaries. 
Note
Note: “expression” is an expression with “x”, “y”, “z” as independent variables. An example of NoSlipWall boundary with prescribed velocity is NoSlipWall with velocity.
4.2.4. Output#
Universal nondimensional variables supported by all types of output : [note]
Name 
Description 

Cp 
Coefficient of pressure. \(C_p=(\frac{pp_\infty}{\frac{1}{2}\rho_\infty{U_{ref}}^2})\). 
gradW 
Gradient of W 
kOmega 
k and omega when using kOmegaSST model 
Mach 
Mach number 
mut 
Turbulent viscosity 
mutRatio 
\(\mu_t/{\mu_\infty}\) 
nuHat 
nuHat 
primitiveVars 
Outputs rho, u, v, w, p 
qcriterion 
Q criterion 
residualComponentsSA 
Residual for the turbulence model 
residualNavierStokes 
5 components of the NS residual 
residualTransition 
Residual for the transition model 
residualTurbulence 
Residual for the turbulence model 
s 
Entropy 
solutionNavierStokes 
Solution for the NS equation in conservative form 
solutionTransition 
Solution for the transition model 
solutionTurbulence 
Solution for the turbulence model 
T 
Temperature 
vorticity 
Vorticity 
wallDistance 
wall distance 
Additional nondimensional variables supported by volumeOutput and sliceOutput:
Name 
Description 

betMetrics 
VelocityRelative, AlphaRadians, CfAxial, CfCircumferential, TipLossFactor, LocalSolidityIntegralWeight for all BETDisks with possible overlapping. 
betMetricsPerDisk 
Same as above but each BETdisk has its own 
kOmegaSST_DDES 
Outputs 
Additional nondimensional variables supported by surfaceOutput:
Name 
Description 

CfVec 
Viscous stress coefficient vector. For example, \(C_{f_{Vec}}[3]=\frac{\tau_{wall}[3]}{\frac{1}{2}\rho_\infty U_{ref}^2}\). The \(\tau_{wall}\) is the vector of viscous stress on the wall. 
Cf 
Magnitude of 
CfNormal 
Magnitude of 
CfTangent 
Magnitude of 
heatFlux 
Heat Flux. 
nodeNormals 
Wall normal direction (may not be a unit vector). Note: This variable does not support time average. 
nodeForcesPerUnitArea 
\(\frac{\tau_{wall}[3](pp_\infty)*normal[3]}{\rho_\infty C_\infty^2}\), where the \(normal[3]\) is the unit normal vector pointing from solid to fluid. 
VelocityRelative 
Velocity in rotating frame. 
yPlus 
\(y^+\). 
wallFunctionMetric 
(beta feature) : This metric is a local indicator for quality of the wall model. A value less than 1.25 shows good estimation of wall shear stress. Between 1.25 and 10 is a region of less validity, and values greater than 10 are not reliable for wall shear stress estimation. 
4.2.4.1. volumeOutput#
Options 
Default 
Description 

animationFrequency 
1 
Frequency (in number of physical time steps) at which volume output is saved. 1 is at end of simulation. 
animationFrequencyOffset 
0 
Offset (in number of physical time steps) at which volume output animation is started. 0 is at beginning of simulation. 
computeTimeAverages 
FALSE 
Whether or not to compute timeaveraged quantities. 
animationFrequencyTimeAverage 
1 
Frequency (in number of physical time steps) at which time averaged volume output is saved. 1 is at end of simulation. 
animationFrequencyTimeAverageOffset 
0 
Offset (in number of physical time steps) at which time averaged volume output animation is started. 0 is at beginning of simulation. 
startAverageIntegrationStep 
0 
Physical time step to start calculating averaging. 
outputFields 
[] 
List of output variables. Including universal output variables, and variables specific to volumeOutput. 
outputFormat 
paraview 
"paraview" or "tecplot" or "both". 
An example volumeOutput configuration is shown below.
1"volumeOutput": {
2 "outputFormat": "tecplot",
3 "outputFields": ["primitiveVars", "betMetrics", "qcriterion"]
4}
4.2.4.2. surfaceOutput#
Options 
Default 
Description 

animationFrequency 
1 
Frequency (in number of physical time steps) at which surface output is saved. 1 is at end of simulation. 
animationFrequencyOffset 
0 
Offset (in number of physical time steps) at which surface output animation is started. 0 is at beginning of simulation. 
outputFormat 
paraview 
"paraview" or "tecplot" 
computeTimeAverages 
FALSE 
Whether or not to compute timeaveraged quantities. 
animationFrequencyTimeAverage 
1 
Frequency (in number of physical time steps) at which time averaged surface output is saved. 1 is at end of simulation. 
animationFrequencyTimeAverageOffset 
0 
Offset (in number of physical time steps) at which time averaged surface output animation is started. 0 is at beginning of simulation. 
startAverageIntegrationStep 
0 
Physical time step to start calculating averaging. 
outputFields 
[] 
List of output variables. Including universal output variables and variables specific to surfaceOutput. 
surfaces 
{} 
Dictionary of output surfaces. The name of the surface is used as the key. These surface names have to be the patch name in the grid file or the alias name specified in case JSON. See example below. 
An example surfaceOutput configuration is shown below.
1"surfaceOutput": {
2 "animationFrequency": 1,
3 "animationFrequencyOffset": 0,
4 "animationFrequencyTimeAverage": 1,
5 "animationFrequencyTimeAverageOffset": 0,
6 "computeTimeAverages": false,
7 "outputFormat": "paraview",
8 "startAverageIntegrationStep": 0,
9 "outputFields": [ "yPlus" ],
10 "surfaces": {
11 "freestream": {
12 "outputFields": [ "Cp", "Mach" ]
13 # Will output "Cp", "Mach", "yPlus"
14 },
15 "symmetry": {
16 "outputFields": [ "T", "heatFlux" ]
17 # Will output "T", "heatFlux", "yPlus"
18 },
19 "wing": {
20 "outputFields": [ "CfVec" ]
21 # Will output "CfVec", "yPlus"
22 }
23 }
24}
4.2.4.3. sliceOutput#
Options 
Default 
Description 

animationFrequency 
1 
Frequency (in number of physical time steps) at which slice output is saved. 1 is at end of simulation. 
animationFrequencyOffset 
0 
Offset (in number of physical time steps) at which slice output animation is started. 0 is at beginning of simulation. 
outputFormat 
paraview 
"paraview" or "tecplot" 
computeTimeAverages 
FALSE 
Whether or not to compute timeaveraged quantities. 
animationFrequencyTimeAverage 
1 
Frequency (in number of physical time steps) at which time averaged slice output is saved. 1 is at end of simulation. 
animationFrequencyTimeAverageOffset 
0 
Offset (in number of physical time steps) at which time averaged slice output animation is started. 0 is at beginning of simulation. 
startAverageIntegrationStep 
0 
Physical time step to start calculating averaging. 
outputFields 
[] 
List of output variables. Including universal output variables and variables specific to sliceOutput. 
slices 
{} 
Dictionary of output slices. The name of the slice is used as the key. See example below. 
sliceNormal 
[] 
Normal direction of the slice. 
sliceOrigin 
[] 
Cooridinates of a point on the slice. 
An example sliceOutput configuration is shown below.
1"sliceOutput": {
2 "animationFrequency": 1,
3 "animationFrequencyOffset": 0,
4 "coarsenIterations": 0,
5 "outputFormat": "tecplot",
6 "outputFields": [ "Cp" ],
7 "slices": {
8 "x0": {
9 "sliceNormal": [ 1, 0, 0 ],
10 "sliceOrigin": [ 0, 0, 0 ],
11 "outputFields": [ "Mach" ]
12 # Will output "Mach", "Cp"
13 },
14 "y1": {
15 "sliceNormal": [ 0, 1, 0 ],
16 "sliceOrigin": [ 2, 1, 0 ],
17 "outputFields": [ "T" ]
18 # Will output "T", "Cp"
19 }
20 }
21}
4.2.4.4. monitorOutput#
Options 
Default 
Description 

monitors 
{} 

An example monitor configuration is shown below. In the example a monitor group with name Group1
is created which contains two monitor points with coordinates (0.12, 0.34, 0.262)
and (0.3124, 0.01, 0.03)
respectively.
Note: Please increase precision of the input coordinates when probing near the boundaries of volume grid (for example noSlipWalls) as the actual point may be out of grid volume when precision is insufficient.
1"monitorOutput": {
2 "monitors": {
3 "Group1": {
4 "monitorLocations": [
5 [ 0.12, 0.34, 0.262 ],
6 [ 3.124e1, 0.01, 0.03 ]
7 ],
8 "outputFields": [ "primitiveVars", "vorticity", "T", "s", "Cp", "mut" ]
9 }
10 }
11}
4.2.4.5. isoSurfaceOutput#
Options 
Default 
Description 

outputFormat 
paraview 
"paraview" or "tecplot" or "both" 
isoSurfaces 
{} 

animationFrequency 
1 
Frequency (in number of physical time steps) at which volume output is saved. 1 is at end of simulation 
animationFrequencyOffset 
0 
Offset (in number of physical time steps) at which volume output animation is started. 0 is at beginning of simulation. 
An example isoSurface configuration is shown below, in which the pressure, p
, and Mach
number are evaluated on an isosurface of qcriterion
with an isosurface magnitude of 1e3.
1"isoSurfaceOutput": {
2 "outputFormat": "tecplot",
3 "animationFrequency": 10,
4 "isoSurfaces": {
5 "q_1e3": {
6 "surfaceField": "qcriterion",
7 "surfaceFieldMagnitude": 1e3,
8 "outputFields": [ "Cp", "Mach" ]
9 }
10 }
11},
4.2.6. turbulenceModelSolver#
Options 
Default 
Description 

modelType 
SpalartAllmaras 
Turbulence model type can be: “SpalartAllmaras” or “kOmegaSST” 
absoluteTolerance 
1.00E08 
Tolerance for the turbulence model residual, below which the solver goes to the next physical step 
relativeTolerance 
0 
Tolerance to the relative residual, below which the solver goes to the next physical step. 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. NOTE: relativeTolerance is ignored in steady simulations and only absoluteTolerance is used as the convergence criterion 
linearIterations 
20 
Number of linear iterations for the turbulence moddel linear system 
updateJacobianFrequency 
4 
Frequency at which to update the Jacobian 
equationEvalFrequency 
4 
Frequency at which to evaluate the turbulence equation in looselycoupled simulations 
reconstructionGradientLimiter 
1.0 
The strength of gradient limiter used in reconstruction of solution variables at the faces (specified in the range [0.0, 2.0]). 0.0 corresponds to setting the gradient equal to zero, and 2.0 means no limiting. 
rotationCorrection 
FALSE 
Rotation correction for the turbulence model. Only support for SpalartAllmaras 
quadraticConstitutiveRelation 
FALSE 
Use quadratic constitutive relation for turbulence shear stress tensor instead of Boussinesq Approximation 
orderOfAccuracy 
2 
Order of accuracy in space 
maxForceJacUpdatePhysicalSteps 
0 
When which physical steps, the jacobian matrix is updated every pseudo step 
DDES 
FALSE 
“true” enables Delayed Detached Eddy Simulation. Supported for both SpalartAllmaras and kOmegaSST turbulence models, with and without AmplificationFactorTransport transition model enabled 
gridSizeForLES 
“maxEdgeLength” 
Specifes the length used for the computation of LES length scale. The allowed inputs are 
modelConstants 
{} 
Here, user can change the default values used for DDES coefficients in the solver:
SpalartAllmaras:
"C_DES" (= 0.72), "C_d" (= 8.0)kOmegaSST:
"C_DES1" (= 0.78), "C_DES2" (= 0.61), "C_d1" (= 20.0), "C_d2" (= 3.0)(values shown in the parentheses are the default values used in Flow360)
An example with kOmegaSST mode would be:
"modelConstants" : {
"C_DES1": 0.85,
"C_d1": 8.0
}

4.2.7. transitionModelSolver#
The laminar to turbulence transition model supported by Flow360 is the 2019b version of the Amplification Factor Transport Model created by James Coder, University of Tennessee. This models adds two additional equations to the flow solver in order to solve for the amplification factor and intermittency flow quantities. More details about the model can be found at: https://turbmodels.larc.nasa.gov/aft_transition_3eqn.html. Below are a list of configuration parameters for the transition model. Either Ncrit or turbulenceIntensityPercent can be used to tune the location of transition from laminar to turbulent flow.
Options 
Default 
Description 

modelType 
None 
Transition model type can either be: “None” (disabled) or “AmplificationFactorTransport” (enabled) 
absoluteTolerance 
1.00E07 
Tolerance for the transition model residual, below which the solver goes to the next physical step 
relativeTolerance 
0 
Tolerance to the relative residual, below which the solver goes to the next physical step. 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. NOTE: relativeTolerance is ignored in steady simulations and only absoluteTolerance is used as the convergence criterion 
linearIterations 
20 
Number of linear iterations for the transition model linear system 
updateJacobianFrequency 
4 
Frequency at which to update the Jacobian 
equationEvalFrequency 
4 
Frequency at which to evaluate the turbulence equation in looselycoupled simulations 
orderOfAccuracy 
2 
Order of accuracy in space 
turbulenceIntensityPercent 
0.1 
Used to compute Ncrit parameter for AFT transition model. Range: 0.03  2.5. Higher values result in earlier transition 
Ncrit 
8.15 
Scalar parameter for transition model. Range: 111. Higher values delays onset of laminarturbulent transition. Only one of “Ncrit” or turbulenceIntensityPercent” can be specified in this section 
maxForceJacUpdatePhysicalSteps 
0 
When which physical steps, the jacobian matrix is updated every pseudo step 
4.2.8. initialCondition#
Options 
Default 
Description 

type 
“freestream” 
Use the flow conditions defined in freestream section to set initial condition. Could be “freestream” or an “expression” 
4.2.9. timeStepping#
Options 
Default 
Description 

physicalSteps 
1 
Number of physical steps. "maxPhysicalSteps" is a supported alias for this entry 
timeStepSize 
"inf" 
Nondimensional time step size in physical step marching, it is calculated as \(\frac{\Delta t_{physical} C_\infty}{L_{gridUnit}}\), where the \(\Delta t_{physical}\) is the physical time (in seconds) step size. “inf” means steady solver. 
maxPseudoSteps 
2000 
Maximum pseudo steps within one physical step 
CFL>initial 
5 
Initial CFL for solving pseudo time step 
CFL>final 
200 
Final CFL for solving pseudo time step 
CFL>rampSteps 
40 
Number of steps before reaching the final CFL within 1 physical step 
Note
The timeStepSize
is in solver units (nondimensional), where timescale is mesh unit divided by freestream speed of sound. So a time of timeStepSize=1
means the time it takes for sound to travel 1 mesh unit at freestream.
4.2.10. slidingInterfaces (list)#
Options 
Default 
Description 

interfaceName 
Empty 
name of slidingInterface 
stationaryPatches 
Empty 
a list of static patch names of an interface 
rotatingPatches 
Empty 
a list of dynamic patch names of an interface 
thetaRadians 
Empty 
expression for rotation angle (in radians) as a function of time 
thetaDegrees 
Empty 
expression for rotation angle (in degrees) as a function of time 
omegaRadians 
Empty 
nondimensional rotating speed, radians/nondimunittime, = \(\Omega*L_{gridUnit}/C_\infty\), where the SI unit of \(\Omega\) is rad/s. 
omegaDegrees 
Empty 
nondimensional rotating speed, degrees/nondimunittime, = \(\text{omegaRadians}*180/PI\) 
centerOfRotation 
Empty 
a 3D array, representing the origin of rotation, e.g. [0,0,0] 
axisOfRotation 
Empty 
a 3D array, representing the rotation axis, e.g. [0,0,1] 
volumeName 
Empty 
a list of dynamic volume zones related to the above {omega, centerOfRotation, axisOfRotation} 
parentVolumeName 
Empty 
name of the volume zone that the rotating reference frame is contained in, used to compute the acceleration in the nested rotating reference frame 
isDynamic 
FALSE 
whether rotation of this interface is dictated by userDefinedDynamics 
4.2.11. actuatorDisks (list)#
Options 
Default 
Description 

center 
Empty 
center of the actuator disk 
axisThrust 
Empty 
direction of thrust, it is a unit vector 
thickness 
Empty 
thickness of the actuator disk 
forcePerArea>radius (list) 
Empty 
radius of the sampled locations in grid unit 
forcePerArea>thrust (list) 
Empty 
force per area in the axial direction, positive means the axial force follows the same direction as 
forcePerArea>circumferential (list) 
Empty 
force per area in the circumferential direction, positive means the circumferential force follows the same direction as 
4.2.12. BETDisks (list)#
An introduction to the blade element theory model in Flow360 is available in the Knowledge Base. A case study of the XV15 rotor using the steady BET Disk method is available in Case Studies. Because a transient BET Line simulation is simply a timeaccurate version of a steadystate BET Disk simulation, most of the parameters below are applicable to both methods.
Options 
Default 
Description 

rotationDirectionRule 
rightHand 
[string] the rule for rotation direction and thrust direction, “rightHand” or “leftHand”. A detailed explanation and some examples are shown at BETDisks. 
centerOfRotation 
Empty 
[3array] center of the Blade Element Theory (BET) disk 
axisOfRotation 
Empty 
[3array] rotational axis of the BET disk, i.e. (+) thrust axis 
numberOfBlades 
Empty 
[int] number of blades to model 
radius 
Empty 
[float] nondimensional radius of the rotor disk, = \(\text{Radius}_\text{dimensional}/L_{gridUnit}\) 
omega 
Empty 
[float] nondimensional rotating speed, radians/nondimunittime, = \(\Omega*L_{gridUnit}/C_\infty\), where the SI unit of \(\Omega\) is rad/s. An example can be found at the case study XV15 BET 
chordRef 
Empty 
[float] nondimensional reference chord used to compute sectional blade loadings. 
nLoadingNodes 
Empty 
[float] Number of nodes used to compute the sectional thrust and torque coefficients \(C_t\) and \(C_q\), defined in BET Loading Output. Recommended value is 20. 
thickness 
Empty 
[float] nondimensional thickness of the BET disk. Should be less than the thickness of the refined region of the disk mesh. 
bladeLineChord 
0.0 
[float] nondimensional chord to use if performing an unsteady bladeline (as opposed to steady bladedisk) simulation. Recommended value is 12x the physical mean aerodynamic chord (MAC) of the blade for blade line analysis. Default of 0.0 is an indication to run bladedisk analysis instead of bladeline. 
initialBladeDirection 
Empty 
[3array]. Orientation of the first blade in the bladeline model. Must be specified if performing bladeline analysis. 
twists 
Empty 
[list(dict)] A list of dictionary entries specifying the twist in degrees as a function of radial location. Entries in the list must already be sorted by radius. Example entry in the list would be {“radius” : 5.2, “twist” : 32.5}. 
chords 
Empty 
[list(dict)] A list of dictionary entries specifying the blade chord as a function of the radial location. Entries in the list must already be sorted by radius. Example entry in the list would be {“radius” : 5.2, “chord” : 12.0}. 
sectionalPolars 
Empty 
[list(dict)] A list of dictionaries for every radial location specified in sectionalRadiuses. Each dict has two entries, “liftCoeffs” and “dragCoeffs”, both of which have the same data storage format: 3D arrays (implemented as nested lists). The first index of the array corresponds to the MachNumbers of the specified polar data. The second index of the array corresponds to the ReynoldsNumbers of the polar data. The third index corresponds to the alphas. The value specifies the lift or drag coefficient, respectively. 
sectionalRadiuses 
Empty 
[list(float)] A list of the radial locations in grid units at which \(C_l\) and \(C_d\) are specified in sectionalPolars 
alphas 
Empty 
[list(float)] alphas associated with airfoil polars provided in sectionalPolars in degrees. 
MachNumbers 
Empty 
[list(float)] Mach numbers associated with airfoil polars provided in sectionalPolars. 
ReynoldsNumbers 
Empty 
[list(float)] Reynolds numbers associated with the airfoil polars provided in sectionalPolars. 
tipGap 
inf 
[float] nondimensional distance between blade tip and multiple peripheral instances, e.g. duct, shroud, cowling, nacelle, etc. The peripheral structures must be effective at reducing blade tip vortices. This parameter affects the tip loss effect. Being close to a fuselage or to another blade does not affect this parameter, because they won’t effectively reduce tip loss. tipGap=0 means there is no tip loss. It is \(\infty\) (default) for open propellers. An example with finite tipGap would be a ducted fan. 
4.2.13. porousMedia (list)#
The porous media model supported by Flow360 is the DarcyForchheimer model which has two coefficients: Darcy coefficient for viscous losses and Forchheimer coefficient for inertial losses. The model acts by adding a sink term to the momentum equations. More details about the model can be found at https://openfoamwiki.net/index.php/DarcyForchheimer. Below are a list of configuration parameters for the porous media model.
Options 
Default 
Description 

DarcyCoefficient 
REQUIRED 
[3array] Darcy cofficient of the porous media model which determines the scaling of the viscous loss term. The 3 values define the coeffiicent for each of the 3 axes defined by the reference frame of the volume zone. 
ForchheimerCoefficient 
REQUIRED 
[3array] Forchheimer coefficient of the porous media model which determines the scaling of the inertial loss term. 
volumeZone 
REQUIRED 
Dictionary defining the properties of the region of the grid where the porous media model is applied. 
volumeZone>zoneType 
REQUIRED 
Type/Shape of volume zone. Possible values: “box” 
volumeZone>center 
REQUIRED 
[3array] For “zoneType”: “box”, it is the center point of the box 
volumeZone>axes 
REQUIRED 
[[3array], [3array]] For “zoneType”: “box”, it is 2 axes which define the x and y directions of the box. Also, used to define the reference frame of the volume zone. 
volumeZone>lengths 
REQUIRED 
[3array] For “zoneType”: “box”, it is the length of the box in each of the x, y, z directions 
volumeZone>windowingLengths 
[0.02*lengths[0], 0.02*lengths[1], 0.02*lengths[2]] 
[3array] For “zoneType”: “box”, it is the total length of the box in each of the x, y, z directions for which a window function is applied on the edges. 
4.2.14. userDefinedDynamics#
An example of how to use the userDefinedDynamics is available here.
Options 
Default 
Description 

dynamicsName 
REQUIRED 
[string] Name of the dynamics defined by the user 
inputVars 
REQUIRED 
[list(string)] Name of the inputs for the defined dynamics. Allowable inputs are: 
constants 
Empty 
[list(dict)] A list of dictionary entries specifying the constants used in the updateLaws and outputLaws. 
outputVars 
REQUIRED 
[list(string)] Name of the output variables for the defined dynamics and the relation between the output variables and input/state variables. e.g. 
stateVarsInitialValue 
Empty 
[list(string)] The initial value of state variables are specified here. The entries could be either values (in the form of strings, e.g., 
updateLaw 
Empty 
[list(string)] List of equations for updating state variables. The list entries correspond to the update laws for 
inputBoundaryPatches 
Empty 
[list(string)] List of boundary names (if any) related to the input variables. 
4.3. Examples of Flow360.json#
a NoSlipWall boundary with a prescribed velocity
1"boundary_name":{
2 "type":"NoSlipWall",
3 "Velocity":["0","0.1*x+exp(y)+z^2","cos(0.2*x*pi)+sqrt(z^2+1)"]
4}
an actuator disk modelling of lefthandrotation rotor in quiescent flow:
"actuatorDisks":[
{
...
"axisThrust":[0,0,1],
"forcePerArea":[
"radius":[0.01, 0.05, 0.1],
"thrust":[0.001, 0.02, 0],
"circumferential":[0.0001, 0.003, 0]
]
}
]
an actuator disk modelling of righthandrotation rotor in quiescent flow:
"actuatorDisks":[
{
...
"axisThrust":[0,0,1],
"forcePerArea":[
"radius":[0.01, 0.05, 0.1],
"thrust":[0.001, 0.02, 0],
"circumferential":[0.0001, 0.003, 0]
]
}
]
 note
Since release23.1.1.0, previous syntax to specify output variables is being deprecated and not all variables are supported. Users are encouraged to use the new syntax as described in this documentation.