Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Factory method for Poisson solver for particle methods in 2d build from 2d Poisson solver and a kernel smoother.
Derived types and interfaces | |
type | sll_t_pic_poisson_2d |
PIC Poisson solver 2d. More... | |
Functions/Subroutines | |
subroutine | add_charge_single_2d (self, position, marker_charge) |
Add charge from one particle. More... | |
subroutine | evaluate_rho_single_2d (self, position, func_value) |
Evaluate charge density rho at one position. More... | |
subroutine | evaluate_phi_single_2d (self, position, func_value) |
Evaluate potential phi at one position. More... | |
subroutine | evaluate_field_single_2d (self, position, components, func_value) |
Evaluate components components of the electric field as one position. More... | |
subroutine | solve_2d (self) |
Solve for phi and fields. More... | |
subroutine | solve_phi_2d (self) |
Solve for potential. More... | |
subroutine | solve_fields_2d (self) |
Solve efields from rho. More... | |
subroutine | reset_2d (self) |
Reset charge to zero. More... | |
subroutine | add_analytic_charge_2d (self, factor_present, factor_analytic) |
Add analytic charge (set by set_analytic_charge ) to the accumulated charge. More... | |
subroutine | set_analytic_charge_2d (self, func) |
Set analytic charge defined by a function func obeying the interface sll_i_function_of_position. More... | |
real(kind=f64) function | compute_field_energy_2d (self, component) |
Compute the squared l2 norm of component component of the field. More... | |
subroutine | init_pic_poisson_2d (self, no_gridpts, poisson, kernel) |
subroutine | free_pic_poisson_2d (self) |
Destructor. More... | |
subroutine, public | sll_s_new_pic_poisson_2d (pic_poisson, no_gridpts, poisson, kernel) |
Constructor for abstract type. More... | |
|
private |
Add analytic charge (set by set_analytic_charge ) to the accumulated charge.
[in,out] | self | Pic Poisson solver object |
[in] | factor_present | Factor to multiply accumulated charge with |
[in] | factor_analytic | Factor to multiply added analytic charge with |
Definition at line 173 of file sll_m_pic_poisson_2d.F90.
|
private |
Add charge from one particle.
[in,out] | self | Pic Poisson solver object |
[in] | position | Position of the particle |
[in] | marker_charge | Particle weight times charge |
Definition at line 70 of file sll_m_pic_poisson_2d.F90.
|
private |
Compute the squared l2 norm of component component of the field.
[in] | component | Component of the electric field for which the energy should be computed |
Definition at line 193 of file sll_m_pic_poisson_2d.F90.
|
private |
Evaluate components components of the electric field as one position.
[in,out] | self | Pic Poisson solver object |
[in] | position | Position of the particle |
Definition at line 108 of file sll_m_pic_poisson_2d.F90.
|
private |
Evaluate potential phi at one position.
[in,out] | self | Pic Poisson solver object |
[in] | position | Position of the particle |
[out] | func_value | Value of phi at given position |
Definition at line 98 of file sll_m_pic_poisson_2d.F90.
|
private |
Evaluate charge density rho at one position.
[in,out] | self | Pic Poisson solver object |
[in] | position | Position of the particle |
[out] | func_value | Value of rho at given position |
Definition at line 81 of file sll_m_pic_poisson_2d.F90.
|
private |
Destructor.
Definition at line 248 of file sll_m_pic_poisson_2d.F90.
|
private |
[in] | kernel | kernel smoother object |
Definition at line 209 of file sll_m_pic_poisson_2d.F90.
|
private |
Reset charge to zero.
[in,out] | self | Pic Poisson solver object |
Definition at line 163 of file sll_m_pic_poisson_2d.F90.
|
private |
Set analytic charge defined by a function func obeying the interface sll_i_function_of_position.
[in,out] | self | PIC Poisson solver object. |
func | Function to be projected. |
Definition at line 184 of file sll_m_pic_poisson_2d.F90.
subroutine, public sll_m_pic_poisson_2d::sll_s_new_pic_poisson_2d | ( | class( sll_c_pic_poisson), intent(out), pointer | pic_poisson, |
integer(kind=i32), dimension(2), intent(in) | no_gridpts, | ||
class( sll_c_poisson_2d_base), intent(in), pointer | poisson, | ||
class( sll_c_particle_mesh_coupling_1d), intent(in), pointer | kernel | ||
) |
Constructor for abstract type.
[in] | kernel | kernel smoother object |
Definition at line 267 of file sll_m_pic_poisson_2d.F90.
|
private |
Solve for phi and fields.
[in,out] | self | Pic Poisson solver object |
Definition at line 121 of file sll_m_pic_poisson_2d.F90.
|
private |
Solve efields from rho.
[in,out] | self | Pic Poisson solver object |
Definition at line 146 of file sll_m_pic_poisson_2d.F90.
|
private |
Solve for potential.
[in,out] | self | Pic Poisson solver object |
Definition at line 130 of file sll_m_pic_poisson_2d.F90.