Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Derived types and interfaces | Functions/Subroutines
sll_m_pic_poisson_2d Module Reference

Description

Factory method for Poisson solver for particle methods in 2d build from 2d Poisson solver and a kernel smoother.

Author
Katharina Kormann, IPP

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...
 

Function/Subroutine Documentation

◆ add_analytic_charge_2d()

subroutine sll_m_pic_poisson_2d::add_analytic_charge_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self,
real(kind=f64), intent(in)  factor_present,
real(kind=f64), intent(in)  factor_analytic 
)
private

Add analytic charge (set by set_analytic_charge ) to the accumulated charge.

Parameters
[in,out]selfPic Poisson solver object
[in]factor_presentFactor to multiply accumulated charge with
[in]factor_analyticFactor to multiply added analytic charge with

Definition at line 173 of file sll_m_pic_poisson_2d.F90.

◆ add_charge_single_2d()

subroutine sll_m_pic_poisson_2d::add_charge_single_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self,
real(kind=f64), dimension(self%dim), intent(in)  position,
real(kind=f64), intent(in)  marker_charge 
)
private

Add charge from one particle.

Parameters
[in,out]selfPic Poisson solver object
[in]positionPosition of the particle
[in]marker_chargeParticle weight times charge

Definition at line 70 of file sll_m_pic_poisson_2d.F90.

◆ compute_field_energy_2d()

real(kind=f64) function sll_m_pic_poisson_2d::compute_field_energy_2d ( class (sll_t_pic_poisson_2d), intent(in)  self,
integer(kind=i32), intent(in)  component 
)
private

Compute the squared l2 norm of component component of the field.

Parameters
[in]componentComponent of the electric field for which the energy should be computed
Returns
L2 norm squarred of

Definition at line 193 of file sll_m_pic_poisson_2d.F90.

◆ evaluate_field_single_2d()

subroutine sll_m_pic_poisson_2d::evaluate_field_single_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self,
real(kind=f64), dimension(self%dim), intent(in)  position,
integer(kind=i32), dimension(:), intent(in)  components,
real(kind=f64), dimension(:), intent(out)  func_value 
)
private

Evaluate components components of the electric field as one position.

Parameters
[in,out]selfPic Poisson solver object
[in]positionPosition of the particle

Definition at line 108 of file sll_m_pic_poisson_2d.F90.

◆ evaluate_phi_single_2d()

subroutine sll_m_pic_poisson_2d::evaluate_phi_single_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self,
real(kind=f64), dimension(self%dim), intent(in)  position,
real(kind=f64), intent(out)  func_value 
)
private

Evaluate potential phi at one position.

Parameters
[in,out]selfPic Poisson solver object
[in]positionPosition of the particle
[out]func_valueValue of phi at given position

Definition at line 98 of file sll_m_pic_poisson_2d.F90.

◆ evaluate_rho_single_2d()

subroutine sll_m_pic_poisson_2d::evaluate_rho_single_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self,
real(kind=f64), dimension(self%dim), intent(in)  position,
real(kind=f64), intent(out)  func_value 
)
private

Evaluate charge density rho at one position.

Parameters
[in,out]selfPic Poisson solver object
[in]positionPosition of the particle
[out]func_valueValue of rho at given position

Definition at line 81 of file sll_m_pic_poisson_2d.F90.

◆ free_pic_poisson_2d()

subroutine sll_m_pic_poisson_2d::free_pic_poisson_2d ( class( sll_t_pic_poisson_2d), intent(inout)  self)
private

Destructor.

Definition at line 248 of file sll_m_pic_poisson_2d.F90.

◆ init_pic_poisson_2d()

subroutine sll_m_pic_poisson_2d::init_pic_poisson_2d ( class( sll_t_pic_poisson_2d), intent(out)  self,
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 
)
private
Parameters
[in]kernelkernel smoother object

Definition at line 209 of file sll_m_pic_poisson_2d.F90.

◆ reset_2d()

subroutine sll_m_pic_poisson_2d::reset_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self)
private

Reset charge to zero.

Parameters
[in,out]selfPic Poisson solver object

Definition at line 163 of file sll_m_pic_poisson_2d.F90.

◆ set_analytic_charge_2d()

subroutine sll_m_pic_poisson_2d::set_analytic_charge_2d ( class( sll_t_pic_poisson_2d ), intent(inout)  self,
procedure(sll_i_function_of_position func 
)
private

Set analytic charge defined by a function func obeying the interface sll_i_function_of_position.

Parameters
[in,out]selfPIC Poisson solver object.
funcFunction to be projected.

Definition at line 184 of file sll_m_pic_poisson_2d.F90.

◆ sll_s_new_pic_poisson_2d()

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.

Parameters
[in]kernelkernel smoother object

Definition at line 267 of file sll_m_pic_poisson_2d.F90.

◆ solve_2d()

subroutine sll_m_pic_poisson_2d::solve_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self)
private

Solve for phi and fields.

Parameters
[in,out]selfPic Poisson solver object

Definition at line 121 of file sll_m_pic_poisson_2d.F90.

◆ solve_fields_2d()

subroutine sll_m_pic_poisson_2d::solve_fields_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self)
private

Solve efields from rho.

Parameters
[in,out]selfPic Poisson solver object

Definition at line 146 of file sll_m_pic_poisson_2d.F90.

◆ solve_phi_2d()

subroutine sll_m_pic_poisson_2d::solve_phi_2d ( class(sll_t_pic_poisson_2d), intent(inout)  self)
private

Solve for potential.

Parameters
[in,out]selfPic Poisson solver object

Definition at line 130 of file sll_m_pic_poisson_2d.F90.

    Report Typos and Errors