transeq_species_cuda Subroutine

public subroutine transeq_species_cuda(self, dspec, uvw, spec, nu, dirps, sync)

Compute the convection and diffusion for the given field in the given direction. Halo exchange for the given field is necessary When sync is true, halo exchange of momentum is necessary

Type Bound

cuda_backend_t

Arguments

Type IntentOptional Attributes Name
class(cuda_backend_t) :: self
class(field_t), intent(inout) :: dspec
class(field_t), intent(in) :: uvw
class(field_t), intent(in) :: spec
real(kind=dp), intent(in) :: nu
type(dirps_t), intent(in) :: dirps
logical, intent(in) :: sync

Calls

proc~~transeq_species_cuda~~CallsGraph proc~transeq_species_cuda m_cuda_backend::cuda_backend_t%transeq_species_cuda none~get_n m_mesh::mesh_t%get_n proc~transeq_species_cuda->none~get_n proc~copy_into_buffers~3 m_cuda_backend::copy_into_buffers proc~transeq_species_cuda->proc~copy_into_buffers~3 proc~exec_dist_transeq_3fused~2 m_cuda_exec_dist::exec_dist_transeq_3fused proc~transeq_species_cuda->proc~exec_dist_transeq_3fused~2 proc~get_block m_allocator::allocator_t%get_block proc~transeq_species_cuda->proc~get_block proc~get_n_groups m_allocator::allocator_t%get_n_groups proc~transeq_species_cuda->proc~get_n_groups proc~release_block m_allocator::allocator_t%release_block proc~transeq_species_cuda->proc~release_block proc~resolve_field_t~2 m_cuda_backend::resolve_field_t proc~transeq_species_cuda->proc~resolve_field_t~2 proc~sendrecv_fields~2 m_cuda_sendrecv::sendrecv_fields proc~transeq_species_cuda->proc~sendrecv_fields~2 proc~set_data_loc m_field::field_t%set_data_loc proc~transeq_species_cuda->proc~set_data_loc proc~get_n_dir m_mesh::mesh_t%get_n_dir none~get_n->proc~get_n_dir proc~get_n_phi m_mesh::mesh_t%get_n_phi none~get_n->proc~get_n_phi dim3 dim3 proc~copy_into_buffers~3->dim3 proc~buffer_copy~2 m_cuda_kernels_fieldops::buffer_copy proc~copy_into_buffers~3->proc~buffer_copy~2 proc~sendrecv_3fields m_cuda_sendrecv::sendrecv_3fields proc~exec_dist_transeq_3fused~2->proc~sendrecv_3fields proc~transeq_3fused_dist~2 m_cuda_kernels_dist::transeq_3fused_dist proc~exec_dist_transeq_3fused~2->proc~transeq_3fused_dist~2 proc~transeq_3fused_subs~2 m_cuda_kernels_dist::transeq_3fused_subs proc~exec_dist_transeq_3fused~2->proc~transeq_3fused_subs~2 proc~create_block m_allocator::allocator_t%create_block proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape cudastreamsynchronize cudastreamsynchronize proc~sendrecv_fields~2->cudastreamsynchronize mpi_irecv mpi_irecv proc~sendrecv_fields~2->mpi_irecv mpi_isend mpi_isend proc~sendrecv_fields~2->mpi_isend mpi_waitall mpi_waitall proc~sendrecv_fields~2->mpi_waitall proc~check_cuda m_cuda_errors::check_cuda proc~sendrecv_fields~2->proc~check_cuda proc~check_mpi m_logger::check_mpi proc~sendrecv_fields~2->proc~check_mpi proc~copy_halo m_cuda_sendrecv::copy_halo proc~sendrecv_fields~2->proc~copy_halo cudageterrorstring cudageterrorstring proc~check_cuda->cudageterrorstring interface~str m_logger::str proc~check_cuda->interface~str proc~abort_run m_logger::abort_run proc~check_cuda->proc~abort_run proc~check_mpi->interface~str mpi_error_string mpi_error_string proc~check_mpi->mpi_error_string proc~check_mpi->proc~abort_run proc~copy_halo->proc~abort_run proc~get_n_phi->none~get_n proc~sendrecv_3fields->cudastreamsynchronize proc~sendrecv_3fields->mpi_irecv proc~sendrecv_3fields->mpi_isend proc~sendrecv_3fields->mpi_waitall proc~sendrecv_3fields->proc~check_cuda proc~sendrecv_3fields->proc~check_mpi proc~sendrecv_3fields->proc~copy_halo 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