SFEMaNS  version 5.3
Reference documentation for SFEMaNS
condlim_test_19.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), DIMENSION(SIZE(rr,2)) :: r, z
129  INTEGER :: m
130  REAL(KIND=8) :: t
131  CHARACTER(LEN=2) :: np
132 
133  IF (PRESENT(opt_tempn)) CALL error_petsc('temperature should not be present for test 19')
134 
135  r = rr(1,:)
136  z = rr(2,:)
137  m = mode
138  t = time
139 
140  IF (m==0 .AND. type==1) THEN
141  vv = -r**3*(1+(inputs%density_fluid(2)-inputs%density_fluid(1))*(r**2+z**2))*sin(-z+t)**2
142  ELSE IF (m==0 .AND. type==3) THEN
143  vv = r**2*(1+(inputs%density_fluid(2)-inputs%density_fluid(1))*(r**2+z**2))*cos(-z+t) &
144  - 1/re*(3.d0-r**2)*sin(-z+t)
145  ELSE
146  vv = 0.d0
147  END IF
148  RETURN
149 
150  !===Dummies variables to avoid warning
151  m=i; m=SIZE(opt_density,1); np=ty
152  !===Dummies variables to avoid warning
153  END FUNCTION source_in_ns_momentum
154 
155 !!$ !===Extra source in temperature equation. Always called.
156 !!$ FUNCTION source_in_temperature(TYPE, rr, m, t)RESULT(vv)
157 !!$ IMPLICIT NONE
158 !!$ INTEGER , INTENT(IN) :: TYPE
159 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
160 !!$ INTEGER , INTENT(IN) :: m
161 !!$ REAL(KIND=8), INTENT(IN) :: t
162 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
163 !!$
164 !!$ vv = 0.d0
165 !!$ CALL error_petsc('source_in_temperature: should not be called for this test')
166 !!$ RETURN
167 !!$ END FUNCTION source_in_temperature
168 
169  !===Extra source in level set equation. Always called.
170  FUNCTION source_in_level_set(interface_nb,TYPE, rr, m, t)RESULT(vv)
171  IMPLICIT NONE
172  INTEGER , INTENT(IN) :: TYPE
173  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
174  INTEGER , INTENT(IN) :: m, interface_nb
175  REAL(KIND=8), INTENT(IN) :: t
176  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
177  REAL(KIND=8) :: r
178  INTEGER :: n
179 
180  vv = 0.d0
181  RETURN
182 
183  !===Dummies variables to avoid warning
184  n=type; n=SIZE(rr,1); n=m; n=interface_nb; r=t
185  !===Dummies variables to avoid warning
186  END FUNCTION source_in_level_set
187 
188  !===Velocity for boundary conditions in Navier-Stokes.
189  !===Can be used also to initialize velocity in: init_velocity_pressure_temperature
190  FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
191  IMPLICIT NONE
192  INTEGER , INTENT(IN) :: TYPE
193  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
194  INTEGER, INTENT(IN) :: m
195  REAL(KIND=8), INTENT(IN) :: t
196  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
197  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: r, z
198 
199  r = rr(1,:)
200  z = rr(2,:)
201 
202  IF (m==0 .AND. type==3) THEN
203  vv = r**2*sin(-z+t)
204  ELSE
205  vv = 0.d0
206  END IF
207  RETURN
208  END FUNCTION vv_exact
209 
210 !!$ !===Solid velocity imposed when using penalty technique
211 !!$ !===Defined in Fourier space on mode 0 only.
212 !!$ FUNCTION imposed_velocity_by_penalty(rr,t) RESULT(vv)
213 !!$ IMPLICIT NONE
214 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
215 !!$ REAL(KIND=8), INTENT(IN) :: t
216 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
217 !!$
218 !!$ vv=0.d0
219 !!$ RETURN
220 !!$ END FUNCTION imposed_velocity_by_penalty
221 
222  !===Pressure for boundary conditions in Navier-Stokes.
223  !===Can be used also to initialize pressure in the subroutine init_velocity_pressure.
224  !===Use this routine for outflow BCs only.
225  !===CAUTION: Do not enfore BCs on pressure where normal component
226  ! of velocity is prescribed.
227  FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
228  IMPLICIT NONE
229  INTEGER , INTENT(IN) :: TYPE
230  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
231  INTEGER , INTENT(IN) :: m
232  REAL(KIND=8), INTENT(IN) :: t
233  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
234  REAL(KIND=8) :: r
235  INTEGER :: n
236 
237  vv = 0.d0
238  RETURN
239 
240  !===Dummies variables to avoid warning
241  n=type; n=SIZE(rr,1); n=m; r=t
242  !===Dummies variables to avoid warning
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  REAL(KIND=8) :: r
268 
269  IF (interface_nb==1) THEN
270  IF (m==0 .AND. TYPE ==1) then
271  vv = rr(1,:)**2 + rr(2,:)**2
272  ELSE
273  vv = 0.d0
274  END IF
275  ELSE
276  CALL error_petsc(' BUG in level_set_exact, we should compute only 1 level set')
277  END IF
278  RETURN
279 
280  !===Dummies variables to avoid warning
281  r=t
282  !===Dummies variables to avoid warning
283  END FUNCTION level_set_exact
284 
285 !!$ !===Penalty coefficient (if needed)
286 !!$ !===This coefficient is equal to zero in subdomain
287 !!$ !===where penalty is applied (penalty is zero in solid)
288 !!$ FUNCTION penal_in_real_space(mesh,rr_gauss,angles,nb_angles,nb,ne,time) RESULT(vv)
289 !!$ IMPLICIT NONE
290 !!$ TYPE(mesh_type) :: mesh
291 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr_gauss
292 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
293 !!$ INTEGER, INTENT(IN) :: nb_angles
294 !!$ INTEGER, INTENT(IN) :: nb, ne
295 !!$ REAL(KIND=8), INTENT(IN) :: time
296 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
297 !!$
298 !!$ vv = 1.d0
299 !!$ CALL error_petsc('penal_in_real_space: should not be called for this test')
300 !!$ RETURN
301 !!$ END FUNCTION penal_in_real_space
302 
303 !!$ !===Extension of the velocity field in the solid.
304 !!$ !===Used when temperature or Maxwell equations are solved.
305 !!$ !===It extends the velocity field on the Navier-Stokes domain to a
306 !!$ !===velocity field on the temperature and the Maxwell domain.
307 !!$ !===It is also used if problem type=mxw and restart velocity
308 !!$ !===is set to true in data (type problem denoted mxx in the code).
309 !!$ FUNCTION extension_velocity(TYPE, H_mesh, mode, t, n_start) RESULT(vv)
310 !!$ IMPLICIT NONE
311 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
312 !!$ INTEGER , INTENT(IN) :: TYPE, n_start
313 !!$ INTEGER, INTENT(IN) :: mode
314 !!$ REAL(KIND=8), INTENT(IN) :: t
315 !!$ REAL(KIND=8), DIMENSION(H_Mesh%np) :: vv
316 !!$
317 !!$ vv = 0.d0
318 !!$ RETURN
319 !!$
320 !!$ END FUNCTION extension_velocity
321 
322  !===============================================================================
323  ! Boundary conditions for Maxwell
324  !===============================================================================
325 !!$ !===Velocity used in the induction equation.
326 !!$ !===Used only if problem type is mxw and restart velocity is false
327 !!$ FUNCTION Vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
328 !!$ IMPLICIT NONE
329 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
330 !!$ INTEGER, INTENT(IN) :: m
331 !!$ REAL(KIND=8), DIMENSION(H_mesh%np,6) :: vv
332 !!$
333 !!$ vv = 0.d0
334 !!$ CALL error_petsc('Vexact: should not be called for this test')
335 !!$ END FUNCTION Vexact
336 
337 !!$ !===Magnetic field and magnetic induction for quasi-static approximation
338 !!$ !===if needed
339 !!$ FUNCTION H_B_quasi_static(char_h_b, rr, m) RESULT(vv)
340 !!$ IMPLICIT NONE
341 !!$ CHARACTER(LEN=1), INTENT(IN) :: char_h_b
342 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
343 !!$ INTEGER, INTENT(IN) :: m
344 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
345 !!$
346 !!$ vv = 0.d0
347 !!$ RETURN
348 !!$ END FUNCTION H_B_quasi_static
349 
350 !!$ !===Magnetic field for boundary conditions in the Maxwell equations.
351 !!$ FUNCTION Hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
352 !!$ IMPLICIT NONE
353 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
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(:), INTENT(IN) :: mu_H_field
359 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
360 !!$
361 !!$ vv=0.d0
362 !!$ CALL error_petsc('Hexact: should not be called for this test')
363 !!$ RETURN
364 !!$ END FUNCTION Hexact
365 
366 !!$ !===Scalar potential for boundary conditions in the Maxwell equations.
367 !!$ FUNCTION Phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
368 !!$ IMPLICIT NONE
369 !!$ INTEGER , INTENT(IN) :: TYPE
370 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
371 !!$ INTEGER , INTENT(IN) :: m
372 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, t
373 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
374 !!$
375 !!$ vv=0.d0
376 !!$ CALL error_petsc('Phiexact: should not be called for this test')
377 !!$ RETURN
378 !!$ END FUNCTION Phiexact
379 
380 !!$ !===Current in Ohm's law. Curl(H) = sigma(E + uxB) + current
381 !!$ FUNCTION Jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
382 !!$ IMPLICIT NONE
383 !!$ INTEGER , INTENT(IN) :: TYPE
384 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
385 !!$ INTEGER , INTENT(IN) :: m
386 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
387 !!$ INTEGER , INTENT(IN) :: mesh_id
388 !!$ REAL(KIND=8), DIMENSION(6), OPTIONAL,INTENT(IN) :: opt_B_ext
389 !!$ REAL(KIND=8) :: vv
390 !!$
391 !!$ vv=0.d0
392 !!$ CALL error_petsc('Jexact_gauss: should not be called for this test')
393 !!$ RETURN
394 !!$ END FUNCTION Jexact_gauss
395 
396 !!$ !===Electric field for Neumann BC (cf. doc)
397 !!$ FUNCTION Eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
398 !!$ IMPLICIT NONE
399 !!$ INTEGER, INTENT(IN) :: TYPE
400 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
401 !!$ INTEGER, INTENT(IN) :: m
402 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
403 !!$ REAL(KIND=8) :: vv
404 !!$
405 !!$ vv = 0.d0
406 !!$ CALL error_petsc('Eexact: should not be called for this test')
407 !!$ END FUNCTION Eexact_gauss
408 
409 !!$ !===Initialization of magnetic field and scalar potential (if present)
410 !!$ SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
411 !!$ list_mode, Hn1, Hn, phin1, phin)
412 !!$ IMPLICIT NONE
413 !!$ TYPE(mesh_type) :: H_mesh, phi_mesh
414 !!$ REAL(KIND=8), INTENT(OUT):: time
415 !!$ REAL(KIND=8), INTENT(IN) :: dt
416 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
417 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi
418 !!$ INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
419 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: Hn, Hn1
420 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: phin, phin1
421 !!$
422 !!$ CALL error_petsc('init_maxwell: should not be called for this test')
423 !!$ END SUBROUTINE init_maxwell
424 
425 !!$ !===Analytical permeability (if needed)
426 !!$ !===This function is not needed unless the flag
427 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
428 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
429 !!$ FUNCTION mu_bar_in_fourier_space(H_mesh,nb,ne,pts,pts_ids) RESULT(vv)
430 !!$ IMPLICIT NONE
431 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
432 !!$ REAL(KIND=8), DIMENSION(ne-nb+1) :: vv
433 !!$ INTEGER, INTENT(IN) :: nb, ne
434 !!$ REAL(KIND=8),DIMENSION(2,ne-nb+1),OPTIONAL :: pts
435 !!$ INTEGER, DIMENSION(ne-nb+1), OPTIONAL :: pts_ids
436 !!$
437 !!$ vv = 1.d0
438 !!$ CALL error_petsc('mu_bar_in_fourier_space: should not be called for this test')
439 !!$ RETURN
440 !!$ END FUNCTION mu_bar_in_fourier_space
441 
442 !!$ !===Analytical mu_in_fourier_space (if needed)
443 !!$ !===This function is not needed unless the flag
444 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
445 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
446 !!$ FUNCTION grad_mu_bar_in_fourier_space(pt,pt_id) RESULT(vv)
447 !!$ IMPLICIT NONE
448 !!$ REAL(KIND=8),DIMENSION(2), INTENT(in):: pt
449 !!$ INTEGER,DIMENSION(1), INTENT(in) :: pt_id
450 !!$ REAL(KIND=8),DIMENSION(2) :: vv
451 !!$
452 !!$ vv=0.d0
453 !!$ CALL error_petsc('grad_mu_bar_in_fourier_space: should not be called for this test')
454 !!$ RETURN
455 !!$ END FUNCTION grad_mu_bar_in_fourier_space
456 
457 !!$ !===Analytical permeability, mu in real space (if needed)
458 !!$ FUNCTION mu_in_real_space(H_mesh,angles,nb_angles,nb,ne,time) RESULT(vv)
459 !!$ IMPLICIT NONE
460 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
461 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
462 !!$ INTEGER, INTENT(IN) :: nb_angles
463 !!$ INTEGER, INTENT(IN) :: nb, ne
464 !!$ REAL(KIND=8), INTENT(IN) :: time
465 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
466 !!$
467 !!$ vv = 1.d0
468 !!$ CALL error_petsc('mu_in_real_space: should not be called for this test')
469 !!$ RETURN
470 !!$ END FUNCTION mu_in_real_space
471 
472 END MODULE boundary_test_19
real(kind=8) function, dimension(size(rr, 2)), public source_in_ns_momentum(TYPE, rr, mode, i, time, Re, ty, opt_density, opt_tempn)
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 level_set_exact(interface_nb, TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public pp_exact(TYPE, rr, m, t)
subroutine error_petsc(string)
Definition: my_util.f90:16
type(my_data), public inputs
subroutine, public init_level_set(vv_mesh, time, dt, list_mode, level_set_m1, level_set)
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_level_set(interface_nb, TYPE, rr, m, t)