Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Data Types | Modules | Functions/Subroutines
sll_m_particle_mesh_coupling_spline_3d_feec.F90 File Reference
#include "sll_assert.h"
#include "sll_errors.h"
#include "sll_memory.h"
#include "sll_working_precision.h"
Include dependency graph for sll_m_particle_mesh_coupling_spline_3d_feec.F90:

Go to the source code of this file.

Data Types

type  sll_t_particle_mesh_coupling_spline_3d_feec
 Particle mesh coupling in 3d based on (arbitrary degree) spline on a tensor product uniform mesh. More...
 
type  vector
 Evaluates the integral int_{poisition_old}^{position_new} field(x) d x and the integrated current. More...
 

Modules

module  sll_m_particle_mesh_coupling_spline_3d_feec
 Particle mesh coupling for 3d with splines of arbitrary degree placed on a uniform tensor product mesh.
 

Functions/Subroutines

subroutine add_charge_single_spline_3d_feec (self, position, marker_charge, degree, rho_dofs)
 Add charge of one particle. More...
 
subroutine add_charge_single_spline_pp_3d_feec (self, position, marker_charge, degree, rho_dofs)
 Add charge of one particle. More...
 
subroutine add_particle_mass_spline_3d_feec (self, position, marker_charge, degree, particle_mass)
 Add charge of one particle. More...
 
subroutine add_particle_mass_od_spline_3d_feec (self, position, marker_charge, degree1, degree2, particle_mass)
 Add charge of one particle. More...
 
subroutine evaluate_field_single_spline_3d_feec (self, position, degree, field_dofs, field_value)
 Evaluate field at at position position. More...
 
subroutine evaluate_field_single_spline_pp_3d_feec (self, position, degree, field_dofs_pp, field_value)
 Evaluate field at at position position. More...
 
subroutine evaluate_multiple_spline_3d_feec (self, position, components, field_dofs, field_value)
 Evaluate several fields at position position. More...
 
pure integer(kind=i32) function convert_index_3d_to_1d (index3d, n_cells)
 Convert 3d index to 1d index (first dimension without stride) More...
 
subroutine convert_x_to_xbox (self, position, xi, box)
 Identify the box in which the particle is located and its normalized position within the box. More...
 
subroutine convert_x_to_xbox_1d (self, component, position, xi, box)
 Identify the box in which the particle is located and its normalized position within the box (only along the dimension component) More...
 
subroutine box_index (self, box, comp)
 Sets the index of the splines that are involved in computations that concern splines from index box. More...
 
subroutine add_current_evaluate (self, position_old, position_new, xdot, efield_dofs, j_dofs, efield_val)
 Add current via line integral and evaluate spline. More...
 
subroutine point_add_eval (self, box_in, xbox, field_dofs, weight, j_dofs, field_value)
 Helper function for add_current_evaluate that takes care of the per-cell computations. More...
 
subroutine add_current_3d (self, position_old, position_new, xdot, j_dofs)
 Add current via line integral (when x changes along all three directions) More...
 
subroutine integrate_spline_3d (self, box_in, xbox, weight, j_dofs)
 Helper function for add_current_3d, takes care of the per box computations. More...
 
subroutine add_current_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle. More...
 
subroutine add_current_update_v_primitive_component1_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p1 part in Hamiltonian splitting), version based on primitive function. More...
 
subroutine add_current_update_v_primitive_component2_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p2 part in Hamiltonian splitting), version based on primitive function. More...
 
subroutine add_current_update_v_primitive_component3_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p3 part in Hamiltonian splitting), version based on primitive function. More...
 
subroutine add_current_update_v_component1_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p1 part in Hamiltonian splitting), version based on quadrature. More...
 
subroutine add_current_update_v_component2_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p2 part in Hamiltonian splitting), version based on quadrature. More...
 
subroutine add_current_update_v_component3_spline_3d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs)
 Add current for one particle and update v (according to H_p3 part in Hamiltonian splitting), version based on quadrature. More...
 
subroutine add_current_1d (self, component, r_old, index_old, r_new, index_new, marker_charge, bfield_dofs, start1, start2, stride, vi, j_dofs)
 Add current for one particle and update v (according to H_p1 part in Hamiltonian splitting) More...
 
subroutine update_jv (self, component, lower, upper, index, marker_charge, sign, bfield_dofs, start1, start2, stride, vi, j_dofs)
 Helper function for add_current_update_v. More...
 
subroutine init_spline_3d_feec (self, n_cells, domain, spline_degree, no_particles)
 Constructor. More...
 
subroutine free_spline_3d_feec (self)
 Destructor. More...
 
subroutine add_current_evaluate_int (self, position_old, position_new, vbar, bfield_dofs, j_dofs, bfield_val)
 Evaluates the integral int_{poisition_old}^{position_new} field(x) d x and the integrated current. More...
 
subroutine point_add_eval_subcyc (self, box_in, xbox, field_dofs, weight, j_dofs, field_value)
 Helper function for add_current_evaluate_int, takes care of per cell computations. More...
 
    Report Typos and Errors