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 none~get_n_groups m_mesh::mesh_t%get_n_groups proc~transeq_species_cuda->none~get_n_groups proc~copy_into_buffers~2 m_cuda_backend::copy_into_buffers proc~transeq_species_cuda->proc~copy_into_buffers~2 proc~exec_dist_transeq_3fused m_cuda_exec_dist::exec_dist_transeq_3fused proc~transeq_species_cuda->proc~exec_dist_transeq_3fused proc~get_block m_allocator::allocator_t%get_block proc~transeq_species_cuda->proc~get_block proc~release_block m_allocator::allocator_t%release_block proc~transeq_species_cuda->proc~release_block proc~resolve_field_t m_cuda_backend::resolve_field_t proc~transeq_species_cuda->proc~resolve_field_t proc~sendrecv_fields m_cuda_sendrecv::sendrecv_fields proc~transeq_species_cuda->proc~sendrecv_fields 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 proc~get_n_groups_dir m_mesh::mesh_t%get_n_groups_dir none~get_n_groups->proc~get_n_groups_dir proc~get_n_groups_phi m_mesh::mesh_t%get_n_groups_phi none~get_n_groups->proc~get_n_groups_phi dim3 dim3 proc~copy_into_buffers~2->dim3 proc~buffer_copy m_cuda_kernels_fieldops::buffer_copy proc~copy_into_buffers~2->proc~buffer_copy proc~sendrecv_3fields m_cuda_sendrecv::sendrecv_3fields proc~exec_dist_transeq_3fused->proc~sendrecv_3fields proc~transeq_3fused_dist m_cuda_kernels_dist::transeq_3fused_dist proc~exec_dist_transeq_3fused->proc~transeq_3fused_dist proc~transeq_3fused_subs m_cuda_kernels_dist::transeq_3fused_subs proc~exec_dist_transeq_3fused->proc~transeq_3fused_subs none~get_padded_dims m_mesh::mesh_t%get_padded_dims proc~get_block->none~get_padded_dims 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 mpi_irecv mpi_irecv proc~sendrecv_fields->mpi_irecv mpi_isend mpi_isend proc~sendrecv_fields->mpi_isend mpi_waitall mpi_waitall proc~sendrecv_fields->mpi_waitall proc~get_padded_dims_dir m_mesh::mesh_t%get_padded_dims_dir none~get_padded_dims->proc~get_padded_dims_dir proc~get_padded_dims_phi m_mesh::mesh_t%get_padded_dims_phi none~get_padded_dims->proc~get_padded_dims_phi proc~get_n_groups_phi->none~get_n_groups proc~get_n_phi->none~get_n proc~sendrecv_3fields->mpi_irecv proc~sendrecv_3fields->mpi_isend proc~sendrecv_3fields->mpi_waitall proc~get_padded_dims_dir->none~get_n_groups proc~get_padded_dims_phi->none~get_padded_dims