CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

Wave Transmissive and Advective

Register Blogs Community New Posts Updated Threads Search

Like Tree31Likes
  • 12 Post By cosimobianchini
  • 2 Post By giovanni10
  • 5 Post By fportela
  • 12 Post By cosimobianchini

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 26, 2011, 20:16
Post Wave Transmissive and Advective
  #1
Senior Member
 
sahm's Avatar
 
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17
sahm is on a distinguished road
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
sahm is offline   Reply With Quote

Old   April 27, 2011, 04:54
Default
  #2
Member
 
cosimo bianchini
Join Date: Mar 2009
Location: Florence, Tuscany, Italy
Posts: 88
Rep Power: 17
cosimobianchini is on a distinguished road
Send a message via Skype™ to cosimobianchini
That notation is consistent with the notation of the base class: mixedFvPatchField<Type>.
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, fumiya, Hisham and 9 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
cosimobianchini is offline   Reply With Quote

Old   January 24, 2012, 11:33
Default The waveTransmissive BC
  #3
New Member
 
giovanni silva
Join Date: Jul 2010
Posts: 14
Rep Power: 16
giovanni10 is on a distinguished road
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.
giovanni10 is offline   Reply With Quote

Old   January 26, 2013, 04:12
Default
  #4
Senior Member
 
immortality's Avatar
 
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,208
Rep Power: 27
immortality is on a distinguished road
is waveTransmissive same as pressure farfield in fluent?
Then how does advective BC work?
Whats the difference between these three BC's?
immortality is offline   Reply With Quote

Old   August 22, 2013, 16:06
Default
  #5
Member
 
Felipe Alves Portela
Join Date: Dec 2012
Location: FR
Posts: 70
Rep Power: 13
fportela is on a distinguished road
Quote:
Originally Posted by immortality View Post
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
fportela is offline   Reply With Quote

Old   August 23, 2013, 05:18
Default
  #6
Member
 
cosimo bianchini
Join Date: Mar 2009
Location: Florence, Tuscany, Italy
Posts: 88
Rep Power: 17
cosimobianchini is on a distinguished road
Send a message via Skype™ to cosimobianchini
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
cosimobianchini is offline   Reply With Quote

Old   October 10, 2014, 23:03
Default
  #7
New Member
 
Jianzhi Li
Join Date: Jul 2013
Location: Shanghai, China
Posts: 27
Rep Power: 13
epi_c is on a distinguished road
Send a message via Skype™ to epi_c
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<surfaceVectorField, vector>(UName_);

where UName_ being U.
epi_c is offline   Reply With Quote

Old   August 25, 2015, 06:41
Default
  #8
New Member
 
Amir
Join Date: Jul 2011
Location: Shiraz
Posts: 15
Rep Power: 15
infinity is on a distinguished road
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?
infinity is offline   Reply With Quote

Old   November 15, 2015, 06:15
Default
  #9
Senior Member
 
Join Date: Jan 2013
Posts: 372
Rep Power: 14
openfoammaofnepo is on a distinguished road
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 View Post
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
openfoammaofnepo is offline   Reply With Quote

Reply

Tags
boundary condition, openfoam, wavetransmissive


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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On



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