compute_outflow_params Subroutine

public subroutine compute_outflow_params(self, out_vel, flow_rate_diff)

Convective outflow number and inlet/outlet flow-rate imbalance for a case with an x inflow and a convective x outflow (the X_FACE form of field_set_face_from_field). Three slice reductions on the device and two batched MPI_Allreduces; no D2H copy of the full field. Assumes x is not decomposed, as the FFT Poisson solver requires. Without flow_rate_diff only the outflow number is computed.

Type Bound

base_case_t

Arguments

Type IntentOptional Attributes Name
class(base_case_t) :: self
real(kind=dp), intent(out) :: out_vel
real(kind=dp), intent(out), optional :: flow_rate_diff

Calls

proc~~compute_outflow_params~~CallsGraph proc~compute_outflow_params m_base_case::base_case_t%compute_outflow_params mpi_allreduce mpi_allreduce proc~compute_outflow_params->mpi_allreduce proc~get_dims m_mesh::mesh_t%get_dims proc~compute_outflow_params->proc~get_dims proc~get_global_dims m_mesh::mesh_t%get_global_dims proc~compute_outflow_params->proc~get_global_dims proc~slice_max_sum_base m_base_backend::base_backend_t%slice_max_sum_base proc~compute_outflow_params->proc~slice_max_sum_base proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_dims->proc~get_dims_dataloc proc~get_global_dims->proc~get_dims_dataloc proc~abort_run m_logger::abort_run proc~slice_max_sum_base->proc~abort_run interface~str m_logger::str proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized

Called by

proc~~compute_outflow_params~~CalledByGraph proc~compute_outflow_params m_base_case::base_case_t%compute_outflow_params proc~apply_bc_wind_turbine m_case_wind_turbine::case_wind_turbine_t%apply_BC_wind_turbine proc~apply_bc_wind_turbine->proc~compute_outflow_params proc~define_bc_abl m_case_abl::case_abl_t%define_BC_abl proc~define_bc_abl->proc~compute_outflow_params proc~define_bc_cylinder m_case_cylinder::case_cylinder_t%define_BC_cylinder proc~define_bc_cylinder->proc~compute_outflow_params