Choral
choral_constants.f90
Go to the documentation of this file.
1 
12 
14 
15  implicit none
16  public
17 
19 
20 
21  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
22  !!
23  !! CELL_XXX = GEOMETRICAL ELEMENTS
24  !!
25  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31  integer, parameter :: cell_vtx = 1
32  integer, parameter :: cell_edg = 2
33  integer, parameter :: cell_edg_2 = 3
34  integer, parameter :: cell_trg = 4
35  integer, parameter :: cell_trg_2 = 5
36  integer, parameter :: cell_tet = 6
37  integer, parameter :: cell_tet_2 = 7
38 
40  integer, parameter :: cell_tot_nb = 7
41 
43  integer, parameter, public :: cell_max_nbnodes = 10
44 
46  integer, parameter, public :: cell_max_nbvtx = 4
47 
49  integer, parameter, public :: cell_max_nbed = 6
50 
52  integer, parameter, public :: cell_max_nbfc = 4
53 
55  integer, parameter, public :: cell_max_nbitf = 4
56 
58  integer, parameter, public :: cell_max_fc_nbvtx = 3
59 
61 
62 
63  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
64  !!
65  !! QUAD_XXX = QUADRATURE METHODS
66  !!
67  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
73 
74  integer, parameter :: quad_none = 0
75  integer, parameter :: quad_gauss_edg_1 = 1
76  integer, parameter :: quad_gauss_edg_2 = 2
77  integer, parameter :: quad_gauss_edg_3 = 3
78  integer, parameter :: quad_gauss_edg_4 = 4
79  integer, parameter :: quad_gauss_trg_1 = 5
80  integer, parameter :: quad_gauss_trg_3 = 6
81  integer, parameter :: quad_gauss_trg_6 = 7
82  integer, parameter :: quad_gauss_trg_12 = 8
83  integer, parameter :: quad_gauss_trg_13 = 9
84  integer, parameter :: quad_gauss_trg_19 = 10
85  integer, parameter :: quad_gauss_trg_28 = 11
86  integer, parameter :: quad_gauss_trg_37 = 12
87  integer, parameter :: quad_gauss_tet_1 = 13
88  integer, parameter :: quad_gauss_tet_4 = 14
89  integer, parameter :: quad_gauss_tet_15 = 15
90  integer, parameter :: quad_gauss_tet_31 = 16
91  integer, parameter :: quad_gauss_tet_45 = 17
92 
94  integer, parameter :: quad_tot_nb=17
96 
97 
98  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
99  !!
100  !! FE_XXX = FINITE ELEMENTS
101  !!
102  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
112  integer, parameter :: fe_none = 0
113  integer, parameter :: fe_p1_1d = 1
114  integer, parameter :: fe_p2_1d = 2
115  integer, parameter :: fe_p3_1d = 3
116  integer, parameter :: fe_p0_2d = 4
117  integer, parameter :: fe_p1_2d = 5
118  integer, parameter :: fe_p2_2d = 6
119  integer, parameter :: fe_p3_2d = 7
120  integer, parameter :: fe_p1_3d = 8
121  integer, parameter :: fe_p1_2d_disc_ortho = 9
122  integer, parameter :: fe_rt0_2d= 10
123  integer, parameter :: fe_rt1_2d_2 = 11
124  integer, parameter :: fe_p2_3d = 12
125  integer, parameter :: fe_p0_1d = 13
126  integer, parameter :: fe_rt0_1d= 14
127  integer, parameter :: fe_p1_1d_disc_ortho = 15
128  integer, parameter :: fe_rt1_1d= 16
129  integer, parameter :: fe_rt1_1d_dual= 17
130  integer, parameter :: fe_rt1_1d_2= 18
131  integer, parameter :: fe_rt1_1d_2_dual= 19
132  integer, parameter :: fe_rt0_1d_dual= 20
133 
135  integer, parameter :: fe_tot_nb= 20
136 
138 
144 
147  integer, parameter :: fe_dof_lag = 100
150  integer, parameter :: fe_dof_flx = 101
153  integer, parameter :: fe_dof_nrm_trace = 102
156  integer, parameter :: fe_dof_comp1 = 103
159  integer, parameter :: fe_dof_comp2 = 104
160 
162  integer, parameter :: fe_max_nbdof = 10
163 
165 
166 
167 
168  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
169  !!
170  !! ODE_XXX = FOR ODEs
171  !!
172  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
173 
183  integer, parameter :: ode_be = 1
184  integer, parameter :: ode_cn = 2
185  integer, parameter :: ode_sdirk4 = 3
186  integer, parameter :: ode_fbe = 4
187  integer, parameter :: ode_rk2 = 5
188  integer, parameter :: ode_rk4 = 6
189  integer, parameter :: ode_erk1 = 7
190  integer, parameter :: ode_rl2 = 8
191  integer, parameter :: ode_rl3 = 9
192  integer, parameter :: ode_rl4 = 10
194  integer, parameter :: ode_eab2 = 11
196  integer, parameter :: ode_eab3 = 12
198  integer, parameter :: ode_eab4 = 13
199  integer, parameter :: ode_bdfsbdf2 = 14
200  integer, parameter :: ode_bdfsbdf3 = 15
201  integer, parameter :: ode_bdfsbdf4 = 16
202  integer, parameter :: ode_bdfsbdf5 = 17
204  integer, parameter :: ode_cnab2 = 18
206  integer, parameter :: ode_mcnab2 = 19
207  integer, parameter :: ode_fe = 20
208  integer, parameter :: ode_dc_2 = 21
209  integer, parameter :: ode_dc_3 = 22
210 
211  integer, parameter :: ode_erk2_a = 23
212  integer, parameter :: ode_erk2_b = 24
213  integer, parameter :: ode_modif_erk2_b = 25
214 
216  integer, parameter :: ode_tot_nb = 25
218 
224 
226  integer, parameter :: ode_pb_lin = 1
229  integer, parameter :: ode_pb_nl = 2
230 
234  integer, parameter :: ode_pb_sl = 3
235 
241  integer, parameter :: ode_pb_sl_nl = 4
242 
244  integer, parameter :: ode_pb_tot_nb = 4
246 
251  integer, parameter :: ode_slv_1s = 1
252  integer, parameter :: ode_slv_ms = 2
253  integer, parameter :: ode_slv_os = 3
254  integer, parameter :: ode_slv_dc = 4
255 
257  integer, parameter :: ode_slv_tot_nb = 4
259 
266  integer, parameter :: ode_os_lie = 1
267  integer, parameter :: ode_os_strang = 2
268  integer, parameter :: ode_os_ruth = 3
269  integer, parameter :: ode_os_aks3 = 4
270  integer, parameter :: ode_os_yoshida = 5
271 
273  integer, parameter :: ode_os_tot_nb = 5
275 
276 
277 
278  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
279  !!
280  !! KRY_XXX = KRYLOV SEOLVERS
281  !!
282  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
290 
291  integer, parameter :: kry_gmres = 1000
292  integer, parameter :: kry_cg = 1001
293 
295 
296  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
297  !!
298  !! PC_XXX = PRECONDITIONING
299  !!
300  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
305  integer, parameter :: pc_0 = 1
306  integer, parameter :: pc_jacobi = 2
307  integer, parameter :: pc_icc0 = 3
309 
310 
311  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
312  !!
313  !! EIG_XXX = EIGEN PROBLEM
314  !!
315  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
323  integer, parameter :: eig_arpack = 3000
325  integer, parameter :: eig_regular = 3010
327  integer, parameter :: eig_inverse = 3011
329  integer, parameter :: eig_shift_invert = 3012
331  integer, parameter :: eig_which_sm = 3030
333  integer, parameter :: eig_which_lm = 3031
334 
336 
337  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
338  !!
339  !! MUMPS_XXX = MUMPS CONSTANTS
340  !!
341  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
346 
347  integer, parameter :: mumps_lu = 200
348  integer, parameter :: mumps_ldlt = 201
349  integer, parameter :: mumps_ldlt_sdp = 202
350 
352 
353  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
354  !!
355  !! POS_XXX = POST-REATMENT
356  !!
357  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
358  integer, parameter :: pos_gnuplot = 1 !! Gnuplot visu
359  integer, parameter :: pos_gmsh = 2 !! Gmsh visu
360 
361  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
362  !!
363  !! IONIC_XXX = IONIC MODELS IN ELECTRO-CARDIOLOGY
364  !!
365  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375 
376  integer, parameter :: ionic_br = 1
377  integer, parameter :: ionic_br_0 = 2
378  integer, parameter :: ionic_br_wv = 3
379  integer, parameter :: ionic_br_sp = 4
380  integer, parameter :: ionic_tnnp = 5
381  integer, parameter :: ionic_tnnp_0 = 6
383 
384 
385  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
386  !!
387  !! CARDIAC TISSUE CONDUCTIVITY
388  !!
389  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
390 
396  integer, parameter :: le_guyader = 1
397  integer, parameter :: le_guyader_2 = 2
398  integer, parameter :: cond_iso_1 = 0
400 
401  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
402  !!
403  !! ACT_XXX = METHODS TO COMPUTE ACTIVATION TIMES
404  !!
405  !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
411  integer, parameter :: act_no = -1
412  integer, parameter :: act_0 = 0
413  integer, parameter :: act_1 = 1
414  integer, parameter :: act_2 = 2
415  integer, parameter :: act_4 = 4
417 
418 
419 
420 
421 
422 end module choral_constants
integer, parameter ode_os_yoshida
integer, parameter ode_dc_3
Deferred corrections 3.
integer, parameter fe_p1_1d_disc_ortho
integer, parameter fe_rt0_2d
integer, parameter, public cell_max_nbed
Cell maximal number of edges.
integer, parameter quad_gauss_trg_28
integer, parameter mumps_ldlt
MUMPS LDLT , symm mat.
integer, parameter ode_be
Backward Euler.
integer, parameter eig_shift_invert
Shift-invert mode.
integer, parameter cell_edg_2
Quadratic edge.
integer, parameter cell_tot_nb
Number of CELL types.
integer, parameter cell_tet
Tetrahedron.
integer, parameter ode_mcnab2
ModifiedCrank Nicholson / Adamns Bashforth 2.
integer, parameter ode_os_ruth
integer, parameter eig_regular
Regual Mode.
integer, parameter ode_bdfsbdf3
BDF / SBDF 3.
integer, parameter act_1
linear interpolation
integer, parameter fe_p2_2d
integer, parameter quad_gauss_tet_15
integer, parameter ionic_br_wv
integer, parameter ionic_tnnp_0
integer, parameter quad_gauss_edg_4
integer, parameter fe_dof_nrm_trace
Normal component to a face (vector finite element)
integer, parameter ode_rk4
RK4.
integer, parameter kry_gmres
GmRes linear solver.
integer, parameter pos_gnuplot
integer, parameter fe_rt1_1d_dual
integer, parameter ode_erk2_b
Exp. RK2, type b.
integer, parameter ode_cn
Crank Nicholson.
integer, parameter fe_dof_comp1
Nodal first component (vector finite element)
integer, parameter le_guyader_2
integer, parameter fe_p1_2d_disc_ortho
integer, parameter quad_gauss_tet_4
integer, parameter quad_gauss_trg_3
integer, parameter ode_os_strang
integer, parameter ode_pb_tot_nb
Number of ode problem types.
integer, parameter fe_dof_flx
Interface flux (vector finite element)
integer, parameter quad_none
integer, parameter ionic_br
integer, parameter fe_rt0_1d_dual
integer, parameter ionic_br_0
integer, parameter ode_modif_erk2_b
modified ERK2_B
integer, parameter fe_dof_comp2
Nodal second component (vector finite element)
integer, parameter fe_rt1_2d_2
integer, parameter ode_eab4
Exponential Adamns Bashforth 4.
integer, parameter ode_slv_ms
multistep
integer, parameter cell_edg
Edge (line segment)
integer, parameter fe_tot_nb
Number of FE methods.
integer, parameter quad_gauss_tet_1
integer, parameter ode_tot_nb
Total number of ODE methods.
integer, parameter quad_gauss_tet_45
integer, parameter ode_dc_2
Deferred corrections 2.
integer, parameter eig_which_lm
Computation of eigenvalues xith largest magnitude.
integer, parameter fe_max_nbdof
Maximum number of dof for an element.
integer, parameter fe_p2_3d
integer, parameter ode_eab3
Exponential Adamns Bashforth 3.
integer, parameter ode_pb_sl
SemiLinear ODE : with .
integer, parameter ode_pb_lin
Linear ODE : .
integer, parameter ode_erk2_a
Exp. RK2, type a.
integer, parameter ode_fbe
Forward / backward Euler.
integer, parameter fe_p3_1d
integer, parameter quad_gauss_edg_3
integer, parameter quad_tot_nb
Total number of quadrature rules.
integer, parameter cell_trg
Triangle.
integer, parameter cell_tet_2
Quadratic tetrahedron.
CHORAL CONSTANTS
integer, parameter pos_gmsh
integer, parameter, public cell_max_fc_nbvtx
Face maximal number of vertexes.
integer, parameter ode_slv_dc
deferred corrections
integer, parameter quad_gauss_trg_1
integer, parameter ode_slv_tot_nb
number of ode solver types
integer, parameter eig_arpack
integer, parameter cell_trg_2
Quadratic triangle.
integer, parameter, public cell_max_nbfc
Cell maximal number of faces.
integer, parameter pc_jacobi
Jacobi diagonal preconditioning.
integer, parameter ode_erk1
Exponential Euler.
integer, parameter, public cell_max_nbitf
Cell maximal number of interfaces.
integer, parameter cond_iso_1
integer, parameter fe_p1_2d
integer, parameter eig_inverse
Inverse mode.
integer, parameter ode_bdfsbdf5
BDF / SBDF 5.
integer, parameter mumps_ldlt_sdp
MUMPS LDLT-SDP, sym def pos mat.
integer, parameter pc_icc0
Incomplete Cholesky, order 0.
integer, parameter ionic_br_sp
integer, parameter quad_gauss_trg_19
integer, parameter fe_rt1_1d_2_dual
integer, parameter eig_which_sm
Computation of eigenvalues xith smallest magnitude.
integer, parameter quad_gauss_trg_37
integer, parameter ode_pb_sl_nl
SemiLinear ODE coupled with a non-linear ODE system for with .
integer, parameter fe_dof_lag
Nodal value (Lagrangian DOF, scalar finite element)
integer, parameter ode_slv_os
operator splitting
integer, parameter quad_gauss_edg_2
integer, parameter quad_gauss_trg_13
integer, parameter fe_rt1_1d
integer, parameter le_guyader
integer, parameter ode_rl3
Rush Larsen 3.
integer, parameter ode_bdfsbdf4
BDF / SBDF 4.
integer, parameter quad_gauss_edg_1
integer, parameter fe_none
integer, parameter fe_rt1_1d_2
integer, parameter fe_p0_1d
integer, parameter quad_gauss_tet_31
integer, parameter cell_vtx
Vertex.
integer, parameter ode_os_aks3
integer, parameter fe_p3_2d
integer, parameter ode_rk2
RK2.
integer, parameter act_no
no computation
integer, parameter fe_p0_2d
integer, parameter quad_gauss_trg_6
integer, parameter ode_cnab2
Crank Nicholson / Adamns Bashforth 2.
integer, parameter act_4
bi-quadratic interpolation
integer, parameter quad_gauss_trg_12
integer, parameter ode_fe
Forward Euler.
integer, parameter ode_bdfsbdf2
BDF / SBDF 2.
integer, parameter fe_p1_3d
integer, parameter ode_eab2
Exponential Adamns Bashforth 2.
integer, parameter fe_p1_1d
integer, parameter ode_pb_nl
Non-Linear ODE system: , .
integer, parameter act_0
Heaviside.
integer, parameter mumps_lu
MUMPS LU.
integer, parameter ode_os_lie
integer, parameter act_2
quadratic interpolation
integer, parameter pc_0
void preconditioning
integer, parameter ode_rl2
Rush Larsen 2.
integer, parameter fe_rt0_1d
integer, parameter fe_p2_1d
integer, parameter ode_os_tot_nb
Number of operator splitting methods.
integer, parameter ode_slv_1s
onestep
integer, parameter kry_cg
CG linear solver.
integer, parameter ionic_tnnp
integer, parameter ode_sdirk4
SDIRK4.
integer, parameter, public cell_max_nbvtx
Cell maximal number of vertexes.
integer, parameter, public cell_max_nbnodes
Cell maximal number of nodes.
integer, parameter ode_rl4
Rush Larsen 4.