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), [“blk-1/wall1”,”blk-2/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 multi-block meshes.
4.2. Flow360.json#
Most input quantities in case configuration file Flow360.json is dimensionless. The convention of non-dimentionalization in Flow360 can be found at Non-dimensionalization. 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 (non-dimenstional) 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 refererence dynamic viscosity (non-dimenstional) 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 non-dimensionalized 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 no-slip 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 |
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. volumeOutput#
Options |
Default |
Description |
---|---|---|
outputFormat |
paraview |
"paraview" or "tecplot" or "both" |
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 |
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 averaging forces/moments, only if computeTimeAverages is True. Fields that can be averaged: primitiveVars, vorticity, T, s, Cp, mut, Mach, qcriterion |
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 |
Residual for the turbulence model |
residualTransition |
FALSE |
Residual for the transition model |
solutionTurbulence |
FALSE |
Solution for the turbulence model |
solutionTransition |
FALSE |
Solution for the transition model |
T |
FALSE |
Temperature |
s |
FALSE |
Entropy |
Cp |
TRUE |
Coefficient of pressure. \(C_p=(\frac{p-p_\infty}{\frac{1}{2}\rho_\infty{U_{ref}}^2})\). |
mut |
TRUE |
Turbulent viscosity |
nuHat |
TRUE |
nuHat |
kOmega |
FALSE |
k and omega when using kOmegaSST model |
mutRatio |
FALSE |
\(\mu_t/{\mu_\infty}\) |
Mach |
TRUE |
Mach number |
VelocityRelative |
FALSE |
relative velocity respect to the rotating frame, see the explaination. |
qcriterion |
FALSE |
Q criterion |
gradW |
FALSE |
Gradient of W |
wallDistance |
FALSE |
wall distance |
betMetrics |
FALSE |
8 quantities related to BET solvers: velocityX, velocityY and velocityZ in rotating reference frame, alpha angle, Cf in axial direction, Cf in circumferential direction, tip loss factor, local solidity multiplied by integration weight |
betMetricsPerDisk |
FALSE |
similar to |
4.2.5. surfaceOutput#
Options |
Default |
Description |
---|---|---|
outputFormat |
paraview |
"paraview" or "tecplot" |
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 |
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 |
primitiveVars |
TRUE |
Outputs rho, u, v, w, p |
vorticity |
FALSE |
Vorticity |
residualNavierStokes |
FALSE |
5 components of the N-S residual |
residualTurbulence |
FALSE |
Residual for the turbulence model |
residualTransition |
FALSE |
Residual for the transition model |
solutionTurbulence |
FALSE |
Solution for the turbulence model |
solutionTransition |
FALSE |
Solution for the transition model |
T |
FALSE |
Temperature |
s |
FALSE |
Entropy |
Cp |
TRUE |
Coefficient of pressure. \(C_p=(\frac{p-p_\infty}{\frac{1}{2}\rho_\infty{U_{ref}}^2})\). |
mut |
TRUE |
Turbulent viscosity |
nuHat |
TRUE |
nuHat |
kOmega |
FALSE |
k and omega when using kOmegaSST model |
mutRatio |
FALSE |
\(\mu_t/{\mu_\infty}\) |
Mach |
TRUE |
Mach number |
VelocityRelative |
FALSE |
velocity in rotating frame |
qcriterion |
FALSE |
Q criterion |
gradW |
FALSE |
Gradient of W |
wallDistance |
FALSE |
wall distance |
Cf |
FALSE |
Skin friction coefficient |
heatFlux |
FALSE |
Heat Flux |
CfVec |
FALSE |
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. |
yPlus |
FALSE |
y+ |
nodeForcesPerUnitArea |
FALSE |
\(nodeForcesPerUnitArea=\frac{\tau_{wall}[3]-(p-p_\infty)*normal[3]}{\rho_\infty C_\infty^2}\), where the \(normal[3]\) is the unit normal vector pointing from solid to fluid. |
4.2.6. sliceOutput#
Options |
Default |
Description |
---|---|---|
outputFormat |
paraview |
"paraview" or "tecplot" |
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 |
slices |
[] |
List of slices to save after the solver has finished |
sliceName |
string |
|
sliceNormal |
[x, y, z] |
|
sliceOrigin |
[x, y, z] |
|
primitiveVars |
TRUE |
Outputs rho, u, v, w, p |
vorticity |
FALSE |
Vorticity |
residualNavierStokes |
FALSE |
5 components of the N-S residual |
residualTurbulence |
FALSE |
Residual for the turbulence model |
residualTransition |
FALSE |
Residual for the transition model |
solutionTurbulence |
FALSE |
Solution for the turbulence model |
solutionTransition |
FALSE |
Solution for the transition model |
T |
FALSE |
Temperature |
s |
FALSE |
Entropy |
Cp |
TRUE |
Coefficient of pressure. \(C_p=(\frac{p-p_\infty}{\frac{1}{2}\rho_\infty{U_{ref}}^2})\). |
mut |
TRUE |
Turbulent viscosity |
nuHat |
TRUE |
nuHat |
kOmega |
FALSE |
k and omega when using kOmegaSST model |
mutRatio |
FALSE |
\(\mu_t/{\mu_\infty}\) |
Mach |
TRUE |
Mach number |
VelocityRelative |
FALSE |
velocity in rotating frame |
qcriterion |
FALSE |
Q criterion |
gradW |
FALSE |
Gradient of W |
wallDistance |
FALSE |
wall distance |
betMetrics |
FALSE |
8 quantities related to BET solvers: velocityX, velocityY and velocityZ in rotating reference frame, alpha angle, Cf in axial direction, Cf in circumferential direction, tip loss factor, local solidity multiplied by integration weight |
betMetricsPerDisk |
FALSE |
similar to |
An example sliceOutput configuration is shown below.
1"sliceOutput": {
2 "outputFormat": "tecplot",
3 "animationFrequency": 10,
4 "primitiveVars": true,
5 "Cp": true,
6 "Mach": true,
7 "slices": [
8 {
9 "sliceNormal": [ 0, 1, 0 ],
10 "sliceOrigin": [ 0, 0, 0 ],
11 "sliceName": "ExampleSlice1"
12 }
13 ]
14}
4.2.7. 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.124e-1, 0.01, 0.03 ]
7 ],
8 "outputFields": [ "primitiveVars", "vorticity", "T", "s", "Cp", "mut" ]
9 }
10 }
11}
4.2.8. 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 iso-surface of qcriterion
with an iso-surface magnitude of 1e-3.
1"isoSurfaceOutput" : {
2 "outputFormat" : "tecplot",
3 "animationFrequency" : 10,
4 "isoSurfaces" : {
5 "q_1e-3" : {
6 "surfaceField" : "qcriterion",
7 "surfaceFieldMagnitude" : 1e-3,
8 "outputFields" : ["p", "Mach"]
9 }
10 }
11},
4.2.10. turbulenceModelSolver#
Options |
Default |
Description |
---|---|---|
modelType |
SpalartAllmaras |
Turbulence model type can be: “SpalartAllmaras” or “kOmegaSST” |
absoluteTolerance |
1.00E-08 |
Tolerance for the turbulence model residual, below which the solver goes to the next physical step |
relativeTolerance |
0 |
Tolerance to the ratio of residual of current pseudoStep to the initial residual, below which the solver goes to the next physical step |
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 loosely-coupled 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 |
4.2.11. 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.00E-07 |
Tolerance for the transition model residual, below which the solver goes to the next physical step |
relativeTolerance |
0 |
Tolerance to the ratio of residual of current pseudoStep to the initial residual |
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 loosely-coupled 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: 1-11. Higher values delays onset of laminar-turbulent 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.12. 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.13. 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 (non-dimensional), where time-scale 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.14. 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 |
non-dimensional rotating speed, radians/nondim-unit-time, = \(\Omega*L_{gridUnit}/C_\infty\), where the SI unit of \(\Omega\) is rad/s. |
omegaDegrees |
Empty |
non-dimensional rotating speed, degrees/nondim-unit-time, = \(\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.15. actuatorDisks (list)#
Options |
Default |
Description |
---|---|---|
center |
Empty |
center of the actuator disk |
axisThrust |
Empty |
direction of the thrust (acted on rotors), it is an 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 (acted on rotors) per area along the axisThrust, positive means the axial force follows the same direction of “axisThrust”. It is non-dimensional,= \(\frac{\text{thrustPerArea}(SI=N/m^2)}{\rho_\infty C^2_\infty}\). |
forcePerArea->circumferential (list) |
Empty |
force (acted on fluid) per area in circumferential direction,positive means the circumferential force follows the same direction of “axisThrust” based on right hand rule. It is non-dimensional,= \(\frac{\text{circumferentialForcePerArea}(SI=N/m^2)}{\rho_\infty C^2_\infty}\). Two examples with positive and negative values are shown in negative and positive respectively. |
4.2.16. BETDisks (list)#
An introduction of blade element theory model in Flow360 is available at BET solver. A case study of the XV-15 rotor based on steady blade element disk model is available at BET case study.
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 BET input. |
centerOfRotation |
Empty |
[3-array] center of the Blade Element Theory (BET) disk |
axisOfRotation |
Empty |
[3-array] rotational axis of the BET disk, i.e. (+) thrust axis |
numberOfBlades |
Empty |
[int] number of blades to model |
radius |
Empty |
[float] non-dimensional radius of the rotor disk, = \(\text{Radius}_\text{dimensional}/L_{gridUnit}\) |
omega |
Empty |
[float] non-dimensional rotating speed, radians/nondim-unit-time, = \(\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] non-dimensional 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] non-dimensional thickness of the BET disk. Should be less than the thickness of the refined region of the disk mesh. |
bladeLineChord |
0.0 |
[float] non-dimensional chord to use if performing an unsteady blade-line (as opposed to steady blade-disk) simulation. Recomended value is 1-2x the physical mean aerodynamic chord (MAC) of the blade for blade line analysis. Default of 0.0 is an indication to run blade-disk analysis instead of blade-line. |
initialBladeDirection |
Empty |
[3-array]. Orientation of the first blade in the blade-line model. Must be specified if performing blade-line 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] non-dimensional 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.17. porousMedia (list)#
The porous media model supported by Flow360 is the Darcy-Forchheimer 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 |
[3-array] 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 |
[3-array] 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 |
[3-array] For “zoneType”: “box”, it is the center point of the box |
volumeZone->axes |
REQUIRED |
[[3-array], [3-array]] 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 |
[3-array] 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]] |
[3-array] 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.18. 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 left-hand-rotation 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 right-hand-rotation 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]
]
}
]