SFEMaNS  version 5.3
Reference documentation for SFEMaNS
condlim_test_35.f90
Go to the documentation of this file.
2  USE def_type_mesh
3  USE input_data
4  USE my_util
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 !!$ time = 0.d0
102 !!$ DO i= 1, SIZE(list_mode)
103 !!$ mode = list_mode(i)
104 !!$ DO j = 1, 2
105 !!$ !===level_set
106 !!$ DO n = 1, inputs%nb_fluid -1
107 !!$ level_set_m1(n,:,j,i) = level_set_exact(n,j,vv_mesh%rr,mode,time-dt)
108 !!$ level_set (n,:,j,i) = level_set_exact(n,j,vv_mesh%rr,mode,time)
109 !!$ END DO
110 !!$ END DO
111 !!$ END DO
112 !!$ END SUBROUTINE init_level_set
113 
114  !===Source in momemtum equation. Always called.
115  FUNCTION source_in_ns_momentum(TYPE, rr, mode, i, time, Re, ty, opt_density, opt_tempn) RESULT(vv)
116  IMPLICIT NONE
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
126  INTEGER :: m
127  REAL(KIND=8) :: d
128  CHARACTER(LEN=2) :: np
129 
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)
132 
133  vv = 0.d0
134 
135  RETURN
136 
137  !===Dummies variables to avoid warning
138  np=ty; m = type; m=SIZE(rr,1); m = mode; m=i; d=time; d=re;
139  !===Dummies variables to avoid warning
140  END FUNCTION source_in_ns_momentum
141 
142  !===Extra source in temperature equation. Always called.
143  FUNCTION source_in_temperature(TYPE, rr, m, t)RESULT(vv)
144  IMPLICIT NONE
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
151 
152  r = rr(1,:)
153  z = rr(2,:)
154 
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)
159 
160  x = (h1 * r + h2 * z) / lambda
161 
162  ! source = c pdt T - lambda laplacien T
163 
164  ! c pdt T
165 
166  IF (type==1) THEN
167  IF ((m==0).OR.(m==1)) THEN
168  vv = - c * ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * sin(t)
169  ELSE
170  vv = 0d0
171  END IF
172  ELSE
173  vv = 0d0
174  END IF
175 
176  ! - lambda laplacien T
177 
178  IF (type==1) THEN
179  IF (m==0) THEN
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) )
184  ELSE IF (m==1) THEN
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) )
190  END IF
191  END IF
192 
193  RETURN
194  END FUNCTION source_in_temperature
195 
196 !!$ !===Extra source in level set equation. Always called.
197 !!$ FUNCTION source_in_level_set(interface_nb,TYPE, rr, m, t)RESULT(vv)
198 !!$ IMPLICIT NONE
199 !!$ INTEGER , INTENT(IN) :: TYPE
200 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
201 !!$ INTEGER , INTENT(IN) :: m, interface_nb
202 !!$ REAL(KIND=8), INTENT(IN) :: t
203 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
204 !!$
205 !!$ vv=0.d0
206 !!$ RETURN
207 !!$ END FUNCTION source_in_level_set
208 
209  !===Velocity for boundary conditions in Navier-Stokes.
210  !===Can be used also to initialize velocity in: init_velocity_pressure_temperature
211  FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
212  IMPLICIT NONE
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
218  INTEGER :: k
219  REAL(KIND=8) :: d
220 
221  vv = 0.d0
222 
223  RETURN
224 
225  !===Dummies variables to avoid warning
226  k=type; k=SIZE(rr,1); k=m; d=t
227  !===Dummies variables to avoid warning
228  END FUNCTION vv_exact
229 
230 !!$ !===Solid velocity imposed when using penalty technique
231 !!$ !===Defined in Fourier space on mode 0 only.
232 !!$ FUNCTION imposed_velocity_by_penalty(rr,t) RESULT(vv)
233 !!$ IMPLICIT NONE
234 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
235 !!$ REAL(KIND=8), INTENT(IN) :: t
236 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
237 !!$
238 !!$ vv=0.d0
239 !!$ RETURN
240 !!$ END FUNCTION imposed_velocity_by_penalty
241 
242  !===Pressure for boundary conditions in Navier-Stokes.
243  !===Can be used also to initialize pressure in the subroutine init_velocity_pressure.
244  !===Use this routine for outflow BCs only.
245  !===CAUTION: Do not enfore BCs on pressure where normal component
246  ! of velocity is prescribed.
247  FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
248  IMPLICIT NONE
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
254  REAL(KIND=8) :: r
255  INTEGER :: n
256 
257  vv = 0.d0
258  RETURN
259 
260  !===Dummies variables to avoid warning
261  n=type; n=SIZE(rr,1); n=m; r=t
262  !===Dummies variables to avoid warning
263  END FUNCTION pp_exact
264 
265  !===Temperature for boundary conditions in temperature equation.
266  FUNCTION temperature_exact(TYPE,rr,m,t) RESULT (vv)
267  IMPLICIT NONE
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
274 
275  r = rr(1,:)
276  z = rr(2,:)
277 
278  lambda = inputs%temperature_diffusivity(1)
279  h1 = inputs%convection_coeff(1)
280  h2 = inputs%convection_coeff(2)
281  t1 = inputs%exterior_temperature(1)
282 
283  x = (h1 * r + h2 * z) / lambda
284 
285  IF (type==1) THEN
286  IF (m==0) THEN
287  vv = ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * cos(t) + t1
288  ELSE IF (m==1) THEN
289  vv = ( exp(-x) + (r - 1d0)**2 * (z - 1d0)**2 ) * cos(t)
290  ELSE
291  vv = 0d0
292  END IF
293  ELSE
294  vv = 0.d0
295  END IF
296 
297  RETURN
298  END FUNCTION temperature_exact
299 
300 !!$ !===Can be used to initialize level set in: init_level_set
301 !!$ FUNCTION level_set_exact(interface_nb,TYPE,rr,m,t) RESULT (vv)
302 !!$ IMPLICIT NONE
303 !!$ INTEGER , INTENT(IN) :: TYPE
304 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
305 !!$ INTEGER , INTENT(IN) :: m, interface_nb
306 !!$ REAL(KIND=8), INTENT(IN) :: t
307 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
308 !!$
309 !!$ vv = 0.d0
310 !!$ RETURN
311 !!$ END FUNCTION level_set_exact
312 
313 !!$ !===Penalty coefficient (if needed)
314 !!$ !===This coefficient is equal to zero in subdomain
315 !!$ !===where penalty is applied
316 !!$ FUNCTION penal_in_real_space(mesh,rr_gauss,angles,nb_angles,nb,ne,time) RESULT(vv)
317 !!$ IMPLICIT NONE
318 !!$ TYPE(mesh_type) :: mesh
319 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr_gauss
320 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
321 !!$ INTEGER, INTENT(IN) :: nb_angles
322 !!$ INTEGER, INTENT(IN) :: nb, ne
323 !!$ REAL(KIND=8), INTENT(IN) :: time
324 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
325 !!$
326 !!$ vv = 1.d0
327 !!$ RETURN
328 !!$ END FUNCTION penal_in_real_space
329 
330  !===Extension of the velocity field in the solid.
331  !===Used when temperature or Maxwell equations are solved.
332  !===It extends the velocity field on the Navier-Stokes domain to a
333  !===velocity field on the temperature and the Maxwell domain.
334  !===It is also used if problem type=mxw and restart velocity
335  !===is set to true in data (type problem denoted mxx in the code).
336  FUNCTION extension_velocity(TYPE, H_mesh, mode, t, n_start) RESULT(vv)
337  IMPLICIT NONE
338  TYPE(mesh_type), INTENT(IN) :: H_mesh
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
343  REAL(KIND=8) :: r
344  INTEGER :: n
345 
346  vv = 0.d0
347  RETURN
348 
349  !===Dummies variables to avoid warning
350  n=h_mesh%np; r=t; n=type; n=mode; n=n_start
351  !===Dummies variables to avoid warning
352  END FUNCTION extension_velocity
353 
354  !===============================================================================
355  ! Boundary conditions for Maxwell
356  !===============================================================================
357 !!$ !===Velocity used in the induction equation.
358 !!$ !===Used only if problem type is mxw and restart velocity is false
359 !!$ FUNCTION Vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
360 !!$ IMPLICIT NONE
361 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
362 !!$ INTEGER, INTENT(IN) :: m
363 !!$ REAL(KIND=8), DIMENSION(H_mesh%np,6) :: vv
364 !!$
365 !!$ vv = 0.d0
366 !!$ RETURN
367 !!$ END FUNCTION Vexact
368 
369 !!$ FUNCTION H_B_quasi_static(char_h_b, rr, m) RESULT(vv)
370 !!$ IMPLICIT NONE
371 !!$ CHARACTER(LEN=1), INTENT(IN) :: char_h_b
372 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
373 !!$ INTEGER, INTENT(IN) :: m
374 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
375 !!$
376 !!$ IF (inputs%if_quasi_static_approx) THEN
377 !!$ vv = 0.d0
378 !!$ ELSE
379 !!$ CALL error_petsc('H_B_quasi_static should not be called')
380 !!$ END IF
381 !!$ RETURN
382 !!$ END FUNCTION H_B_quasi_static
383 
384 !!$ !===Magnetic field for boundary conditions in the Maxwell equations.
385 !!$ FUNCTION Hexact(H_mesh, TYPE, rr, m, mu_H_field, t) RESULT(vv)
386 !!$ IMPLICIT NONE
387 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
388 !!$ INTEGER , INTENT(IN) :: TYPE
389 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
390 !!$ INTEGER , INTENT(IN) :: m
391 !!$ REAL(KIND=8), INTENT(IN) :: t
392 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
393 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
394 !!$
395 !!$ vv = 0.d0
396 !!$ RETURN
397 !!$ END FUNCTION Hexact
398 
399 !!$ !===Scalar potential for boundary conditions in the Maxwell equations.
400 !!$ FUNCTION Phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
401 !!$ IMPLICIT NONE
402 !!$ INTEGER , INTENT(IN) :: TYPE
403 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
404 !!$ INTEGER , INTENT(IN) :: m
405 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, t
406 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
407 !!$
408 !!$ vv=0.d0
409 !!$ RETURN
410 !!$ END FUNCTION Phiexact
411 
412 !!$ !===Current in Ohm's law. Curl(H) = sigma(E + uxB) + current
413 !!$ FUNCTION Jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
414 !!$ IMPLICIT NONE
415 !!$ INTEGER , INTENT(IN) :: TYPE
416 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
417 !!$ INTEGER , INTENT(IN) :: m
418 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
419 !!$ INTEGER , INTENT(IN) :: mesh_id
420 !!$ REAL(KIND=8), DIMENSION(6), OPTIONAL,INTENT(IN) :: opt_B_ext
421 !!$ REAL(KIND=8) :: vv
422 !!$
423 !!$ vv = 0.d0
424 !!$ RETURN
425 !!$ END FUNCTION Jexact_gauss
426 
427 !!$ !===Electric field for Neumann BC (cf. doc)
428 !!$ FUNCTION Eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
429 !!$ IMPLICIT NONE
430 !!$ INTEGER, INTENT(IN) :: TYPE
431 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
432 !!$ INTEGER, INTENT(IN) :: m
433 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
434 !!$ REAL(KIND=8) :: vv
435 !!$
436 !!$ vv = 0.d0
437 !!$ RETURN
438 !!$ END FUNCTION Eexact_gauss
439 
440 !!$ !===Initialization of magnetic field and scalar potential (if present)
441 !!$ SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
442 !!$ list_mode, Hn1, Hn, phin1, phin)
443 !!$ IMPLICIT NONE
444 !!$ TYPE(mesh_type) :: H_mesh, phi_mesh
445 !!$ REAL(KIND=8), INTENT(OUT):: time
446 !!$ REAL(KIND=8), INTENT(IN) :: dt
447 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
448 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi
449 !!$ INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
450 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: Hn, Hn1
451 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: phin, phin1
452 !!$
453 !!$ time = 0.d0
454 !!$ Hn1=0.d0
455 !!$ HN=0.d0
456 !!$ phin = 0.d0
457 !!$ phin1 =0.d0
458 !!$ RETURN
459 !!$ END SUBROUTINE init_maxwell
460 
461 !!$ !===Analytical permeability (if needed)
462 !!$ !===This function is not needed unless the flag
463 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
464 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
465 !!$ FUNCTION mu_bar_in_fourier_space(H_mesh,nb,ne,pts,pts_ids) RESULT(vv)
466 !!$ IMPLICIT NONE
467 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
468 !!$ REAL(KIND=8), DIMENSION(ne-nb+1) :: vv
469 !!$ INTEGER, INTENT(IN) :: nb, ne
470 !!$ REAL(KIND=8),DIMENSION(2,ne-nb+1),OPTIONAL :: pts
471 !!$ INTEGER, DIMENSION(ne-nb+1), OPTIONAL :: pts_ids
472 !!$
473 !!$ vv = 1.d0
474 !!$ RETURN
475 !!$ END FUNCTION mu_bar_in_fourier_space
476 
477 !!$ !===Analytical mu_in_fourier_space (if needed)
478 !!$ !===This function is not needed unless the flag
479 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
480 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
481 !!$ FUNCTION grad_mu_bar_in_fourier_space(pt,pt_id) RESULT(vv)
482 !!$ IMPLICIT NONE
483 !!$ REAL(KIND=8),DIMENSION(2), INTENT(in):: pt
484 !!$ INTEGER,DIMENSION(1), INTENT(in) :: pt_id
485 !!$ REAL(KIND=8),DIMENSION(2) :: vv
486 !!$
487 !!$ vv=0.d0
488 !!$ RETURN
489 !!$ END FUNCTION grad_mu_bar_in_fourier_space
490 
491 !!$ !===Analytical permeability, mu in real space (if needed)
492 !!$ FUNCTION mu_in_real_space(H_mesh,angles,nb_angles,nb,ne,time) RESULT(vv)
493 !!$ IMPLICIT NONE
494 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
495 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
496 !!$ INTEGER, INTENT(IN) :: nb_angles
497 !!$ INTEGER, INTENT(IN) :: nb, ne
498 !!$ REAL(KIND=8), INTENT(IN) :: time
499 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
500 !!$
501 !!$ vv = 1.d0
502 !!$ RETURN
503 !!$ END FUNCTION mu_in_real_space
504 
505 END MODULE boundary_test_35
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)
Definition: my_util.f90:16
type(my_data), public inputs
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)