Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Particle mesh coupling for 3d with splines of arbitrary degree placed on a uniform tensor product mesh.
Spline with index i starts at point i
Derived types and interfaces | |
type | sll_t_particle_mesh_coupling_spline_2d_feec |
Particle mesh coupling in 3d based on (arbitrary degree) spline on a tensor product uniform mesh. More... | |
Functions/Subroutines | |
subroutine | add_charge_single_spline_2d_feec (self, position, marker_charge, degree, rho_dofs) |
Destructor. More... | |
subroutine | add_particle_mass_spline_2d_feec (self, position, marker_charge, degree, particle_mass) |
Add charge of one particle. More... | |
pure integer(kind=i32) function | convert_index_2d_to_1d (index2d, n_grid) |
subroutine | convert_x_to_xbox (self, position, xi, box) |
subroutine | add_current_spline_2d_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_2d_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) More... | |
subroutine | add_current_update_v_primitive_component2_spline_2d_feec (self, position_old, position_new, marker_charge, qoverm, bfield_dofs, vi, j_dofs) |
subroutine | evaluate_field_single_spline_2d_feec (self, position, degree, field_dofs, field_value) |
Evaluate field at at position position. More... | |
subroutine | evaluate_field_single_spline_pp_2d_feec (self, position, degree, field_dofs_pp, field_value) |
Evaluate field at at position position. More... | |
subroutine | evaluate_multiple_spline_2d_feec (self, position, components, field_dofs, field_value) |
Evaluate several fields at position position. More... | |
subroutine | init_spline_2d_feec (self, n_grid, domain, no_particles, spline_degree) |
Constructor. More... | |
subroutine | free_spline_2d_feec (self) |
Destructor. More... | |
|
private |
Destructor.
Add charge of one particle
[in,out] | self | kernel smoother object |
[in] | position | Position of the particle |
[in] | marker_charge | Particle weights time charge |
[in] | degree | Spline degree along each dimension |
[in,out] | rho_dofs | Coefficient vector of the charge distribution |
Definition at line 96 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Add current for one particle.
[in,out] | self | kernel smoother object |
[in] | position_old | Position at time t |
[in] | position_new | Position at time t + \Delta t |
[in] | marker_charge | Particle weight time charge |
[in] | qoverm | charge to mass ration |
[in] | bfield_dofs | Coefficient of B-field expansion |
[in,out] | vi | Velocity of the particles |
[in,out] | j_dofs | Coefficients of current expansion |
Definition at line 280 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Add current for one particle and update v (according to H_p1 part in Hamiltonian splitting)
[in,out] | self | kernel smoother object |
[in] | position_old | Position at time t |
[in] | position_new | Position at time t + \Delta t |
[in] | marker_charge | Particle weight time charge |
[in] | qoverm | charge to mass ration |
[in] | bfield_dofs | Coefficient of B-field expansion |
[in,out] | vi | Velocity of the particles |
[in,out] | j_dofs | Coefficients of current expansion |
Definition at line 352 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
[in,out] | self | kernel smoother object |
[in] | position_old | Position at time t |
[in] | position_new | Position at time t + \Delta t |
[in] | marker_charge | Particle weight time charge |
[in] | qoverm | charge to mass ration |
[in] | bfield_dofs | Coefficient of B-field expansion |
[in,out] | vi | Velocity of the particles |
[in,out] | j_dofs | Coefficients of current expansion |
Definition at line 469 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Add charge of one particle.
[in,out] | self | kernel smoother object |
[in] | position | Position of the particle |
[in] | marker_charge | Particle weights time charge |
[in] | degree | Spline degree along each dimension |
[in,out] | particle_mass | Coefficient vector of the charge distribution |
Definition at line 135 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Definition at line 255 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
[in,out] | self | kernel smoother object |
[in] | position | Position of the particle |
[out] | xi | Position of the particle |
[out] | box | Position of the particle |
Definition at line 265 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Evaluate field at at position position.
[in,out] | self | Kernel smoother object |
[in] | position | Position of the particle |
[in] | degree | Spline degree of the various components |
[in] | field_dofs | Coefficient vector for the field DoFs |
[out] | field_value | Value(s) of the electric fields at given position |
Definition at line 581 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Evaluate field at at position position.
[in,out] | self | Kernel smoother object |
[in] | position | Position of the particle |
[in] | degree | Spline degree of the various components |
[in] | field_dofs_pp | Coefficient vector for the field DoFs |
[out] | field_value | Value(s) of the electric fields at given position |
Definition at line 619 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Evaluate several fields at position position.
[in,out] | self | Kernel smoother object |
[in] | position | Position of the particle |
[in] | components | Components of field_dofs that shall be updated |
[in] | field_dofs | Coefficient vector for the field DoFs |
[out] | field_value | Value(s) of the electric fields at given position |
Definition at line 639 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Destructor.
[in,out] | self | Kernel smoother object |
Definition at line 704 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.
|
private |
Constructor.
[out] | self | Kernel smoother object |
[in] | n_grid | number of DoFs (spline coefficients) |
[in] | domain | x_min and x_max of the domain |
[in] | no_particles | number of particles |
[in] | spline_degree | Degree of smoothing kernel spline |
Definition at line 651 of file sll_m_particle_mesh_coupling_spline_2d_feec.F90.