280 FUNCTION vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
283 INTEGER,
INTENT(IN) :: m
284 REAL(KIND=8),
DIMENSION(H_mesh%np,6) :: vv
309 FUNCTION hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
312 INTEGER ,
INTENT(IN) :: type
313 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
314 INTEGER ,
INTENT(IN) :: m
315 REAL(KIND=8),
INTENT(IN) ::
t
316 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
317 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
325 vv(n) = -
bessj1(rr(1,n))*vv(n)
327 ELSE IF (type==5)
THEN
330 vv(n) =
bessj0(rr(1,n))*vv(n)
335 ELSE IF (m==mode_mu_t22)
THEN
337 vv = cosh(rr(2,:))*
f_test_t22(rr(1,:),rr(2,:))
339 vv(n) = -
bessj1(rr(1,n))*vv(n)
341 ELSE IF (type==5)
THEN
342 vv = sinh(rr(2,:))*
f_test_t22(rr(1,:),rr(2,:))
344 vv(n) =
bessj0(rr(1,n))*vv(n)
355 n=h_mesh%np; r=mu_h_field(1); r=
t
360 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
362 INTEGER ,
INTENT(IN) :: type
363 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
364 INTEGER ,
INTENT(IN) :: m
365 REAL(KIND=8),
INTENT(IN) :: mu_phi,
t
366 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
367 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: r,
z
378 vv(n) =
bessj0(r(n))*cosh(
z(n))
391 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
393 INTEGER ,
INTENT(IN) :: type
394 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
395 INTEGER ,
INTENT(IN) :: m
396 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
397 INTEGER ,
INTENT(IN) :: mesh_id
398 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_b_ext
401 REAL(KIND=8),
DIMENSION(1) :: dummy
404 IF (m/=mode_mu_t22)
THEN
413 vv = -(mode_mu_t22/r)*dummy(1)*
bessj0(r)*sinh(
z)
414 ELSE IF (type==3)
THEN
416 ELSE IF (type==6)
THEN
417 vv = -(mode_mu_t22/r)*dummy(1)*
bessj1(r)*cosh(
z)
424 r=mu_phi; r=sigma; r=mu_h; r=
t; n=mesh_id
425 IF (present(opt_b_ext)) r=opt_b_ext(1)
432 INTEGER,
INTENT(IN) :: type
433 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
434 INTEGER,
INTENT(IN) :: m
435 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
444 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=
t; n=type; n=m
449 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
450 list_mode, hn1, hn, phin1, phin)
453 REAL(KIND=8),
INTENT(OUT):: time
454 REAL(KIND=8),
INTENT(IN) :: dt
455 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
456 REAL(KIND=8),
INTENT(IN) :: mu_phi
457 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
458 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: hn, hn1
459 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
471 r=h_mesh%rr(1,1); r=phi_mesh%rr(1,1); r=dt; r=mu_h_field(1); r=mu_phi; n=
SIZE(list_mode)
482 REAL(KIND=8),
DIMENSION(ne-nb+1) :: vv
483 INTEGER,
INTENT(IN) :: nb, ne
484 REAL(KIND=8),
DIMENSION(2,ne-nb+1),
OPTIONAL :: pts
485 INTEGER,
DIMENSION(ne-nb+1),
OPTIONAL :: pts_ids
487 IF( present(pts) .AND. present(pts_ids) )
THEN
501 REAL(KIND=8),
DIMENSION(2),
INTENT(in):: pt
502 INTEGER,
DIMENSION(1),
INTENT(in) :: pt_id
503 REAL(KIND=8),
DIMENSION(2) :: vv
513 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: angles
514 INTEGER,
INTENT(IN) :: nb_angles
515 INTEGER,
INTENT(IN) :: nb, ne
516 REAL(KIND=8),
INTENT(IN) :: time
517 REAL(KIND=8),
DIMENSION(nb_angles,ne-nb+1) :: vv
section doc_intro_frame_work_num_app Numerical approximation subsection doc_intro_fram_work_num_app_Fourier_FEM Fourier Finite element representation The SFEMaNS code uses a hybrid Fourier Finite element formulation The Fourier decomposition allows to approximate the problem’s solutions for each Fourier mode modulo nonlinear terms that are made explicit The variables are then approximated on a meridian section of the domain with a finite element method The numerical approximation of a function f $f f is written in the following generic t
real(kind=8) function, dimension(ne-nb+1) mu_bar_in_fourier_space_anal_t22(H_mesh, nb, ne, pts, pts_ids)
real(kind=8) function, public bessj1(x)
real(kind=8) function dfdr_test_t22(r, z)
real(kind=8) function, dimension(size(r)) f_test_t22(r, z)
subroutine, public init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, list_mode, Hn1, Hn, phin1, phin)
real(kind=8) function, public jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext)
real(kind=8) function, dimension(h_mesh%np, 6), public vexact(m, H_mesh)
real(kind=8) function, dimension(size(rr, 2)), public phiexact(TYPE, rr, m, mu_phi, t)
real(kind=8) function, dimension(2), public grad_mu_bar_in_fourier_space(pt, pt_id)
real(kind=8) function, dimension(nb_angles, ne-nb+1), public mu_in_real_space(H_mesh, angles, nb_angles, nb, ne, time)
real(kind=8) function, public bessj0(x)
real(kind=8) function, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)
real(kind=8) function, dimension(ne-nb+1), public mu_bar_in_fourier_space(H_mesh, nb, ne, pts, pts_ids)
real(kind=8) function, dimension(2) grad_mu_bar_in_fourier_space_anal_t22(pt, pt_id)
real(kind=8) function dfdz_test_t22(r, z)
real(kind=8) function, dimension(nb_angles, ne-nb+1) mu_in_real_space_anal_t22(H_mesh, angles, nb_angles, nb, ne)
real(kind=8) function, dimension(size(rr, 2)), public hexact(H_mesh, TYPE, rr, m, mu_H_field, t)
section doc_intro_frame_work_num_app Numerical approximation subsection doc_intro_fram_work_num_app_Fourier_FEM Fourier Finite element representation The SFEMaNS code uses a hybrid Fourier Finite element formulation The Fourier decomposition allows to approximate the problem’s solutions for each Fourier mode modulo nonlinear terms that are made explicit The variables are then approximated on a meridian section of the domain with a finite element method The numerical approximation of a function f $f f is written in the following generic z