3.2.18. Non-Conformal DG Boundary Condition

3.2.18.1. Conceptual Overview

The non-conformal boundary condition uses the DG approach described by Domino [79] and is currently implemented for turbulence models, continuity, momentum, and heat conduction. The non-conformal boundary condition is applied where you have two domains, A and B, which share a discontinuous interface with individual sidesets, S_A and S_B. The algorithm is applied in two passes, first iterating over all integration points in S_A and finding the matching face in S_B, then by iterating over the integration points in S_B and finding the matching face in S_A. The generic flux of a scalar, \phi at an integration point on S_A is

(3.531)\hat Q^A = \left[\frac{(q_j^A n_j^A - q_j^B n_j^B)}{2}
  + \lambda^A ( \phi^A - \phi^B) \right] A_f^A
  + \dot m^A \frac{(\phi^A + \phi^B)}{2}
  + \eta \frac{|\dot{m}^A|}{2} (\phi^A - \phi^B),

where q_j is the diffusive flux, \dot m is the mass flux, and \lambda is the interior penalty coefficient.

Prior investigations have shown that pressure oscillations can be minimized by using the current integration point normal direction for both diffusive fluxes, so n_j^B = -n_j^A.

The penalty term, \lambda^A is given by

(3.532)\lambda^A = \frac{(\Gamma^A / L^A + \Gamma^B / L^B )}{2},

where \Gamma is the diffusive flux coefficient and L is an element length scale.

The advection coefficient, \eta, defines the degree of upwinding to use. A value of \eta = 1 results in a fully upwind scheme, while \eta = 0 results in a central difference scheme. When using a hybrid approach, this value is calculated locally based on the Peclet number.

3.2.18.1.1. Continuity

The mass flow rate at the non-conformal boundary includes the pressure stabilization terms, as

(3.533)\dot {m}^A = \left[\frac{(\rho u_j^A + a_p^A G_j^A p - a_p^A \frac{\partial p^A}{\partial x_j})n_j^A
  - (\rho u_j^B + a_p^B G_j^B p - a_p^B \frac{\partial p^B}{\partial x_j})n_j^B}{2}
  + \lambda^A ( p^A - p^B)\right] A_f^A.

3.2.18.2. Performance Considerations

There is a computational cost associated with the use of the non-conformal interface. This is largely due to two tasks: a search to match integration points with opposing faces on both non-conformal boundaries, and the resulting changes to the linear system stencil if the interface moves. Preliminary testing has shown that the cost of reinitializing the linear system with a new stencil is at least an order of magnitude greater than the cost of the search. For this reason, the algorithm implemented in Fuego will do an extra search in order to only reinitialize the linear system when the stencil actually changes. The user can expand the search boxes used in the stencil definition in order to reduce the number of linear system reinitializations by setting the “Search Expansion Factor” in the non-conformal boundary condition specification. This number is the approximate diametrical size increase in the stencil in terms of number of elements.

3.2.18.3. Non-Conformal Moving Walls

The non-conformal BC in Fuego supports having a moving surface as one side of the interface. This is implemented by providing a shell block containing nodal displacements on one side of the interface. Then non-conformal search will search for matching faces in opposing blocks and shells. If a shell is found, an appropriate wall boundary condition is applied at the integration point, while if a non-shell element is found the interior algorithms described previously are used.