2 #include "sll_working_precision.h"
25 sll_real64 :: sign = 1.0_f64
50 self%delta_x = delta_x
51 self%s_deg_0 = s_deg_0
53 self%n_rows = self%n_dofs
54 self%n_cols = self%n_dofs
56 self%n_global_rows = self%n_rows
57 self%n_global_cols = self%n_cols
72 sll_real64,
intent( in ) :: x(:)
73 sll_real64,
intent( out ) :: y(:)
76 sll_real64 :: scratch0(self%n_dofs), scratch1(self%n_dofs-1), scratch2(self%n_dofs-1)
82 call self%mass1%dot( scratch1, scratch2 )
91 call self%mass0%dot( x, y )
94 y = y + self%sign * scratch0
module for abstract linear operator
subroutine dot_schur_eb_cl_1d(self, x, y)
subroutine create_linear_operator_schur_eb_cl_1d(self, mass0, mass1, n_dofs, delta_x, s_deg_0)
subroutine print_info_schur_eb_cl_1d(self)
subroutine free_schur_eb_cl_1d(self)
module for Compressed Sparse Row Matrix (CSR)
Utilites for Maxwell solver's with spline finite elements using sparse matrices.
subroutine, public sll_s_multiply_gt_clamped_1d(n_dofs, delta_x, s_deg_0, in, out)
Multiplication of the input vector in by the transposed clamped derivative matrix G^T.
subroutine, public sll_s_multiply_g_clamped_1d(n_dofs, delta_x, s_deg_0, in, out)
Multiplication of the input vector in by the clamped derivative matrix G.
class for abstract linear operator