10 #include "sll_working_precision.h"
33 sll_real64 :: mass_solver_tolerance = 1d-12
34 sll_real64 :: poisson_solver_tolerance = 1d-12
35 logical :: strong_ampere = .false.
37 sll_real64 :: solver_tolerance = 1d-12
48 procedure(signature_compute_e_from_j_1d),
deferred :: &
57 compute_rhs_from_function
95 sll_real64 :: coefs_dofs(:)
108 sll_real64,
intent(in) :: in(:)
109 sll_real64,
intent(out) :: out(:)
110 sll_int32,
intent(in) :: degree
123 sll_real64 :: coefs1_dofs(:)
124 sll_real64 :: coefs2_dofs(:)
126 sll_int32,
optional :: degree2
139 sll_real64,
intent(in) :: x
150 sll_int32,
intent(in) :: degree
151 sll_real64,
intent(out) :: coefs_dofs(:)
161 sll_real64,
intent(in) :: delta_t
162 sll_real64,
intent(in) :: field_in(:)
163 sll_real64,
intent(inout) :: field_out(:)
173 sll_real64,
intent(in) :: field_in(:)
174 sll_real64,
intent(out) :: field_out(:)
180 subroutine signature_compute_e_from_j_1d(self, current, component, E)
184 sll_real64,
dimension(:),
intent(in) :: current
185 sll_int32,
intent(in) :: component
186 sll_real64,
dimension(:),
intent(inout) :: e
187 end subroutine signature_compute_e_from_j_1d
196 sll_real64,
intent(in) :: in(:)
197 sll_real64,
intent(out) :: phi(:)
198 sll_real64,
intent(out) :: efield(:)
208 sll_real64,
intent(in) :: in(:)
209 sll_real64,
intent(out) :: out(:)
217 character(len=*),
intent(in) :: fname
218 sll_int32,
intent(in) :: n1
219 sll_real64,
dimension(n1),
intent(in) :: f1
220 sll_real64,
dimension(n1),
intent(in) :: f2
221 sll_int32,
intent(in) :: iplot
222 sll_real64,
intent(in) :: time
225 character(len=4) :: cplot
230 open( 80, file = fname//cplot//
".dat" )
232 write(80,*) i, sngl(f1(i)), sngl(f2(i))
258 sll_int32,
intent(in) :: degree
259 sll_real64,
intent(in) :: in(:)
260 sll_real64,
intent(out) :: out(:)
270 sll_real64,
intent(in) :: delta_t
271 sll_real64,
intent(inout) :: efield(:)
272 sll_real64,
intent(inout) :: bfield(:)
273 sll_real64,
optional :: betar
277 if(
present(betar) )
then
284 call self%compute_B_from_E( &
285 delta_t, efield, bfield )
287 call self%compute_E_from_B(&
288 delta_t, bfield*factor , efield )
Module interface to solve Maxwell's equations in 1D.
subroutine compute_curl_part(self, delta_t, efield, bfield, betar)
Solve source-free Maxwell's equations: Default implementation by solving first B_from_E then E_from_B...
subroutine transform_dofs(self, in, out, degree)
Transformation of the dofs (identity by default)
subroutine, public sll_s_plot_two_fields_1d(fname, n1, f1, f2, iplot, time)
write files to visualize 1d fields with gnuplot
Some common numerical utilities.
subroutine, public sll_s_int2string(istep, cstep)
Convert an integer < 9999 to a 4 characters string.
Module to select the kind parameter.