콘텐츠로 이동

8.2.4 navierStokesSolver

8.2.4.1 absoluteTolerance

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

8.2.4.2 relativeTolerance

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 relativeTolerance 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 relativeTolerance is ignored for steady cases.

8.2.4.3 kappaMUSCL

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.

8.2.4.4 orderOfAccuracy

The orderOfAccuracy 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 orderOfAccuracy from 1 to 2 for the child cases.

While adjusting the orderOfAccuracy for the navierStokesSolver, the turbulenceModelSolver should also be adjusted.

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

8.2.4.5 Limiters

If the case is transonic or supersonic, the user should set limitVelocity and limitPressureDensity as TRUE in the Navier Stokes solver parameters section of their input file.

8.2.4.6 linearSolverConfig

linearSolverConfig controls the configuration for the linear solver. It includes information maxIterations which specifies the number of linear iteration performed in each pseudo-step. Typically, maxIterations 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 maxIterations for NS solver is 30.

8.2.4.7 updateJacobianFrequency

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

8.2.4.8 equationEvalFrequency

The default value for equationEvalFrequency is 1, which means that the Navier-Stokes solution is updated every pseudo-step. For loosely-coupled simulations, the equationEvalFrequency 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.

8.2.4.9 numericalDissipationFactor

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.

It is compatible with unsteady simulations and cannot be used with steady simulations. 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.

8.2.4.10 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 timeStepSize can be halved. Additionally, it is advisable to slightly increase the maxPseudoSteps and maxIterations parameters in the linearSolverConfig.

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 orderOfAccuracy 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 ⅓ for kappaMUSCL with the low-dissipation scheme.

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

It is recommended to use a value of 1 for the updateJacobianFrequency 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 rampSteps 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 timeStepSize, the required values for maxPseudoSteps and maxIterations can be reduced to meet the convergence criteria.

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

# 8.2.4 navierStokesSolver

## 8.2.4.1 absoluteTolerance
absoluteTolerance는 정상 케이스의 주요 수렴 지표입니다. 모든 잔차 값에 대해 최소 5단계의 감소가 권장됩니다. absoluteTolerance는 비정상 케이스에도 사용할 수 있지만, 초기 잔차 값은 다른 물리적 단계 사이에서 변경되므로 relativeTolerance보다 의미가 적습니다.

## 8.2.4.2 relativeTolerance
상대 잔차는 현재 pseudoStep의 잔차와 현재 physicalStep 내의 처음 10개 pseudoStep에 있는 최대 잔차의 비율로 정의됩니다. 비정상 케이스를 실행할 때 relativeTolerance는 일반적으로 1e-2 또는 1e-3으로 설정됩니다. 비선형 잔차가 2단계 또는 3단계로 감소하면 솔버는 다음 physicalStep으로 넘어갑니다. relativeTolerance는 정상 케이스에서 무시됩니다.

## 8.2.4.3 kappaMUSCL
기본값 -1은 가장 안정적인 2차 상풍 체계로 이어집니다. 값 0.33은 혼합 상풍/중앙 체계로 이어지며, 이는 소산을 줄이기 위해 저속 아음속 흐름에 권장됩니다. 0.33보다 큰 값은 권장되지 않으며 값 1은 불안정한 체계로 이어집니다.

## 8.2.4.4 orderOfAccuracy
orderOfAccuracy는 솔버가 1차 또는 2차 공간 이산화를 사용할지 여부를 결정합니다. 1차 솔버는 더 빠르고 저렴하며 가장 중요한 것은 소산성이 더 높아 발산 가능성이 적습니다. 그러나 이러한 수치적 소산은 솔루션의 정확도에 상당한 영향을 미칠 수도 있습니다.

회전하는 구성 요소가 있는 비정상 케이스의 유동장을 초기화할 때(예: 슬라이딩 인터페이스에 둘러싸인 로터 시뮬레이션) 사용자는 약 1~2회전 동안 1차 솔버를 실행해야 할 수 있습니다. 유동장이 초기화되면 사용자는 1차 케이스를 포크하고 자식 케이스의 orderOfAccuracy를 1에서 2로 전환할 수 있습니다.

navierStokesSolver의 orderOfAccuracy를 조정하는 동안 turbulenceModelSolver도 조정해야 합니다.

권장되는 timeStepping은 1차 및 2차 케이스에서 약간 다릅니다. 자세한 내용은 Rotational Angle per Step, maxPseudoSteps 및 CFL을 참조하세요.

## 8.2.4.5 Limiters
케이스가 초음속 또는 초음속인 경우 사용자는 입력 파일의 Navier Stokes 솔버 매개변수 섹션에서 limitVelocity 및 limitPressureDensity를 TRUE로 설정해야 합니다.

## 8.2.4.6 linearSolverConfig
linearSolverConfig는 선형 솔버의 구성을 제어합니다. 여기에는 각 가상 단계에서 수행되는 선형 반복 횟수를 지정하는 maxIterations 정보가 포함됩니다. 일반적으로 NS 솔버의 경우 maxIterations는 25~35로 설정됩니다. 선형 솔버 후 선형 잔차 감소 비율이 충분하지 않으면 사용자가 50~55로 늘려야 할 수 있습니다. NS 솔버의 기본 maxIterations는 30입니다.

## 8.2.4.7 updateJacobianFrequency
updateJacobianFrequency의 기본값은 4이며, 이는 NS 방정식을 평가하는 Jacobian이 4개의 가상 단계마다 업데이트됨을 의미합니다. 일부 어려운 사례에서는 updateJacobianFrequency를 4에서 1로 줄이면 도움이 될 수 있지만, 이렇게 하면 NS 솔버가 최대 약 30%까지 느려질 수 있습니다.

## 8.2.4.8 equationEvalFrequency
equationEvalFrequency의 기본값은 1이며, 이는 Navier-Stokes 솔루션이 모든 가상 단계마다 업데이트됨을 의미합니다. 느슨하게 결합된 시뮬레이션의 경우, equationEvalFrequency 값을 변경하여 난류/전환 모델 솔버와 다른 주파수에서 솔루션 업데이트를 도입할 수 있습니다. 이 매개변수에 대한 권장 값은 대부분의 시뮬레이션에서 1입니다.

## 8.2.4.9 numericalDissipationFactor
Flow360의 저소산 Roe 체계는 낮은 마하수 문제를 해결하고 고해상도 파수 범위에서 감소된 수치적 소산을 달성하도록 설계된 Roe 체계의 수정판입니다.

비정상 시뮬레이션과 호환되며 정상 시뮬레이션에는 사용할 수 없습니다. 낮은 마하수와 낮은 레이놀즈수의 흐름 조건에서 더 효과적입니다.

저소산 매개변수는 수치적 플럭스 소산의 감소를 결정합니다. 이 매개변수에 권장되는 값은 0.2입니다. 그러나 더 나은 수렴을 달성하기 위해 0.5 값을 사용할 수 있습니다.

저소산 기능에 대한 솔버 설정 매개변수는 아래에 설명되어 있습니다.

## 8.2.4.10 저소산 방식에 대한 솔버 설정 권장 사항
다음 권장 사항은 저소산 방식으로 시뮬레이션을 실행하는 데 도움이 되도록 제공됩니다.

먼저 정상 또는 비정상 시뮬레이션을 실행한 다음 해당 솔루션에서 저소산 방식으로 시뮬레이션을 시작하는 것이 좋습니다.

저소산 방식으로 시뮬레이션을 실행할 때 비선형 잔차를 2차수 감소시키고 선형 잔차를 5 미만으로 유지하는 것이 좋습니다. 이를 달성하기 위해 timeStepSize를 절반으로 줄일 수 있습니다. 또한 linearSolverConfig에서 maxPseudoSteps 및 maxIterations 매개변수를 약간 늘리는 것이 좋습니다.

저소모 방식은 고충실도 조명에 기여합니다.