SFEMaNS  version 5.3
Reference documentation for SFEMaNS
condlim_test_16.f90
Go to the documentation of this file.
2  USE my_util
3  USE def_type_mesh
4  USE input_data
5 !!$ATTENTION
6 !!$Some subroutines have been commented to avoid warning messages when compiling executable.
7 !!$It can not be done in the module boundary_generic that expects all subroutines to be present.
8 !!$END ATTENTION
9  PUBLIC :: init_velocity_pressure
10 !!$ PUBLIC :: init_temperature
11 !!$ PUBLIC :: init_level_set
12  PUBLIC :: source_in_ns_momentum
13 !!$ PUBLIC :: source_in_temperature
14 !!$ PUBLIC :: source_in_level_set
15  PUBLIC :: vv_exact
16 !!$ PUBLIC :: imposed_velocity_by_penalty
17  PUBLIC :: pp_exact
18 !!$ PUBLIC :: temperature_exact
19 !!$ PUBLIC :: level_set_exact
20 !!$ PUBLIC :: penal_in_real_space
21 !!$ PUBLIC :: extension_velocity
22 !!$ PUBLIC :: Vexact
23 !!$ PUBLIC :: H_B_quasi_static
24 !!$ PUBLIC :: Hexact
25 !!$ PUBLIC :: Phiexact
26 !!$ PUBLIC :: Jexact_gauss
27 !!$ PUBLIC :: Eexact_gauss
28 !!$ PUBLIC :: init_maxwell
29 !!$ PUBLIC :: mu_bar_in_fourier_space
30 !!$ PUBLIC :: grad_mu_bar_in_fourier_space
31 !!$ PUBLIC :: mu_in_real_space
32  PRIVATE
33 
34 CONTAINS
35  !===============================================================================
36  ! Boundary conditions for Navier-Stokes
37  !===============================================================================
38 
39  !===Initialize velocity, pressure
40  SUBROUTINE init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, &
41  un_m1, un, pn_m1, pn, phin_m1, phin)
42  IMPLICIT NONE
43  TYPE(mesh_type) :: mesh_f, mesh_c
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
49  INTEGER :: mode, i, j
50  REAL(KIND=8), DIMENSION(mesh_c%np) :: pn_m2
51 
52  time = 0.d0
53  DO i= 1, SIZE(list_mode)
54  mode = list_mode(i)
55  DO j = 1, 6
56  !===velocity
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)
59  END DO
60  DO j = 1, 2
61  !===pressure
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)
67  ENDDO
68  ENDDO
69  END SUBROUTINE init_velocity_pressure
70 
71 !!$ !===Initialize temperature
72 !!$ SUBROUTINE init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
73 !!$ IMPLICIT NONE
74 !!$ TYPE(mesh_type) :: mesh
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
79 !!$ INTEGER :: mode, i, j
80 !!$
81 !!$ time = 0.d0
82 !!$ DO i= 1, SIZE(list_mode)
83 !!$ mode = list_mode(i)
84 !!$ DO j = 1, 2
85 !!$ tempn_m1(:,j,i) = temperature_exact(j, mesh%rr, mode, time-dt)
86 !!$ tempn (:,j,i) = temperature_exact(j, mesh%rr, mode, time)
87 !!$ ENDDO
88 !!$ ENDDO
89 !!$ END SUBROUTINE init_temperature
90 
91 !!$ !===Initialize level_set
92 !!$ SUBROUTINE init_level_set(vv_mesh, time, &
93 !!$ dt, list_mode, level_set_m1, level_set)
94 !!$ IMPLICIT NONE
95 !!$ TYPE(mesh_type) :: vv_mesh
96 !!$ REAL(KIND=8), INTENT(OUT):: time
97 !!$ REAL(KIND=8), INTENT(IN) :: dt
98 !!$ INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
99 !!$ REAL(KIND=8), DIMENSION(:,:,:,:), INTENT(OUT):: level_set, level_set_m1
100 !!$ INTEGER :: mode, i, j, n
101 !!$
102 !!$ time = 0.d0
103 !!$ DO i= 1, SIZE(list_mode)
104 !!$ mode = list_mode(i)
105 !!$ DO j = 1, 2
106 !!$ !===level_set
107 !!$ DO n = 1, inputs%nb_fluid -1
108 !!$ level_set_m1(n,:,j,i) = level_set_exact(n,j,vv_mesh%rr,mode,time-dt)
109 !!$ level_set (n,:,j,i) = level_set_exact(n,j,vv_mesh%rr,mode,time)
110 !!$ END DO
111 !!$ END DO
112 !!$ END DO
113 !!$
114 !!$ END SUBROUTINE init_level_set
115 
116  !===Source in momemtum equation. Always called.
117  FUNCTION source_in_ns_momentum(TYPE, rr, mode, i, time, Re, ty, opt_density, opt_tempn) RESULT(vv)
118  IMPLICIT NONE
119  INTEGER , INTENT(IN) :: TYPE
120  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
121  INTEGER , INTENT(IN) :: mode, i
122  REAL(KIND=8), INTENT(IN) :: time
123  REAL(KIND=8), INTENT(IN) :: Re
124  CHARACTER(LEN=2), INTENT(IN) :: ty
125  REAL(KIND=8), DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: opt_density
126  REAL(KIND=8), DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: opt_tempn
127  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
128  REAL(KIND=8) :: r
129  INTEGER :: n
130  CHARACTER(LEN=2) :: np
131 
132  IF (PRESENT(opt_density)) CALL error_petsc('density should not be present for test 16')
133  IF (PRESENT(opt_tempn)) CALL error_petsc('temperature should not be present for test 16')
134 
135  vv = 0.d0
136  RETURN
137 
138  !===Dummies variables to avoid warning
139  n=type; n=SIZE(rr,1); n=mode; n=i; r=time; r=re; np=ty
140  !===Dummies variables to avoid warning
141  END FUNCTION source_in_ns_momentum
142 
143 !!$ !===Extra source in temperature equation. Always called.
144 !!$ FUNCTION source_in_temperature(TYPE, rr, m, t)RESULT(vv)
145 !!$ IMPLICIT NONE
146 !!$ INTEGER , INTENT(IN) :: TYPE
147 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
148 !!$ INTEGER , INTENT(IN) :: m
149 !!$ REAL(KIND=8), INTENT(IN) :: t
150 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
151 !!$
152 !!$ vv = 0.d0
153 !!$ CALL error_petsc('source_in_temperature: should not be called for this test')
154 !!$ RETURN
155 !!$ END FUNCTION source_in_temperature
156 
157 !!$ !===Extra source in level set equation. Always called.
158 !!$ FUNCTION source_in_level_set(interface_nb,TYPE, rr, m, t)RESULT(vv)
159 !!$ IMPLICIT NONE
160 !!$ INTEGER , INTENT(IN) :: TYPE
161 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
162 !!$ INTEGER , INTENT(IN) :: m, interface_nb
163 !!$ REAL(KIND=8), INTENT(IN) :: t
164 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
165 !!$
166 !!$ vv=0.d0
167 !!$ CALL error_petsc('sourece_in_temperature: should not be called for this test')
168 !!$ END FUNCTION source_in_level_set
169 
170  !===Velocity for boundary conditions in Navier-Stokes.
171  !===Can be used also to initialize velocity in: init_velocity_pressure_temperature
172  FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
173  IMPLICIT NONE
174  INTEGER , INTENT(IN) :: TYPE
175  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
176  INTEGER, INTENT(IN) :: m
177  REAL(KIND=8), INTENT(IN) :: t
178  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
179  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: r, z
180 
181  r = rr(1,:)
182  z = rr(2,:)
183 
184  IF (t>1.d-14) THEN
185  vv = 0.d0
186  ELSE
187  IF (m/=0) THEN
188  vv = 0.d0
189  ELSE
190  IF (type==3) THEN
191  vv = 0.1d0*r
192  ELSE
193  vv = 0.d0
194  END IF
195  END IF
196  END IF
197  RETURN
198  END FUNCTION vv_exact
199 
200 !!$ !===Solid velocity imposed when using penalty technique
201 !!$ !===Defined in Fourier space on mode 0 only.
202 !!$ FUNCTION imposed_velocity_by_penalty(rr,t) RESULT(vv)
203 !!$ IMPLICIT NONE
204 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
205 !!$ REAL(KIND=8), INTENT(IN) :: t
206 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
207 !!$
208 !!$ vv=0.d0
209 !!$ RETURN
210 !!$ END FUNCTION imposed_velocity_by_penalty
211 
212  !===Pressure for boundary conditions in Navier-Stokes.
213  !===Can be used also to initialize pressure in the subroutine init_velocity_pressure.
214  !===Use this routine for outflow BCs only.
215  !===CAUTION: Do not enfore BCs on pressure where normal component
216  ! of velocity is prescribed.
217  FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
218  IMPLICIT NONE
219  INTEGER , INTENT(IN) :: TYPE
220  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
221  INTEGER , INTENT(IN) :: m
222  REAL(KIND=8), INTENT(IN) :: t
223  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
224  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: r, z
225 
226  r = rr(1,:)
227  z = rr(2,:)
228 
229  IF (t>1.d-14) THEN
230  vv = 0.d0
231  ELSE
232  IF (m/=0) THEN
233  vv = 0.d0
234  ELSE
235  IF (type==1) THEN
236  vv = (0.1d0*r)**2/2.d0
237  ELSE
238  vv = 0.d0
239  END IF
240  END IF
241  END IF
242  RETURN
243  END FUNCTION pp_exact
244 
245 !!$ !===Temperature for boundary conditions in temperature equation.
246 !!$ FUNCTION temperature_exact(TYPE,rr,m,t) RESULT (vv)
247 !!$ IMPLICIT NONE
248 !!$ INTEGER , INTENT(IN) :: TYPE
249 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
250 !!$ INTEGER , INTENT(IN) :: m
251 !!$ REAL(KIND=8), INTENT(IN) :: t
252 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
253 !!$
254 !!$ vv = 0.d0
255 !!$ CALL error_petsc('temperature_exact: should not be called for this test')
256 !!$ RETURN
257 !!$ END FUNCTION temperature_exact
258 
259 !!$ !===Can be used to initialize level set in the subroutine init_level_set.
260 !!$ FUNCTION level_set_exact(interface_nb,TYPE,rr,m,t) RESULT (vv)
261 !!$ IMPLICIT NONE
262 !!$ INTEGER , INTENT(IN) :: TYPE
263 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
264 !!$ INTEGER , INTENT(IN) :: m, interface_nb
265 !!$ REAL(KIND=8), INTENT(IN) :: t
266 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
267 !!$
268 !!$ vv = 0.d0
269 !!$ CALL error_petsc('level_set_exact: should not be called for this test')
270 !!$ RETURN
271 !!$
272 !!$ END FUNCTION level_set_exact
273 
274 !!$ !===Penalty coefficient (if needed)
275 !!$ !===This coefficient is equal to zero in subdomain
276 !!$ !===where penalty is applied (penalty is zero in solid)
277 !!$ FUNCTION penal_in_real_space(mesh,rr_gauss,angles,nb_angles,nb,ne,time) RESULT(vv)
278 !!$ IMPLICIT NONE
279 !!$ TYPE(mesh_type) :: mesh
280 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr_gauss
281 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
282 !!$ INTEGER, INTENT(IN) :: nb_angles
283 !!$ INTEGER, INTENT(IN) :: nb, ne
284 !!$ REAL(KIND=8), INTENT(IN) :: time
285 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
286 !!$
287 !!$ vv = 1.d0
288 !!$ CALL error_petsc('penal_in_real_space: should not be called for this test')
289 !!$ RETURN
290 !!$ END FUNCTION penal_in_real_space
291 
292 !!$ !===Extension of the velocity field in the solid.
293 !!$ !===Used when temperature or Maxwell equations are solved.
294 !!$ !===It extends the velocity field on the Navier-Stokes domain to a
295 !!$ !===velocity field on the temperature and the Maxwell domain.
296 !!$ !===It is also used if problem type=mxw and restart velocity
297 !!$ !===is set to true in data (type problem denoted mxx in the code).
298 !!$ FUNCTION extension_velocity(TYPE, H_mesh, mode, t, n_start) RESULT(vv)
299 !!$ IMPLICIT NONE
300 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
301 !!$ INTEGER , INTENT(IN) :: TYPE, n_start
302 !!$ INTEGER, INTENT(IN) :: mode
303 !!$ REAL(KIND=8), INTENT(IN) :: t
304 !!$ REAL(KIND=8), DIMENSION(H_Mesh%np) :: vv
305 !!$
306 !!$ vv = 0.d0
307 !!$ RETURN
308 !!$
309 !!$ END FUNCTION extension_velocity
310 
311  !===============================================================================
312  ! Boundary conditions for Maxwell
313  !===============================================================================
314 !!$ !===Velocity used in the induction equation.
315 !!$ !===Used only if problem type is mxw and restart velocity is false
316 !!$ FUNCTION Vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
317 !!$ IMPLICIT NONE
318 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
319 !!$ INTEGER, INTENT(IN) :: m
320 !!$ REAL(KIND=8), DIMENSION(H_mesh%np,6) :: vv
321 !!$
322 !!$ vv = 0.d0
323 !!$ CALL error_petsc('Vexact: should not be called for this test')
324 !!$ END FUNCTION Vexact
325 
326 !!$ !===Magnetic field and magnetic induction for quasi-static approximation
327 !!$ !===if needed
328 !!$ FUNCTION H_B_quasi_static(char_h_b, rr, m) RESULT(vv)
329 !!$ IMPLICIT NONE
330 !!$ CHARACTER(LEN=1), INTENT(IN) :: char_h_b
331 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
332 !!$ INTEGER, INTENT(IN) :: m
333 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
334 !!$
335 !!$ vv = 0.d0
336 !!$ RETURN
337 !!$ END FUNCTION H_B_quasi_static
338 
339 !!$ !===Magnetic field for boundary conditions in the Maxwell equations.
340 !!$ FUNCTION Hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
341 !!$ IMPLICIT NONE
342 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
343 !!$ INTEGER , INTENT(IN) :: TYPE
344 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
345 !!$ INTEGER , INTENT(IN) :: m
346 !!$ REAL(KIND=8), INTENT(IN) :: t
347 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
348 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
349 !!$
350 !!$ vv=0.d0
351 !!$ CALL error_petsc('Hexact: should not be called for this test')
352 !!$ RETURN
353 !!$ END FUNCTION Hexact
354 
355 !!$ !===Scalar potential for boundary conditions in the Maxwell equations.
356 !!$ FUNCTION Phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
357 !!$ IMPLICIT NONE
358 !!$ INTEGER , INTENT(IN) :: TYPE
359 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
360 !!$ INTEGER , INTENT(IN) :: m
361 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, t
362 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
363 !!$
364 !!$ vv=0.d0
365 !!$ CALL error_petsc('Phiexact: should not be called for this test')
366 !!$ RETURN
367 !!$ END FUNCTION Phiexact
368 
369 !!$ !===Current in Ohm's law. Curl(H) = sigma(E + uxB) + current
370 !!$ FUNCTION Jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
371 !!$ IMPLICIT NONE
372 !!$ INTEGER , INTENT(IN) :: TYPE
373 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
374 !!$ INTEGER , INTENT(IN) :: m
375 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
376 !!$ INTEGER , INTENT(IN) :: mesh_id
377 !!$ REAL(KIND=8), DIMENSION(6), OPTIONAL,INTENT(IN) :: opt_B_ext
378 !!$ REAL(KIND=8) :: vv
379 !!$
380 !!$ vv=0.d0
381 !!$ CALL error_petsc('Jexact_gauss: should not be called for this test')
382 !!$ RETURN
383 !!$ END FUNCTION Jexact_gauss
384 
385 !!$ !===Electric field for Neumann BC (cf. doc)
386 !!$ FUNCTION Eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
387 !!$ IMPLICIT NONE
388 !!$ INTEGER, INTENT(IN) :: TYPE
389 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
390 !!$ INTEGER, INTENT(IN) :: m
391 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
392 !!$ REAL(KIND=8) :: vv
393 !!$
394 !!$ vv = 0.d0
395 !!$ CALL error_petsc('Eexact: should not be called for this test')
396 !!$ END FUNCTION Eexact_gauss
397 
398 !!$ !===Initialization of magnetic field and scalar potential (if present)
399 !!$ SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
400 !!$ list_mode, Hn1, Hn, phin1, phin)
401 !!$ IMPLICIT NONE
402 !!$ TYPE(mesh_type) :: H_mesh, phi_mesh
403 !!$ REAL(KIND=8), INTENT(OUT):: time
404 !!$ REAL(KIND=8), INTENT(IN) :: dt
405 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
406 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi
407 !!$ INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
408 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: Hn, Hn1
409 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: phin, phin1
410 !!$
411 !!$ CALL error_petsc('init_maxwell: should not be called for this test')
412 !!$ END SUBROUTINE init_maxwell
413 
414 !!$ !===Analytical permeability (if needed)
415 !!$ !===This function is not needed unless the flag
416 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
417 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
418 !!$ FUNCTION mu_bar_in_fourier_space(H_mesh,nb,ne,pts,pts_ids) RESULT(vv)
419 !!$ IMPLICIT NONE
420 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
421 !!$ REAL(KIND=8), DIMENSION(ne-nb+1) :: vv
422 !!$ INTEGER, INTENT(IN) :: nb, ne
423 !!$ REAL(KIND=8),DIMENSION(2,ne-nb+1),OPTIONAL :: pts
424 !!$ INTEGER, DIMENSION(ne-nb+1), OPTIONAL :: pts_ids
425 !!$
426 !!$ vv = 1.d0
427 !!$ CALL error_petsc('mu_bar_in_fourier_space: should not be called for this test')
428 !!$ RETURN
429 !!$ END FUNCTION mu_bar_in_fourier_space
430 
431 !!$ !===Analytical mu_in_fourier_space (if needed)
432 !!$ !===This function is not needed unless the flag
433 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
434 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
435 !!$ FUNCTION grad_mu_bar_in_fourier_space(pt,pt_id) RESULT(vv)
436 !!$ IMPLICIT NONE
437 !!$ REAL(KIND=8),DIMENSION(2), INTENT(in):: pt
438 !!$ INTEGER,DIMENSION(1), INTENT(in) :: pt_id
439 !!$ REAL(KIND=8),DIMENSION(2) :: vv
440 !!$
441 !!$ vv=0.d0
442 !!$ CALL error_petsc('grad_mu_bar_in_fourier_space: should not be called for this test')
443 !!$ RETURN
444 !!$ END FUNCTION grad_mu_bar_in_fourier_space
445 
446 !!$ !===Analytical permeability, mu in real space (if needed)
447 !!$ FUNCTION mu_in_real_space(H_mesh,angles,nb_angles,nb,ne,time) RESULT(vv)
448 !!$ IMPLICIT NONE
449 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
450 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
451 !!$ INTEGER, INTENT(IN) :: nb_angles
452 !!$ INTEGER, INTENT(IN) :: nb, ne
453 !!$ REAL(KIND=8), INTENT(IN) :: time
454 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
455 !!$
456 !!$ vv = 1.d0
457 !!$ CALL error_petsc('mu_in_real_space: should not be called for this test')
458 !!$ RETURN
459 !!$ END FUNCTION mu_in_real_space
460 
461 END MODULE boundary_test_16
real(kind=8) function, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, t)
subroutine error_petsc(string)
Definition: my_util.f90:16
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(size(rr, 2)), public source_in_ns_momentum(TYPE, rr, mode, i, time, Re, ty, opt_density, opt_tempn)