Dear Community, I would like to know more about how to implement damping-zones in detail. Of course I already found the example with the following structure, but no other information about the mathematical background of this "Absorption-Forcing" and the definitions of RefFields and SpongeCoeffizient : <!-- Define reference fields /--> <FUNCTION NAME="RefFields"> <E VAR="u" VALUE="-y*y+1" /> <E VAR="v" VALUE="0" /> <E VAR="p" VALUE="0" /> </FUNCTION> <FUNCTION NAME="SpongeCoefficient"> <E VAR="u" VALUE="-100*(x>2.5)" /> <E VAR="v" VALUE="-100*(x>2.5)" /> </FUNCTION> </CONDITIONS> <FORCING> <FORCE TYPE="Absorption"> <COEFF> SpongeCoefficient </COEFF> <REFFLOW> RefFields </REFFLOW> </FORCE> </FORCING> With the SpongeCoefficient function I define the space where my sponge zone starts, am I right? So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like u _damp = -100*u*(-y*y+1)? I'm not sure about that and there are no information in the user-guide. Can somebody explain that in more detail? And do I have to care any other modifications? Thanks for any answer! Best regards Fabian
Hi Fabian, What you describe is what I believe is going on. I am however cc’ing Hui since he uses this regularly. Perhaps once this is clarified we can determine what else to add to the user guide to make it clearer. Cheers, Spencer. On 20 Oct 2016, at 15:11, Selbach, Fabian <fabian.selbach@student.uni-siegen.de<mailto:fabian.selbach@student.uni-siegen.de>> wrote: Dear Community, I would like to know more about how to implement damping-zones in detail. Of course I already found the example with the following structure, but no other information about the mathematical background of this "Absorption-Forcing" and the definitions of RefFields and SpongeCoeffizient : <!-- Define reference fields /--> <FUNCTION NAME="RefFields"> <E VAR="u" VALUE="-y*y+1" /> <E VAR="v" VALUE="0" /> <E VAR="p" VALUE="0" /> </FUNCTION> <FUNCTION NAME="SpongeCoefficient"> <E VAR="u" VALUE="-100*(x>2.5)" /> <E VAR="v" VALUE="-100*(x>2.5)" /> </FUNCTION> </CONDITIONS> <FORCING> <FORCE TYPE="Absorption"> <COEFF> SpongeCoefficient </COEFF> <REFFLOW> RefFields </REFFLOW> </FORCE> </FORCING> With the SpongeCoefficient function I define the space where my sponge zone starts, am I right? So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like u _damp = -100*u*(-y*y+1)? I'm not sure about that and there are no information in the user-guide. Can somebody explain that in more detail? And do I have to care any other modifications? Thanks for any answer! Best regards Fabian _______________________________________________ Nektar-users mailing list Nektar-users@imperial.ac.uk<mailto:Nektar-users@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/nektar-users Spencer Sherwin McLaren Racing/Royal Academy of Engineering Research Chair, Professor of Computational Fluid Mechanics, Department of Aeronautics, Imperial College London South Kensington Campus London SW7 2AZ s.sherwin@imperial.ac.uk<mailto:s.sherwin@imperial.ac.uk> +44 (0) 20 759 45052
Hi Fabian, *where my sponge zone starts, am I right? * You need to define the start by using a boolean-expression combination of inequalities which is adopted to identify your sponge region. *So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like **u _damp = -100*u*(-y*y+1)**?* For DNS, you need a reference field and generally, we use base flows (sometimes, mean flows). Then, you can define a friction term (forcing term) as follows: -sigma(X)(u-u_ref) Certainly, the absorbing strength can be a function (polynomial or Rayleigh like expressions) which you can find in some literature. e.g. for 1D, 3125(L-x)(x-x_s)^4/(256(L-x_s)^5) For linear NSEs, it is simpler -sigma(X)u *And do I have to care any other modifications?* No. The simplest way is to modify the definition of sigma(X). Hope it will be helpful. Cheers, Hui On 20/10/16 15:11, Selbach, Fabian wrote:
Dear Community,
I would like to know more about how to implement damping-zones in detail.
Of course I already found the example with the following structure, but no other information about the mathematical background of this "Absorption-Forcing" and the definitions of RefFields and SpongeCoeffizient :
|<!-- Define reference fields /--> <FUNCTION NAME="RefFields"> <E VAR="u" VALUE="-y*y+1" /> <E VAR="v" VALUE="0" /> <E VAR="p" VALUE="0" /> </FUNCTION> <FUNCTION NAME="SpongeCoefficient"> <E VAR="u" VALUE="-100*(x>2.5)" /> <E VAR="v" VALUE="-100*(x>2.5)" /> </FUNCTION> </CONDITIONS> <FORCING> <FORCE TYPE="Absorption"> <COEFF> SpongeCoefficient </COEFF> <REFFLOW> RefFields </REFFLOW> </FORCE> </FORCING>| With the SpongeCoefficient function I define the space where my sponge zone starts, am I right? So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like *u _damp = -100*u*(-y*y+1)*? I'm not sure about that and there are no information in the user-guide. Can somebody explain that in more detail? And do I have to care any other modifications?
Thanks for any answer!
Best regards Fabian
_______________________________________________ Nektar-users mailing list Nektar-users@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/nektar-users
Hi Spencer, Hi Hui, thanks for your answer. Yes, this helps a lot! So I just have to modify the RefFields as my baseflow (in my case even the exact solution) and sigma(x) as my damping strength (SpongeCoefficient). Even in more than one dimension it's enough to define it by x, when there are no changes in the direction of y or z. I think this should be mentioned in more detail in the user-guide. Just only the equation sigma(X)(u-u_ref) and the use of SpongeCoefficient as sigma(X) and RefFields as u_ref should be enough. Best regards Fabian ________________________________ Von: Hui Xu [hui.xu@imperial.ac.uk] Gesendet: Dienstag, 25. Oktober 2016 11:55 An: Selbach, Fabian Cc: nektar-users@imperial.ac.uk Betreff: Re: [Nektar-users] Implementation of damping zones Hi Fabian, where my sponge zone starts, am I right? You need to define the start by using a boolean-expression combination of inequalities which is adopted to identify your sponge region. So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like u _damp = -100*u*(-y*y+1)? For DNS, you need a reference field and generally, we use base flows (sometimes, mean flows). Then, you can define a friction term (forcing term) as follows: -sigma(X)(u-u_ref) Certainly, the absorbing strength can be a function (polynomial or Rayleigh like expressions) which you can find in some literature. e.g. for 1D, 3125(L-x)(x-x_s)^4/(256(L-x_s)^5) For linear NSEs, it is simpler -sigma(X)u And do I have to care any other modifications? No. The simplest way is to modify the definition of sigma(X). Hope it will be helpful. Cheers, Hui On 20/10/16 15:11, Selbach, Fabian wrote: Dear Community, I would like to know more about how to implement damping-zones in detail. Of course I already found the example with the following structure, but no other information about the mathematical background of this "Absorption-Forcing" and the definitions of RefFields and SpongeCoeffizient : <!-- Define reference fields /--> <FUNCTION NAME="RefFields"> <E VAR="u" VALUE="-y*y+1" /> <E VAR="v" VALUE="0" /> <E VAR="p" VALUE="0" /> </FUNCTION> <FUNCTION NAME="SpongeCoefficient"> <E VAR="u" VALUE="-100*(x>2.5)" /> <E VAR="v" VALUE="-100*(x>2.5)" /> </FUNCTION> </CONDITIONS> <FORCING> <FORCE TYPE="Absorption"> <COEFF> SpongeCoefficient </COEFF> <REFFLOW> RefFields </REFFLOW> </FORCE> </FORCING> With the SpongeCoefficient function I define the space where my sponge zone starts, am I right? So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like u _damp = -100*u*(-y*y+1)? I'm not sure about that and there are no information in the user-guide. Can somebody explain that in more detail? And do I have to care any other modifications? Thanks for any answer! Best regards Fabian _______________________________________________ Nektar-users mailing list Nektar-users@imperial.ac.uk<mailto:Nektar-users@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/nektar-users
Hi Fabian, That is really a good suggestion. We will do it soon. Cheers, Hui On 25/10/16 17:06, Selbach, Fabian wrote:
Hi Spencer, Hi Hui,
thanks for your answer. Yes, this helps a lot! So I just have to modify the RefFields as my baseflow (in my case even the exact solution) and sigma(x) as my damping strength (SpongeCoefficient). Even in more than one dimension it's enough to define it by x, when there are no changes in the direction of y or z.
I think this should be mentioned in more detail in the user-guide. Just only the equation *sigma(X)(u-u_ref) *and the use of SpongeCoefficient as sigma(X) and RefFields as u_ref should be enough.
Best regards
Fabian ------------------------------------------------------------------------ *Von:* Hui Xu [hui.xu@imperial.ac.uk] *Gesendet:* Dienstag, 25. Oktober 2016 11:55 *An:* Selbach, Fabian *Cc:* nektar-users@imperial.ac.uk *Betreff:* Re: [Nektar-users] Implementation of damping zones
Hi Fabian,
*where my sponge zone starts, am I right? *
You need to define the start by using a boolean-expression combination of inequalities which is adopted to identify your sponge region.
*So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like **u _damp = -100*u*(-y*y+1)**?*
For DNS, you need a reference field and generally, we use base flows (sometimes, mean flows). Then, you can define a friction term (forcing term) as follows:
-sigma(X)(u-u_ref)
Certainly, the absorbing strength can be a function (polynomial or Rayleigh like expressions) which you can find in some literature.
e.g. for 1D, 3125(L-x)(x-x_s)^4/(256(L-x_s)^5)
For linear NSEs, it is simpler
-sigma(X)u
*And do I have to care any other modifications?*
No. The simplest way is to modify the definition of sigma(X).
Hope it will be helpful.
Cheers, Hui
On 20/10/16 15:11, Selbach, Fabian wrote:
Dear Community,
I would like to know more about how to implement damping-zones in detail.
Of course I already found the example with the following structure, but no other information about the mathematical background of this "Absorption-Forcing" and the definitions of RefFields and SpongeCoeffizient :
|<!-- Define reference fields /--> <FUNCTION NAME="RefFields"> <E VAR="u" VALUE="-y*y+1" /> <E VAR="v" VALUE="0" /> <E VAR="p" VALUE="0" /> </FUNCTION> <FUNCTION NAME="SpongeCoefficient"> <E VAR="u" VALUE="-100*(x>2.5)" /> <E VAR="v" VALUE="-100*(x>2.5)" /> </FUNCTION> </CONDITIONS> <FORCING> <FORCE TYPE="Absorption"> <COEFF> SpongeCoefficient </COEFF> <REFFLOW> RefFields </REFFLOW> </FORCE> </FORCING>| With the SpongeCoefficient function I define the space where my sponge zone starts, am I right? So in this example it starts from x>2.5, but what about the -100? Is it some kind of function like *u _damp = -100*u*(-y*y+1)*? I'm not sure about that and there are no information in the user-guide. Can somebody explain that in more detail? And do I have to care any other modifications?
Thanks for any answer!
Best regards Fabian
_______________________________________________ Nektar-users mailing list Nektar-users@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/nektar-users
participants (3)
- 
                
                Hui Xu
- 
                
                Selbach, Fabian
- 
                
                Sherwin, Spencer J