279 FUNCTION vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
282 INTEGER,
INTENT(IN) :: m
283 REAL(KIND=8),
DIMENSION(H_mesh%np,6) :: vv
308 FUNCTION hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
311 INTEGER ,
INTENT(IN) :: type
312 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
313 INTEGER ,
INTENT(IN) :: m
314 REAL(KIND=8),
INTENT(IN) ::
t
315 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
316 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_t27)
THEN
339 vv(n) = -
bessj1(rr(1,n))*vv(n)
341 ELSE IF (type==5)
THEN
344 vv(n) =
bessj0(rr(1,n))*vv(n)
355 n=h_mesh%np; r=mu_h_field(1)
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
405 IF (m/=mode_mu_t27)
THEN
414 vv = -(mode_mu_t27/r)*dummy(1)*
bessj0(r)*sinh(
z)
415 ELSE IF (type==3)
THEN
417 ELSE IF (type==6)
THEN
418 vv = -(mode_mu_t27/r)*dummy(1)*
bessj1(r)*cosh(
z)
425 r=mu_phi; r=sigma; r=mu_h; n=mesh_id
426 IF (present(opt_b_ext)) r=opt_b_ext(1)
433 INTEGER,
INTENT(IN) :: type
434 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
435 INTEGER,
INTENT(IN) :: m
436 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
442 CALL
error_petsc(
'Eexact: should not be called for this test')
445 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=
t; n=type; n=m
450 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
451 list_mode, hn1, hn, phin1, phin)
454 REAL(KIND=8),
INTENT(OUT):: time
455 REAL(KIND=8),
INTENT(IN) :: dt
456 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
457 REAL(KIND=8),
INTENT(IN) :: mu_phi
458 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
459 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: hn, hn1
460 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
472 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)
483 REAL(KIND=8),
DIMENSION(ne-nb+1) :: vv
484 INTEGER,
INTENT(IN) :: nb, ne
485 REAL(KIND=8),
DIMENSION(2,ne-nb+1),
OPTIONAL :: pts
486 INTEGER,
DIMENSION(ne-nb+1),
OPTIONAL :: pts_ids
488 IF( present(pts) .AND. present(pts_ids) )
THEN
502 REAL(KIND=8),
DIMENSION(2),
INTENT(in):: pt
503 INTEGER,
DIMENSION(1),
INTENT(in) :: pt_id
504 REAL(KIND=8),
DIMENSION(2) :: vv
514 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: angles
515 INTEGER,
INTENT(IN) :: nb_angles
516 INTEGER,
INTENT(IN) :: nb, ne
517 REAL(KIND=8),
INTENT(IN) :: time
518 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 dfdz_test_wtime_t27(r, z, 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, public jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext)
real(kind=8) function, dimension(2) grad_mu_bar_in_fourier_space_anal_t27(pt, pt_id)
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(ne-nb+1) mu_bar_in_fourier_space_anal_t27(H_mesh, nb, ne, pts, pts_ids)
real(kind=8) function, dimension(2), public grad_mu_bar_in_fourier_space(pt, pt_id)
real(kind=8) function dfdr_test_wtime_t27(r, z, t)
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, dimension(nb_angles, ne-nb+1) mu_in_real_space_anal_t27(H_mesh, angles, nb_angles, nb, ne, time)
real(kind=8) function, dimension(size(r)) f_test_wtime_t27(r, z, t)
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)
subroutine error_petsc(string)
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