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 * r**7 * (r - r0)**2 * cos(time)**4 * (215.d0 + 204 * pi**2 * r**2 + &
238 (215.d0 - 204 * pi**2 * r**2) * cos(4*pi * z)) * sin(2*pi*z)**2 / &
240 ELSE IF (mode == 1)
THEN 241 vv = vv - beta * 5 * r**7 * (r - r0)**2 * cos(time)**4 * (-11.d0 - 12 * pi**2 * r**2 + &
242 (-11.d0 + 12 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
244 ELSE IF (mode == 2)
THEN 245 vv = vv - beta * 7 * r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
247 ELSE IF (mode == 3)
THEN 248 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (-19.d0 - 12 * pi**2 *r**2 + &
249 (-19.d0 + 12 * pi**2 *r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
251 ELSE IF (mode == 4)
THEN 252 vv = vv + beta * 3 * r**7 * (r - r0)**2 * cos(time)**4 * (-5.d0 - 4 * pi**2 * r**2 + &
253 (-5.d0 + 4 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
256 ELSE IF (
TYPE == 2) then
258 vv = vv - beta * 6 * r**7 * (r - r0)**2 * cos(time)**4 * (-6.d0 - 5 * pi**2 * r**2 + &
259 (-6.d0 + 5.d0 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
261 ELSE IF (mode == 2)
THEN 262 vv = vv + beta * 2 * r**7 * (r - r0)**2 * cos(time)**4 * (13.d0 + 12 * pi**2 * r**2 + &
263 (13.d0 - 12 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
265 ELSE IF (mode == 3)
THEN 266 vv = vv + beta * 2 * r**7 * (r - r0)**2 * cos(time)**4 * (2.d0 + 3 * pi**2 * r**2 + &
267 (2.d0 - 3 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
269 ELSE IF (mode == 4)
THEN 270 vv = vv - beta * r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
273 ELSE IF (
TYPE == 3) then
275 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (15.d0 + 8 * pi**2 * r**2 + &
276 (15.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
278 ELSE IF (mode == 1)
THEN 279 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (12.d0 + 7 * pi**2 * r**2 + &
280 (12.d0 - 7 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
282 ELSE IF (mode == 2)
THEN 283 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (5.d0 + 4 * pi**2 * r**2 + &
284 (5.d0 - 4 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
286 ELSE IF (mode == 3)
THEN 287 vv = vv + beta * 2 * pi**2 * r**9 * (r - r0)**2 * cos(time)**4 * sin(2*pi*z)**4 / &
289 ELSE IF (mode == 4)
THEN 290 vv = vv - beta * r**7 * (r - r0)**2 * cos(time)**4 * sin(4*pi*z)**2 / &
293 ELSE IF (
TYPE == 4) then
295 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (25.d0 + 8 * pi**2 * r**2 + &
296 (25.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
298 ELSE IF (mode == 2)
THEN 299 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (61.d0 + 24 * pi**2 * r**2 + &
300 (61.d0 - 24 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
302 ELSE IF (mode == 3)
THEN 303 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (17.d0 + 8 * pi**2 * r**2 + &
304 (17.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
306 ELSE IF (mode == 4)
THEN 307 vv = vv + beta * r**7 * (r - r0)**2 * cos(time)**4 * (15.d0 + 8 * pi**2 * r**2 + &
308 (15.d0 - 8 * pi**2 * r**2) * cos(4*pi*z)) * sin(2*pi*z)**2 / &
311 ELSE IF (
TYPE == 5) then
313 vv = vv + beta * pi * r**8 * (-215.d0 + 136 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
314 cos(2*pi*z) * sin(2*pi*z)**3 / (4 * lambda**2)
315 ELSE IF (mode == 1)
THEN 316 vv = vv + beta * 5 * pi * r**8 * (-11.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
317 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
318 ELSE IF (mode == 2)
THEN 319 vv = vv + beta * 14 * pi * r**8 * (r - r0)**2 * cos(time)**4 * &
320 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
321 ELSE IF (mode == 3)
THEN 322 vv = vv - beta * pi * r**8 * (-19.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
323 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
324 ELSE IF (mode == 4)
THEN 325 vv = vv - beta * pi * r**8 * (-15.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
326 cos(2*pi*z) * sin(2*pi*z)**3 / (4 * lambda**2)
328 ELSE IF (
TYPE == 6) then
330 vv = vv + beta * 8 * pi * r**8 * (-9.d0 + 5 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
331 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
332 ELSE IF (mode == 2)
THEN 333 vv = vv + beta * 4 * pi * r**8 * (-13.d0 + 8 * pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
334 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
335 ELSE IF (mode == 3)
THEN 336 vv = vv + beta * 8 * pi * r**8 * (-1.d0 + pi**2 * r**2) * (r - r0)**2 * cos(time)**4 * &
337 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
338 ELSE IF (mode == 4)
THEN 339 vv = vv + beta * 2 * pi * r**8 * (r - r0)**2 * cos(time)**4 * &
340 cos(2*pi*z) * sin(2*pi*z)**3 / lambda**2
354 INTEGER ,
INTENT(IN) :: TYPE
355 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
356 INTEGER ,
INTENT(IN) :: m
357 REAL(KIND=8),
INTENT(IN) :: t
358 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, c, lambda
360 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0), beta
362 beta =
inputs%mag_force_coefficient
369 c(i) =
inputs%vol_heat_capacity(1)
371 c(i) =
inputs%vol_heat_capacity(2)
377 lambda(i) =
inputs%temperature_diffusivity(1)
379 lambda(i) =
inputs%temperature_diffusivity(2)
385 vv = ((-9*r + 4*pi**2*r**3 + 4*r0 - 4*pi**2*r**2*r0) * lambda * cos(t) + &
386 c * r**2 * (-r + r0) * sin(t)) * sin(2*pi*z) / lambda
388 vv = - ((-3*r0 + 4*r*(2.d0 + pi**2*r*(-r + r0))) * lambda * cos(t) + &
389 c * r**2 * (r - r0) * sin(t)) * sin(2*pi*z) / lambda
401 vv(i) = vv(i) + 3 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
402 cos(t)**2 * sin(4*pi*z(i)) / (2 * lambda(i))
408 vv(i) = vv(i) + 2 * c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
409 cos(t)**2 * sin(4*pi*z(i)) / lambda(i)
415 vv(i) = vv(i) + c(i) * pi * r(i) * (r(i) - r0)**2 * r0 * &
416 cos(t)**2 * sin(4*pi*z(i)) / (2 *lambda(i))
426 vv(i) = vv(i) - beta*(r(i)**8*(r(i)-r0)**2*cos(t)**3*(-215.d0-136*pi**2*r(i)**2+&
427 (-215.d0+136*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
434 vv(i) = vv(i) - beta*(5*r(i)**8*(r(i)-r0)**2*cos(t)**3*(-11.d0-8*pi**2*r(i)**2+&
435 (-11.d0+8*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
442 vv(i) = vv(i) - beta*(7*r(i)**8*(r(i)-r0)**2*cos(t)**3*sin(t)*sin(4*pi*z(i))**2)/&
449 vv(i) = vv(i) + beta*(r(i)**8*(r(i)-r0)**2*cos(t)**3*(-19.d0-8*pi**2*r(i)**2+&
450 (-19.d0+8*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
457 vv(i) = vv(i) + beta*(r(i)**8*(r(i)-r0)**2*cos(t)**3*(-15.d0-8*pi**2*r(i)**2+&
458 (-15.d0+8*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
463 ELSE IF (type==2)
THEN 467 vv(i) = vv(i) - beta*(4*r(i)**8*(r(i)-r0)**2*cos(t)**3*(-9.d0-5*pi**2*r(i)**2+&
468 (-9.d0+5*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
475 vv(i) = vv(i) - beta*(2*r(i)**8*(r(i)-r0)**2*cos(t)**3*(-13.d0-8*pi**2*r(i)**2+&
476 (-13.d0+8*pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
483 vv(i) = vv(i) - beta*(4*r(i)**8*(r(i)-r0)**2*cos(t)**3*(-1.d0-pi**2*r(i)**2+&
484 (-1.d0+pi**2*r(i)**2)*cos(4*pi*z(i)))*sin(t)*sin(2*pi*z(i))**2)/&
491 vv(i) = vv(i) - beta*(r(i)**8*(r(i)-r0)**2*cos(t)**3*sin(t)*sin(4*pi*z(i))**2)/&
502 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
503 (-903*r0+r(i)*(1553.d0-8*pi**2*r(i)*(25*r(i)+29*r0))+&
504 (35*r0+r(i)*(-685.d0+8*pi**2*r(i)*(25*r(i)+29*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
511 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
512 (-973*r0+r(i)*(1787.d0-16*pi**2*r(i)*(17*r(i)+20*r0))+&
513 (49*r0+r(i)*(-863.d0+16*pi**2*r(i)*(17*r(i)+20*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
520 vv(i) = vv(i) + beta*(8*pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
521 (8*r0-r(i)*(7.d0+2*pi**2*r(i)*(r(i)+r0))+(r0+2*r(i)*(-1.d0+pi**2*r(i)*(r(i)+r0)))*&
522 cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
529 vv(i) = vv(i) - beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
530 (-957*r0+r(i)*(1403.d0-16*pi**2*r(i)*(2*r(i)+7*r0))+&
531 (-79*r0+r(i)*(-367.d0+16*pi**2*r(i)*(2*r(i)+7*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
538 vv(i) = vv(i) - beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
539 (-167*r0+r(i)*(273.d0-8*pi**2*r(i)*(r(i)+5*r0))+&
540 (-29*r0+r(i)*(-77.d0+8*pi**2*r(i)*(r(i)+5*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
547 vv(i) = vv(i) - beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
548 (59*r(i)-29*r0-16*pi**2*r(i)**2*r0+(-15*r(i)-15*r0+16*pi**2*r(i)**2*r0)*&
549 cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
554 ELSE IF (type==2)
THEN 558 vv(i) = vv(i)+ beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
559 (-629*r0+r(i)*(1021.d0-32*pi**2*r(i)*(3*r(i)+4*r0))+&
560 2*(3*r0+r(i)*(-199.d0+16*pi**2*r(i)*(3*r(i)+4*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
567 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
568 (-523*r0+r(i)*(891.d0-8*pi**2*r(i)*(11*r(i)+17*r0))+&
569 (-7*r0+r(i)*(-361.d0+8*pi**2*r(i)*(11*r(i)+17*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
576 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
577 (-239.d0*r0+r(i)*(503.d0-64*pi**2*r(i)*(r(i)+2*r0))+&
578 8*(-2*r0+r(i)*(-31.d0+8*pi**2*r(i)*(r(i)+2*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
585 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
586 (63*r0-r(i)*(47.d0+8*pi**2*r(i)*(r(i)+3*r0))+&
587 (3*r0+r(i)*(-19.d0+8*pi**2*r(i)*(r(i)+3*r0)))*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
594 vv(i) = vv(i) + beta*(pi*r(i)**7*(r(i)-r0)**3*cos(t)**5*cos(2*pi*z(i))*&
595 (-35*r(i)+27*r0+4*(r(i)+r0)*cos(4*pi*z(i)))*sin(2*pi*z(i))**2)/&
619 FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
621 INTEGER ,
INTENT(IN) :: TYPE
622 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
623 INTEGER,
INTENT(IN) :: m
624 REAL(KIND=8),
INTENT(IN) :: t
625 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
626 REAL(KIND=8) :: r0 = 0.5d0, pi = acos(-1.d0)
632 IF ((m==0).OR.(m==1))
THEN 633 vv = -2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
637 ELSE IF (type==3)
THEN 638 IF ((m==0).OR.(m==1))
THEN 639 vv = 2*pi*(r-r0)**2*cos(t)*cos(2*pi*z)
643 ELSE IF (type==5)
THEN 644 IF ((m==0).OR.(m==1))
THEN 645 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (3*r-r0)
649 ELSE IF (type==6)
THEN 651 vv = (r-r0)*cos(t)*sin(2*pi*z)/r * (r-r0)
679 FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
681 INTEGER ,
INTENT(IN) :: TYPE
682 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
683 INTEGER ,
INTENT(IN) :: m
684 REAL(KIND=8),
INTENT(IN) :: t
685 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
686 REAL(KIND=8) :: pi = acos(-1.d0)
691 IF ((type==1).AND.(m==1))
THEN 692 vv = r**3*sin(2*pi*z)*cos(t)
703 INTEGER ,
INTENT(IN) :: TYPE
704 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
705 INTEGER ,
INTENT(IN) :: m
706 REAL(KIND=8),
INTENT(IN) :: t
707 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, lambda
708 REAL(KIND=8) :: r0=0.5d0, pi = acos(-1.d0)
716 lambda(i) =
inputs%temperature_diffusivity(1)
718 lambda(i) =
inputs%temperature_diffusivity(2)
722 IF ((type==1).AND.((m==0).OR.(m==1)))
THEN 723 vv = r**2*(r-r0)*sin(2*pi*z)*cos(t) / lambda
770 INTEGER ,
INTENT(IN) ::
TYPE, n_start
771 INTEGER,
INTENT(IN) :: mode
772 REAL(KIND=8),
INTENT(IN) :: t
773 REAL(KIND=8),
DIMENSION(H_Mesh%np) :: vv
781 n=h_mesh%np; r=t; n=type; n=mode; n=n_start
816 FUNCTION hexact(H_mesh, TYPE, rr, m, mu_H_field, t) RESULT(vv)
819 INTEGER ,
INTENT(IN) :: TYPE
820 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
821 INTEGER ,
INTENT(IN) :: m
822 REAL(KIND=8),
INTENT(IN) :: t
823 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
824 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z
825 REAL(KIND=8) :: pi = acos(-1.d0)
833 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
837 ELSE IF (
TYPE == 2) then
839 vv = 2 * pi * r**3 * sin(2*pi*z) * cos(t)
843 ELSE IF (
TYPE == 3) then
845 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
849 ELSE IF (
TYPE == 4) then
851 vv = - 2 * pi * r**3 * sin(2*pi*z) * cos(t)
855 ELSE IF (
TYPE == 5) then
857 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
858 ELSE IF (m == 1)
THEN 859 vv = - r**2 * cos(2*pi*z) * cos(t)
865 vv = 4 * r**2 * cos(2*pi*z) * cos(t)
873 i=h_mesh%np; i=
SIZE(mu_h_field);
878 FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
880 INTEGER ,
INTENT(IN) :: TYPE
881 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
882 INTEGER ,
INTENT(IN) :: m
883 REAL(KIND=8),
INTENT(IN) :: mu_phi, t
884 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
892 n=type; n=
SIZE(rr,1); n=m; r=mu_phi; r=t
897 FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
899 INTEGER ,
INTENT(IN) :: TYPE
900 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
901 INTEGER ,
INTENT(IN) :: m
902 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
903 INTEGER ,
INTENT(IN) :: mesh_id
904 REAL(KIND=8),
DIMENSION(6),
OPTIONAL,
INTENT(IN) :: opt_B_ext
905 REAL(KIND=8) :: vv, r, z
906 REAL(KIND=8) :: pi = acos(-1.d0)
914 vv = 4 * pi**2 * r**3 * cos(2*pi*z) * cos(t)
915 ELSE IF (m == 1)
THEN 916 vv = 4 * r * cos(2*pi*z) * cos(t)
920 ELSE IF (
TYPE == 2) then
922 vv = r * (1.d0 + 4 * pi**2 * r**2) * cos(2*pi*z) * cos(t)
926 ELSE IF (
TYPE == 3) then
928 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
929 ELSE IF (m == 1)
THEN 930 vv = 2 * r * cos(2*pi*z) * cos(t)
934 ELSE IF (
TYPE == 4) then
936 vv = 4 * r * (-2.d0 + pi**2 * r**2) * cos(2*pi*z) * cos(t)
940 ELSE IF (
TYPE == 5) then
942 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
943 ELSE IF (m == 1)
THEN 944 vv = - 2 * pi * r**2 * sin(2*pi*z) * cos(t)
950 vv = - 8 * pi * r**2 * sin(2*pi*z) * cos(t)
958 r=mu_phi; r=sigma; r=mu_h; n=mesh_id
959 IF (
PRESENT(opt_b_ext)) r=opt_b_ext(1)
964 FUNCTION eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
966 INTEGER,
INTENT(IN) :: TYPE
967 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: rr
968 INTEGER,
INTENT(IN) :: m
969 REAL(KIND=8),
INTENT(IN) :: mu_phi, sigma, mu_H, t
978 r=rr(1); r=mu_phi; r=sigma; r=mu_h; r=t; n=type; n=m
983 SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
984 list_mode, hn1, hn, phin1, phin)
987 REAL(KIND=8),
INTENT(OUT):: time
988 REAL(KIND=8),
INTENT(IN) :: dt
989 REAL(KIND=8),
DIMENSION(:),
INTENT(IN) :: mu_H_field
990 REAL(KIND=8),
INTENT(IN) :: mu_phi
991 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
992 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: Hn, Hn1
993 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: phin, phin1
998 DO i=1,
SIZE(list_mode)
999 hn1(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
1000 IF (
inputs%nb_dom_phi>0)
THEN 1002 phin1(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
1010 DO i=1,
SIZE(list_mode)
1011 hn(:,k,i) =
hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
1012 IF (
inputs%nb_dom_phi>0)
THEN 1014 phin(:,k,i) =
phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
1071 REAL(KIND=8) :: temp
1074 vv = -
inputs%mag_force_coefficient * temp**2
1083 REAL(KIND=8) :: temp
1086 vv = - 2 *
inputs%mag_force_coefficient * temp**2
real(kind=8) function, dimension(size(rr, 2)), public phiexact(TYPE, rr, m, mu_phi, 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, dimension(size(rr, 2)), public hexact(H_mesh, TYPE, rr, m, mu_H_field, t)
real(kind=8) function, dimension(size(rr, 2)), public pp_exact(TYPE, rr, m, t)
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)
real(kind=8) function, dimension(size(rr, 2)), public temperature_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)
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)
subroutine, public init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, un_m1, un, pn_m1, pn, phin_m1, phin)
subroutine, public init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
real(kind=8) function, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public source_in_temperature(TYPE, rr, m, t)
real(kind=8) function, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)