SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
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
section doc_intro_frame_work_num_app Numerical approximation subsection doc_intro_fram_work_num_app_Fourier_FEM Fourier Finite element representation The SFEMaNS code uses a hybrid Fourier Finite element formulation The Fourier decomposition allows to approximate the problem’s solutions for each Fourier mode modulo nonlinear terms that are made explicit The variables are then approximated on a meridian section of the domain with a finite element method The numerical approximation of a function f $f f is written in the following generic t
Definition: doc_intro.h:199
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 pp_exact(TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public source_in_level_set(interface_nb, TYPE, rr, m, t)
real(kind=8) function, dimension(size(rr, 2)), public vv_exact(TYPE, rr, m, t)
subroutine, public init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, un_m1, un, pn_m1, pn, phin_m1, phin)
subroutine error_petsc(string)
Definition: my_util.f90:15
real(kind=8) function, dimension(size(rr, 2)), public level_set_exact(interface_nb, TYPE, rr, m, t)
subroutine, public init_level_set(vv_mesh, time, dt, list_mode, level_set_m1, level_set)
section doc_intro_frame_work_num_app Numerical approximation subsection doc_intro_fram_work_num_app_Fourier_FEM Fourier Finite element representation The SFEMaNS code uses a hybrid Fourier Finite element formulation The Fourier decomposition allows to approximate the problem’s solutions for each Fourier mode modulo nonlinear terms that are made explicit The variables are then approximated on a meridian section of the domain with a finite element method The numerical approximation of a function f $f f is written in the following generic z
Definition: doc_intro.h:193