3
### First part - before first *** exit *** statement
4
### is for scalar variables that will set up the right
9
### Option for debugging: if =357, then all print statements will
10
### be sent to the file flog.dat, otherwise to /dev/null
13
# Problem type: options -2, -1, 0, and 1
19
# Number of components
22
# total number of elements
28
# nlev --> controls u_snloc
31
# Number of velocity nodes
34
# Number of spatial nodes associated w velocity
37
# number of nodes associated with CV
40
# Number of spatial nodes
43
# Number of pressure nodes
46
# Number of surface nodes associated with CV
49
# Number of surface nodes associated w velocity
52
# Number of surface pressure nodes
55
# Number of surface spatial nodes
58
# Total number of surface elements
61
# Number of coeffs for polynomial representation for EOS
64
# Number of coeffs for polynomial representation of permeability/absorption
67
# Option for element type: Velocity mesh
70
# Option for element type: Pressure mesh
73
# Option for element type: Material mesh
76
# Option for element type: CV mesh
79
# Option for element type: CV surface mesh
82
# Option for element type: Velocity surface mesh
85
# Total number of time dumps
88
# Frequency in which files will be output into *.d.* files
91
# Total number of non-linear iterations
94
# Total number of non-linear iterations - internal loop
97
# noit_dim : dimension of the arrays to be defined in later stage
98
# (e.g., Field_error, Field_relax, Field_relax_diag, Field_relax_row
99
# and Field_relax_number_iterations, with
100
# Field = volfra, scalar, velocity, global, pressure, mass_matrix)
103
# Maximum number of non-linear iterations for scalar field (saturation /
104
# volume fraction (nits_flux_lim_volfra) and composition (nits_flux_lim_comp)
105
nits_flux_lim_volfra 3
108
# Option for modified CMC color algorithm(/=0), if <0==>ndpset=cv_nonods
114
# Reference pressure (not in use)
117
# Initial pressure (not in use)
120
# Initial temperature (or any scalar field, not in use)
123
# Conservative(1.)/non-conservative(0.) flag for CV discretisation
126
# Conservative(1.)/non-conservative(0.) flag for Volfra discretisation
129
# Time-stepping discretisation parameter
132
# Time-stepping discretisation parameter
135
# Time-stepping discretisation parameter (not in use)
138
# Disopt: discretisation option in space and time (see cv-adv-dif.f90)
139
# = 8: Finite elements in space (Theta = specified; Limiting: Downwind+)
142
# Disopt: discretisation option in space and time (see cv-adv-dif.f90)
143
# = 0: 1st order in space (Theta=specified; Limiting: universal)
146
# Disopt: discretisation option in space and time (see cv-adv-dif.f90)
147
# = 0: 1st order in space (Theta=specified; Limiting: universal) - in
148
# cv-adv-dif.F90, v_disopt --> cv_disopt
151
# t_dg_vel_int_opt: interface scalar field calculation option between elements
154
# u_dg_vel_int_opt: interface velocity calculation option between elements
157
# v_dg_vel_int_opt: interface velocity calculation option between elements
160
# w_dg_vel_int_opt: interface velocity calculation option between elements
163
# Lump_eqns: Lump multiphase flow equations
166
# For compositional - work out theta-hat for flux
167
volfra_get_theta_flux T
168
volfra_use_theta_flux F
173
# Capillary pressure option (for now we just have option = 1)
176
# Polynomial representation for the cappilary pressure - order (length of the matrix)
180
### end of scalars variables necessary for the arrays read after
184
#############################################################################################
185
# To assign variables via external Fortran functions:
186
# If value < -1000, then a pre-defined function may be used, i.e., it is necessary
187
# to assign the corrected dimension to each array, matrix or
188
# tensor IN the external function
189
# If value == -1000 then a pre-defined function for ARRAYS (thus not necessary
190
# to assign dimension to the array as it will be taken automatically from
191
# Multiphase_Prototype.F90)
192
# If value == -999 then a pre-defined function for 2x2 MATRIX (thus not necessary
193
# to assign dimension to the array as it will be taken automatically from
194
# Multiphase_Prototype.F90)
195
# If value == -998 then a pre-defined function for 3x3 MATRIX (thus not necessary
196
# to assign dimension to the array as it will be taken automatically from
197
# Multiphase_Prototype.F90)
198
# If value == -997 then a pre-defined function for 4x4 MATRIX (thus not necessary
199
# to assign dimension to the array as it will be taken automatically from
200
# Multiphase_Prototype.F90)
201
#############################################################################################
205
### Boundary conditions parameters
208
# wic_vol_bc( stotel * nphase )
209
wic_vol_bc -1000 input_wic_vol_bc_BL1_fcn
211
# wic_d_bc( stotel * nphase )
212
wic_d_bc -1000 input_wic_d_bc_BL1_fcn
214
# wic_u_bc( stotel * nphase )
215
wic_u_bc -1000 input_wic_vol_bc_BL1_fcn
217
# wic_p_bc( stotel * nphase )
218
wic_p_bc -1000 input_wic_p_bc_BL1_fcn
220
# wic_t_bc( stotel * nphase )
223
# suf_vol_bc( stotel * cv_snloc * nphase )
224
suf_vol_bc -1000 input_suf_vol_bc_BL1_fcn
226
# suf_d_bc( stotel * cv_snloc * nphase )
227
suf_d_bc -1000 input_suf_vol_bc_BL1_fcn
229
# suf_cpd_bc( stotel * cv_snloc * nphase )
232
# suf_t_bc( stotel * cv_snloc * nphase )
233
suf_t_bc -1000 input_suf_t_bc_BL1_fcn
235
# suf_p_bc ( stotel * p_snloc * nphase )
238
# suf_u_bc( stotel * u_snloc * nphase )
239
suf_u_bc -1000 input_suf_vol_bc_BL1_fcn
241
# suf_v_bc( stotel * u_snloc * nphase )
244
# suf_w_bc( stotel * u_snloc * nphase )
247
# suf_one_bc( stotel * cv_snloc * nphase )
250
# suf_u_bc_rob1( stotel * u_snloc * nphase )
253
# suf_u_bc_rob2( stotel * u_snloc * nphase )
256
# suf_v_bc_rob1( stotel * u_snloc * nphase )
259
# suf_v_bc_rob2( stotel * u_snloc * nphase )
262
# suf_w_bc_rob1( stotel * u_snloc * nphase )
265
# suf_w_bc_rob2( stotel * u_snloc * nphase )
268
# suf_t_bc_rob1( stotel * cv_snloc * nphase )
271
# suf_t_bc_rob2( stotel * cv_snloc * nphase )
276
### Some solvers options -- scalars to be allocated as real arrays
277
### sat_error_relax2_noit, t_error_relax2_noit, gl_error_relax2_noit,
278
### u_error_relax2_noit, p_error_relax2_noit and mass_error_relax2_noit
279
### with length noit_dim.
280
### All components of the arrays need to be defined as there is NO default
281
### value. Components are:
282
### (a) Field_error: error associated with Field interations;
283
### (b) Field_relax: overall relaxation coefficient associated with Field interations;
284
### (c) Field_relax_diag: relaxation coefficient for the diagonal matrix associated with Field interations;
285
### (d) Field_relax_row: relaxation coefficient for the sum of the row of the matrix associated with Field interations;
286
### (e) Field_relax_number_iterations: maximum number of linear iterations associated with Field interations;
287
### Field: volfra, scalar, velocity, global, pressure, mass_matrix
290
# For Volfra (i.e., saturation):
295
volfra_relax_number_iterations 200
297
# For Scalar (i.e., T):
302
scalar_relax_number_iterations 400
309
global_relax_number_iterations 200
312
velocity_error 1.e-10
314
velocity_relax_diag 0.
315
velocity_relax_row 1.
316
velocity_relax_number_iterations 200
319
pressure_error 1.e-10
321
pressure_relax_diag 0.
322
pressure_relax_row 1.
323
pressure_relax_number_iterations 8000
326
mass_matrix_error 1.e-10
328
mass_matrix_relax_diag 0.
329
mass_matrix_relax_row 1.
330
mass_matrix_relax_number_iterations 200
333
### Options for upwind discretisation scheme:
334
### in_ele_upwind: coefficient for upwind inside the element
335
### dg_ele_upwind: coefficient for upwind between elements
336
### = 1: full upwind; = 2: 80% upwind; = 3: optimal;
337
### = 4: central difference (more diffusive)
343
### Spatial, grid and velocity parameters
363
# nu( u_nonods * nphase )
366
# nv( u_nonods * nphase )
369
# nw( u_nonods * nphase )
372
# ug( u_nonods * nphase )
375
# vg( u_nonods * nphase )
378
# wg( u_nonods * nphase )
391
### Absorption and Source terms (include options for
395
# uabs_option( nphase )
398
# uabs_coefs( nphase, nuabs_coefs )
401
# u_abs_stab ( mat_nonods, ndim * nphase, ndim * nphase )
404
# u_absorb ( mat_nonods, ndim * nphase, ndim * nphase )
407
# t_absorb ( cv_pha_nonods, nphase, nphase )
410
# v_absorb ( cv_pha_nonods, nphase, nphase )
413
# u_source( u_pha_nonods )
415
u_source -1000 input_usource_BL1_func
417
# t_source( cv_pha_nonods )
420
# v_source( cv_pha_nonods )
423
# perm ( totele, ndim, ndim )
424
perm -998 input_perm_BL1_func
429
# Viscosity ( cv_nonods * nphase )
436
# udiffusion( mat_nonods, ndim, ndim, nphase )
439
# tdiffusion( mat_nonods, ndim, ndim, nphase )
443
### Scalar fields and pressures
446
# satura ( cv_pha_nonods )
447
satura -1000 input_satura_BL1_func
449
# volfra ( cv_pha_nonods )
452
# t ( cv_pha_nonods )
455
# cv_one( cv_pha_nonods )
464
# Capillary pressure coefficients (for the polynomial representation)
468
### Densities, Equations of State and Compositional parameterisations
471
# den ( cv_pha_nonods )
474
# volfra_pore ( totele )
477
# eos_option( nphase )
480
# eos_coefs( nphase, ncoef )
481
eos_coefs -999 input_eos_coef_BL1_func
483
# cp_option( nphase )
486
# cp_coefs( nphase, ncp_coefs )
489
# end of the input file