SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
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
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 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
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