2 #include "sll_working_precision.h"
23 sll_int32 :: n_dofs0, n_dofs1
24 sll_real64 :: sign = 1.0_f64
43 self%particle_mass => particle_mass
44 self%maxwell_solver => maxwell_solver
46 self%degree = self%maxwell_solver%s_deg_1
47 self%n_dofs0 = self%maxwell_solver%n_dofs0
48 self%n_dofs1 = self%maxwell_solver%n_dofs1
50 self%n_rows = self%n_dofs0
51 self%n_cols = self%n_dofs0
53 self%n_global_rows = self%n_rows
54 self%n_global_cols = self%n_cols
61 self%maxwell_solver => null()
62 self%particle_mass => null()
69 sll_real64,
intent( in ) :: x(:)
70 sll_real64,
intent( out ) :: y(:)
72 sll_real64 :: g(self%n_dofs1), h(self%n_dofs1), z(self%n_dofs0)
75 call self%maxwell_solver%multiply_g( x, g )
76 call self%particle_mass%dot( g, h )
77 call self%maxwell_solver%multiply_gt( h, z )
78 call self%maxwell_solver%multiply_mass( x, y, self%maxwell_solver%s_deg_0 )
module for abstract linear operator
subroutine free_schur_phiv_1d(self)
subroutine print_info_schur_phiv_1d(self)
subroutine create_linear_operator_schur_phiv_1d(self, maxwell_solver, particle_mass)
subroutine dot_schur_phiv_1d(self, x, y)
Module interface to solve Maxwell's equations in 1D.
class for abstract linear operator