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
327 vv = cosh(rr(2,:))*(1+vv)
329 vv(n) = -
bessj1(rr(1,n))*vv(n)
331 ELSE IF (type==5)
THEN
332 vv = sinh(rr(2,:))*(1+vv)
334 vv(n) =
bessj0(rr(1,n))*vv(n)
342 n=h_mesh%np; r=mu_h_field(1); r=
t
347 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
349 INTEGER ,
INTENT(IN) :: type
350 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
351 INTEGER ,
INTENT(IN) :: m
352 REAL(KIND=8),
INTENT(IN) :: mu_phi,
t
353 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
354 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: r,
z
365 vv(n) =
bessj0(r(n))*cosh(
z(n))
378 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
380 INTEGER ,
INTENT(IN) :: type
381 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
382 INTEGER ,
INTENT(IN) :: m
383 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
384 INTEGER ,
INTENT(IN) :: mesh_id
385 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_b_ext
406 r=mu_phi; r=sigma; r=mu_h; r=
t; n=mesh_id
407 IF (present(opt_b_ext)) r=opt_b_ext(1)
414 INTEGER,
INTENT(IN) :: type
415 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
416 INTEGER,
INTENT(IN) :: m
417 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
426 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=
t; n=type; n=m
431 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
432 list_mode, hn1, hn, phin1, phin)
435 REAL(KIND=8),
INTENT(OUT):: time
436 REAL(KIND=8),
INTENT(IN) :: dt
437 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
438 REAL(KIND=8),
INTENT(IN) :: mu_phi
439 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
440 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: hn, hn1
441 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
446 DO i=1,
SIZE(list_mode)
447 hn1(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
448 IF (inputs%nb_dom_phi>0)
THEN
450 phin1(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
458 DO i=1,
SIZE(list_mode)
459 hn(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
460 IF (inputs%nb_dom_phi>0)
THEN
462 phin(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
476 REAL(KIND=8),
DIMENSION(ne-nb+1) :: vv
477 INTEGER,
INTENT(IN) :: nb, ne
478 REAL(KIND=8),
DIMENSION(2,ne-nb+1),
OPTIONAL :: pts
479 INTEGER,
DIMENSION(ne-nb+1),
OPTIONAL :: pts_ids
481 IF( present(pts) .AND. present(pts_ids) )
THEN
495 REAL(KIND=8),
DIMENSION(2),
INTENT(IN):: pt
496 INTEGER,
DIMENSION(1),
INTENT(IN) :: pt_id
497 REAL(KIND=8),
DIMENSION(2) :: 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, public bessj1(x)
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, dimension(size(r)) f_test_t17(r, z)
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) grad_mu_bar_in_fourier_space_anal_t17(pt, pt_id)
real(kind=8) function, dimension(2), public grad_mu_bar_in_fourier_space(pt, pt_id)
real(kind=8) function, public bessj0(x)
real(kind=8) function, dimension(ne-nb+1) mu_bar_in_fourier_space_anal_t17(H_mesh, nb, ne, pts, pts_ids)
real(kind=8) function, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)
real(kind=8) function dfdr_test_t17(r, z)
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 dfdz_test_t17(r, z)
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