Linearly interpolates cell-centered intermediate velocity to mesh faces.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh | |||
| type(flow_mpi_t), | intent(in) | :: | flow | |||
| type(bc_set_t), | intent(in) | :: | bc | |||
| real(kind=rk), | intent(in) | :: | ustar(:,:) | |||
| real(kind=rk), | intent(out) | :: | face_flux(:) |
subroutine compute_predicted_face_flux(mesh, flow, bc, ustar, face_flux) type(mesh_t), intent(in) :: mesh type(flow_mpi_t), intent(in) :: flow type(bc_set_t), intent(in) :: bc real(rk), intent(in) :: ustar(:,:) real(rk), intent(out) :: face_flux(:) integer :: i, f, owner, nb real(rk) :: uf(3), ub(3) face_flux = zero do i = 1, size(flow%owned_faces) f = flow%owned_faces(i) owner = mesh%faces(f)%owner nb = face_effective_neighbor(mesh, bc, f, owner) if (nb > 0) then uf = face_linear_vector(mesh, bc, f, owner, nb, ustar(:, owner), ustar(:, nb)) else call boundary_velocity(mesh, bc, f, ustar(:, owner), ub) uf = ub end if face_flux(f) = dot_product(uf, mesh%faces(f)%normal) * mesh%faces(f)%area end do end subroutine compute_predicted_face_flux