field_add_gaussian_sources_base Subroutine

public subroutine field_add_gaussian_sources_base(self, a, b, c, points, coeffs, eps, r_cut)

Adds isotropic Gaussian sources to the DIR_X VERT fields a, b and c: at every grid point x within distance r_cut of points(1:3, s), a += coeffs(1, s)*exp(-|x - points(:, s)|^2/eps^2), and likewise b and c with coeffs(2, s) and coeffs(3, s). The kernel wraps across periodic boundaries, consistent with field_sample_points, and is cut at non-periodic ones. Needs a uniform grid.

Type Bound

base_backend_t

Arguments

Type IntentOptional Attributes Name
class(base_backend_t) :: self
class(field_t), intent(inout) :: a
class(field_t), intent(inout) :: b
class(field_t), intent(inout) :: c
real(kind=dp), intent(in) :: points(:,:)
real(kind=dp), intent(in) :: coeffs(:,:)
real(kind=dp), intent(in) :: eps
real(kind=dp), intent(in) :: r_cut

Calls

proc~~field_add_gaussian_sources_base~~CallsGraph proc~field_add_gaussian_sources_base m_base_backend::base_backend_t%field_add_gaussian_sources_base proc~abort_run m_logger::abort_run proc~field_add_gaussian_sources_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