41 un_m1, un, pn_m1, pn, phin_m1, phin)
44 REAL(KIND=8),
INTENT(OUT):: time
45 REAL(KIND=8),
INTENT(IN) :: dt
46 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
47 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: un_m1, un
48 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: pn_m1, pn, phin_m1, phin
50 REAL(KIND=8),
DIMENSION(mesh_c%np) :: pn_m2
53 DO i= 1,
SIZE(list_mode)
57 un_m1(:,j,i) =
vv_exact(j,mesh_f%rr,mode,time-dt)
58 un(:,j,i) =
vv_exact(j,mesh_f%rr,mode,time)
62 pn_m2(:) =
pp_exact(j,mesh_c%rr,mode,time-2*dt)
63 pn_m1(:,j,i) =
pp_exact(j,mesh_c%rr,mode,time-dt)
64 pn(:,j,i) =
pp_exact(j,mesh_c%rr,mode,time)
65 phin_m1(:,j,i) = pn_m1(:,j,i) - pn_m2(:)
66 phin(:,j,i) = pn(:,j,i) - pn_m1(:,j,i)
75 REAL(KIND=8),
INTENT(OUT):: time
76 REAL(KIND=8),
INTENT(IN) :: dt
77 INTEGER,
DIMENSION(:),
INTENT(IN) :: list_mode
78 REAL(KIND=8),
DIMENSION(:,:,:),
INTENT(OUT):: tempn_m1, tempn
82 DO i= 1,
SIZE(list_mode)
117 INTEGER ,
INTENT(IN) :: TYPE
118 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
119 INTEGER ,
INTENT(IN) :: mode, i
120 REAL(KIND=8),
INTENT(IN) :: time
121 REAL(KIND=8),
INTENT(IN) :: Re
122 CHARACTER(LEN=2),
INTENT(IN) :: ty
123 REAL(KIND=8),
DIMENSION(:,:,:),
OPTIONAL,
INTENT(IN) :: opt_density
124 REAL(KIND=8),
DIMENSION(:,:,:),
OPTIONAL,
INTENT(IN) :: opt_tempn
125 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
128 CHARACTER(LEN=2) :: np
130 IF (
PRESENT(opt_density))
CALL error_petsc(
'density should not be present for test 33')
131 IF (
PRESENT(opt_tempn)) m =
SIZE(opt_tempn,1)
138 np=ty; m = type; m=
SIZE(rr,1); m = mode; m=i; d=time; d=re;
145 INTEGER ,
INTENT(IN) :: TYPE
146 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
147 INTEGER ,
INTENT(IN) :: m
148 REAL(KIND=8),
INTENT(IN) :: t
149 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, x
150 REAL(KIND=8) :: c, lambda, h1, h2
155 c =
inputs%vol_heat_capacity(1)
156 lambda =
inputs%temperature_diffusivity(1)
157 h1 =
inputs%convection_coeff(1)
158 h2 =
inputs%convection_coeff(2)
160 x = (h1 * r + h2 * z) / lambda
167 IF ((m==0).OR.(m==1))
THEN 168 vv = - c * ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * sin(t)
180 vv = vv - lambda * ( &
181 1d0/r * ( -h1/lambda * exp(-x) + 2 * (r - 1d0) * (z - 1d0)**2 ) * cos(t) &
182 + ( (h1/lambda)**2 * exp(-x) + 2 * (z - 1d0)**2 ) * cos(t) &
183 + ( (h2/lambda)**2 * exp(-x) + 2 * (r - 1d0)**2 ) * cos(t) )
185 vv = vv - lambda * ( &
186 1d0/r * ( -h1/lambda * exp(-x) + 2 * (r - 1d0) * (z - 1d0)**2 ) * cos(t) &
187 + ( (h1/lambda)**2 * exp(-x) + 2 * (z - 1d0)**2 ) * cos(t) &
188 - 1d0/r**2 * ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * cos(t) &
189 + ( (h2/lambda)**2 * exp(-x) + 2 * (r - 1d0)**2 ) * cos(t) )
211 FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
213 INTEGER ,
INTENT(IN) :: TYPE
214 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
215 INTEGER,
INTENT(IN) :: m
216 REAL(KIND=8),
INTENT(IN) :: t
217 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
226 k=type; k=
SIZE(rr,1); k=m; d=t
247 FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
249 INTEGER ,
INTENT(IN) :: TYPE
250 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
251 INTEGER ,
INTENT(IN) :: m
252 REAL(KIND=8),
INTENT(IN) :: t
253 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv
261 n=type; n=
SIZE(rr,1); n=m; r=t
268 INTEGER ,
INTENT(IN) :: TYPE
269 REAL(KIND=8),
DIMENSION(:,:),
INTENT(IN) :: rr
270 INTEGER ,
INTENT(IN) :: m
271 REAL(KIND=8),
INTENT(IN) :: t
272 REAL(KIND=8),
DIMENSION(SIZE(rr,2)) :: vv, r, z, x
273 REAL(KIND=8) :: lambda, h1, h2, T1
278 lambda =
inputs%temperature_diffusivity(1)
279 h1 =
inputs%convection_coeff(1)
280 h2 =
inputs%convection_coeff(2)
281 t1 =
inputs%exterior_temperature(1)
283 x = (h1 * r + h2 * z) / lambda
287 vv = ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * cos(t) + t1
289 vv = ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * cos(t)
339 INTEGER ,
INTENT(IN) ::
TYPE, n_start
340 INTEGER,
INTENT(IN) :: mode
341 REAL(KIND=8),
INTENT(IN) :: t
342 REAL(KIND=8),
DIMENSION(H_Mesh%np) :: vv
350 n=h_mesh%np; r=t; n=type; n=mode; n=n_start
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, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, 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_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
subroutine error_petsc(string)
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)
real(kind=8) function, dimension(h_mesh%np), public extension_velocity(TYPE, H_mesh, mode, t, n_start)