2 #include "sll_working_precision.h"
20 sll_int32 :: n_total0, n_total1
21 sll_real64 :: sign = 1.0_f64
40 self%particle_mass => particle_mass
41 self%maxwell_solver => maxwell_solver
43 self%n_total0 = maxwell_solver%n_total0
44 self%n_total1 = maxwell_solver%n_total1
46 self%n_rows = self%n_total1+2*self%n_total0
47 self%n_cols = self%n_total1+2*self%n_total0
49 self%n_global_rows = self%n_rows
50 self%n_global_cols = self%n_cols
57 self%maxwell_solver => null()
58 self%particle_mass => null()
65 sll_real64,
intent( in ) :: x(:)
66 sll_real64,
intent( out ) :: y(:)
69 sll_real64 :: z(self%n_total1+2*self%n_total0)
71 call self%particle_mass%dot( x, z )
72 call self%maxwell_solver%multiply_mass([1], x, y)
module for abstract linear operator
module for a block linear operator
subroutine create_linear_operator_schur_ev_3d(self, maxwell_solver, particle_mass)
subroutine free_schur_ev_3d(self)
subroutine print_info_schur_ev_3d(self)
subroutine dot_schur_ev_3d(self, x, y)
Module interface to solve Maxwell's equations in 3D.
class for abstract linear operator
class for a linear operator_block