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_time_propagator_pic_vm_3d3v_trafo_helper Module Reference

Description

Author
: Benedikt Perse, IPP

Derived types and interfaces

type  sll_t_time_propagator_pic_vm_3d3v_trafo_helper
 Helper for implicit time propagator for 3d3v Vlasov-Maxwell with coordinate transformation. More...
 

Functions/Subroutines

subroutine advect_x_pic_vm_3d3v_trafo (self, dt)
 Finalization. More...
 
subroutine sll_s_compute_particle_boundary (self, xold, xnew, vi)
 Helper function for advect_x. More...
 
subroutine advect_vb_pic_vm_3d3v_trafo (self, dt)
 advect_vb: Equations to be solved $(\mathbb{I}-\Delta \frac{\Delta t q}{2 m} DF^{-\top} \mathbb{B}(\Xi^n,b^n) DF^{-1}) V^{n+1}=(\mathbb{I}+ \frac{\Delta t q}{2 m} DF^{-\top} \mathbb{B}(\Xi^n,b^n) DF^{-1}) V^n$ More...
 
subroutine advect_eb_pic_vm_3d3v_trafo (self, dt)
 advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} C^\top M_2 C $ $ e^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} C^\top M_2 C)e^n+\Delta t C^\top M_2 b^n) $ $ b^{n+1}=b^n-\frac{\Delta t}{2} C(e^n+e^{n+1}) $ More...
 
subroutine advect_e_pic_vm_3d3v_trafo (self, dt)
 advect_e: Equations to be solved Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T DF^{-1} DF^{-T} \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top DF^{-1}\mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} DF^{-\top} \mathbb{\Lambda}^1(e^{n+1}+e^n)$ More...
 
subroutine advect_ex_pic_vm_3d3v_trafo (self, dt)
 advect_ex: Equations to be solved $\frac{\Xi^{n+1}-\Xi^n}{\Delta t}=\frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{DF^{-\top}(\Xi^{n+1})+DF^{-\top}(\Xi^n)}{2} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau)) d\tau \frac{e^{n+1}+e^n}{2}$ $\frac{M_1 e^{n+1}-M_1 e^n}{\Delta t} = - \frac{1}{\Delta t} \int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau))^\top d\tau \frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$ More...
 
subroutine compute_particle_boundary_current_evaluate_iter (self, xi, xnew, vi, wi, sign)
 Helper function for advect_ex. More...
 
subroutine compute_particle_boundary_current_evaluate (self, xi, xnew, vi, wi, sign)
 Helper function for advect_ex. More...
 
subroutine initialize_pic_vm_3d3v_trafo (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, map, boundary_particles, solver_tolerance, iter_tolerance, max_iter, betar, force_sign, rhob, control_variate, jmean)
 Constructor. More...
 
subroutine initialize_file_pic_vm_3d3v_trafo (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, map, filename, boundary_particles, betar, force_sign, rhob, control_variate, jmean)
 Constructor. More...
 
subroutine delete_pic_vm_3d3v_trafo (self)
 Destructor. More...
 

Function/Subroutine Documentation

◆ advect_e_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::advect_e_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), intent(in)  dt 
)
private

advect_e: Equations to be solved Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T DF^{-1} DF^{-T} \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top DF^{-1}\mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} DF^{-\top} \mathbb{\Lambda}^1(e^{n+1}+e^n)$

Parameters
[in,out]selftime propagator object
[in]dttime step

Definition at line 378 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

◆ advect_eb_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::advect_eb_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), intent(in)  dt 
)
private

advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} C^\top M_2 C $ $ e^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} C^\top M_2 C)e^n+\Delta t C^\top M_2 b^n) $ $ b^{n+1}=b^n-\frac{\Delta t}{2} C(e^n+e^{n+1}) $

Parameters
[in,out]selftime propagator object
[in]dttime step

Definition at line 364 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

◆ advect_ex_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::advect_ex_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), intent(in)  dt 
)
private

advect_ex: Equations to be solved $\frac{\Xi^{n+1}-\Xi^n}{\Delta t}=\frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{DF^{-\top}(\Xi^{n+1})+DF^{-\top}(\Xi^n)}{2} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau)) d\tau \frac{e^{n+1}+e^n}{2}$ $\frac{M_1 e^{n+1}-M_1 e^n}{\Delta t} = - \frac{1}{\Delta t} \int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau))^\top d\tau \frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$

Parameters
[in,out]selftime propagator object
[in]dttime step

Definition at line 654 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the call graph for this function:

◆ advect_vb_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::advect_vb_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), intent(in)  dt 
)
private

advect_vb: Equations to be solved $(\mathbb{I}-\Delta \frac{\Delta t q}{2 m} DF^{-\top} \mathbb{B}(\Xi^n,b^n) DF^{-1}) V^{n+1}=(\mathbb{I}+ \frac{\Delta t q}{2 m} DF^{-\top} \mathbb{B}(\Xi^n,b^n) DF^{-1}) V^n$

Parameters
[in,out]selftime propagator object
[in]dttime step

Definition at line 306 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the call graph for this function:

◆ advect_x_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::advect_x_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), intent(in)  dt 
)
private

Finalization.

advect_x: Equations to be solved $\Xi^{n+1}=\Xi^n+ \frac{\Delta t}{2} (DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)) V^n$

Parameters
[in,out]selftime propagator object
[in]dttime step

Definition at line 192 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the call graph for this function:

◆ compute_particle_boundary_current_evaluate()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::compute_particle_boundary_current_evaluate ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(in)  xi,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi,
real(kind=f64), dimension(1), intent(in)  wi,
real(kind=f64), intent(in)  sign 
)
private

Helper function for advect_ex.

Parameters
[in,out]selftime splitting object

Definition at line 964 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the caller graph for this function:

◆ compute_particle_boundary_current_evaluate_iter()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::compute_particle_boundary_current_evaluate_iter ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(in)  xi,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi,
real(kind=f64), dimension(1), intent(in)  wi,
real(kind=f64), intent(in)  sign 
)
private

Helper function for advect_ex.

Parameters
[in,out]selftime splitting object

Definition at line 871 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the caller graph for this function:

◆ delete_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::delete_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self)
private

Destructor.

Parameters
[in,out]selftime propagator object

Definition at line 1622 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

◆ initialize_file_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::initialize_file_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(out)  self,
class(sll_c_maxwell_3d_base), intent(in), target  maxwell_solver,
class(sll_c_particle_mesh_coupling_3d), intent(in), target  particle_mesh_coupling,
class(sll_t_particle_array), intent(in), target  particle_group,
real(kind=f64), dimension(:), intent(in), target  phi_dofs,
real(kind=f64), dimension(:), intent(in), target  efield_dofs,
real(kind=f64), dimension(:), intent(in), target  bfield_dofs,
real(kind=f64), dimension(3), intent(in)  x_min,
real(kind=f64), dimension(3), intent(in)  Lx,
type(sll_t_mapping_3d), intent(inout), target  map,
character(len=*), intent(in)  filename,
integer(kind=i32), intent(in), optional  boundary_particles,
real(kind=f64), dimension(2), intent(in), optional  betar,
real(kind=f64), intent(in), optional  force_sign,
real(kind=f64), dimension(:), intent(in), optional, target  rhob,
class(sll_t_control_variates), intent(in), optional, target  control_variate,
logical, intent(in), optional  jmean 
)
private

Constructor.

Parameters
[out]selftime propagator object
[in]maxwell_solverMaxwell solver
[in]particle_mesh_couplingParticle mesh coupling
[in]particle_groupParticle group
[in]phi_dofsarray for the coefficients of the scalar potential
[in]efield_dofsarray for the coefficients of the efields
[in]bfield_dofsarray for the coefficients of the bfield
[in]x_minLower bound of x domain
[in]lxLength of the domain in x direction.
[in,out]mapCoordinate transformation
[in]boundary_particlesparticle boundary conditions
[in]betarreciprocal plasma beta
[in]force_signsign of particle force
[in]rhobcharge at the boundary
[in]control_variateControl variate (if delta f)
[in]jmeanlogical for mean value of current

Definition at line 1285 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the call graph for this function:

◆ initialize_pic_vm_3d3v_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::initialize_pic_vm_3d3v_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(out)  self,
class(sll_c_maxwell_3d_base), intent(in), target  maxwell_solver,
class(sll_c_particle_mesh_coupling_3d), intent(in), target  particle_mesh_coupling,
class(sll_t_particle_array), intent(in), target  particle_group,
real(kind=f64), dimension(:), intent(in), target  phi_dofs,
real(kind=f64), dimension(:), intent(in), target  efield_dofs,
real(kind=f64), dimension(:), intent(in), target  bfield_dofs,
real(kind=f64), dimension(3), intent(in)  x_min,
real(kind=f64), dimension(3), intent(in)  Lx,
type(sll_t_mapping_3d), intent(inout), target  map,
integer(kind=i32), intent(in), optional  boundary_particles,
real(kind=f64), intent(in), optional  solver_tolerance,
real(kind=f64), intent(in), optional  iter_tolerance,
integer(kind=i32), intent(in), optional  max_iter,
real(kind=f64), dimension(2), intent(in), optional  betar,
real(kind=f64), intent(in), optional  force_sign,
real(kind=f64), dimension(:), intent(in), optional, target  rhob,
class(sll_t_control_variates), intent(in), optional, target  control_variate,
logical, intent(in), optional  jmean 
)
private

Constructor.

Parameters
[out]selftime propagator object
[in]maxwell_solverMaxwell solver
[in]particle_mesh_couplingParticle mesh coupling
[in]particle_groupParticle group
[in]phi_dofsarray for the coefficients of the scalar potential
[in]efield_dofsarray for the coefficients of the efields
[in]bfield_dofsarray for the coefficients of the bfield
[in]x_minLower bound of x domain
[in]lxLength of the domain in x direction.
[in,out]mapCoordinate transformation
[in]boundary_particlesparticle boundary conditions
[in]solver_toleranceSolver tolerance
[in]iter_toleranceiteration tolerance
[in]max_itermaximal number of iterations
[in]betarreciprocal plasma beta
[in]force_signsign of particle force
[in]rhobcharge at the boundary
[in]control_variateControl variate (if delta f)
[in]jmeanlogical for mean value of current

Definition at line 1051 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

◆ sll_s_compute_particle_boundary()

subroutine sll_m_time_propagator_pic_vm_3d3v_trafo_helper::sll_s_compute_particle_boundary ( class(sll_t_time_propagator_pic_vm_3d3v_trafo_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(inout)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi 
)
private

Helper function for advect_x.

Definition at line 250 of file sll_m_time_propagator_pic_vm_3d3v_trafo_helper.F90.

Here is the caller graph for this function:
    Report Typos and Errors