|
[Sponsors] |
April 26, 2011, 20:16 |
Wave Transmissive and Advective
|
#1 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
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, 04:54 |
|
#2 |
Member
|
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
__________________
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: 16 |
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 } |
|
January 26, 2013, 04:12 |
|
#4 |
Senior Member
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,208
Rep Power: 27 |
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, 16:06 |
|
#5 | |
Member
Felipe Alves Portela
Join Date: Dec 2012
Location: FR
Posts: 70
Rep Power: 14 |
Quote:
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, 05:18 |
|
#6 | |
Member
|
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:
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, 23:03 |
|
#7 |
New Member
|
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. |
|
August 25, 2015, 06:41 |
|
#8 |
New Member
Amir
Join Date: Jul 2011
Location: Shiraz
Posts: 15
Rep Power: 15 |
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: 372
Rep Power: 14 |
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 Code:
df/dt+U*df/dn=0 Code:
this->refValue() = ( field.oldTime().boundaryField()[patchi] + k*fieldInf_ )/(1.0 + k); Do you have idea about this? Thank you. Quote:
|
||
Tags |
boundary condition, openfoam, wavetransmissive |
|
|