|
[Sponsors] |
scale similarity models and mixed models in OpenFOAM |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
September 1, 2020, 04:52 |
scale similarity models and mixed models in OpenFOAM
|
#1 |
Member
Anonymous
Join Date: Aug 2016
Posts: 75
Rep Power: 10 |
HI all,
If anyone has had experience with implementation of dynamic mixed models in FOAM, please respond. I recently stumbled across such implementation of dynamic mixed smagorinksy by LEMOS, https://github.com/LEMOS-Rostock/LEM...amicMixedModel In the .C file, the authors have defined two filters- testFIlter_ and gridFilter_. If you look closely, you won't find any difference between the definitions of these two filters. Both are explicit filters. While we know that LES in FOAM is implicitly filtered LES, howcome the authors could be using an explicitly defined filter 'gridFilter_' to compute the quantities at the grid-level. Any help/discussion is aprreciated. Thanks. |
|
September 1, 2020, 17:54 |
|
#2 |
Senior Member
Join Date: Aug 2015
Posts: 494
Rep Power: 15 |
For it to work the test filter is larger than the grid filter (and still in the inertial range). Presumably the filter size ratio is set in the case itself, as opposed to within the model (and the grid filter would be set to be the same size as the grid).
Caelan |
|
September 1, 2020, 21:36 |
|
#3 | |
Member
Anonymous
Join Date: Aug 2016
Posts: 75
Rep Power: 10 |
Quote:
I think what they are doing is essentially applying the test filter twice, which is pretty much justifiable. Essentially to write, for the second bar filter (which is supposed to represent the grid filter), they may be using a filter of larger width. The second bar above the velocity components in the equation represents a second filter at a scale γΔ, where γ ≥ 1. The original model by Bardina used γ =1 while Liu et al. used γ = 2. It is not wrong to do it but the authors have not mentioned it clearly in the model. |
||
September 1, 2020, 21:57 |
|
#4 |
Senior Member
Join Date: Aug 2015
Posts: 494
Rep Power: 15 |
In my experience the test filter should be about double the actual/grid filter. And taking a look at their code I agree that the filter is applied twice to obtain the test-filtered velocity field. So this appears to implicitly incorporate the factor of 2 for (at least) the simple filter as you've noted. As for the grid-filter scale that's a different problem, but it's worth noting they have a variety of custom filters also in the repo.
Caelan |
|
September 2, 2020, 10:21 |
|
#5 | |
Senior Member
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 16 |
Quote:
HTML Code:
https://www.mdpi.com/2311-5521/4/3/171 SIDE NOTE: the convolution model used in the LEMOS package (last time I checked, 4 years ago) is mathematically inconsistent (the Bardina model), in the sense that is not exactly a deconvolution but a truncated taylor expansion. |
||
September 2, 2020, 21:21 |
|
#6 | |
Member
Anonymous
Join Date: Aug 2016
Posts: 75
Rep Power: 10 |
Quote:
If you have the source code of your mixed lagragian model handy, it would be great if you share it. Any insights are appreciated. Thank you! |
||
September 3, 2020, 05:02 |
|
#7 |
Senior Member
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 16 |
Quote:
That being said, you need to apply a grid-level filter ONCE, to the residual stress tensor's terms. |
|
September 3, 2020, 05:21 |
|
#8 | |
Member
Anonymous
Join Date: Aug 2016
Posts: 75
Rep Power: 10 |
Quote:
When you say, I need to apply the grid-filter once to the tensors' terms, how is that possible because we don't have an explicit grid-filter. The top-hat filter that we have is an explicit (test) filter of twice the width of the grid size. For clarity, a term like can be implemented as Code:
filter_( U() * U() ) Now, if we have a term like (which is one of the terms present in the scale-similar part of your mixed model at the grid level), how do we go about implementing it in FOAM? |
||
September 3, 2020, 06:25 |
|
#9 |
Senior Member
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 16 |
Quote:
Nothing stops you to use/implement a filter with a kernel size equal to the grid size. Depending on the filter, this size may need to be defined explicitely. The simpleFilter, as an example, is only valid as a grid filter, not as test filter, because the kernel (the ball) is direct function of the size of the filter; that means, the bigger the filter size more "points" have to be used for averaging. The germano type of filters may offer a better approach to filtering in hexahedral grids. 2. Exactly the same as you present in your CODE, but in each case you have to use a different filter: Code:
gridFilter_( U() * U() ) Code:
testFilter_( U() * U() ) Is up to the user to define the correct filter using dictionaries. About the code: I share the code on a P2P basis, I don't fully release it to the general public. PM me, and we may discuss it further. |
|
September 3, 2020, 19:56 |
|
#10 | |
Member
Anonymous
Join Date: Aug 2016
Posts: 75
Rep Power: 10 |
Quote:
Thank you for your responses. I have messaged you. Thanks |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Mixed models in LES | Pradeep | Main CFD Forum | 4 | March 28, 2003 05:56 |