compute_boundary_ghost Subroutine

private subroutine compute_boundary_ghost(state, bc_type, side, q_wall, q_penult, q_ghost, per_cell_pattern, no_write)

Compute one boundary ghost-state vector from a boundary cell. Caller decides whether to broadcast the value across all halo cells or to use the per-cell mirror pattern (signalled by @p per_cell_pattern).

                           per halo index.
                           (dirichlet/inflow/supersonic_inlet, or
                           supersonic-inflow guards in nrbc paths).

Arguments

Type IntentOptional Attributes Name
type(solver_state_t), intent(inout) :: state

Solver instance (reads gam, BC config, etc.)

character(len=*), intent(in) :: bc_type

Boundary condition type string.

character(len=1), intent(in) :: side

Which boundary: 'L' (left) or 'R' (right).

real(kind=wp), intent(in) :: q_wall(3)
real(kind=wp), intent(in) :: q_penult(3)
real(kind=wp), intent(out) :: q_ghost(3)
logical, intent(out) :: per_cell_pattern

.true. for 'reflecting': caller must mirror

logical, intent(out) :: no_write

.true. for 'reflecting': caller must mirror .true. when the halo should not be touched