SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
condlim_test_15.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 15')
133 
134  IF (type==5) THEN
135  vv = inputs%gravity_coefficient*opt_tempn(:,1,i)
136  ELSE IF (type==6) THEN
137  vv = inputs%gravity_coefficient*opt_tempn(:,2,i)
138  ELSE
139  vv = 0.d0
140  END IF
141  RETURN
142 
143  !===Dummies variables to avoid warning
144  n=SIZE(rr,1); n=mode; r=time; r=re; np=ty
145  !===Dummies variables to avoid warning
146  END FUNCTION source_in_ns_momentum
147 
148  !===Extra source in temperature equation. Always called.
149  FUNCTION source_in_temperature(TYPE, rr, m, t)RESULT(vv)
150  IMPLICIT NONE
151  INTEGER , INTENT(IN) :: type
152  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
153  INTEGER , INTENT(IN) :: m
154  REAL(KIND=8), INTENT(IN) :: t
155  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
156  REAL(KIND=8) :: r
157  INTEGER :: n
158 
159  vv = 0.d0
160  RETURN
161 
162  !===Dummies variables to avoid warning
163  n=type; n=SIZE(rr,1); n=m; r=t
164  !===Dummies variables to avoid warning
165  END FUNCTION source_in_temperature
166 
167 !!$ !===Extra source in level set equation. Always called.
168 !!$ FUNCTION source_in_level_set(interface_nb,TYPE, rr, m, t)RESULT(vv)
169 !!$ IMPLICIT NONE
170 !!$ INTEGER , INTENT(IN) :: TYPE
171 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
172 !!$ INTEGER , INTENT(IN) :: m, interface_nb
173 !!$ REAL(KIND=8), INTENT(IN) :: t
174 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
175 !!$
176 !!$ vv=0.d0
177 !!$ CALL error_petsc('sourece_in_temperature: should not be called for this test')
178 !!$ END FUNCTION source_in_level_set
179 
180  !===Velocity for boundary conditions in Navier-Stokes.
181  !===Can be used also to initialize velocity in: init_velocity_pressure_temperature
182  FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
183  IMPLICIT NONE
184  INTEGER , INTENT(IN) :: type
185  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
186  INTEGER, INTENT(IN) :: m
187  REAL(KIND=8), INTENT(IN) :: t
188  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
189  REAL(KIND=8) :: r
190  INTEGER :: n
191 
192  vv(:) = 0.d0
193  RETURN
194 
195  !===Dummies variables to avoid warning
196  n=type; n=SIZE(rr,1); n=m; r=t
197  !===Dummies variables to avoid warning
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) :: r
225  INTEGER :: n
226 
227  vv=0.d0
228  RETURN
229 
230  !===Dummies variables to avoid warning
231  n=type; n=SIZE(rr,1); n=m; r=t
232  !===Dummies variables to avoid warning
233  END FUNCTION pp_exact
234 
235  !===Temperature for boundary conditions in temperature equation.
236  FUNCTION temperature_exact(TYPE,rr,m,t) RESULT (vv)
237  IMPLICIT NONE
238  INTEGER , INTENT(IN) :: type
239  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
240  INTEGER , INTENT(IN) :: m
241  REAL(KIND=8), INTENT(IN) :: t
242  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
243  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: r, z
244 
245  r = rr(1,:)
246  z = rr(2,:)
247 
248  vv=0.d0
249  IF (m==0 .AND. type==1) THEN
250  vv(:)= - z - (z-5d-1)*(z+5d-1)
251  ELSE IF (m.GE.1) THEN
252  vv= -(z-5d-1)*(z+5d-1)
253  END IF
254  RETURN
255 
256  !===Dummies variables to avoid warning
257  r=t
258  !===Dummies variables to avoid warning
259  END FUNCTION temperature_exact
260 
261 !!$ !===Can be used to initialize level set in the subroutine init_level_set.
262 !!$ FUNCTION level_set_exact(interface_nb,TYPE,rr,m,t) RESULT (vv)
263 !!$ IMPLICIT NONE
264 !!$ INTEGER , INTENT(IN) :: TYPE
265 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
266 !!$ INTEGER , INTENT(IN) :: m, interface_nb
267 !!$ REAL(KIND=8), INTENT(IN) :: t
268 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
269 !!$
270 !!$ vv = 0.d0
271 !!$ CALL error_petsc('level_set_exact: should not be called for this test')
272 !!$ RETURN
273 !!$
274 !!$ END FUNCTION level_set_exact
275 
276 !!$ !===Penalty coefficient (if needed)
277 !!$ !===This coefficient is equal to zero in subdomain
278 !!$ !===where penalty is applied (penalty is zero in solid)
279 !!$ FUNCTION penal_in_real_space(mesh,rr_gauss,angles,nb_angles,nb,ne,time) RESULT(vv)
280 !!$ IMPLICIT NONE
281 !!$ TYPE(mesh_type) :: mesh
282 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr_gauss
283 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
284 !!$ INTEGER, INTENT(IN) :: nb_angles
285 !!$ INTEGER, INTENT(IN) :: nb, ne
286 !!$ REAL(KIND=8), INTENT(IN) :: time
287 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
288 !!$
289 !!$ vv = 1.d0
290 !!$ CALL error_petsc('penal_in_real_space: should not be called for this test')
291 !!$ RETURN
292 !!$ END FUNCTION penal_in_real_space
293 
294  !===Extension of the velocity field in the solid.
295  !===Used when temperature or Maxwell equations are solved.
296  !===It extends the velocity field on the Navier-Stokes domain to a
297  !===velocity field on the temperature and the Maxwell domain.
298  !===It is also used if problem type=mxw and restart velocity
299  !===is set to true in data (type problem denoted mxx in the code).
300  FUNCTION extension_velocity(TYPE, H_mesh, mode, t, n_start) RESULT(vv)
301  IMPLICIT NONE
302  TYPE(mesh_type), INTENT(IN) :: h_mesh
303  INTEGER , INTENT(IN) :: type, n_start
304  INTEGER, INTENT(IN) :: mode
305  REAL(KIND=8), INTENT(IN) :: t
306  REAL(KIND=8), DIMENSION(H_Mesh%np) :: vv
307  REAL(KIND=8) :: r
308  INTEGER :: n
309 
310  vv = 0.d0
311  RETURN
312 
313  !===Dummies variables to avoid warning
314  n=h_mesh%np; r=t; n=type; n=mode; n=n_start
315  !===Dummies variables to avoid warning
316  END FUNCTION extension_velocity
317 
318  !===============================================================================
319  ! Boundary conditions for Maxwell
320  !===============================================================================
321 !!$ !===Velocity used in the induction equation.
322 !!$ !===Used only if problem type is mxw and restart velocity is false
323 !!$ FUNCTION Vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
324 !!$ IMPLICIT NONE
325 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
326 !!$ INTEGER, INTENT(IN) :: m
327 !!$ REAL(KIND=8), DIMENSION(H_mesh%np,6) :: vv
328 !!$
329 !!$ vv = 0.d0
330 !!$ CALL error_petsc('Vexact: should not be called for this test')
331 !!$ END FUNCTION Vexact
332 
333 !!$ !===Magnetic field and magnetic induction for quasi-static approximation
334 !!$ !===if needed
335 !!$ FUNCTION H_B_quasi_static(char_h_b, rr, m) RESULT(vv)
336 !!$ IMPLICIT NONE
337 !!$ CHARACTER(LEN=1), INTENT(IN) :: char_h_b
338 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
339 !!$ INTEGER, INTENT(IN) :: m
340 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
341 !!$
342 !!$ vv = 0.d0
343 !!$ RETURN
344 !!$ END FUNCTION H_B_quasi_static
345 
346 !!$ !===Magnetic field for boundary conditions in the Maxwell equations.
347 !!$ FUNCTION Hexact(H_mesh,TYPE, rr, m, mu_H_field, t) RESULT(vv)
348 !!$ IMPLICIT NONE
349 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
350 !!$ INTEGER , INTENT(IN) :: TYPE
351 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
352 !!$ INTEGER , INTENT(IN) :: m
353 !!$ REAL(KIND=8), INTENT(IN) :: t
354 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
355 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
356 !!$
357 !!$ vv=0.d0
358 !!$ CALL error_petsc('Hexact: should not be called for this test')
359 !!$ RETURN
360 !!$ END FUNCTION Hexact
361 
362 !!$ !===Scalar potential for boundary conditions in the Maxwell equations.
363 !!$ FUNCTION Phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
364 !!$ IMPLICIT NONE
365 !!$ INTEGER , INTENT(IN) :: TYPE
366 !!$ REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
367 !!$ INTEGER , INTENT(IN) :: m
368 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, t
369 !!$ REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
370 !!$
371 !!$ vv=0.d0
372 !!$ CALL error_petsc('Phiexact: should not be called for this test')
373 !!$ RETURN
374 !!$ END FUNCTION Phiexact
375 
376 !!$ !===Current in Ohm's law. Curl(H) = sigma(E + uxB) + current
377 !!$ FUNCTION Jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
378 !!$ IMPLICIT NONE
379 !!$ INTEGER , INTENT(IN) :: TYPE
380 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
381 !!$ INTEGER , INTENT(IN) :: m
382 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
383 !!$ INTEGER , INTENT(IN) :: mesh_id
384 !!$ REAL(KIND=8), DIMENSION(6), OPTIONAL,INTENT(IN) :: opt_B_ext
385 !!$ REAL(KIND=8) :: vv
386 !!$
387 !!$ vv=0.d0
388 !!$ CALL error_petsc('Jexact_gauss: should not be called for this test')
389 !!$ RETURN
390 !!$ END FUNCTION Jexact_gauss
391 
392 !!$ !===Electric field for Neumann BC (cf. doc)
393 !!$ FUNCTION Eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
394 !!$ IMPLICIT NONE
395 !!$ INTEGER, INTENT(IN) :: TYPE
396 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
397 !!$ INTEGER, INTENT(IN) :: m
398 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_H, t
399 !!$ REAL(KIND=8) :: vv
400 !!$
401 !!$ vv = 0.d0
402 !!$ CALL error_petsc('Eexact: should not be called for this test')
403 !!$ END FUNCTION Eexact_gauss
404 
405 !!$ !===Initialization of magnetic field and scalar potential (if present)
406 !!$ SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
407 !!$ list_mode, Hn1, Hn, phin1, phin)
408 !!$ IMPLICIT NONE
409 !!$ TYPE(mesh_type) :: H_mesh, phi_mesh
410 !!$ REAL(KIND=8), INTENT(OUT):: time
411 !!$ REAL(KIND=8), INTENT(IN) :: dt
412 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_H_field
413 !!$ REAL(KIND=8), INTENT(IN) :: mu_phi
414 !!$ INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
415 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: Hn, Hn1
416 !!$ REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: phin, phin1
417 !!$
418 !!$ CALL error_petsc('init_maxwell: should not be called for this test')
419 !!$ END SUBROUTINE init_maxwell
420 
421 !!$ !===Analytical permeability (if needed)
422 !!$ !===This function is not needed unless the flag
423 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
424 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
425 !!$ FUNCTION mu_bar_in_fourier_space(H_mesh,nb,ne,pts,pts_ids) RESULT(vv)
426 !!$ IMPLICIT NONE
427 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
428 !!$ REAL(KIND=8), DIMENSION(ne-nb+1) :: vv
429 !!$ INTEGER, INTENT(IN) :: nb, ne
430 !!$ REAL(KIND=8),DIMENSION(2,ne-nb+1),OPTIONAL :: pts
431 !!$ INTEGER, DIMENSION(ne-nb+1), OPTIONAL :: pts_ids
432 !!$
433 !!$ vv = 1.d0
434 !!$ CALL error_petsc('mu_bar_in_fourier_space: should not be called for this test')
435 !!$ RETURN
436 !!$ END FUNCTION mu_bar_in_fourier_space
437 
438 !!$ !===Analytical mu_in_fourier_space (if needed)
439 !!$ !===This function is not needed unless the flag
440 !!$ !=== ===Use FEM Interpolation for magnetic permeability (true/false)
441 !!$ !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
442 !!$ FUNCTION grad_mu_bar_in_fourier_space(pt,pt_id) RESULT(vv)
443 !!$ IMPLICIT NONE
444 !!$ REAL(KIND=8),DIMENSION(2), INTENT(in):: pt
445 !!$ INTEGER,DIMENSION(1), INTENT(in) :: pt_id
446 !!$ REAL(KIND=8),DIMENSION(2) :: vv
447 !!$
448 !!$ vv=0.d0
449 !!$ CALL error_petsc('grad_mu_bar_in_fourier_space: should not be called for this test')
450 !!$ RETURN
451 !!$ END FUNCTION grad_mu_bar_in_fourier_space
452 
453 !!$ !===Analytical permeability, mu in real space (if needed)
454 !!$ FUNCTION mu_in_real_space(H_mesh,angles,nb_angles,nb,ne,time) RESULT(vv)
455 !!$ IMPLICIT NONE
456 !!$ TYPE(mesh_type), INTENT(IN) :: H_mesh
457 !!$ REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
458 !!$ INTEGER, INTENT(IN) :: nb_angles
459 !!$ INTEGER, INTENT(IN) :: nb, ne
460 !!$ REAL(KIND=8), INTENT(IN) :: time
461 !!$ REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
462 !!$
463 !!$ vv = 1.d0
464 !!$ CALL error_petsc('mu_in_real_space: should not be called for this test')
465 !!$ RETURN
466 !!$ END FUNCTION mu_in_real_space
467 
468 END MODULE boundary_test_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 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(h_mesh%np), public extension_velocity(TYPE, H_mesh, mode, t, n_start)
real(kind=8) function, dimension(size(rr, 2)), public temperature_exact(TYPE, rr, m, t)
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_temperature(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
subroutine, public init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
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