SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
condlim.f90
Go to the documentation of this file.
2  USE def_type_mesh
3  USE input_data
4  USE my_util
5  USE user_data
6  PUBLIC :: init_velocity_pressure
7  PUBLIC :: init_temperature
8  PUBLIC :: init_level_set
9  PUBLIC :: source_in_ns_momentum
10  PUBLIC :: source_in_temperature
11  PUBLIC :: source_in_level_set
12  PUBLIC :: vv_exact
14  PUBLIC :: pp_exact
15  PUBLIC :: temperature_exact
16  PUBLIC :: level_set_exact
17  PUBLIC :: penal_in_real_space
18  PUBLIC :: extension_velocity
19  PUBLIC :: vexact
20  PUBLIC :: h_b_quasi_static
21  PUBLIC :: hexact
22  PUBLIC :: phiexact
23  PUBLIC :: jexact_gauss
24  PUBLIC :: eexact_gauss
25  PUBLIC :: init_maxwell
26  PUBLIC :: mu_bar_in_fourier_space
28  PUBLIC :: mu_in_real_space
30  PUBLIC :: kelvin_force_coeff
31  PRIVATE
32 
33 CONTAINS
34  !===============================================================================
35  ! Boundary conditions for Navier-Stokes
36  !===============================================================================
37 
38  !===Initialize velocity, pressure
39  SUBROUTINE init_velocity_pressure(mesh_f, mesh_c, time, dt, list_mode, &
40  un_m1, un, pn_m1, pn, phin_m1, phin)
41  IMPLICIT NONE
42  TYPE(mesh_type) :: mesh_f, mesh_c
43  REAL(KIND=8), INTENT(OUT):: time
44  REAL(KIND=8), INTENT(IN) :: dt
45  INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
46  REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: un_m1, un
47  REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: pn_m1, pn, phin_m1, phin
48  INTEGER :: mode, i, j
49  REAL(KIND=8), DIMENSION(mesh_c%np) :: pn_m2
50 
51  time = 0.d0
52  DO i= 1, SIZE(list_mode)
53  mode = list_mode(i)
54  DO j = 1, 6
55  !===velocity
56  un_m1(:,j,i) = vv_exact(j,mesh_f%rr,mode,time-dt)
57  un(:,j,i) = vv_exact(j,mesh_f%rr,mode,time)
58  END DO
59  DO j = 1, 2
60  !===pressure
61  pn_m2(:) = pp_exact(j,mesh_c%rr,mode,time-2*dt)
62  pn_m1(:,j,i) = pp_exact(j,mesh_c%rr,mode,time-dt)
63  pn(:,j,i) = pp_exact(j,mesh_c%rr,mode,time)
64  phin_m1(:,j,i) = pn_m1(:,j,i) - pn_m2(:)
65  phin(:,j,i) = pn(:,j,i) - pn_m1(:,j,i)
66  ENDDO
67  ENDDO
68  END SUBROUTINE init_velocity_pressure
69 
70  !===Initialize temperature
71  SUBROUTINE init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)
72  IMPLICIT NONE
73  TYPE(mesh_type) :: mesh
74  REAL(KIND=8), INTENT(OUT):: time
75  REAL(KIND=8), INTENT(IN) :: dt
76  INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
77  REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: tempn_m1, tempn
78  INTEGER :: mode, i, j
79 
80  time = 0.d0
81  DO i= 1, SIZE(list_mode)
82  mode = list_mode(i)
83  DO j = 1, 2
84  tempn_m1(:,j,i) = temperature_exact(j, mesh%rr, mode, time-dt)
85  tempn(:,j,i) = temperature_exact(j, mesh%rr, mode, time)
86  ENDDO
87  ENDDO
88  END SUBROUTINE init_temperature
89 
90  !===Initialize level_set
91  SUBROUTINE init_level_set(pp_mesh, time, &
92  dt, list_mode, level_set_m1, level_set)
93  IMPLICIT NONE
94  TYPE(mesh_type) :: pp_mesh
95  REAL(KIND=8), INTENT(OUT):: time
96  REAL(KIND=8), INTENT(IN) :: dt
97  INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
98  REAL(KIND=8), DIMENSION(:,:,:,:), INTENT(OUT):: level_set, level_set_m1
99  INTEGER :: mode, i, j, n
100 
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,pp_mesh%rr,mode,time-dt)
108  level_set(n,:,j,i) = level_set_exact(n,j,pp_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 
127  vv = 0.d0
128  RETURN
129  END FUNCTION source_in_ns_momentum
130 
131  !===Extra source in temperature equation. Always called.
132  FUNCTION source_in_temperature(TYPE, rr, m, t)RESULT(vv)
133  IMPLICIT NONE
134  INTEGER , INTENT(IN) :: type
135  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
136  INTEGER , INTENT(IN) :: m
137  REAL(KIND=8), INTENT(IN) :: t
138  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
139 
140  vv = 0.d0
141  RETURN
142  END FUNCTION source_in_temperature
143 
144  !===Extra source in level set equation. Always called.
145  FUNCTION source_in_level_set(interface_nb,TYPE, rr, m, t)RESULT(vv)
146  IMPLICIT NONE
147  INTEGER , INTENT(IN) :: type
148  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
149  INTEGER , INTENT(IN) :: m, interface_nb
150  REAL(KIND=8), INTENT(IN) :: t
151  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
152 
153  vv=0.d0
154  RETURN
155  END FUNCTION source_in_level_set
156 
157  !===Velocity for boundary conditions in Navier-Stokes.
158  !===Can be used also to initialize velocity in: init_velocity_pressure_temperature
159  FUNCTION vv_exact(TYPE,rr,m,t) RESULT(vv)
160  IMPLICIT NONE
161  INTEGER , INTENT(IN) :: type
162  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
163  INTEGER, INTENT(IN) :: m
164  REAL(KIND=8), INTENT(IN) :: t
165  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
166 
167  vv(:) = 0.d0
168  RETURN
169  END FUNCTION vv_exact
170 
171  !===Solid velocity imposed when using penalty technique
172  !===Defined in Fourier space on mode 0 only.
173  FUNCTION imposed_velocity_by_penalty(rr,t) RESULT(vv)
174  IMPLICIT NONE
175  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
176  REAL(KIND=8), INTENT(IN) :: t
177  REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
178 
179  vv=0.d0
180  RETURN
181  END FUNCTION imposed_velocity_by_penalty
182 
183  !===Pressure for boundary conditions in Navier-Stokes.
184  !===Can be used also to initialize pressure in the subroutine init_velocity_pressure
185  !===Use this routine for outflow BCs only.
186  !===CAUTION: Do not enfore BCs on pressure where normal component
187  ! of velocity is prescribed.
188  FUNCTION pp_exact(TYPE,rr,m,t) RESULT (vv)
189  IMPLICIT NONE
190  INTEGER , INTENT(IN) :: type
191  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
192  INTEGER , INTENT(IN) :: m
193  REAL(KIND=8), INTENT(IN) :: t
194  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
195 
196  vv=0.d0
197  RETURN
198  END FUNCTION pp_exact
199 
200  !===Temperature for boundary conditions in temperature equation.
201  FUNCTION temperature_exact(TYPE,rr,m,t) RESULT (vv)
202  IMPLICIT NONE
203  INTEGER , INTENT(IN) :: type
204  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
205  INTEGER , INTENT(IN) :: m
206  REAL(KIND=8), INTENT(IN) :: t
207  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
208 
209  vv = 0.d0
210  RETURN
211  END FUNCTION temperature_exact
212 
213  !===Can be used to initialize level set in the subroutine init_level_set
214  FUNCTION level_set_exact(interface_nb,TYPE,rr,m,t) RESULT (vv)
215  IMPLICIT NONE
216  INTEGER , INTENT(IN) :: type
217  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
218  INTEGER , INTENT(IN) :: m, interface_nb
219  REAL(KIND=8), INTENT(IN) :: t
220  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
221 
222  vv = 0.d0
223  RETURN
224  END FUNCTION level_set_exact
225 
226  !===Penalty coefficient (if needed)
227  !===This coefficient is equal to zero in subdomain
228  !===where penalty is applied
229  FUNCTION penal_in_real_space(mesh,rr_gauss,angles,nb_angles,nb,ne,time) RESULT(vv)
230  IMPLICIT NONE
231  TYPE(mesh_type) :: mesh
232  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr_gauss
233  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
234  INTEGER, INTENT(IN) :: nb_angles
235  INTEGER, INTENT(IN) :: nb, ne
236  REAL(KIND=8), INTENT(IN) :: time
237  REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
238 
239  vv = 1.d0
240  RETURN
241  END FUNCTION penal_in_real_space
242 
243  !===Extension of the velocity field in the solid.
244  !===Used when temperature or Maxwell equations are solved.
245  !===It extends the velocity field on the Navier-Stokes domain to a
246  !===velocity field on the temperature and the Maxwell domain.
247  !===It is also used if problem type=mxw and restart velocity
248  !===is set to true in data (type problem denoted mxx in the code).
249  FUNCTION extension_velocity(TYPE, H_mesh, mode, t, n_start) RESULT(vv)
250  IMPLICIT NONE
251  TYPE(mesh_type), INTENT(IN) :: h_mesh
252  INTEGER , INTENT(IN) :: type, n_start
253  INTEGER, INTENT(IN) :: mode
254  REAL(KIND=8), INTENT(IN) :: t
255  REAL(KIND=8), DIMENSION(H_Mesh%np) :: vv
256 
257  vv = 0.d0
258  RETURN
259  END FUNCTION extension_velocity
260 
261  !===============================================================================
262  ! Boundary conditions for Maxwell
263  !===============================================================================
264  !===Velocity used in the induction equation.
265  !===Used only if problem type is mxw and restart velocity is false
266  FUNCTION vexact(m, H_mesh) RESULT(vv) !Set uniquement a l'induction
267  IMPLICIT NONE
268  TYPE(mesh_type), INTENT(IN) :: h_mesh
269  INTEGER, INTENT(IN) :: m
270  REAL(KIND=8), DIMENSION(H_mesh%np,6) :: vv
271 
272  vv = 0.d0
273  RETURN
274  END FUNCTION vexact
275 
276  FUNCTION h_b_quasi_static(char_h_b, rr, m) RESULT(vv)
277  IMPLICIT NONE
278  CHARACTER(LEN=1), INTENT(IN) :: char_h_b
279  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
280  INTEGER, INTENT(IN) :: m
281  REAL(KIND=8), DIMENSION(SIZE(rr,2),6) :: vv
282 
283  IF (inputs%if_quasi_static_approx) THEN
284  vv = 0.d0
285  ELSE
286  CALL error_petsc('H_B_quasi_static should not be called')
287  END IF
288  RETURN
289  END FUNCTION h_b_quasi_static
290 
291  !===Magnetic field for boundary conditions in the Maxwell equations.
292  FUNCTION hexact(H_mesh, TYPE, rr, m, mu_H_field, t) RESULT(vv)
293  IMPLICIT NONE
294  TYPE(mesh_type), INTENT(IN) :: h_mesh
295  INTEGER , INTENT(IN) :: type
296  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
297  INTEGER , INTENT(IN) :: m
298  REAL(KIND=8), INTENT(IN) :: t
299  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_h_field
300  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
301 
302  vv = 0.d0
303  RETURN
304  END FUNCTION hexact
305 
306  !===Scalar potential for boundary conditions in the Maxwell equations.
307  FUNCTION phiexact(TYPE, rr, m, mu_phi,t) RESULT(vv)
308  IMPLICIT NONE
309  INTEGER , INTENT(IN) :: type
310  REAL(KIND=8), DIMENSION(:,:), INTENT(IN) :: rr
311  INTEGER , INTENT(IN) :: m
312  REAL(KIND=8), INTENT(IN) :: mu_phi, t
313  REAL(KIND=8), DIMENSION(SIZE(rr,2)) :: vv
314 
315  vv = 0.d0
316  RETURN
317  END FUNCTION phiexact
318 
319  !===Current in Ohm's law. Curl(H) = sigma(E + uxB) + current
320  FUNCTION jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext) RESULT(vv)
321  IMPLICIT NONE
322  INTEGER , INTENT(IN) :: type
323  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
324  INTEGER , INTENT(IN) :: m
325  REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_h, t
326  INTEGER , INTENT(IN) :: mesh_id
327  REAL(KIND=8), DIMENSION(6), OPTIONAL,INTENT(IN) :: opt_b_ext
328  REAL(KIND=8) :: vv
329 
330  vv = 0.d0
331  RETURN
332  END FUNCTION jexact_gauss
333 
334  !===Electric field for Neumann BC (cf. doc)
335  FUNCTION eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t) RESULT(vv)
336  IMPLICIT NONE
337  INTEGER, INTENT(IN) :: type
338  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: rr
339  INTEGER, INTENT(IN) :: m
340  REAL(KIND=8), INTENT(IN) :: mu_phi, sigma, mu_h, t
341  REAL(KIND=8) :: vv
342 
343  vv = 0.d0
344  RETURN
345  END FUNCTION eexact_gauss
346 
347  !===Initialization of magnetic field and scalar potential (if present)
348  SUBROUTINE init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, &
349  list_mode, hn1, hn, phin1, phin)
350  IMPLICIT NONE
351  TYPE(mesh_type) :: h_mesh, phi_mesh
352  REAL(KIND=8), INTENT(OUT):: time
353  REAL(KIND=8), INTENT(IN) :: dt
354  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: mu_h_field
355  REAL(KIND=8), INTENT(IN) :: mu_phi
356  INTEGER, DIMENSION(:), INTENT(IN) :: list_mode
357  REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: hn, hn1
358  REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT):: phin, phin1
359  INTEGER :: i, k
360 
361  time = -dt
362  DO k=1,6
363  DO i=1, SIZE(list_mode)
364  hn1(:,k,i) = hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
365  IF (inputs%nb_dom_phi>0) THEN
366  IF (k<3) THEN
367  phin1(:,k,i) = phiexact(k, phi_mesh%rr, list_mode(i) , mu_phi, time)
368  ENDIF
369  END IF
370  ENDDO
371  ENDDO
372 
373  time = time + dt
374  DO k=1,6
375  DO i=1, SIZE(list_mode)
376  hn(:,k,i) = hexact(h_mesh,k, h_mesh%rr, list_mode(i), mu_h_field, time)
377  IF (inputs%nb_dom_phi>0) THEN
378  IF (k<3) THEN
379  phin(:,k,i) = phiexact(k, phi_mesh%rr, list_mode(i), mu_phi, time)
380  ENDIF
381  END IF
382  ENDDO
383  ENDDO
384  RETURN
385  END SUBROUTINE init_maxwell
386 
387  !===Analytical permeability (if needed)
388  !===This function is not needed unless the flag
389  !=== ===Use FEM Interpolation for magnetic permeability (true/false)
390  !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
391  FUNCTION mu_bar_in_fourier_space(H_mesh,nb,ne,pts,pts_ids) RESULT(vv)
392  IMPLICIT NONE
393  TYPE(mesh_type), INTENT(IN) :: h_mesh
394  REAL(KIND=8), DIMENSION(ne-nb+1) :: vv
395  INTEGER, INTENT(IN) :: nb, ne
396  REAL(KIND=8),DIMENSION(2,ne-nb+1),OPTIONAL :: pts
397  INTEGER, DIMENSION(ne-nb+1), OPTIONAL :: pts_ids
398 
399  vv = 1.d0
400  RETURN
401  END FUNCTION mu_bar_in_fourier_space
402 
403  !===Analytical mu_in_fourier_space (if needed)
404  !===This function is not needed unless the flag
405  !=== ===Use FEM Interpolation for magnetic permeability (true/false)
406  !===is activated and set to .FALSE. in the data data file. Default is .TRUE.
407  FUNCTION grad_mu_bar_in_fourier_space(pt,pt_id) RESULT(vv)
408  IMPLICIT NONE
409  REAL(KIND=8),DIMENSION(2), INTENT(in):: pt
410  INTEGER,DIMENSION(1), INTENT(in) :: pt_id
411  REAL(KIND=8),DIMENSION(2) :: vv
412 
413  vv = 0.d0
414  RETURN
415  END FUNCTION grad_mu_bar_in_fourier_space
416 
417  !===Analytical permeability, mu in real space (if needed)
418  FUNCTION mu_in_real_space(H_mesh,angles,nb_angles,nb,ne,time) RESULT(vv)
419  IMPLICIT NONE
420  TYPE(mesh_type), INTENT(IN) :: h_mesh
421  REAL(KIND=8), DIMENSION(:), INTENT(IN) :: angles
422  INTEGER, INTENT(IN) :: nb_angles
423  INTEGER, INTENT(IN) :: nb, ne
424  REAL(KIND=8), INTENT(IN) :: time
425  REAL(KIND=8), DIMENSION(nb_angles,ne-nb+1) :: vv
426 
427  vv = 1.d0
428  RETURN
429  END FUNCTION mu_in_real_space
430 
431  !=== Only used for multiphase flow with variable electrical conductivity
432  !===This function is not needed unless the following line is in the data
433  !=== ===Conductivity of fluid 0, fluid 1, ...
434  !=== The above line should be followed by the value of the conductivity in the different fluids.
435  !=== The result vv has to smaller than the effective conductivity on every nodes of the mesh.
436  FUNCTION sigma_bar_in_fourier_space(H_mesh) RESULT(vv)
437  USE input_data
438  IMPLICIT NONE
439  TYPE(mesh_type), INTENT(IN) :: h_mesh
440  REAL(KIND=8), DIMENSION(SIZE(H_mesh%rr,2)) :: vv
441 
442  vv=0.9d0*minval(inputs%sigma_fluid)
443  RETURN
444  END FUNCTION sigma_bar_in_fourier_space
445 
446  !===Coefficient of Kelvin force: F = coeff(T) * grad(H**2/2)
447  FUNCTION kelvin_force_coeff(temp) RESULT(vv)
448  IMPLICIT NONE
449  REAL(KIND=8) :: temp
450  REAL(KIND=8) :: vv
451 
452  vv = - temp
453  RETURN
454  END FUNCTION kelvin_force_coeff
455 
456 END MODULE boundary_generic
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 source_in_level_set(interface_nb, TYPE, rr, m, t)
real(kind=8) function, dimension(size(h_mesh%rr, 2)), public sigma_bar_in_fourier_space(H_mesh)
subroutine, public init_maxwell(H_mesh, phi_mesh, time, dt, mu_H_field, mu_phi, list_mode, Hn1, Hn, phin1, phin)
real(kind=8) function, public kelvin_force_coeff(temp)
real(kind=8) function, dimension(size(rr, 2), 6), public h_b_quasi_static(char_h_b, rr, m)
Definition: condlim.f90:276
real(kind=8) function, public jexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t, mesh_id, opt_B_ext)
real(kind=8) function, dimension(h_mesh%np, 6), public vexact(m, H_mesh)
real(kind=8) function, dimension(nb_angles, ne-nb+1), public penal_in_real_space(mesh, rr_gauss, angles, nb_angles, nb, ne, time)
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 phiexact(TYPE, rr, m, mu_phi, t)
real(kind=8) function, dimension(size(rr, 2), 6), public imposed_velocity_by_penalty(rr, t)
real(kind=8) function, dimension(2), public grad_mu_bar_in_fourier_space(pt, pt_id)
real(kind=8) function, dimension(nb_angles, ne-nb+1), public mu_in_real_space(H_mesh, angles, nb_angles, nb, ne, time)
real(kind=8) function, dimension(size(rr, 2)), public source_in_temperature(TYPE, rr, m, t)
real(kind=8) function, public eexact_gauss(TYPE, rr, m, mu_phi, sigma, mu_H, t)
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(ne-nb+1), public mu_bar_in_fourier_space(H_mesh, nb, ne, pts, pts_ids)
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)
real(kind=8) function, dimension(size(rr, 2)), public hexact(H_mesh, TYPE, rr, m, mu_H_field, t)
subroutine, public init_level_set(vv_mesh, time, dt, list_mode, level_set_m1, level_set)
subroutine, public init_temperature(mesh, time, dt, list_mode, tempn_m1, tempn)