HowTo Using the WaveTransmissive Boundary condition

From OpenFOAMWiki

Valid versions: OF version 14.png

With OpenFOAM 1.4, the pressureTransmissive boundary condition was dropped in favor of the waveTramissive boundary condition. The pressureTransmissive boundary condition was simple to use and good enough for many applications, but the waveTransmissive boundary condition is more general and more precise.

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. However, within a certain Mach number range, they must impose some sort of constraint (note that at Ma>1, an exit boundary condition should not impose any kind of constraint).

For example, the work by Poinsot and Lele:

Poinsot, T. J., and S. K. Lele, ���?Boundary Conditions for Direct Simulations of Compressible Viscous Reacting Flows,��? J. of Computational Physics, v. 101, pp. 104-129, 1992.

explains how to apply an eigenvalue analysis to separate out decoupled waves and work directly on these waves to either upwind or specify the appropriate condition. Depending on the kind of wave, it may travel at a speed of U, U-a, or U+a, where a is the speed of sound. The sign of the wave speed tells you whether the wave is incoming or outgoing.Additionally the boundary condition is useful when shock waves are formed near the outlet otherwise fixing the pressure at the outlet could result in spurious numerical results if shocks are present near the outlet .

In OF1.4, 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
   }


The boundary condition performs some basic thermodynamic calculations and tries to do the following: create a tendency towards the fieldInf value while setting the instantaneous value to be someting as consistant as possible with the outgoing characteristics. The larger the value of lInf, the further the boundary condition will deviate from the value specified as fieldInf. However, the smaller the value of lInf, the more reflective the boundary tends to be.