ENH: New schemes for nonorthogonal meshes
Summary
Aim:
Improvement of numerical stability of nonorthogonal mesh simulations only via changes in the diffusion operator handling.
(Theory) What is face nonorthogonality:
 "The angle between the centroid vector and the unit normal vector is the orthogonality angle." (Wimhurst, 2019)
(Theory) Why is face nonorthogonality important:
 Can affect the discrete diffusion operator:
 Numerical stability (hence cost)
 Level of errors
 Numerical stability
 Larger explicit treatment > less stability
 Level of errors
 Larger corrections > larger truncation errors
 Cannot be reduced by mesh refinement
(Theory) What is the technical challenge in face nonorthogonality:
 "The difficulty is to evaluate the dot product of the normal vector and the velocity gradient on the cell face." (Wimhurst, 2019)
(Theory) Treatments in OpenFOAM:
 Explicit correction by using an overrelaxedtype unitnormal vector decomposition
Resolved bugs
N/A
Methodology
Problem definition:
 Convergence rate
 Explicit component can become limiting factor for numerical stability
 During initial iterations, especially for steadystate runs or when starting from uniform fields in transient runs
 Yet its removal reduces accuracy
 Convergence order
 Nonorthogonality treatments are neglected at boundaries (except cyclic conditions)
 Even minor nonorthogonality on patches reduce the convergence order for cases where Dirichlet/Neumann boundary conditions are applied. (Noriega et al., 2018)
A solution: Field relaxation
 Field relaxation for explicit nonorthogonality components
 Underrelaxation for numerical stability
 Overrelaxation for numerical cost
 Implementation: a Laplacian scheme
 Based on an idea from
nextFoam
 Named
relaxedNonOrthoLaplacian
 Based on an idea from
 Implementation: a surfacenormal gradient scheme:
 Named
relaxedSnGrad
 Named
Test case:
 The DNS study of a smoothwall plane channel flow by (Moser et al., 1999) where the friction Reynolds number of the flow is ReTau=395.
Metrics:
 Numerical stability
 Simulation crashes or not
 Prediction fidelity
 Flow field predictions vs DNS statistics
Control variable:
Results
Discussion
What happened?
 New schemes
 Did not dampen initial residuals unlike nextFoam observations (at least for this particular case)
 Improved prediction fidelity for above 50 degrees
 Prevented simulations crashing after a certain nonorthogonality angle (above 50)
 Numerical cost
 For below50degree nonorthogonality cases, the runtime remained similar to that of the base
 For above50degree cases, the numerical cost seems to be reduced
What do the results mean in practise? (How will it change in how we do things?)
 New schemes may be used
 to avoid any simulation crashes due to nonorthogonality treatments
 without affecting the fidelity of numerical predictions
 without affecting numerical cost estimations
 more tests are needed
 to avoid any simulation crashes due to nonorthogonality treatments
Risks
 No changes in existing output.
 No changes in existing user input.
Constraints
 No finitearea numerics
 Needs extensive tests to assume safe for singlephase, multiphase and overset finitevolume applications
 No boundary treatments for Dirichlet and Neumann conditions
Tests

Compilation (incl. submodules): 
linux64ClangDPInt32Opt
(clang11) 
linux64GccDPInt32Opt

linux64GccSPDPInt64Debug


Alltest: No change in output with respect to the develop HEAD + no error
References
 Wimhurst, A. (2019). Mesh NonOrthogonality. https://tinyurl.com/49b55tzw
 Wimhurst, A. (2019). Mesh NonOrthogonality 2: The OverRelaxed Approach https://tinyurl.com/234h7hbt
 Noriega et al. (2018). A casestudy in opensource CFD code verification, Part I: Convergence rate loss diagnosis. DOI: 10.1016/j.matcom.2017.12.002