{"id":46396,"date":"2021-09-23T13:55:37","date_gmt":"2021-09-23T13:55:37","guid":{"rendered":"https:\/\/www.simscale.com\/?page_id=46396"},"modified":"2025-06-02T15:58:45","modified_gmt":"2025-06-02T15:58:45","slug":"non-orthogonal-correctors","status":"publish","type":"page","link":"https:\/\/www.simscale.com\/docs\/simulation-setup\/numerics\/non-orthogonal-correctors\/","title":{"rendered":"CFD Numerics: Non-Orthogonal Correctors"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The non-orthogonality of a mesh is defined as the angle made by the vector joining two adjacent cell centers across their common face and the face normal.<\/p>\n\n\n\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/frontend-assets.simscale.com\/media\/2021\/07\/orthogonal.png\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"500\" src=\"https:\/\/frontend-assets.simscale.com\/media\/2021\/07\/orthogonal.png\" alt=\"orthogonality between two neighbor cells\" class=\"wp-image-46468\" srcset=\"https:\/\/frontend-assets.simscale.com\/media\/2021\/07\/orthogonal.png 800w, https:\/\/frontend-assets.simscale.com\/media\/2021\/07\/orthogonal-300x188.png 300w, https:\/\/frontend-assets.simscale.com\/media\/2021\/07\/orthogonal-768x480.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 1: A vector perpendicular to the face shared by both cells creates an angle \u03b8 in relation to the vector connecting the cell centroids of cell 1 and neighbor cell 2. This is the Non-Orthogonality angle.\\(^1\\)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">As in real-life problems due to complex models, the numerical mesh is rarely orthogonal. So the non-orthogonality correction must be made for stability and accuracy. On the Scheme level, this is done under Numerics, where the Surface Normal Gradients and laplacian terms are corrected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Meshes with non-orthogonality less than &lt; 65-70, like the skewed cell in Figure 1, where the angle, \u03b8, is sufficiently steep, the SIMPLE (Semi-Implicit Method for Pressure-Linked Equations) solution algorithm is adequate for calculating the fluxes correctly.&nbsp;However, for bad quality meshes, an additional correction to account for mesh non-orthogonality is available in both SIMPLE and PISO algorithms in the standard OpenFOAM solver applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the mesh is bad (non-orthogonality &gt; 75-80), the pressure calculation can be corrected by running several additional iterations of the pressure equation (inner loop). This is schematically represented below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/kKLbVU6sh67P4R-XiNGezUFqRHzSsoa5jQ2_5Vpu090L-rMig1MXI_XCtGgRfoZQvvWCrIIbN2sZJjvVryOKmnpCUQWnxh3-LUM-uu1Ol9A_4OSJxfzUiE18mzOEAGHsNs_Xhd77\" alt=\"non orthogonal corrector \"\/><figcaption class=\"wp-element-caption\">Figure 2: These corrections are the \u201cNon-Orthogonal corrector\u201d loops defined.<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">So for a good mesh, with no need for non-orthogonal correctors, the default SIMPLE algorithm is performed, that includes the following steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Momentum Equation;<\/li>\n\n\n\n<li>Pressure Equation;<\/li>\n\n\n\n<li>Check continuity;<\/li>\n\n\n\n<li>Energy Equation;<\/li>\n\n\n\n<li>Turbulence Equations etc.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In case of a bad mesh, with two non-orthogonal correctors, two extra steps are added when solving the pressure equation during the SIMPLE algorithm, and the sequence is formed as follows:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Momentum Equation<\/li>\n\n\n\n<li>Pressure Equation;\n<ul class=\"wp-block-list\">\n<li>Pressure Equation ( correction 1)<\/li>\n\n\n\n<li>Pressure Equation ( correction 2)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Check continuity;<\/li>\n\n\n\n<li>Energy Equation;<\/li>\n\n\n\n<li>Turbulence Equations etc.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The amount of non-orthogonal correctors that are selected should be corresponding to the mesh for the case being solved. Here are some recommended values for the non-orthogonal correctors based on mesh non-orthogonality:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>if non-orthogonality &lt; 70 \u00a0:  0;<\/li>\n\n\n\n<li>if non-orthogonality > 70\u00a0 :\u00a0 1;<\/li>\n\n\n\n<li>if non-orthogonality > 80\u00a0 :\u00a0 2;<\/li>\n\n\n\n<li>if orthogonality > 85, becomes challenging to converge.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/06\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"394\" height=\"357\" src=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/06\/image-7.png\" alt=\"the non orthogonal correctors are specified according top the quality of the mesh prior to the simulation\" class=\"wp-image-103587\" srcset=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/06\/image-7.png 394w, https:\/\/frontend-assets.simscale.com\/media\/2025\/06\/image-7-300x272.png 300w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 3: The number of non-orthogonal correctors is specified as part of the <em>Numerics <\/em>setup<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class='hw-block hw-references hw-references'>\n    <p class='hw-references__title'>References<\/p>\n    <ul class='hw-references__list'>\n\n        <li><cite><a href=\"https:\/\/www.youtube.com\/watch?v=Dg2PwX6yxYY&#038;t=2s\" target=\"_blank\" rel=\"nofollow noopener\">\u201cFluid Mechanics 101\u201d, Youtube.com, 2018.<\/a><\/cite><\/li>\n    <\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The non-orthogonality of a mesh is defined as the angle made by the vector joining two adjacent cell centers across their...","protected":false},"author":113,"featured_media":46468,"parent":17169,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-documentation.php","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"class_list":["post-46396","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/46396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/comments?post=46396"}],"version-history":[{"count":0,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/46396\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/17169"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/media\/46468"}],"wp:attachment":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/media?parent=46396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}