Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Private Member Functions | Private Attributes | List of all members
sll_t_maxwell_1d_fem_sm Type Reference

Maxwell solver class for spline FEM with sparse matrix solvers. More...

Inheritance diagram for sll_t_maxwell_1d_fem_sm:
Collaboration diagram for sll_t_maxwell_1d_fem_sm:

Private Member Functions

procedure compute_e_from_b => sll_s_compute_e_from_b_1d_fem_sm
 Solve E and B part of Amperes law with B constant in time. More...
 
procedure compute_b_from_e => sll_s_compute_b_from_e_1d_fem_sm
 Solve Faraday equation with E constant in time. More...
 
procedure compute_curl_part => sll_s_compute_curl_part_1d_fem_sm
 Solve source-free Maxwell's equations. More...
 
procedure compute_e_from_rho => sll_s_compute_e_from_rho_1d_fem_sm
 Solve E from rho using Poisson. More...
 
procedure compute_rho_from_e => compute_rho_from_e_1d_fem_sm
 Compute rho from E. More...
 
procedure compute_e_from_j => compute_e_from_j_1d_fem_sm
 Compute E from the current j. More...
 
procedure compute_phi_from_rho => compute_phi_from_rho_1d_fem_sm
 Compute phi from rho (by solving the quasi-neutrality equation) More...
 
procedure compute_phi_from_j => compute_phi_from_j_1d_fem_sm
 Compute phi from j (dynamic of quasi-neutrality equation for adiabatic electrons) More...
 
procedure compute_rhs_from_function => sll_s_compute_rhs_fem_sm
 Compute integral over given function tested by the basis. More...
 
procedure l2projection => l2projection_1d_fem_sm
 Compute L_2 projection of a given function. More...
 
procedure l2norm_squared => l2norm_squared_1d_fem_sm
 Compute the square of the L2 norm of a given vector. More...
 
procedure inner_product => inner_product_1d_fem_sm
 Inner product of two dof-vectors with mass matrix. More...
 
procedure init => init_1d_fem_sm
 Initialize the Maxwell class. More...
 
procedure init_from_file => init_from_file_1d_fem_sm
 Initialize the Maxwell class with parameters read from nml-file. More...
 
procedure free => free_1d_fem_sm
 Free Maxwell class. More...
 
procedure multiply_g
 Multiplication with gradient matrix. More...
 
procedure multiply_gt
 Multiplication with divergence matrix. More...
 
procedure multiply_mass => multiply_mass_1d_fem_sm
 Product with the mass matrix. More...
 
procedure invert_mass => invert_mass_1d_fem_sm
 Invert mass matrix. More...
 
procedure transform_dofs
 By default this is just a copy of input to output. More...
 

Private Attributes

type(sll_t_linear_operator_schur_eb_1dlinear_op_schur_eb
 Schur complement operator for advect_eb. More...
 
type(sll_t_linear_solver_mgmreslinear_solver_schur_eb
 Schur complement solver for advect_eb. More...
 
type(sll_t_matrix_csrmass0
 0-form mass matrix More...
 
type(sll_t_matrix_csrmass1
 1-form mass matrix More...
 
type(sll_t_matrix_csrmixed_mass
 mixed mass matrix More...
 
type(sll_t_linear_solver_cglinear_solver_mass0
 linear solver to invert 0-form mass matrix More...
 
type(sll_t_linear_solver_cglinear_solver_mass1
 linear solver to invert 1-form mass matrix More...
 
type(sll_t_linear_operator_poisson_1dpoisson_matrix
 Poisson matrix. More...
 
type(sll_t_linear_operator_penalizedpoisson_operator
 Poisson matrix with constraint on constant vector. More...
 
type(sll_t_linear_solver_cgpoisson_solver
 CG solver to invert Poisson matrix. More...
 
logical adiabatic_electrons
 flag if adiabatic electrons are used More...
 
logical strong_ampere = .false.
 flag to switch between strong and weak Ampere formulation More...
 

Detailed Description

Maxwell solver class for spline FEM with sparse matrix solvers.

Definition at line 64 of file sll_m_maxwell_1d_fem_sm.F90.

Member Function/Subroutine Documentation

◆ compute_b_from_e()

procedure compute_b_from_e
private

Solve Faraday equation with E constant in time.

Definition at line 87 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_curl_part()

procedure compute_curl_part
private

Solve source-free Maxwell's equations.

Definition at line 89 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_e_from_b()

procedure compute_e_from_b
private

Solve E and B part of Amperes law with B constant in time.

Definition at line 85 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_e_from_j()

procedure compute_e_from_j
private

Compute E from the current j.

Definition at line 95 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_e_from_rho()

procedure compute_e_from_rho
private

Solve E from rho using Poisson.

Definition at line 91 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_phi_from_j()

procedure compute_phi_from_j
private

Compute phi from j (dynamic of quasi-neutrality equation for adiabatic electrons)

Definition at line 99 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_phi_from_rho()

procedure compute_phi_from_rho
private

Compute phi from rho (by solving the quasi-neutrality equation)

Definition at line 97 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_rho_from_e()

procedure compute_rho_from_e
private

Compute rho from E.

Definition at line 93 of file sll_m_maxwell_1d_fem_sm.F90.

◆ compute_rhs_from_function()

procedure compute_rhs_from_function
private

Compute integral over given function tested by the basis.

Definition at line 101 of file sll_m_maxwell_1d_fem_sm.F90.

◆ free()

procedure free
private

Free Maxwell class.

Definition at line 113 of file sll_m_maxwell_1d_fem_sm.F90.

◆ init()

procedure init
private

Initialize the Maxwell class.

Definition at line 109 of file sll_m_maxwell_1d_fem_sm.F90.

◆ init_from_file()

procedure init_from_file
private

Initialize the Maxwell class with parameters read from nml-file.

Definition at line 111 of file sll_m_maxwell_1d_fem_sm.F90.

◆ inner_product()

procedure inner_product
private

Inner product of two dof-vectors with mass matrix.

Definition at line 107 of file sll_m_maxwell_1d_fem_sm.F90.

◆ invert_mass()

procedure invert_mass
private

Invert mass matrix.

Definition at line 121 of file sll_m_maxwell_1d_fem_sm.F90.

◆ l2norm_squared()

procedure l2norm_squared
private

Compute the square of the L2 norm of a given vector.

Definition at line 105 of file sll_m_maxwell_1d_fem_sm.F90.

◆ l2projection()

procedure l2projection
private

Compute L_2 projection of a given function.

Definition at line 103 of file sll_m_maxwell_1d_fem_sm.F90.

◆ multiply_g()

procedure multiply_g
private

Multiplication with gradient matrix.

Definition at line 115 of file sll_m_maxwell_1d_fem_sm.F90.

◆ multiply_gt()

procedure multiply_gt
private

Multiplication with divergence matrix.

Definition at line 117 of file sll_m_maxwell_1d_fem_sm.F90.

◆ multiply_mass()

procedure multiply_mass
private

Product with the mass matrix.

Definition at line 119 of file sll_m_maxwell_1d_fem_sm.F90.

◆ transform_dofs()

procedure transform_dofs
privateinherited

By default this is just a copy of input to output.

Definition at line 76 of file sll_m_maxwell_1d_base.F90.

Member Data Documentation

◆ adiabatic_electrons

logical adiabatic_electrons
private

flag if adiabatic electrons are used

Definition at line 82 of file sll_m_maxwell_1d_fem_sm.F90.

◆ linear_op_schur_eb

type( sll_t_linear_operator_schur_eb_1d ) linear_op_schur_eb
private

Schur complement operator for advect_eb.

Definition at line 66 of file sll_m_maxwell_1d_fem_sm.F90.

◆ linear_solver_mass0

type(sll_t_linear_solver_cg) linear_solver_mass0
private

linear solver to invert 0-form mass matrix

Definition at line 75 of file sll_m_maxwell_1d_fem_sm.F90.

◆ linear_solver_mass1

type(sll_t_linear_solver_cg) linear_solver_mass1
private

linear solver to invert 1-form mass matrix

Definition at line 76 of file sll_m_maxwell_1d_fem_sm.F90.

◆ linear_solver_schur_eb

type( sll_t_linear_solver_mgmres ) linear_solver_schur_eb
private

Schur complement solver for advect_eb.

Definition at line 67 of file sll_m_maxwell_1d_fem_sm.F90.

◆ mass0

type(sll_t_matrix_csr) mass0
private

0-form mass matrix

Definition at line 72 of file sll_m_maxwell_1d_fem_sm.F90.

◆ mass1

type(sll_t_matrix_csr) mass1
private

1-form mass matrix

Definition at line 73 of file sll_m_maxwell_1d_fem_sm.F90.

◆ mixed_mass

type(sll_t_matrix_csr) mixed_mass
private

mixed mass matrix

Definition at line 74 of file sll_m_maxwell_1d_fem_sm.F90.

◆ poisson_matrix

type(sll_t_linear_operator_poisson_1d) poisson_matrix
private

Poisson matrix.

Definition at line 78 of file sll_m_maxwell_1d_fem_sm.F90.

◆ poisson_operator

type(sll_t_linear_operator_penalized) poisson_operator
private

Poisson matrix with constraint on constant vector.

Definition at line 79 of file sll_m_maxwell_1d_fem_sm.F90.

◆ poisson_solver

type(sll_t_linear_solver_cg) poisson_solver
private

CG solver to invert Poisson matrix.

sign of particle force, + for attraction, - for repulsion

Definition at line 80 of file sll_m_maxwell_1d_fem_sm.F90.

◆ strong_ampere

logical strong_ampere = .false.
privateinherited

flag to switch between strong and weak Ampere formulation

tolerance for the field solver

Definition at line 35 of file sll_m_maxwell_1d_base.F90.

    Report Typos and Errors