8 #include "sll_working_precision.h"
30 sll_real64 :: domain(2)
31 sll_int32 :: spline_degree
37 procedure(
add_array),
deferred :: add_particle_mass_full
43 procedure(
empty),
deferred :: free
50 subroutine add_single(self, position, marker_charge, rho_dofs)
54 sll_real64,
intent( in ) :: position(self%dim)
55 sll_real64,
intent( in ) :: marker_charge
56 sll_real64,
intent( inout ) :: rho_dofs(self%n_dofs)
63 subroutine add_array(self, position, marker_charge, particle_mass)
67 sll_real64,
intent( in ) :: position(self%dim)
68 sll_real64,
intent( in ) :: marker_charge
69 sll_real64,
intent( inout ) :: particle_mass(:, :)
76 subroutine eval_single(self, position, field_dofs, field_value)
80 sll_real64,
intent( in ) :: position(self%dim)
81 sll_real64,
intent( in ) :: field_dofs(self%n_dofs)
82 sll_real64,
intent(out) :: field_value
88 subroutine eval_multiple(self, position, components, field_dofs, field_value)
92 sll_real64,
intent( in ) :: position(self%dim)
93 sll_int32,
intent(in) :: components(:)
94 sll_real64,
intent( in ) :: field_dofs(:,:)
95 sll_real64,
intent(out) :: field_value(:)
101 subroutine add_current(self, position_old, position_new, marker_charge, j_dofs)
105 sll_real64,
intent( in ) :: position_old(self%dim)
106 sll_real64,
intent( in ) :: position_new(self%dim)
107 sll_real64,
intent( in ) :: marker_charge
108 sll_real64,
intent( inout ) :: j_dofs(self%n_dofs)
115 subroutine add_current_evaluate(self, position_old, position_new, marker_charge, vbar, field_dofs, j_dofs, field)
119 sll_real64,
intent( in ) :: position_old(self%dim)
120 sll_real64,
intent( in ) :: position_new(self%dim)
121 sll_real64,
intent( in ) :: marker_charge
122 sll_real64,
intent( in ) :: vbar
123 sll_real64,
intent( in ) :: field_dofs(self%n_dofs)
124 sll_real64,
intent( inout ) :: j_dofs(self%n_dofs)
125 sll_real64,
intent( out ) :: field
143 sll_real64,
intent(in) :: position_old(self%dim)
144 sll_real64,
intent(in) :: position_new(self%dim)
145 sll_real64,
intent(in) :: marker_charge
146 sll_real64,
intent(in) :: qoverm
147 sll_real64,
intent(in) :: bfield_dofs(:)
148 sll_real64,
intent(inout) :: vi(:)
149 sll_real64,
intent(inout) :: j_dofs(:)
Base class for kernel smoothers for accumulation and field evaluation in PIC.
integer(kind=i32), parameter, public sll_p_collocation
integer(kind=i32), parameter, public sll_p_galerkin
Module to select the kind parameter.
Basic type of a kernel smoother used for PIC simulations.