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

Description

Solve Maxwell's equations in 1D based on a pseudospectral solver.

Author
Katharina Kormann

Derived types and interfaces

type  sll_t_maxwell_1d_ps
 Maxwell solver class with pseudospectral method. More...
 

Functions/Subroutines

subroutine sll_s_compute_e_b_1d (self, delta_t, efield_dofs, bfield_dofs)
 
subroutine grad_proj0 (self, in, out)
 
subroutine proj1_grad (self, in, out)
 
subroutine init_1d_ps (self, domain, n_dofs)
 
subroutine set_eig_schur_curl_part (self, delta_t)
 
subroutine free_1d_ps (self)
 
real(kind=f64) function inner_product_1d_ps (self, coefs1_dofs, coefs2_dofs, degree, degree2)
 
real(kind=f64) function l2norm_squared_1d_ps (self, coefs_dofs, degree)
 
subroutine compute_e_from_j_1d_ps (self, current, component, E)
 Compute E_i from j_i integrated over the time interval using weak Ampere formulation
More...
 
subroutine compute_field_from_field_1d_ps (self, delta_t, field_in, field_out)
 
subroutine compute_curl_part_1d_ps (self, delta_t, efield, bfield, betar)
 
subroutine transform_dofs_1d_ps (self, in, out, degree)
 
subroutine compute_e_from_rho_1d_ps (self, field_in, field_out)
 
subroutine compute_rho_from_e_1d_ps (self, field_in, field_out)
 
subroutine complex_product_real (n_dofs, eigvals, in, out)
 
subroutine multiply_mass_1d_ps (self, in, out, degree)
 
subroutine invert_mass_1d_ps (self, in, out, degree)
 
subroutine multiply_g (self, in, out)
 
subroutine multiply_gt (self, in, out)
 
subroutine compute_rhs_from_function (self, func, degree, coefs_dofs)
 Compute the FEM right-hand-side for a given function f and periodic splines of given degree Its components are $\int f N_i dx$ where $N_i$ is the B-spline starting at $x_i$. More...
 
subroutine l2projection (self, func, degree, coefs_dofs)
 Compute the L2 projection of a given function f on periodic splines of given degree. More...
 
subroutine compute_phi_from_rho_1d_ps (self, in, phi, efield)
 For model with adiabatic electrons. More...
 
subroutine compute_phi_from_j_1d_ps (self, in, phi, efield)
 For model with adiabatic electrons. More...
 

Function/Subroutine Documentation

◆ complex_product_real()

subroutine sll_m_maxwell_1d_ps::complex_product_real ( integer(kind=i32), intent(in)  n_dofs,
real(kind=f64), dimension(:), intent(in)  eigvals,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out 
)
private

Definition at line 424 of file sll_m_maxwell_1d_ps.F90.

Here is the caller graph for this function:

◆ compute_curl_part_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_curl_part_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), intent(in)  delta_t,
real(kind=f64), dimension(:), intent(inout)  efield,
real(kind=f64), dimension(:), intent(inout)  bfield,
real(kind=f64), optional  betar 
)
private
Parameters
[in]delta_tTime step
[in,out]efieldEy
[in,out]bfieldBz
betar1/beta

Definition at line 327 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_e_from_j_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_e_from_j_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:), intent(in)  current,
integer(kind=i32), intent(in)  component,
real(kind=f64), dimension(:), intent(inout)  E 
)
private

Compute E_i from j_i integrated over the time interval using weak Ampere formulation

Parameters
selfMaxwell solver class
[in]currentComponent component of the current integrated over time interval
[in]componentComponent of the Efield to be computed
[in,out]eUpdated electric field

Definition at line 291 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_e_from_rho_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_e_from_rho_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:), intent(in)  field_in,
real(kind=f64), dimension(:), intent(out)  field_out 
)
private

Definition at line 398 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_field_from_field_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_field_from_field_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), intent(in)  delta_t,
real(kind=f64), dimension(:), intent(in)  field_in,
real(kind=f64), dimension(:), intent(inout)  field_out 
)
private
Parameters
[in]delta_tTime step
[in]field_inBz
[in,out]field_outEy

Definition at line 316 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_phi_from_j_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_phi_from_j_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  phi,
real(kind=f64), dimension(:), intent(out)  efield 
)
private

For model with adiabatic electrons.

Definition at line 544 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_phi_from_rho_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_phi_from_rho_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  phi,
real(kind=f64), dimension(:), intent(out)  efield 
)
private

For model with adiabatic electrons.

Definition at line 527 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_rho_from_e_1d_ps()

subroutine sll_m_maxwell_1d_ps::compute_rho_from_e_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:), intent(in)  field_in,
real(kind=f64), dimension(:), intent(out)  field_out 
)
private

Definition at line 411 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ compute_rhs_from_function()

subroutine sll_m_maxwell_1d_ps::compute_rhs_from_function ( class(sll_t_maxwell_1d_ps self,
procedure(sll_i_function_1d_real64 func,
integer(kind=i32), intent(in)  degree,
real(kind=f64), dimension(:), intent(out)  coefs_dofs 
)
private

Compute the FEM right-hand-side for a given function f and periodic splines of given degree Its components are $\int f N_i dx$ where $N_i$ is the B-spline starting at $x_i$.

Definition at line 492 of file sll_m_maxwell_1d_ps.F90.

◆ free_1d_ps()

subroutine sll_m_maxwell_1d_ps::free_1d_ps ( class(sll_t_maxwell_1d_ps self)
private
Parameters
selfMaxwell solver object

Definition at line 250 of file sll_m_maxwell_1d_ps.F90.

◆ grad_proj0()

subroutine sll_m_maxwell_1d_ps::grad_proj0 ( class(sll_t_maxwell_1d_ps), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out 
)
private

Definition at line 114 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ init_1d_ps()

subroutine sll_m_maxwell_1d_ps::init_1d_ps ( class(sll_t_maxwell_1d_ps), intent(out)  self,
real(kind=f64), dimension(2), intent(in)  domain,
integer(kind=i32), intent(in)  n_dofs 
)
private
Parameters
[out]selfsolver object

Definition at line 141 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ inner_product_1d_ps()

real(kind=f64) function sll_m_maxwell_1d_ps::inner_product_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:)  coefs1_dofs,
real(kind=f64), dimension(:)  coefs2_dofs,
integer(kind=i32)  degree,
integer(kind=i32), optional  degree2 
)
private
Parameters
selfMaxwell solver object
coefs1_dofsCoefficient for each DoF
coefs2_dofsCoefficient for each DoF
degreeSpecify the degree of the basis functions
degree2Specify the degree of the basis functions
Returns
Result: innter product

Definition at line 255 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ invert_mass_1d_ps()

subroutine sll_m_maxwell_1d_ps::invert_mass_1d_ps ( class(sll_t_maxwell_1d_ps), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out,
integer(kind=i32), intent(in)  degree 
)
private

Definition at line 460 of file sll_m_maxwell_1d_ps.F90.

◆ l2norm_squared_1d_ps()

real(kind=f64) function sll_m_maxwell_1d_ps::l2norm_squared_1d_ps ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), dimension(:)  coefs_dofs,
integer(kind=i32)  degree 
)
private
Parameters
selfMaxwell solver object
coefs_dofsCoefficient for each DoF
degreeSpecify the degree of the basis functions
Returns
Result: squared L2 norm

Definition at line 279 of file sll_m_maxwell_1d_ps.F90.

◆ l2projection()

subroutine sll_m_maxwell_1d_ps::l2projection ( class(sll_t_maxwell_1d_ps self,
procedure(sll_i_function_1d_real64 func,
integer(kind=i32), intent(in)  degree,
real(kind=f64), dimension(:), intent(out)  coefs_dofs 
)
private

Compute the L2 projection of a given function f on periodic splines of given degree.

Definition at line 511 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ multiply_g()

subroutine sll_m_maxwell_1d_ps::multiply_g ( class(sll_t_maxwell_1d_ps), intent(in)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out 
)
private
Parameters
[in]selfMaxwell_Clamped solver object
[in]inCoefficient for each DoF
[out]outCoefficient for each DoF

Definition at line 470 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ multiply_gt()

subroutine sll_m_maxwell_1d_ps::multiply_gt ( class(sll_t_maxwell_1d_ps), intent(in)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out 
)
private
Parameters
[in]selfMaxwell_Clamped solver object
[in]inCoefficient for each DoF
[out]outCoefficient for each DoF

Definition at line 480 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ multiply_mass_1d_ps()

subroutine sll_m_maxwell_1d_ps::multiply_mass_1d_ps ( class(sll_t_maxwell_1d_ps), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out,
integer(kind=i32), intent(in)  degree 
)
private
Parameters
[in,out]selfMaxwell solver object
[in]inCoefficient for each DoF
[out]outCoefficient for each DoF
[in]degreeSpecify the degree of the basis functions

Definition at line 450 of file sll_m_maxwell_1d_ps.F90.

◆ proj1_grad()

subroutine sll_m_maxwell_1d_ps::proj1_grad ( class(sll_t_maxwell_1d_ps), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out 
)
private

Definition at line 127 of file sll_m_maxwell_1d_ps.F90.

Here is the call graph for this function:

◆ set_eig_schur_curl_part()

subroutine sll_m_maxwell_1d_ps::set_eig_schur_curl_part ( class( sll_t_maxwell_1d_ps ), intent(inout)  self,
real(kind=f64), intent(in)  delta_t 
)
private

Definition at line 231 of file sll_m_maxwell_1d_ps.F90.

Here is the caller graph for this function:

◆ sll_s_compute_e_b_1d()

subroutine sll_m_maxwell_1d_ps::sll_s_compute_e_b_1d ( class(sll_t_maxwell_1d_ps self,
real(kind=f64), intent(in)  delta_t,
real(kind=f64), dimension(:), intent(inout)  efield_dofs,
real(kind=f64), dimension(:), intent(inout)  bfield_dofs 
)
private
Parameters
[in]delta_tTime step
[in,out]efield_dofsE
[in,out]bfield_dofsB

Definition at line 106 of file sll_m_maxwell_1d_ps.F90.

◆ transform_dofs_1d_ps()

subroutine sll_m_maxwell_1d_ps::transform_dofs_1d_ps ( class(sll_t_maxwell_1d_ps), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  in,
real(kind=f64), dimension(:), intent(out)  out,
integer(kind=i32), intent(in)  degree 
)
private

Definition at line 359 of file sll_m_maxwell_1d_ps.F90.

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