[CFD] Mesh Non-Orthogonality 2: The Over-Relaxed Approach

  Рет қаралды 8,843

Fluid Mechanics 101

Fluid Mechanics 101

Күн бұрын

Part 2 of my discussion of mesh non-orthogonality. Non-orthogonality is a key metric that is required by all mainstream CFD codes (Fluent, OpenFOAM, CFX, Saturne, Star) to calculate an accurate solution on skewed meshes. The following topics are covered:
1) 0:54 Why is an explicit non-orthogonal corrector required in CFD?
2) 18:15 What are the different methods to decompose the face unit normal vector?
3) 29:47 Which decomposition method gives the best performance?
#nonOrthogonality #fluidmechanics101 #cfd
============================================
A useful reference:
1) H. Jasak
Error estimation in the finite volume method with application to fluid flows
PhD Thesis, Imperial College London, 1996
powerlab.fsb.hr/ped/kturbo/Ope...
============================================
Want to learn more?
============================================
Grab a copy of my CFD Fundamentals Course (for beginners):
www.udemy.com/course/computat...
Learn how to write your own CFD code in MATLAB and python (for intermediates):
dr-aidan-wimshurst-s-school.t...
Learn how I draw my figures and diagrams in Inkscape (for everyone):
dr-aidan-wimshurst-s-school.t...
============================================
Did you like the video?
============================================
Download the lecture slides from my website:
www.fluidmechanics101.com/pag...
Buy me a coffee to say thanks:
www.buymeacoffee.com/NKEZrhvg0
Support the channel on Patreon (and get useful extras for your CFD studies):
/ fluidmechanics101
============================================
Donations:
============================================
1) PayPal
www.paypal.me/fluidmechanics101
==================================
Disclaimer
==================================
The methods, algorithms, equations, formulae, diagrams and explanations in this talk are for educational and demonstrative purposes only. They should never be used to analyse, design, accredit or validate real scientific / engineering / mathematical structures and flow systems. For such applications, appropriate trained, qualified and accredited (SQEP) engineers / scientists should be consulted along with the appropriate documentation, procedures and engineering standards. Furthermore, the information contained within this talk has not been verified, peer reviewed or checked in any way and is likely to contain several errors. It is therefore not appropriate to use this talk itself (or any of the algorithms, equations, formulae, diagrams and explanations contained within this talk) as an academic or technical reference. The reader should consult the original references and follow the verification and validation processes adopted by your company / institution when carrying out engineering calculations and analyses. Fluid Mechanics 101 and Dr. Aidan Wimshurst are not accountable or liable in any form for the use or misuse of the information contained in this talk beyond the specific educational and demonstrative purposes for which it was intended.

Пікірлер: 48
@maxwellgomes9372
@maxwellgomes9372 2 жыл бұрын
Very clear explanation again! Thanks a lot Aidan, I hope to see more and more lectures like this!
@abdbot2509
@abdbot2509 Жыл бұрын
Well done bro, u should be proud of ur self, nice work mate.
@engineeringarts4509
@engineeringarts4509 4 жыл бұрын
Thanks for your clear explanation. May I seek your clarification on a question: The equation (10) is applicable to pure orthogonal mesh, which is easy to understand. For nonorthogonal mesh, The equation (10) can be simply modified with the correction of adding cos(theta). However, the theta increases (and the cos(theta) decreases) with nonorthogonality. Higher nonorthogonality thus reduces the diagonal dominance of the matrix, in the subsequent cfd numerics calculation. This is the reason why it needs to split into the orthogonal and nonorthogonal terms, for better numerical solving.
@wolfgang865
@wolfgang865 2 жыл бұрын
Awesome. This is the explanation I was looking for. With my handwritten discretization I did not get WHY this is necessary since the with "correction" of the normal vector I achieved the same results between orthogonal und skewed meshes .... But why does it reduce the diagonal dominance? In my discretized heat equation it does not change the diagonal dominance
@wolfgang865
@wolfgang865 2 жыл бұрын
Is it only the case for the NS-equation? Since it decrease somehow the influence of the viscosity?
@fluidmechanics101
@fluidmechanics101 2 жыл бұрын
It has taken me a while to work this out but there is a good explanation in the book 'Notes on Computational Fluid dynamics: General principles' by Greenshields and Weller (2022) which has just been published. In their description you can see where the cos(theta) is introduced. This is a choice they make (and does not happen automatically) which is probably why your heat equation doesn't seem to have the cos(theta) which affects the diagonal dominance
@wolfgang865
@wolfgang865 2 жыл бұрын
@@fluidmechanics101 Many thanks for your reply! I found the mentioned section on page 74 in the book. For me, the implicit treated part of the equation (3.7), which is corrected by 1/cos(theta) already gives the correct flux across the face. I do not get why it is necessary to add an explicit treated part in order to replace the gradient.
@zadnipryaniy
@zadnipryaniy 3 жыл бұрын
Thank you!
@sarathy319
@sarathy319 4 жыл бұрын
Expecting a video for Heat source Modelling (In a way similiar to what you've have done for porous zone modelling) -
@shreyasmurali4616
@shreyasmurali4616 4 ай бұрын
Hello Dr.Aidan. Excellent video as always,but I have a doubt. The equation 17 equates 2 vectors,which implies the LHS and RHS of the equation should be equal magnitude wise and direction wise,but we can clearly see that n1 and nf have different directions. So, isn't the equation true if we merely replace the the vectors n1 and nf with their corresponding magnitudes??
@ibragim_on
@ibragim_on 4 жыл бұрын
Kool!!
@Contarius9
@Contarius9 4 жыл бұрын
Are you going to make a 4th volume to your CFD book series focusing on more advanced techniques? I really enjoyed your presentation in the three books and would really like to see more.
@fluidmechanics101
@fluidmechanics101 4 жыл бұрын
Yes! I feel like the most important basics have been covered, so now to move on to some more advanced topics 😄
@Contarius9
@Contarius9 4 жыл бұрын
@@fluidmechanics101 Ah cool, was wondering since you already touched on quite a few of them in your videos and I would definitely get future volumes ;)
@RatDota
@RatDota 7 ай бұрын
I feel like I'm missing something here, but when computing the term gradT dot n_f, why can't we just evaluate the actual dot product by including in the cos(theta) term so that the entire calculation is done implicitly? This term is just a constant for each cell and doesn't change for a static mesh, no different to the |d_PN| term.
@mechanicalengineeringpage7548
@mechanicalengineeringpage7548 4 жыл бұрын
Tnx
@manuelo1738
@manuelo1738 3 жыл бұрын
Hello, Thank you very much for your videos! A suggestion, in line with this mesh related metrics videos, would you consider doing one on mesh skewness?
@fluidmechanics101
@fluidmechanics101 3 жыл бұрын
Yep, good idea! Generally I would try and use orthogonality if you can, as this is a better metric for assessing the mesh. The recent versions of ANSYS Fluent have shifted over to reporting 'Orthogonality quality' rather than 'skewness', so this will probably be more useful for you anyway 🙂 Roughly speaking, you can think of skewness as the angle between the faces of the cell, which is similar to orthogonality but not the same
@DGSEM
@DGSEM 4 жыл бұрын
Dear Aidan, i think transport equation is missleading in your first slide. It should be called "convection-diffusion equation". I am quite sure you known what the difference between transport (advection) and convection is and why it is important to distinguish them. Nice videos! Regards
@fluidmechanics101
@fluidmechanics101 4 жыл бұрын
Yes, i think you are right. Convection-Diffusion is a better way to describe them, as these are the physical processes being modelled. ‘Transport equation’ implies that advection is the dominant mechanism, which may not always be true. I suppose i tend to use ‘transport equation’, as many theses/CFD user manuals refer to the transport of a generic scalar variable and so ‘transport equation’ tends to be used. Both seem to be fine for our purposes, so go with whichever you prefer i suppose 🙃
@shreyasmurali4616
@shreyasmurali4616 4 ай бұрын
Since highly skewed meshes only impact the diffusion term,is it okay to use highly skewed meshes in the case of simulating inviscid flows(since the diffusion term anyway becomes 0 in this case)??
@henrydearn6550
@henrydearn6550 3 жыл бұрын
Thanks for this video, I found the explanation to be far better than the textbooks I have read, however, I do have one question about notation: all of nf, n1 and n2 are given hats, but it is only nf that is a unit vector. Perhaps it would be clearer if n1 and n2 were not hatted and just bold? Otherwise it may be assumed that their magnitude is 1. Regardless, this video was very helpful so thanks again.
@fluidmechanics101
@fluidmechanics101 3 жыл бұрын
Thanks for the suggestions. I think you are right, I could change the notation to make things a bit clearer
@jacks.554
@jacks.554 4 жыл бұрын
Hello Aidan, Would you know where the three mentioned approaches (including the number of non-ortho correctors) can be defined in Ansys Fluent, please? Would you also know where the number of non-ortho correctors can be found? Thx a lot for your effort!
@fluidmechanics101
@fluidmechanics101 4 жыл бұрын
Ah yes, you can change the number of non orthogonal correctors but i think you have to look for it in advanced options? Or something similar. Usually the ANSYS defaults are pretty good and you shouldnt need to change them. The carefully tuned default values are actually what you are paying for when you use expensive commerical software ... 🙃
@mohamedemara6906
@mohamedemara6906 Жыл бұрын
Hi Aiden, Very clear explanation, thank you so much. I have a question about the non-orthogonal correction process in general. In our discretized linear system Ax = b, the non-orthogonal correction only affects the b vector, so suppose we're running a Gauss-Seidel loop to solve the system, should we apply the non-orthogonal correction in each loop? or is there a rule of thumb for every n iterations? Because I did some experiments and the correction process makes my solver quite slow. Thanks again!
@fluidmechanics101
@fluidmechanics101 Жыл бұрын
The Gauss seidel loop is generally called the 'inner loop' as these are iterations over a fixed equation. The non orthogonal correctors form the 'outer loop', where the equation itself is updated. Based on this, I can deduce that normally CFD codes do Gauss seidel loops until the matrix system is converged, then apply a non orthogonal corrector to update the B matrix, and then iterate until the system is converged again. Maybe this will give you some speed up? Your observation is definitely correct. Non orthogonal correctors really slow down the solution, which is why CFD codes only apply them if the mesh is really bad!
@mohamedemara6906
@mohamedemara6906 Жыл бұрын
@@fluidmechanics101 Thank you so much
@thejavarma9
@thejavarma9 4 жыл бұрын
Hi Dr. Aidan, As always, found it very interesting and useful. :) Could you clarify this for me? when we're using Method 2: Rotation approach; are we decomposing the unit normal vector (nf) into two components?? In that case, from equation 14 and equation 21; we don't have any Non-orthogonal corrector term. we simply calculate only left-handed term using 'nf' (converting scalar to vector). So, we are not accounting for Non-orthogonality... !! Is that IT!!??
@fluidmechanics101
@fluidmechanics101 4 жыл бұрын
Close! Remember that n2 = nf -n1 is a vector subtraction, so n2 is not equal to zero!
@shubhamsangodkar6992
@shubhamsangodkar6992 4 жыл бұрын
@@fluidmechanics101 I think the question arose because in the slides , during method 2 explanation there was no mention of the the n2 unit vector. But now as i understand it , its there and calculated as you stated above
@martinsaravia
@martinsaravia 3 жыл бұрын
Hi Aidan, excellent lecture, as always. Can you tell how do you type latex in Inkscape? I am working a non-orthogonal correction of a magnetostatics problem and I have switched from Tikz to Inkscape for figures. I have tried the TexText utility but I cannot re-edit text. Thanks !
@fluidmechanics101
@fluidmechanics101 3 жыл бұрын
Hi Martin, the trick I use is to to use 'Online Latex Equation Generator' (you can find it with a quick Google search) to create the equation that you want as a PDF image. Then import the PDF into inkscape and you will have the equation you want 👍
@martinsaravia
@martinsaravia 3 жыл бұрын
@@fluidmechanics101 Great Aidan! Thank you, I have just figured out how to re-edit Latex with Inkscape using the TexText extension. Thanks you!
@nikolaikornev2741
@nikolaikornev2741 2 жыл бұрын
Thank you for your brilliant lectures. I suppose the equation (18) is not quite correct because n_1 has then the same direction as n_f, becuas you multiple the vector n_f with the scalar. cos Theta should e multiplied with d/abs(d)
@noheroicsinto
@noheroicsinto 2 жыл бұрын
Thanks for the great lecture! I have a question about equation 19 on right angle triangle method. If n2 is chosen to be orthogonal with n1, and n1 is parallel to grad T, shouldn't be grad p • n2 zero? How does size of n2 effects accuracy?
@fluidmechanics101
@fluidmechanics101 2 жыл бұрын
1) yes! 2) it affects the speed of convergence, rather than the accuracy of the final solution. I would check out Hrvoje Jasaks thesis for a good discussion of this (Error estimation in the finite volume method with application to fluid flows)
@user-qt2fy9rd3c
@user-qt2fy9rd3c Жыл бұрын
I hope the answer is n1 is could parallel to d_PN but not parallel to gradT, so gradT dot n2 is not zero. :)
@nuhajuneidi2455
@nuhajuneidi2455 3 ай бұрын
which method does ANSYS Fluent use to go over the non orthogonality? and can users specify a certain approach ?
@fluidmechanics101
@fluidmechanics101 3 ай бұрын
I don't think you can choose in Fluent. Fluent also calls it 'skewness correction' rather than non orthogonality in the user manual
@mohamedyahya8131
@mohamedyahya8131 4 жыл бұрын
It's a favour from you to explain the basic of Proper Orthogonal Decomposition (POD) in a video by using Matlab codes >>>>>>Thanks
@fluidmechanics101
@fluidmechanics101 4 жыл бұрын
POD is fairly niche, so i probably won’t be making any videos on it. Im sure you can find some good resources with a quick google search though 👍
@kerburettor2890
@kerburettor2890 3 жыл бұрын
1:42 Just a small correction: "nabla dot" is the divergence operator, not the gradient operator, but I think your tongue slipped a bit there :p
@fluidmechanics101
@fluidmechanics101 3 жыл бұрын
Yep, slip of the tongue 😄
@JackSmith-xb5op
@JackSmith-xb5op 4 жыл бұрын
This is probably a dumb question but, why does the correction term have to be treated explicitly? We want the dot product of grad(T) at the face and the face normal vector right? The gradient of T at any cell can be computed from a summation of the product of T and the face areas, using the divergence theorem. Once we have grad(T) at two neighboring cells, the gradient at the face between them can be interpolated for. Now to calculate the dot product of grad(T) and the unit face normal vector, can't we just multiply grad(T) by the cos of the angle between the two? Why would this not work?
@sandeepsharma-tr5mc
@sandeepsharma-tr5mc 2 жыл бұрын
Please dr. , let me know why do we use explicit technique for non orthogonal term..
@nikolaikornev2741
@nikolaikornev2741 2 жыл бұрын
@@sandeepsharma-tr5mc I think because you will increase the computational molecule in this case. You need many neighbors to calculate gradient
[CFD] Rhie & Chow Interpolation (Part 1): Chequerboard Oscillations
45:54
Fluid Mechanics 101
Рет қаралды 17 М.
[CFD] Calculating the Cell Volume
28:31
Fluid Mechanics 101
Рет қаралды 14 М.
Sigma girl and soap bubbles by Secret Vlog
00:37
Secret Vlog
Рет қаралды 15 МЛН
Я не голоден
01:00
К-Media
Рет қаралды 9 МЛН
[CFD] What is Mesh Non-Orthogonality?
32:27
Fluid Mechanics 101
Рет қаралды 27 М.
[CFD] The k-omega Turbulence Model
25:28
Fluid Mechanics 101
Рет қаралды 68 М.
[CFD] Green-Gauss Node-Based Gradient Schemes
26:34
Fluid Mechanics 101
Рет қаралды 8 М.
[CFD] Conjugate Gradient for CFD (Part 2): Optimum Distance and Directions
34:26
[CFD] Meshing Guide for Pipes and Ducts (O-grid, hexcore, polyhedra)
53:40
Fluid Mechanics 101
Рет қаралды 17 М.
What's a Tensor?
12:21
Dan Fleisch
Рет қаралды 3,6 МЛН
[CFD] Green-Gauss Cell-Based and Node-Based Gradient Schemes
30:21
Fluid Mechanics 101
Рет қаралды 22 М.
[CFD] The k - epsilon Turbulence Model
25:49
Fluid Mechanics 101
Рет қаралды 150 М.
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 7 МЛН
Мой новый мега монитор!🤯
1:00
Корнеич
Рет қаралды 3,6 МЛН
Это - iPhone 16!
16:29
Rozetked
Рет қаралды 453 М.