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
318 INTEGER,
DIMENSION(SIZE(rr,2)) :: id
321 IF (
SIZE(rr,2)== h_mesh%np)
THEN
323 id(h_mesh%jj(:,mm)) = h_mesh%i_d(mm)
339 vv(n) = rr(1,n)/(1.d0 + lambda_mu_t23/rr(2,n) )
341 ELSE IF (type==5)
THEN
342 vv(n) = -2.d0*rr(2,n)
346 ELSE IF (m == mode_mu_t23)
THEN
351 vv(n) = rr(1,n)*
s_test_t23(rr(1,n),rr(2,n))/(1.d0 + lambda_mu_t23/rr(2,n))
354 ELSE IF (type==5)
THEN
355 vv(n) = -2.d0*rr(2,n)*
s_test_t23(rr(1,n),rr(2,n))
371 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
373 INTEGER ,
INTENT(IN) :: type
374 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
375 INTEGER ,
INTENT(IN) :: m
376 REAL(KIND=8),
INTENT(IN) :: mu_phi,
t
377 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
382 CALL
error_petsc(
'Phiexact: should not be called for this test')
386 n=type; n=
SIZE(rr,1); n=m; r=mu_phi; r=
t
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
400 REAL(KIND=8) :: alpha,beta
406 IF ((m==0) .AND. (mesh_id==2) .AND. (type==3))
THEN
408 beta=lambda_mu_t23/((1.d0 + lambda_mu_t23/
z)**2 *
z**2)
410 ELSE IF (m==mode_mu_t23)
THEN
413 vv = 2.d0*m*
z*b_factor_t23*r**2*( (r-1.d0)*(r-2.d0)*(
z-0.25)*(
z-1.d0) )**3
415 ELSE IF (type==3)
THEN
416 alpha =6*b_factor_t23*
z*( (
z-0.25)*(
z-1) )**3*( r* (r-1.d0)*(r-2.d0) )**2 &
417 *( r*(r-1)+r*(r-2)+(r-1)*(r-2))
420 vv= 3*b_factor_t23*r**4*( (r-1)*(r-2) )**3 *( (
z-0.25)*(
z-1) )**2&
421 *( 2*
z -1 - 0.25) + alpha
423 beta =lambda_mu_t23/((1.d0 + lambda_mu_t23/
z)**2 *
z**2)
425 vv= b_factor_t23*r**4*( (r-1.d0)*(r-2.d0) )**3 *( (
z-0.25)*(
z-1) )**2 &
426 *( 3*(2*
z- 1 - 0.25 )/(1.d0+lambda_mu_t23/
z) + beta*(
z-1)*(
z-0.25) ) &
430 ELSE IF (type==6)
THEN
446 r=mu_phi; r=sigma; r=mu_h; r=
t
447 IF (present(opt_b_ext)) r=opt_b_ext(1)
454 INTEGER,
INTENT(IN) :: type
455 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
456 INTEGER,
INTENT(IN) :: m
457 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_h,
t
463 CALL
error_petsc(
'Eexact: should not be called for this test')
466 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=
t; n=type; n=m
471 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
472 list_mode, hn1, hn, phin1, phin)
475 REAL(KIND=8),
INTENT(OUT):: time
476 REAL(KIND=8),
INTENT(IN) :: dt
477 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_h_field
478 REAL(KIND=8),
INTENT(IN) :: mu_phi
479 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
480 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: hn, hn1
481 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
493 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)
504 REAL(KIND=8),
DIMENSION(ne-nb+1) :: vv
505 INTEGER,
INTENT(IN) :: nb, ne
506 REAL(KIND=8),
DIMENSION(2,ne-nb+1),
OPTIONAL :: pts
507 INTEGER,
DIMENSION(ne-nb+1),
OPTIONAL :: pts_ids
509 IF( present(pts) .AND. present(pts_ids) )
THEN
523 REAL(KIND=8),
DIMENSION(2),
INTENT(in):: pt
524 INTEGER,
DIMENSION(1),
INTENT(in) :: pt_id
525 REAL(KIND=8),
DIMENSION(2) :: vv
535 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: angles
536 INTEGER,
INTENT(IN) :: nb_angles
537 INTEGER,
INTENT(IN) :: nb, ne
538 REAL(KIND=8),
INTENT(IN) :: time
539 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 s_test_t23(r, z)
real(kind=8) function, dimension(ne-nb+1) mu_bar_in_fourier_space_anal_t23(H_mesh, nb, ne, pts, pts_ids)
real(kind=8) function, dimension(2) grad_mu_bar_in_fourier_space_anal_t23(pt, pt_id)
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, dimension(nb_angles, ne-nb+1) mu_in_real_space_anal_t23(H_mesh, angles, nb_angles, nb, ne)
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