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)
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
142 lambda(j) =
inputs%temperature_diffusivity(1)
144 lambda(j) =
inputs%temperature_diffusivity(2)
150 ELSE IF (type==6)
THEN 158 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) + &
159 (r - r0)*re*cos(time)**2*(14*r**3 - 5*r**2*r0 - 5*r*r0**2 + 2*r0**3 + &
160 (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) + &
161 r**2*(5*r0 - 12*pi**2*r0**3))*cos(4*pi*z)) - &
162 4*pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(2.*r**3*re)
163 ELSE IF (mode==1)
THEN 164 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) + &
165 ((3*r**2 - 4*r*r0 + r0**2)*re*cos(time)**2*(3*r**2 - r0**2 + &
166 (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. - &
167 pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(r**3*re)
168 ELSE IF (mode==2)
THEN 169 vv = vv -((r - r0)*cos(time)**2*(4*r**2 - r*r0 - r0**2 + (12*pi**2*r**4 - &
170 28*pi**2*r**3*r0 + r0**2 + 4*r**2*(-1.d0 + 5*pi**2*r0**2) + &
171 r*(r0 - 4*pi**2*r0**3))*cos(4*pi*z)))/(2.*r**2)
173 ELSE IF (type==2)
THEN 175 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 + &
176 r**2*(-3.d0 + 4*pi**2*r0**2) + (3*r**2 + r*r0 - r0**2)*cos(4*pi*z))))/(r**3*re)
177 ELSE IF (mode==2)
THEN 178 vv = vv + ((r - r0)**2*cos(time)**2*(4*pi**2*r**4 - r*r0 - 8*pi**2*r**3*r0 + r0**2 + &
179 r**2*(-3.d0 + 4*pi**2*r0**2) + (3*r**2 + r*r0 - r0**2)*cos(4*pi*z)))/(2.*r**3)
181 ELSE IF (type==3)
THEN 183 vv = vv + (2*pi*(-3*pi*r*(r - r0)**3*(3*r - r0)*re*cos(time)**2 + &
184 (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) - &
185 r**2*(r - r0)**2*re*cos(2*pi*z)*sin(time)))/(r**2*re)
186 ELSE IF (mode==1)
THEN 187 vv = vv + (4*pi*r*(2*pi**2*r**4 - r*r0 - 4*pi**2*r**3*r0 + r0**2 + &
188 r**2*(-1 + 2*pi**2*r0**2))*cos(time)*cos(2*pi*z) + &
189 ((r - r0)**3*(3*r - r0)*re*cos(time)**2*(-1.d0 - 16*pi**2*r**2 + cos(4*pi*z)))/2. - &
190 2*pi*r**3*(r - r0)**2*re*cos(2*pi*z)*sin(time))/(r**3*re)
191 ELSE IF (mode==2)
THEN 192 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)
194 ELSE IF (type==4)
THEN 196 vv = vv + ((r - r0)**2*cos(time)*(-8*pi*r*cos(2*pi*z) + re*cos(time)*((-3*r + r0)**2 + &
197 (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)
198 ELSE IF (mode==2)
THEN 199 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
201 ELSE IF (type==5)
THEN 203 vv = vv + ((4*(12*pi**2*r**4 - 16*pi**2*r**3*r0 - r0**2 + &
204 r**2*(-3.d0 + 4*pi**2*r0**2))*cos(time)*sin(2*pi*z) - &
205 4*r**2*(3*r**2 - 4*r*r0 + r0**2)*re*sin(time)*sin(2*pi*z) + &
206 pi*r*(r - r0)**2*(12*pi**2*r**4 - r*r0 - 24*pi**2*r**3*r0 + 2*r0**2 + &
207 4*r**2*(-1.d0 + 3*pi**2*r0**2))*re*4*cos(time)**2*sin(4*pi*z)))/(4.*r**3*re)
208 ELSE IF (mode==1)
THEN 209 vv = vv + (4*(-r0 + pi**2*r*(3*r**2 - 4*r*r0 + r0**2))*cos(time)*sin(2*pi*z) - &
210 r*(3*r**2 - 4*r*r0 + r0**2)*re*sin(time)*sin(2*pi*z) + &
211 pi*(r - r0)**2*(16*pi**2*r**4 - 2*r*r0 - 32*pi**2*r**3*r0 + 3*r0**2 + &
212 r**2*(-5.d0 + 16*pi**2*r0**2))*re*cos(time)**2*sin(4*pi*z))/(r**2*re)
213 ELSE IF (mode==2)
THEN 214 vv = vv + (pi*(r - r0)**2*(4*pi**2*r**4 - r*r0 - 8*pi**2*r**3*r0 + r0**2 + &
215 r**2*(-1.d0 + 4*pi**2*r0**2))*cos(time)**2*sin(4*pi*z))/r**2
217 ELSE IF (type==6)
THEN 219 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) -&
220 4*pi*r*(r - r0)**3*re*cos(time)**2*sin(4*pi*z))/(r**2*re)
221 ELSE IF (mode==2)
THEN 222 vv = vv -2*pi*(r - r0)**3*cos(time)**2*sin(4*pi*z)/r
226 IF ((type==1).AND.(mode==1))
THEN 227 vv = vv + 3*r**2*cos(time)*sin(2*pi*z)
228 ELSE IF ((type==4).AND.(mode==1))
THEN 229 vv = vv - r**2*cos(time)*sin(2*pi*z)
230 ELSE IF ((type==5).AND.(mode==1))
THEN 231 vv = vv + 2*pi*r**3*cos(time)*cos(2*pi*z)
236 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (215.d0 + 204 * pi**2 * r**2 + &
237 (215.d0 - 204 * pi**2 * r**2) * cos(4*pi * z)) * sin(2*pi*z)**2 / &
239 ELSE IF (mode == 1)
THEN 240 vv = vv - 5 * r**7 * (r - r0)**2 * cos(time)**4 * (-11.d0 - 12 * pi**2 * r**2 + &
241 (-11.d0 + 12 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
243 ELSE IF (mode == 2)
THEN 244 vv = vv - 7 * r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
246 ELSE IF (mode == 3)
THEN 247 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (-19.d0 - 12 * pi**2 *r**2 + &
248 (-19.d0 + 12 * pi**2 *r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
250 ELSE IF (mode == 4)
THEN 251 vv = vv + 3 * r**7 * (r - r0)**2 * cos(time)**4 * (-5.d0 - 4 * pi**2 * r**2 + &
252 (-5.d0 + 4 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
255 ELSE IF (
TYPE == 2) then
257 vv = vv - 6 * r**7 * (r - r0)**2 * cos(time)**4 * (-6.d0 - 5 * pi**2 * r**2 + &
258 (-6.d0 + 5.d0 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
260 ELSE IF (mode == 2)
THEN 261 vv = vv + 2 * r**7 * (r - r0)**2 * cos(time)**4 * (13.d0 + 12 * pi**2 * r**2 + &
262 (13.d0 - 12 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
264 ELSE IF (mode == 3)
THEN 265 vv = vv + 2 * r**7 * (r - r0)**2 * cos(time)**4 * (2.d0 + 3 * pi**2 * r**2 + &
266 (2.d0 - 3 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
268 ELSE IF (mode == 4)
THEN 269 vv = vv - r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
272 ELSE IF (
TYPE == 3) then
274 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (15.d0 + 8 * pi**2 * r**2 + &
275 (15.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
277 ELSE IF (mode == 1)
THEN 278 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (12.d0 + 7 * pi**2 * r**2 + &
279 (12.d0 - 7 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
281 ELSE IF (mode == 2)
THEN 282 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (5.d0 + 4 * pi**2 * r**2 + &
283 (5.d0 - 4 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
285 ELSE IF (mode == 3)
THEN 286 vv = vv + 2 * pi**2 * r**9 * (r - r0)**2 * cos(time)**4 * sin(2*pi*z)**4 / &
288 ELSE IF (mode == 4)
THEN 289 vv = vv - r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
292 ELSE IF (
TYPE == 4) then
294 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (25.d0 + 8 * pi**2 * r**2 + &
295 (25.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
297 ELSE IF (mode == 2)
THEN 298 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (61.d0 + 24 * pi**2 * r**2 + &
299 (61.d0 - 24 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
301 ELSE IF (mode == 3)
THEN 302 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (17.d0 + 8 * pi**2 * r**2 + &
303 (17.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
305 ELSE IF (mode == 4)
THEN 306 vv = vv + r**7 * (r - r0)**2 * cos(time)**4 * (15.d0 + 8 * pi**2 * r**2 + &
307 (15.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
310 ELSE IF (
TYPE == 5) then
312 vv = vv + pi * r**8 * (-215.d0 + 136 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
313 cos(2*pi*z) * sin(2*pi*z)**3 / (4 * lambda**2)
314 ELSE IF (mode == 1)
THEN 315 vv = vv + 5 * pi * r**8 * (-11.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
316 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
317 ELSE IF (mode == 2)
THEN 318 vv = vv + 14 * pi * r**8 * (r - r0)**2 * cos(time)**4 * &
319 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
320 ELSE IF (mode == 3)
THEN 321 vv = vv - pi * r**8 * (-19.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
322 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
323 ELSE IF (mode == 4)
THEN 324 vv = vv - pi * r**8 * (-15.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
325 cos(2*pi*z) * sin(2*pi*z)**3 / (4 * lambda**2)
327 ELSE IF (
TYPE == 6) then
329 vv = vv + 8 * pi * r**8 * (-9.d0 + 5 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
330 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
331 ELSE IF (mode == 2)
THEN 332 vv = vv + 4 * pi * r**8 * (-13.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
333 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
334 ELSE IF (mode == 3)
THEN 335 vv = vv + 8 * pi * r**8 * (-1.d0 + pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
336 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
337 ELSE IF (mode == 4)
THEN 338 vv = vv + 2 * pi * r**8 * (r - r0)**2 * cos(time)**4 * &
339 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
353 INTEGER ,
INTENT(IN) :: TYPE
354 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
355 INTEGER ,
INTENT(IN) :: m
356 REAL(KIND=8),
INTENT(IN) :: t
357 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, c, lambda
359 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0)
366 c(i) =
inputs%vol_heat_capacity(1)
368 c(i) =
inputs%vol_heat_capacity(2)
374 lambda(i) =
inputs%temperature_diffusivity(1)
376 lambda(i) =
inputs%temperature_diffusivity(2)
382 vv = ((-9*r + 4*pi**2*r**3 + 4*r0 - 4*pi**2*r**2*r0) * lambda * cos(t) + &
383 c * r**2 * (-r + r0) * sin(t)) * sin(2*pi*z) / lambda
385 vv = - ((-3*r0 + 4*r*(2.d0 + pi**2*r*(-r + r0))) * lambda * cos(t) + &
386 c * r**2 * (r - r0) * sin(t)) * sin(2*pi*z) / lambda
398 vv(i) = vv(i) + 3 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
399 cos(t)**2 * sin(4*pi*z(i)) / (2 * lambda(i))
405 vv(i) = vv(i) + 2 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
406 cos(t)**2 * sin(4*pi*z(i)) / lambda(i)
412 vv(i) = vv(i) + c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
413 cos(t)**2 * sin(4*pi*z(i)) / (2 *lambda(i))
436 FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
438 INTEGER ,
INTENT(IN) :: TYPE
439 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
440 INTEGER,
INTENT(IN) :: m
441 REAL(KIND=8),
INTENT(IN) :: t
442 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
443 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0)
449 IF ((m==0).OR.(m==1))
THEN 450 vv = -2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
454 ELSE IF (type==3)
THEN 455 IF ((m==0).OR.(m==1))
THEN 456 vv = 2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
460 ELSE IF (type==5)
THEN 461 IF ((m==0).OR.(m==1))
THEN 462 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (3*r-r0)
466 ELSE IF (type==6)
THEN 468 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (r-r0)
496 FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
498 INTEGER ,
INTENT(IN) :: TYPE
499 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
500 INTEGER ,
INTENT(IN) :: m
501 REAL(KIND=8),
INTENT(IN) :: t
502 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
503 REAL(KIND=8) :: pi = acos(-1.d0)
508 IF ((type==1).AND.(m==1))
THEN 509 vv = r**3*sin(2*pi*z)*cos(t)
520 INTEGER ,
INTENT(IN) :: TYPE
521 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
522 INTEGER ,
INTENT(IN) :: m
523 REAL(KIND=8),
INTENT(IN) :: t
524 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, lambda
525 REAL(KIND=8) :: r0=0.5d0, pi = acos(-1.d0)
533 lambda(i) =
inputs%temperature_diffusivity(1)
535 lambda(i) =
inputs%temperature_diffusivity(2)
539 IF ((type==1).AND.((m==0).OR.(m==1)))
THEN 540 vv = r**2*(r-r0)*sin(2*pi*z)*cos(t) / lambda
587 INTEGER ,
INTENT(IN) ::
TYPE, n_start
588 INTEGER,
INTENT(IN) :: mode
589 REAL(KIND=8),
INTENT(IN) :: t
590 REAL(KIND=8),
DIMENSION(H_Mesh%np) :: vv
598 n=h_mesh%np; r=t; n=type; n=mode; n=n_start
633 FUNCTION hexact(H_mesh, TYPE, rr, m, mu_H_field, t) RESULT(vv)
636 INTEGER ,
INTENT(IN) :: TYPE
637 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
638 INTEGER ,
INTENT(IN) :: m
639 REAL(KIND=8),
INTENT(IN) :: t
640 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
641 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
642 REAL(KIND=8) :: pi = acos(-1.d0)
650 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
654 ELSE IF (
TYPE == 2) then
656 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
660 ELSE IF (
TYPE == 3) then
662 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
666 ELSE IF (
TYPE == 4) then
668 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
672 ELSE IF (
TYPE == 5) then
674 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
675 ELSE IF (m == 1)
THEN 676 vv = - r**2 * cos(2*pi*z) * cos(t)
682 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
690 i=h_mesh%np; i=
SIZE(mu_h_field);
695 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
697 INTEGER ,
INTENT(IN) :: TYPE
698 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
699 INTEGER ,
INTENT(IN) :: m
700 REAL(KIND=8),
INTENT(IN) :: mu_phi, t
701 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
709 n=type; n=
SIZE(rr,1); n=m; r=mu_phi; r=t
714 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
716 INTEGER ,
INTENT(IN) :: TYPE
717 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
718 INTEGER ,
INTENT(IN) :: m
719 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
720 INTEGER ,
INTENT(IN) :: mesh_id
721 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_B_ext
722 REAL(KIND=8) :: vv, r, z
723 REAL(KIND=8) :: pi = acos(-1.d0)
731 vv = 4 * pi**2 * r**3 * cos(2*pi*z) * cos(t)
732 ELSE IF (m == 1)
THEN 733 vv = 4 * r * cos(2*pi*z) * cos(t)
737 ELSE IF (
TYPE == 2) then
739 vv = r * (1.d0 + 4 * pi**2 * r**2) * cos(2*pi*z) * cos(t)
743 ELSE IF (
TYPE == 3) then
745 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
746 ELSE IF (m == 1)
THEN 747 vv = 2 * r * cos(2*pi*z) * cos(t)
751 ELSE IF (
TYPE == 4) then
753 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
757 ELSE IF (
TYPE == 5) then
759 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
760 ELSE IF (m == 1)
THEN 761 vv = - 2 * pi * r**2 * sin(2*pi*z) * cos(t)
767 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
775 r=mu_phi; r=sigma; r=mu_h; n=mesh_id
776 IF (
PRESENT(opt_b_ext)) r=opt_b_ext(1)
781 FUNCTION eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
783 INTEGER,
INTENT(IN) :: TYPE
784 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
785 INTEGER,
INTENT(IN) :: m
786 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
795 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=t; n=type; n=m
800 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
801 list_mode, hn1, hn, phin1, phin)
804 REAL(KIND=8),
INTENT(OUT):: time
805 REAL(KIND=8),
INTENT(IN) :: dt
806 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
807 REAL(KIND=8),
INTENT(IN) :: mu_phi
808 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
809 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: Hn, Hn1
810 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
815 DO i=1,
SIZE(list_mode)
816 hn1(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
817 IF (
inputs%nb_dom_phi>0)
THEN 819 phin1(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
827 DO i=1,
SIZE(list_mode)
828 hn(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
829 IF (
inputs%nb_dom_phi>0)
THEN 831 phin(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
subroutine, public init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
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 chi_coeff_law(temp)
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 t_dchi_dt_coeff_law(temp)
real(kind=8) function, public jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext)
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, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public phiexact(TYPE, rr, m, mu_phi, t)
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 source_in_temperature(TYPE, rr, m, t)
subroutine, public init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, un_m1, un, pn_m1, pn, phin_m1, phin)
real(kind=8) function, dimension(size(rr, 2)), public pp_exact(TYPE, rr, m, t)