43 un_m1, un, pn_m1, pn, phin_m1, phin)
46 REAL(KIND=8),
INTENT(OUT):: time
47 REAL(KIND=8),
INTENT(IN) :: dt
48 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
49 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: un_m1, un
50 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: pn_m1, pn, phin_m1, phin
52 REAL(KIND=8),
DIMENSION(mesh_c%np) :: pn_m2
55 DO i= 1,
SIZE(list_mode)
59 un_m1(:,j,i) =
vv_exact(j,mesh_f%rr,mode,time-dt)
60 un(:,j,i) =
vv_exact(j,mesh_f%rr,mode,time)
64 pn_m2(:) =
pp_exact(j,mesh_c%rr,mode,time-2*dt)
65 pn_m1(:,j,i) =
pp_exact(j,mesh_c%rr,mode,time-dt)
66 pn(:,j,i) =
pp_exact(j,mesh_c%rr,mode,time)
67 phin_m1(:,j,i) = pn_m1(:,j,i) - pn_m2(:)
68 phin(:,j,i) = pn(:,j,i) - pn_m1(:,j,i)
77 REAL(KIND=8),
INTENT(OUT):: time
78 REAL(KIND=8),
INTENT(IN) :: dt
79 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
80 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: tempn_m1, tempn
84 DO i= 1,
SIZE(list_mode)
120 INTEGER ,
INTENT(IN) :: TYPE
121 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
122 INTEGER ,
INTENT(IN) :: mode, i
123 REAL(KIND=8),
INTENT(IN) :: time
124 REAL(KIND=8),
INTENT(IN) :: Re
125 CHARACTER(LEN=2),
INTENT(IN) :: ty
126 REAL(KIND=8),
DIMENSION(:,:,:),
OPTIONAL,
INTENT(IN) :: opt_density
127 REAL(KIND=8),
DIMENSION(:,:,:),
OPTIONAL,
INTENT(IN) :: opt_tempn
128 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, lambda
129 REAL(KIND=8) :: alpha, r0 = 0.5d0, pi = acos(-1.d0), beta
131 CHARACTER(LEN=2) :: np
133 IF (
PRESENT(opt_density))
CALL error_petsc(
'density should not be present for test 34')
135 alpha =
inputs%gravity_coefficient
136 beta =
inputs%mag_force_coefficient
143 lambda(j) =
inputs%temperature_diffusivity(1)
145 lambda(j) =
inputs%temperature_diffusivity(2)
151 ELSE IF (type==6)
THEN 159 vv = vv -(4*pi*r*(4*pi**2*r**4 - 8*pi**2*r**3*r0 + r0**2 + r**2*(-3 + 4*pi**2*r0**2))*cos(time)*cos(2*pi*z) + &
160 (r - r0)*re*cos(time)**2*(14*r**3 - 5*r**2*r0 - 5*r*r0**2 + 2*r0**3 + &
161 (36*pi**2*r**5 - 84*pi**2*r**4*r0 + 5*r*r0**2 - 2*r0**3 + 2*r**3*(-7 + 30*pi**2*r0**2) + &
162 r**2*(5*r0 - 12*pi**2*r0**3))*cos(4*pi*z)) - &
163 4*pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(2.*r**3*re)
164 ELSE IF (mode==1)
THEN 165 vv = vv -2*(2*pi*r*(2*pi**2*r**4 - r*r0 - 4*pi**2*r**3*r0 + r0**2 + r**2*(-1 + 2*pi**2*r0**2))*cos(time)*cos(2*pi*z) + &
166 ((3*r**2 - 4*r*r0 + r0**2)*re*cos(time)**2*(3*r**2 - r0**2 + &
167 (8*pi**2*r**4 - 16*pi**2*r**3*r0 + r0**2 + r**2*(-3 + 8*pi**2*r0**2))*cos(4*pi*z)))/2. - &
168 pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(r**3*re)
169 ELSE IF (mode==2)
THEN 170 vv = vv -((r - r0)*cos(time)**2*(4*r**2 - r*r0 - r0**2 + (12*pi**2*r**4 - &
171 28*pi**2*r**3*r0 + r0**2 + 4*r**2*(-1.d0 + 5*pi**2*r0**2) + &
172 r*(r0 - 4*pi**2*r0**3))*cos(4*pi*z)))/(2.*r**2)
174 ELSE IF (type==2)
THEN 176 vv = vv + ((r - r0)**2*cos(time)*(-4*pi*r*cos(2*pi*z) + re*cos(time)*(4*pi**2*r**4 - r*r0 - 8*pi**2*r**3*r0 + r0**2 + &
177 r**2*(-3.d0 + 4*pi**2*r0**2) + (3*r**2 + r*r0 - r0**2)*cos(4*pi*z))))/(r**3*re)
178 ELSE IF (mode==2)
THEN 179 vv = vv + ((r - r0)**2*cos(time)**2*(4*pi**2*r**4 - r*r0 - 8*pi**2*r**3*r0 + r0**2 + &
180 r**2*(-3.d0 + 4*pi**2*r0**2) + (3*r**2 + r*r0 - r0**2)*cos(4*pi*z)))/(2.*r**3)
182 ELSE IF (type==3)
THEN 184 vv = vv + (2*pi*(-3*pi*r*(r - r0)**3*(3*r - r0)*re*cos(time)**2 + &
185 (4*pi**2*r**4 - 8*pi**2*r**3*r0 + r0**2 + r**2*(-3.d0 + 4*pi**2*r0**2))*cos(time)*cos(2*pi*z) - &
186 r**2*(r - r0)**2*re*cos(2*pi*z)*sin(time)))/(r**2*re)
187 ELSE IF (mode==1)
THEN 188 vv = vv + (4*pi*r*(2*pi**2*r**4 - r*r0 - 4*pi**2*r**3*r0 + r0**2 + &
189 r**2*(-1 + 2*pi**2*r0**2))*cos(time)*cos(2*pi*z) + &
190 ((r - r0)**3*(3*r - r0)*re*cos(time)**2*(-1.d0 - 16*pi**2*r**2 + cos(4*pi*z)))/2. - &
191 2*pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(r**3*re)
192 ELSE IF (mode==2)
THEN 193 vv = vv + ((r - r0)**3*(3*r - r0)*cos(time)**2*(-1.d0 - 4*pi**2*r**2 + cos(4*pi*z)))/(2.*r**3)
195 ELSE IF (type==4)
THEN 197 vv = vv + ((r - r0)**2*cos(time)*(-8*pi*r*cos(2*pi*z) + re*cos(time)*((-3*r + r0)**2 + &
198 (8*pi**2*r**4 + 6*r*r0 - 16*pi**2*r**3*r0 - r0**2 + r**2*(-9.d0 + 8*pi**2*r0**2))*cos(4*pi*z))))/(2.*r**3*re)
199 ELSE IF (mode==2)
THEN 200 vv = vv + ((r - r0)**2*cos(time)**2*(2*r - r0 + (2*r*(-1.d0 + pi*(r - r0))*(1 + pi*(r - r0)) + r0)*cos(4*pi*z)))/r**2
202 ELSE IF (type==5)
THEN 204 vv = vv + ((4*(12*pi**2*r**4 - 16*pi**2*r**3*r0 - r0**2 + &
205 r**2*(-3.d0 + 4*pi**2*r0**2))*cos(time)*sin(2*pi*z) - &
206 4*r**2*(3*r**2 - 4*r*r0 + r0**2)*re*sin(time)*sin(2*pi*z) + &
207 pi*r*(r - r0)**2*(12*pi**2*r**4 - r*r0 - 24*pi**2*r**3*r0 + 2*r0**2 + &
208 4*r**2*(-1.d0 + 3*pi**2*r0**2))*re*4*cos(time)**2*sin(4*pi*z)))/(4.*r**3*re)
209 ELSE IF (mode==1)
THEN 210 vv = vv + (4*(-r0 + pi**2*r*(3*r**2 - 4*r*r0 + r0**2))*cos(time)*sin(2*pi*z) - &
211 r*(3*r**2 - 4*r*r0 + r0**2)*re*sin(time)*sin(2*pi*z) + &
212 pi*(r - r0)**2*(16*pi**2*r**4 - 2*r*r0 - 32*pi**2*r**3*r0 + 3*r0**2 + &
213 r**2*(-5.d0 + 16*pi**2*r0**2))*re*cos(time)**2*sin(4*pi*z))/(r**2*re)
214 ELSE IF (mode==2)
THEN 215 vv = vv + (pi*(r - r0)**2*(4*pi**2*r**4 - r*r0 - 8*pi**2*r**3*r0 + r0**2 + &
216 r**2*(-1.d0 + 4*pi**2*r0**2))*cos(time)**2*sin(4*pi*z))/r**2
218 ELSE IF (type==6)
THEN 220 vv = vv + (2*(2*pi**2*r*(r - r0)**2 - r0)*cos(time)*sin(2*pi*z) - r*(r - r0)**2*re*sin(time)*sin(2*pi*z) -&
221 4*pi*r*(r - r0)**3*re*cos(time)**2*sin(4*pi*z))/(r**2*re)
222 ELSE IF (mode==2)
THEN 223 vv = vv -2*pi*(r - r0)**3*cos(time)**2*sin(4*pi*z)/r
227 IF ((type==1).AND.(mode==1))
THEN 228 vv = vv + 3*r**2*cos(time)*sin(2*pi*z)
229 ELSE IF ((type==4).AND.(mode==1))
THEN 230 vv = vv - r**2*cos(time)*sin(2*pi*z)
231 ELSE IF ((type==5).AND.(mode==1))
THEN 232 vv = vv + 2*pi*r**3*cos(time)*cos(2*pi*z)
237 vv = vv + beta/2 * r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
238 (-215.d0-136*pi**2*r**2+(-215.d0+136*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (8*lambda**2)
239 ELSE IF (mode==1)
THEN 240 vv = vv + beta/2 * 5*r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
241 (-11.d0-8*pi**2*r**2+(-11.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (2*lambda**2)
242 ELSE IF (mode==2)
THEN 243 vv = vv + beta/2 * 7*r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
244 sin(4*pi*z)**2 / (2*lambda**2)
245 ELSE IF (mode==3)
THEN 246 vv = vv + beta/2 * r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
247 (19.d0+8*pi**2*r**2+(19.d0-8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (2*lambda**2)
248 ELSE IF (mode==4)
THEN 249 vv = vv - beta/2 * r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
250 (-15.d0-8*pi**2*r**2+(-15.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (8*lambda**2)
252 ELSE IF (type==2)
THEN 254 vv = vv + beta/2 * 4*r**7*(3*r**2-5*r*r0+2*r0**2)*cos(time)**4&
255 *(-9.d0-5*pi**2*r**2+(-9.d0+5*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
256 ELSE IF (mode==2)
THEN 257 vv = vv + beta/2 * 2*r**7*(3*r-2*r0)*(r-r0)*cos(time)**4&
258 *(-13.d0-8*pi**2*r**2+(-13.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
259 ELSE IF (mode==3)
THEN 260 vv = vv + beta/2 * 4*r**7*(3*r-2*r0)*(r-r0)*cos(time)**4&
261 *(-1.d0-pi**2*r**2+(-1.d0+pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
262 ELSE IF (mode==4)
THEN 263 vv = vv + beta/2 * r**7*(3*r-2*r0)*(r-r0)*cos(time)**4*&
264 sin(4*pi*z)**2 / (2*lambda**2)
266 ELSE IF (type==3)
THEN 268 vv = vv - beta/2 * r**7*(r-r0)**2*cos(time)**4*&
269 (-15.d0-8*pi**2*r**2+(-15.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
270 ELSE IF (mode==1)
THEN 271 vv = vv - beta/2 * 2*r**7*(r-r0)**2*cos(time)**4*&
272 (-3.d0-2*pi**2*r**2+(-3.d0+2*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
273 ELSE IF (mode==2)
THEN 274 vv = vv - beta/2 * 8*r**7*(r-r0)**2*cos(time)**4*&
275 (2.d0+pi**2*r**2+(2.d0-pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
276 ELSE IF (mode==3)
THEN 277 vv = vv - beta/2 * 2*r**7*(r-r0)**2*cos(time)**4*&
278 (3.d0+2*pi**2*r**2+(3.d0-2*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / lambda**2
279 ELSE IF (mode==4)
THEN 280 vv = vv + beta/2 * r**7*(r-r0)**2*cos(time)**4*&
281 sin(4*pi*z)**2 / (2*lambda**2)
283 ELSE IF (type==4)
THEN 285 vv = vv - beta/2 * 7*r**7*(r-r0)**2*cos(time)**4*&
286 (-15.d0-8*pi**2*r**2+(-15.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (4*lambda**2)
287 ELSE IF (mode==2)
THEN 288 vv = vv - beta/2 * 3*r**7*(r-r0)**2*cos(time)**4*&
289 (-11.d0-8*pi**2*r**2+(-11.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (4*lambda**2)
290 ELSE IF (mode==3)
THEN 291 vv = vv + beta/2 * r**7*(r-r0)**2*cos(time)**4*&
292 (-23.d0-8*pi**2*r**2+(-23.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (4*lambda**2)
293 ELSE IF (mode==4)
THEN 294 vv = vv + beta/2 * r**7*(r-r0)**2*cos(time)**4*&
295 (-15.d0-8*pi**2*r**2+(-15.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(2*pi*z)**2 / (8*lambda**2)
297 ELSE IF (type==5)
THEN 299 vv = vv + beta/2 * pi*r**8*(r-r0)**2*cos(time)**4*&
300 (-215.d0-136*pi**2*r**2+(-215.d0+136*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / (8*lambda**2)
301 ELSE IF (mode==1)
THEN 302 vv = vv + beta/2 * 5*pi*r**8*(r-r0)**2*cos(time)**4*&
303 (-11.d0-8*pi**2*r**2+(-11.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / (2*lambda**2)
304 ELSE IF (mode==2)
THEN 305 vv = vv + beta/2 * 28*pi*r**8*(r-r0)**2*cos(time)**4*&
306 cos(2*pi*z)**3*sin(2*pi*z) / lambda**2
307 ELSE IF (mode==3)
THEN 308 vv = vv - beta/2 * pi*r**8*(r-r0)**2*cos(time)**4*&
309 (-19.d0-8*pi**2*r**2+(-19.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / (2*lambda**2)
310 ELSE IF (mode==4)
THEN 311 vv = vv - beta/2 * pi*r**8*(r-r0)**2*cos(time)**4*&
312 (-15.d0-8*pi**2*r**2+(-15.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / (8*lambda**2)
314 ELSE IF (type==6)
THEN 316 vv = vv + beta/2 * 4*pi*r**8*(r-r0)**2*cos(time)**4*&
317 (-9.d0-5*pi**2*r**2+(-9.d0+5*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / lambda**2
318 ELSE IF (mode==2)
THEN 319 vv = vv + beta/2 * 2*pi*r**8*(r-r0)**2*cos(time)**4*&
320 (-13.d0-8*pi**2*r**2+(-13.d0+8*pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / lambda**2
321 ELSE IF (mode==3)
THEN 322 vv = vv + beta/2 * 4*pi*r**8*(r-r0)**2*cos(time)**4*&
323 (-1.d0-pi**2*r**2+(-1.d0+pi**2*r**2)*cos(4*pi*z))*sin(4*pi*z) / lambda**2
324 ELSE IF (mode==4)
THEN 325 vv = vv + beta/2 * 4*pi*r**8*(r-r0)**2*cos(time)**4*&
326 cos(2*pi*z)**3*sin(2*pi*z) / lambda**2
340 INTEGER ,
INTENT(IN) :: TYPE
341 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
342 INTEGER ,
INTENT(IN) :: m
343 REAL(KIND=8),
INTENT(IN) :: t
344 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, c, lambda
346 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0)
353 c(i) =
inputs%vol_heat_capacity(1)
355 c(i) =
inputs%vol_heat_capacity(2)
361 lambda(i) =
inputs%temperature_diffusivity(1)
363 lambda(i) =
inputs%temperature_diffusivity(2)
369 vv = ((-9*r + 4*pi**2*r**3 + 4*r0 - 4*pi**2*r**2*r0) * lambda * cos(t) + &
370 c * r**2 * (-r + r0) * sin(t)) * sin(2*pi*z) / lambda
372 vv = - ((-3*r0 + 4*r*(2.d0 + pi**2*r*(-r + r0))) * lambda * cos(t) + &
373 c * r**2 * (r - r0) * sin(t)) * sin(2*pi*z) / lambda
385 vv(i) = vv(i) + 3 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
386 cos(t)**2 * sin(4*pi*z(i)) / (2 * lambda(i))
392 vv(i) = vv(i) + 2 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
393 cos(t)**2 * sin(4*pi*z(i)) / lambda(i)
399 vv(i) = vv(i) + c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
400 cos(t)**2 * sin(4*pi*z(i)) / (2 *lambda(i))
423 FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
425 INTEGER ,
INTENT(IN) :: TYPE
426 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
427 INTEGER,
INTENT(IN) :: m
428 REAL(KIND=8),
INTENT(IN) :: t
429 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
430 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0)
436 IF ((m==0).OR.(m==1))
THEN 437 vv = -2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
441 ELSE IF (type==3)
THEN 442 IF ((m==0).OR.(m==1))
THEN 443 vv = 2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
447 ELSE IF (type==5)
THEN 448 IF ((m==0).OR.(m==1))
THEN 449 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (3*r-r0)
453 ELSE IF (type==6)
THEN 455 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (r-r0)
483 FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
485 INTEGER ,
INTENT(IN) :: TYPE
486 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
487 INTEGER ,
INTENT(IN) :: m
488 REAL(KIND=8),
INTENT(IN) :: t
489 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
490 REAL(KIND=8) :: pi = acos(-1.d0)
495 IF ((type==1).AND.(m==1))
THEN 496 vv = r**3*sin(2*pi*z)*cos(t)
507 INTEGER ,
INTENT(IN) :: TYPE
508 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
509 INTEGER ,
INTENT(IN) :: m
510 REAL(KIND=8),
INTENT(IN) :: t
511 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, lambda
512 REAL(KIND=8) :: r0=0.5d0, pi = acos(-1.d0)
520 lambda(i) =
inputs%temperature_diffusivity(1)
522 lambda(i) =
inputs%temperature_diffusivity(2)
526 IF ((type==1).AND.((m==0).OR.(m==1)))
THEN 527 vv = r**2*(r-r0)*sin(2*pi*z)*cos(t) / lambda
574 INTEGER ,
INTENT(IN) ::
TYPE, n_start
575 INTEGER,
INTENT(IN) :: mode
576 REAL(KIND=8),
INTENT(IN) :: t
577 REAL(KIND=8),
DIMENSION(H_Mesh%np) :: vv
585 n=h_mesh%np; r=t; n=type; n=mode; n=n_start
620 FUNCTION hexact(H_mesh, TYPE, rr, m, mu_H_field, t) RESULT(vv)
623 INTEGER ,
INTENT(IN) :: TYPE
624 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
625 INTEGER ,
INTENT(IN) :: m
626 REAL(KIND=8),
INTENT(IN) :: t
627 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
628 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
629 REAL(KIND=8) :: pi = acos(-1.d0)
637 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
641 ELSE IF (
TYPE == 2) then
643 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
647 ELSE IF (
TYPE == 3) then
649 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
653 ELSE IF (
TYPE == 4) then
655 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
659 ELSE IF (
TYPE == 5) then
661 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
662 ELSE IF (m == 1)
THEN 663 vv = - r**2 * cos(2*pi*z) * cos(t)
669 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
677 i=h_mesh%np; i=
SIZE(mu_h_field);
682 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
684 INTEGER ,
INTENT(IN) :: TYPE
685 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
686 INTEGER ,
INTENT(IN) :: m
687 REAL(KIND=8),
INTENT(IN) :: mu_phi, t
688 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
696 n=type; n=
SIZE(rr,1); n=m; r=mu_phi; r=t
701 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
703 INTEGER ,
INTENT(IN) :: TYPE
704 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
705 INTEGER ,
INTENT(IN) :: m
706 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
707 INTEGER ,
INTENT(IN) :: mesh_id
708 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_B_ext
709 REAL(KIND=8) :: vv, r, z
710 REAL(KIND=8) :: pi = acos(-1.d0)
718 vv = 4 * pi**2 * r**3 * cos(2*pi*z) * cos(t)
719 ELSE IF (m == 1)
THEN 720 vv = 4 * r * cos(2*pi*z) * cos(t)
724 ELSE IF (
TYPE == 2) then
726 vv = r * (1.d0 + 4 * pi**2 * r**2) * cos(2*pi*z) * cos(t)
730 ELSE IF (
TYPE == 3) then
732 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
733 ELSE IF (m == 1)
THEN 734 vv = 2 * r * cos(2*pi*z) * cos(t)
738 ELSE IF (
TYPE == 4) then
740 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
744 ELSE IF (
TYPE == 5) then
746 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
747 ELSE IF (m == 1)
THEN 748 vv = - 2 * pi * r**2 * sin(2*pi*z) * cos(t)
754 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
762 r=mu_phi; r=sigma; r=mu_h; n=mesh_id
763 IF (
PRESENT(opt_b_ext)) r=opt_b_ext(1)
768 FUNCTION eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
770 INTEGER,
INTENT(IN) :: TYPE
771 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
772 INTEGER,
INTENT(IN) :: m
773 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
782 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=t; n=type; n=m
787 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
788 list_mode, hn1, hn, phin1, phin)
791 REAL(KIND=8),
INTENT(OUT):: time
792 REAL(KIND=8),
INTENT(IN) :: dt
793 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
794 REAL(KIND=8),
INTENT(IN) :: mu_phi
795 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
796 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: Hn, Hn1
797 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
802 DO i=1,
SIZE(list_mode)
803 hn1(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
804 IF (
inputs%nb_dom_phi>0)
THEN 806 phin1(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
814 DO i=1,
SIZE(list_mode)
815 hn(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
816 IF (
inputs%nb_dom_phi>0)
THEN 818 phin(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
878 vv = -
inputs%mag_force_coefficient * temp**2
real(kind=8) function, dimension(size(rr, 2)), public hexact(H_mesh, TYPE, rr, m, mu_H_field, t)
real(kind=8) function, dimension(size(rr, 2)), public temperature_exact(TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, t)
real(kind=8) function, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)
real(kind=8) function, dimension(h_mesh%np), public extension_velocity(TYPE, H_mesh, mode, t, n_start)
subroutine error_petsc(string)
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(size(rr, 2)), public source_in_temperature(TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public source_in_ns_momentum(TYPE, rr, mode, i, time, Re, ty, opt_density, opt_tempn)
real(kind=8) function, public t_dchi_dt_coeff_law(temp)
real(kind=8) function, dimension(size(rr, 2)), public pp_exact(TYPE, rr, m, t)
subroutine, public init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, list_mode, Hn1, Hn, phin1, phin)
subroutine, public init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
real(kind=8) function, dimension(size(rr, 2)), public phiexact(TYPE, rr, m, mu_phi, t)
real(kind=8) function, public chi_coeff_law(temp)
subroutine, public init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, un_m1, un, pn_m1, pn, phin_m1, phin)