# Wave Transmissive and Advective

 User Name Remember Me Password
 Register Blogs Members List Search Today's Posts Mark Forums Read

 LinkBack Thread Tools Display Modes
 April 26, 2011, 19:16 Wave Transmissive and Advective #1 Member     S. Ali H.M. Join Date: Nov 2009 Location: Chicago Posts: 74 Rep Power: 8 Hi Has any body ever tried to understand the source code of WaveTransmissive and Advective Boundary conditions? I have studied the paper by Poinsot and Lele and its relative papers, But i don't understand how the code does the method in the paper, can any body describe the parts of the code to me? specifically I would like to know what are refValue() and valueFraction(). Yours. __________________ SAHM

 April 27, 2011, 03:54 #2 Member   cosimo bianchini Join Date: Mar 2009 Location: Florence, Tuscany, Italy Posts: 88 Rep Power: 8 That notation is consistent with the notation of the base class: mixedFvPatchField. It is substantially a linear combination of a fixedValue and a fixedGradient with coefficient valueFraction. The formula implemented on the boundary is: VF*FV+(1-VF)*FG*delta=VF*refValue+(1-VF)*refGrad VF=valueFraction FV= fixedValue coeffs FG= fixedGrad coeffs Expanding all the terms for the advective and waveTransmissive you will obtain an equation of the form of the NSCE (Eq.9:13 in Poinsot and Lele, "Boundary conditions for direct simulations of compressible viscous flow", J. Computational Physics 101 (104-129), 1992) without transverse and diffusive terms recovering the LODI relations as expressed in Eq.24:28 of the same paper. Furthermore a Linear Relaxation Method similar to Eq.40 is implemented exploiting lInf and fieldInf. In case of inviscid one-dimensional behavior on the boundary you only have to select the correct advection speed for each of uknown you are solving. Hope you find this information useful, Cosimo sahm, Hisham, mgg and 2 others like this. __________________ Cosimo Bianchini Ergon Research s.r.l. Via Panciatichi, 92 50127 Florence - ITALY Tel: +39 055 0763716 Mob: +39 320 9460153 e-mail: cosimo.bianchini@ergonresearch.it URL: www.ergonresearch.it

 January 24, 2012, 11:33 The waveTransmissive BC #3 New Member   giovanni silva Join Date: Jul 2010 Posts: 14 Rep Power: 7 The goal in many wave-dominated flows, such as high Mach number flow, is to have boundary conditions that do not reflect waves. Walls are reflective, but inlets and outlets are generally not supposed to reflect waves. The waveTransmissive BC attempts to reconstruct this kind of non-reflective scheme, but in a simpler fashion without full inter-field coupling. Here is an example of how it is used for a pressure outflow boundary. outflow { type waveTransmissive; value uniform 80000; //important for correct I/O field p; //the name of the field that we are working on gamma 1.4; //the ratio of specific heats phi phiv; //the name of the volumetric flux field ( or if you use the mass flux phi, it will be divided by rho) rho rho; //the name of the density field psi psi; //the name of the field that is the deriv. of density with respect to pressure lInf 0.05; //a measure of how far away the far-field condition should be fieldInf 80000; //the far-field value to be applied to p } immortality and Pirlu like this.

 January 26, 2013, 04:12 #4 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,207 Rep Power: 18 is waveTransmissive same as pressure farfield in fluent? Then how does advective BC work? Whats the difference between these three BC's?

August 22, 2013, 15:06
#5
Member

Felipe Portela
Join Date: Dec 2012
Location: London
Posts: 64
Rep Power: 5
Quote:
 Originally Posted by immortality is waveTransmissive same as pressure farfield in fluent? Then how does advective BC work? Whats the difference between these three BC's?
Hi Eshan,

If you look at the source code of waveTransmissive boundary condition, you see that it calls the advective boundary condition which in turn calls mixed boundary condition.

What I think happens (someone correct me if I'm wrong) is the following: a mixed (Robin) boundary condition is applied to a given variable by means of imposing some fraction (fractionValue in the source code) of fixed value and some fraction (1-fractionValue) of zero gradient. To do this, we need a reference value (to go in the fixed value part) and a value for the fraction which are computed in the advection boundary condition, in turn, for the advection boundary condition to give us an appropriate value for the reference field and the "fraction", it requires an advection velocity, which is computed in waveTransmissive as the velocity of the right running acoustic wave (normal velocity + sound speed).

What I fail to understand is how this is related in any way to the LODI of Poinsot and Lele as mentioned in the wiki. More specifically, the LODI are based on matching characteristic waves across the boundaries, and the boundary conditions are applied in terms of this wave strengths.

Hope this clarifies things a bit

August 23, 2013, 04:18
#6
Member

cosimo bianchini
Join Date: Mar 2009
Location: Florence, Tuscany, Italy
Posts: 88
Rep Power: 8
Well the concept of advective bc is, as you said, to calculate valueFraction, refValue and refGrad in order to respect on the boundary the following constraint:
df/dt+U*df/dn=0
where f is the generic variable we want to solve for, t is time, U is a convection velocity and n is patch normal vector.
Now you see that if you neglect interfield interaction, transverse and diffusive contribution this equation looks like NSE on the boundary (actually 1D Euler equation).
As stated in the wiki
Quote:
 the waveTransmissive BC attempts to reconstruct this kind of non-reflective scheme, but in a simpler fashion without full inter-field coupling.
this is not a full implementation of NSCBC but rather an attempt to make something simple which works well for most of the cases. In fact the problem of reflection on the boundary always exists in case of direct resolution of turbulent flows (and not only) but generally it is not a strict requirement for reflection to be 0 but rather it is sufficient that the amount of energy reflected is negligible compared to self-generated waves within the domain.
Furthermore for realistic cases you have to provide and maintain prescribed mean values, this is achieved by means of Linear Relaxation Method which solve for df/dt+U*df/dn=K(f_inf-f). WaveTransmissibe require the assignement of a reference field value (fieldInf = f_inf) and a distance where the field could be realistically be assumed unperturbed (lInf). From such value the reflectivity coefficient is calculated following K=U/lInf.
Cheers,
Cosimo
__________________
Cosimo Bianchini

Ergon Research s.r.l.
Via Panciatichi, 92
50127 Florence - ITALY
Tel: +39 055 0763716
Mob: +39 320 9460153
e-mail: cosimo.bianchini@ergonresearch.it
URL: www.ergonresearch.it

 October 10, 2014, 22:03 #7 New Member   Francis Lee Join Date: Jul 2013 Location: Jiangsu, China Posts: 20 Rep Power: 4 Hi All, I have a question. Why advectionSpeed() use phip/(rhop*this->patch().magSf()) or phip/this->patch().magSf() but not simply use: return this->patch().template lookupPatchField(UName_); where UName_ being U.

 August 25, 2015, 05:41 #8 New Member   Amir Join Date: Jul 2011 Location: Shiraz Posts: 15 Rep Power: 6 Hi guys I'm trying to change the convective velocity (Un) in advective BC. The default is 1 and I wanna change it to 0.8 any Idea?

November 15, 2015, 06:15
#9
Senior Member

Join Date: Jan 2013
Posts: 252
Rep Power: 6
Dear Cosimo,

I am a little bit curious what is the relation between the following two equations: (one is from the OpenFOAM implementation and one is from the general theory):

Code:
`VF*FV+(1-VF)*FG*delta=VF*refValue+(1-VF)*refGrad`
and
Code:
`df/dt+U*df/dn=0`
I found that the refValue has the time related information, which is shown as follows:

Code:
`            this->refValue() =                                            (                                                field.oldTime().boundaryField()[patchi] + k*fieldInf_                                            )/(1.0 + k);`
But this is not df/dt as all.
Do you have idea about this? Thank you.

Quote:
 Originally Posted by co/simobianchini Well the concept of advective bc is, as you said, to calculate valueFraction, refValue and refGrad in order to respect on the boundary the following constraint: df/dt+U*df/dn=0 where f is the generic variable we want to solve for, t is time, U is a convection velocity and n is patch normal vector. Now you see that if you neglect interfield interaction, transverse and diffusive contribution this equation looks like NSE on the boundary (actually 1D Euler equation). As stated in the wiki this is not a full implementation of NSCBC but rather an attempt to make something simple which works well for most of the cases. In fact the problem of reflection on the boundary always exists in case of direct resolution of turbulent flows (and not only) but generally it is not a strict requirement for reflection to be 0 but rather it is sufficient that the amount of energy reflected is negligible compared to self-generated waves within the domain. Furthermore for realistic cases you have to provide and maintain prescribed mean values, this is achieved by means of Linear Relaxation Method which solve for df/dt+U*df/dn=K(f_inf-f). WaveTransmissibe require the assignement of a reference field value (fieldInf = f_inf) and a distance where the field could be realistically be assumed unperturbed (lInf). From such value the reflectivity coefficient is calculated following K=U/lInf. Cheers, Cosimo

 Tags boundary condition, openfoam, wavetransmissive

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

All times are GMT -4. The time now is 17:53.

 Contact Us - CFD Online - Top