4 REAL (kind=8),
PARAMETER,
PUBLIC :: ratio_mu_T23 = 50.0d0
5 REAL (kind=8),
PUBLIC :: b_factor_T23 = (1.d0/0.00016) * (ratio_mu_T23 - 1.d0)/(ratio_mu_T23 +1.d0)
6 REAL (kind=8),
PUBLIC :: lambda_mu_T23 = 1.d0
7 INTEGER,
PUBLIC :: mode_mu_T23 = 3
15 vv = b_factor_t23*( r*(r-1.d0)*(r-2.d0)*(
z-0.25)*(
z-1.d0) )**3
22 REAL(KIND=8),
DIMENSION(2) :: vv
23 vv(1) = b_factor_t23*((
z-0.25)*(
z-1.d0))**3 * &
24 ( 3*( r*(r-1.d0)*(r-2.d0) )**2*( r*( (r-1)+(r-2) ) + (r-1)*(r-2) ) )
26 vv(2) = b_factor_t23*( r*(r-1.d0)*(r-2.d0))**3 * &
27 ( 3* (
z-0.25)*(
z-1.d0) )**2 *( (
z-1.d0) + (
z-0.25) )
37 REAL(KIND=8),
DIMENSION(ne-nb+1) :: vv
39 REAL(KIND=8),
DIMENSION(2,ne-nb+1),
OPTIONAL :: pts
40 INTEGER,
DIMENSION(ne-nb+1),
OPTIONAL :: pts_ids
41 INTEGER,
DIMENSION(H_mesh%np) :: global_ids
42 INTEGER,
DIMENSION(ne-nb+1) :: local_ids
44 REAL(KIND=8),
DIMENSION(ne-nb+1) :: r,
z
47 IF( present(pts) .AND. present(pts_ids) )
THEN
55 global_ids(h_mesh%jj(:,m)) = h_mesh%i_d(m)
57 local_ids=global_ids(nb:ne)
62 IF(local_ids(n)==1)
THEN
63 vv(n) = 1.d0/(1.d0 + abs(s))
66 vv(n) = 1.d0/( (1.d0 + abs(s)))*(1.d0 + lambda_mu_t23/
z(n))
77 REAL(KIND=8),
DIMENSION(2) :: vv
78 REAL(KIND=8),
DIMENSION(2) :: pt
79 INTEGER,
DIMENSION(1) :: pt_id
80 REAL(KIND=8) :: r,
z,sign,s
81 REAL(KIND=8),
DIMENSION(2) :: tmp
87 IF (s .GE. 0.d0 )
THEN
96 vv(1)=-sign*tmp(1)/(1.d0 +abs(s))**2
97 vv(2)=-sign*tmp(2)/(1.d0 +abs(s))**2
99 vv(1)=-sign*tmp(1)/(1.d0 +abs(s))**2*(1+lambda_mu_t23/
z)
100 vv(2)=-sign*tmp(2)/(1.d0 +abs(s))**2*(1+lambda_mu_t23/
z) + 1.d0/(1.d0+abs(s))*(-lambda_mu_t23/
z**2)
109 REAL(KIND=8),
DIMENSION(:) :: angles
112 REAL(KIND=8),
DIMENSION(nb_angles,ne-nb+1) :: vv
113 INTEGER :: ang, n_loc, m, n
115 INTEGER,
DIMENSION(H_mesh%np) :: id
117 id(h_mesh%jj(:,m)) = h_mesh%i_d(m)
121 tmp =
s_test_t23(h_mesh%rr(1,n),h_mesh%rr(2,n))
122 DO ang = 1, nb_angles
125 vv(ang,n_loc) = 1.d0/(1.d0 + tmp*cos(mode_mu_t23*angles(ang)) )
127 vv(ang,n_loc) = 1.d0/( 1.d0 + tmp*cos(mode_mu_t23*angles(ang)) ) &
128 *( 1.d0 + lambda_mu_t23/(h_mesh%rr(2,n)) )
real(kind=8) function s_test_t23(r, z)
real(kind=8) function, dimension(2) ds_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)
real(kind=8) function, dimension(nb_angles, ne-nb+1) mu_in_real_space_anal_t23(H_mesh, angles, nb_angles, nb, ne)
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