Pieces of the transverse terms of the incoming acoustic wave at every characteristic face (Yoo & Im 2007; Lodato, Domingo & Vervisch 2008): [u_t . grad p, rho div_tangential u_t, rho u_t . grad u_n], combined by BoundaryData::characteristic_W with the face's sound speed c into T- = u_t . grad p + c^2 rho div_tangential u_t - c rho u_t . grad u_n.
More...
Pieces of the transverse terms of the incoming acoustic wave at every characteristic face (Yoo & Im 2007; Lodato, Domingo & Vervisch 2008): [u_t . grad p, rho div_tangential u_t, rho u_t . grad u_n], combined by BoundaryData::characteristic_W with the face's sound speed c into T- = u_t . grad p + c^2 rho div_tangential u_t - c rho u_t . grad u_n.
The tangential derivatives are a least-squares fit, in the plane of the face, of the states of the cells of the neighboring characteristic faces (char_neighbors), as finite-difference NSCBC differentiates along the boundary. Cell gradients would pick up the normal variation of waves crossing the boundary, and on triangles the grid-scale odd-even pattern of the velocity, as a transverse divergence, which reflects acoustic waves; reconstructed face states (TENO) make the correction unstable.
Faces at an edge of the boundary (sharing a node with a wall or another non-characteristic boundary, char_edge) get no transverse terms. Their fit is one-sided, and its transverse divergence has the wrong sign for a disturbance confined to the edge row: the incoming wave then grows it, against only the weak relaxation K, until the run diverges (docs/design/nscbc.md).