278 FUNCTION vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
281 INTEGER,
INTENT(IN) :: m
282 REAL(KIND=8),
DIMENSION(H_mesh%np,6) :: vv
307 FUNCTION hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
310 INTEGER ,
INTENT(IN) :: type
311 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
312 INTEGER ,
INTENT(IN) :: m
313 REAL(KIND=8),
INTENT(IN) ::
t
314 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
315 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
322 ELSE IF (type==5)
THEN
330 ELSE IF (type==5)
THEN
341 n=h_mesh%np; r=mu_h_field(1); r=
t
346 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
348 INTEGER ,
INTENT(IN) :: type
349 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
350 INTEGER ,
INTENT(IN) :: m
351 REAL(KIND=8),
INTENT(IN) :: mu_phi,
t
352 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
357 CALL
error_petsc(
'Phiexact: should not be called for this test')
361 n=type; n=m; r=rr(1,1); r=mu_phi; r=
t
366 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
368 INTEGER ,
INTENT(IN) :: type
369 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
370 INTEGER ,
INTENT(IN) :: m
371 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
372 INTEGER ,
INTENT(IN) :: mesh_id
373 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_b_ext
381 ELSE IF (type==3)
THEN
383 ELSE IF (type==6)
THEN
394 r=mu_phi; r=sigma; r=mu_h; r=
t; n=mesh_id
395 IF (present(opt_b_ext)) r=opt_b_ext(1)
402 INTEGER,
INTENT(IN) :: type
403 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
404 INTEGER,
INTENT(IN) :: m
405 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
421 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=
t
426 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
427 list_mode, hn1, hn, phin1, phin)
430 REAL(KIND=8),
INTENT(OUT):: time
431 REAL(KIND=8),
INTENT(IN) :: dt
432 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
433 REAL(KIND=8),
INTENT(IN) :: mu_phi
434 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
435 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: hn, hn1
436 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
441 DO i=1,
SIZE(list_mode)
442 hn1(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
443 IF (inputs%nb_dom_phi>0)
THEN
445 phin1(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
453 DO i=1,
SIZE(list_mode)
454 hn(:,k,i) =
hexact(h_mesh, k, h_mesh%rr, list_mode(i), mu_h_field, time)
455 IF (inputs%nb_dom_phi>0)
THEN
457 phin(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
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
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, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)
subroutine error_petsc(string)
real(kind=8) function, dimension(size(rr, 2)), public hexact(H_mesh, TYPE, rr, m, mu_H_field, t)