11 #include "sll_assert.h"
12 #include "sll_memory.h"
13 #include "sll_working_precision.h"
30 sll_real64,
allocatable :: diag(:)
51 sll_real64,
allocatable :: scratch1(:), scratch2(:)
53 allocate( self%diag(1:linop%n_rows) )
54 allocate( scratch1(1:linop%n_rows) )
55 allocate( scratch2(1:linop%n_rows) )
57 do i = 1, linop%n_rows
60 call linop%dot( scratch1, scratch2 )
61 self%diag(i) = scratch2(i)
68 sll_real64,
intent(in ) :: rhs(:)
69 sll_real64,
intent( out) :: unknown(:)
71 unknown = rhs/self%diag
77 logical,
intent( in ) :: verbose
79 self%verbose = verbose
89 character(len=*),
intent( in ) :: filename
module for abstract linear operator
module for abstract linear solver
Module interface to solve Maxwell's equations.
subroutine print_info(self)
subroutine free_3d_trafo(self)
subroutine set_verbose(self, verbose)
subroutine create_3d_trafo(self, linop)
subroutine read_from_file(self, filename)
subroutine solve_3d_trafo(self, rhs, unknown)
class for abstract linear operator
class for abstract linear solver