ICFERST
22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
|
This module contains subroutines related to the equations of state and other properties such as relative permeabilities, capillary, flash, etc. More...
Functions/Subroutines | |
subroutine | calculate_all_rhos (state, packed_state, Mdims, get_RhoCp) |
: Computes the density for the phases and the derivatives of the density More... | |
subroutine | cap_bulk_rho (state, ncomp, nphase, cv_nonods, Density_Component, Density, Density_Cp, compute_rhoCP) |
: Computes the bulk density for components and the derivatives of the density More... | |
subroutine | calculate_component_rho (state, packed_state, Mdims) |
: Computes the density for the components and the derivatives of the density This is were the action is actually done, the other calculate rhos are wrappers More... | |
subroutine | calculate_rho_drhodp (state, packed_state, iphase, icomp, nphase, ncomp, eos_option_path, rho, drhodp) |
: Computes the density and the derivative of the density More... | |
subroutine | calculate_porous_rho_drhop (state, packed_state, Mdims, cv_ndgln, drhodp_porous) |
In this subroutine we calculate and update the density of the porous media based on the compressibility given in Diamond (ele-wise). We also calculate the drho/dp term for the porous media which then goes into the DERIV term in the continuity equation (cv-wise). More... | |
subroutine | density_polynomial (eos_coefs, pressure, temperature, Density_Field) |
: Define de density as a polynomial More... | |
subroutine | assign_equation_of_state (eos_option_path_out) |
: Read from diamond and decide which sort of density representation do we have More... | |
subroutine | calculate_porousmedia_absorptionterms (nphase, state, packed_state, PorousMedia_absorp, Mdims, CV_funs, CV_GIdims, Mspars, ndgln, upwnd, suf_sig_diagten_bc) |
: Here we compute the absorption for porous media This is the sigma term defined in the papers and contains The permeability, the relative permeability, the viscosity and the saturation More... | |
subroutine | calculate_absorption2 (nphase, packed_state, PorousMedia_absorp, Mdims, ndgln, SATURA, viscosities, inv_PorousMedia_absorp) |
: Subroutine where the absorption for the porous media is actually computed More... | |
subroutine | get_material_absorption (nphase, iphase, material_absorption, sat, visc, CV_Immobile_fract, Corey_exponent, Endpoint_relperm) |
:Calculates the relative permeability for 1, 2 (Brooks-corey) or 3 (stone's model) phases More... | |
subroutine | get_relperm (nphase, iphase, sat, CV_Immobile_fract, Corey_exponent, Endpoint_relperm, Kr) |
:Calculates the relative permeability for 1, 2 (Brooks-corey) or 3 (stone's model) phases More... | |
subroutine | calculate_capillary_pressure (packed_state, NDGLN, totele, cv_nloc, CV_funs) |
: In this subroutine the capilalry pressure is computed based on the saturation and the formula used More... | |
real function | get_devcappressure (sat, Pe, a, CV_Immobile_Fraction, iphase, nphase) |
:This functions returns the derivative of the capillary pressure with respect to the saturation More... | |
subroutine | calculate_u_source_cv (Mdims, state, packed_state, den, u_source_cv) |
: This subroutine computed the gravity effect, i.e. rho * g More... | |
subroutine | calculate_diffusivity (state, packed_state, Mdims, ndgln, ScalarAdvectionField_Diffusion, TracerName, divide_by_rho_CP) |
: Here we compute component/solute/thermal diffusion coefficient More... | |
subroutine | calculate_solute_dispersity (state, packed_state, Mdims, ndgln, density, SoluteDispersion) |
: Dispersion for porous media For thermal, the field density needs to be passed down, which ensures that even for boussinesq a reference density is still used More... | |
subroutine | calculate_viscosity (state, Mdims, ndgln, Momentum_Diffusion, Momentum_Diffusion2) |
: Computes the viscosity effect as a momemtum diffusion, this is zero for porous media More... | |
subroutine | update_velocity_absorption (states, ndim, nphase, velocity_absorption) |
:<INERTIA ONLY>Computes velocity absorption from diamond information More... | |
subroutine | update_velocity_absorption_coriolis (states, ndim, nphase, velocity_absorption) |
:Computes velocity absorption associated to coriolis forces from diamond information More... | |
subroutine | update_velocity_source (states, Mdims, u_source) |
:Computes velocity source from diamond information More... | |
real function | saturation_temperature (pressure) |
: ???? More... | |
subroutine | get_rockfluidprop (state, packed_state, Mdims, ndgln, current_time, update_only) |
:Gets the relperm max, the relperm exponent and the immobile fractions and stores them into packed state By index this is: 1) immobile fraction, 2) relperm max, 3)relperm exponent 4)Capillary entry pressure 5) Capillary exponent 6) Capillary imbition term The effective inmobile fraction is the min(inmobile,saturation_flipping formula), being the saturation the value after a succesful non-linear solver convergence! This NEEDS to be called after a succesful non-linear solver (with update_only) More... | |
real function | jwl (A, B, w, R1, R2, E0, p, roe, ro) |
JWL equation functions. More... | |
real function | diffjwl (A, B, w, R1, R2, E0, roe, ro) |
Diff of JWL equation functions. More... | |
real function, dimension(jwln) | jwldensity (eos_coefs, pressure, ro0, JWLn) |
Density of JWL equation functions. More... | |
subroutine | initialise_porous_media (Mdims, ndgln, packed_state, state, exit_initialise_porous_media) |
: Initialising porous media models Given a free water level (FWL) we simulate capillary gravity equilibration, control volumes below FWL is kept at residual lighter phase saturation This subroutine is called after each timestep and saturations overidden below FWL with the heavier phase More... | |
real function | retrieve_reference_density (state, packed_state, iphase, icomp, nphase) |
: For boussinesq porous media we need the reference density to ensure consistency when mixing with the porous density/Cp etc. In this subroutine we retrieve the value given a phase, component. More... | |
subroutine | flash_gas_dissolution (state, packed_state, Mdims, ndgln) |
: subroutine to dissolv phase2 into phase1. Currently only for system for phase 1 = water, phase 2 = gas Dissolve instantaneously the amount introduced in diamond in mol/m3 for CO2 a reference number is 38 mol/m3. Requires the first phase to have a concentration field More... | |
Variables | |
real, parameter | flooding_hmin = 1e-5 |
This module contains subroutines related to the equations of state and other properties such as relative permeabilities, capillary, flash, etc.
subroutine multiphase_eos::assign_equation_of_state | ( | character( len = option_path_len ), intent(inout) | eos_option_path_out | ) |
: Read from diamond and decide which sort of density representation do we have
eos_option_path_out | Diamond path of the EOS to be used |
subroutine multiphase_eos::calculate_absorption2 | ( | integer, intent(in) | nphase, |
type( state_type ), intent(inout) | packed_state, | ||
type (multi_field) | PorousMedia_absorp, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_ndgln), intent(in) | ndgln, | ||
real, dimension( :, : ), intent(in) | SATURA, | ||
real, dimension(:,:), intent(in) | viscosities, | ||
real, dimension(:,:,:), intent(inout), optional | inv_PorousMedia_absorp | ||
) |
: Subroutine where the absorption for the porous media is actually computed
nphase | Number of phases |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
PorousMedia_absorp | INOUT Absorption associated to the porous media |
Mdims | Number of dimensions |
ndgln | Global to local variables |
SATURA | PhasevolumeFraction field |
viscosities | viscosity field |
inv_PorousMedia_absorp | (optional) INOUT inverse of the absorption term |
subroutine multiphase_eos::calculate_all_rhos | ( | type( state_type ), dimension( : ), intent(inout) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
logical, intent(in), optional | get_RhoCp | ||
) |
: Computes the density for the phases and the derivatives of the density
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Data type storing all the dimensions describing the mesh, fields, nodes, etc |
get_RhoCp | This flags computes rhoCp instead of rho |
subroutine multiphase_eos::calculate_capillary_pressure | ( | type(state_type), intent(inout) | packed_state, |
type(multi_ndgln), intent(in) | NDGLN, | ||
integer, intent(in) | totele, | ||
integer, intent(in) | cv_nloc, | ||
type(multi_shape_funs) | CV_funs | ||
) |
: In this subroutine the capilalry pressure is computed based on the saturation and the formula used
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
ndgln | Global to local variables |
Totele | Total number of elements |
cv_nloc | Total number of CVs per element |
CV_funs | Shape functions for the CV mesh |
subroutine multiphase_eos::calculate_component_rho | ( | type( state_type ), dimension( : ), intent(inout) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type( multi_dimensions ), intent(in) | Mdims | ||
) |
: Computes the density for the components and the derivatives of the density This is were the action is actually done, the other calculate rhos are wrappers
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Data type storing all the dimensions describing the mesh, fields, nodes, etc |
subroutine multiphase_eos::calculate_diffusivity | ( | type(state_type), dimension(:), intent(in) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_ndgln), intent(in) | ndgln, | ||
real, dimension(:, :, :, :), intent(inout) | ScalarAdvectionField_Diffusion, | ||
character(len=*), intent(in), optional | TracerName, | ||
logical, intent(in), optional | divide_by_rho_CP | ||
) |
: Here we compute component/solute/thermal diffusion coefficient
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Number of dimensions |
ndgln | Global to local variables |
ScalarAdvectionField_Diffusion | INOUT Field containing the diffusion |
divide_by_rho_CP | ! If we want to normlise the equation by rho CP we can return the diffusion coefficient divided by rho Cp |
TracerName | ! For PassiveTracer with diffusion we pass down the name of the tracer |
subroutine multiphase_eos::calculate_porous_rho_drhop | ( | type( state_type ), dimension( : ), intent(inout) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
integer, dimension( : ), intent(in) | cv_ndgln, | ||
real, dimension( : ), intent(inout) | drhodp_porous | ||
) |
In this subroutine we calculate and update the density of the porous media based on the compressibility given in Diamond (ele-wise). We also calculate the drho/dp term for the porous media which then goes into the DERIV term in the continuity equation (cv-wise).
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Number of dimensions |
cv_ndgln | Global to local variables for the CV mesh |
drhodp. | Derivative of the porous density |
subroutine multiphase_eos::calculate_porousmedia_absorptionterms | ( | integer, intent(in) | nphase, |
type( state_type ), dimension( : ), intent(inout) | state, | ||
type( state_type ), intent(inout) | packed_state, | ||
type (multi_field) | PorousMedia_absorp, | ||
type( multi_dimensions ), intent(in) | Mdims, | ||
type(multi_shape_funs), intent(inout) | CV_funs, | ||
type( multi_gi_dimensions ), intent(in) | CV_GIdims, | ||
type (multi_sparsities), intent(in) | Mspars, | ||
type(multi_ndgln), intent(in) | ndgln, | ||
type (porous_adv_coefs), intent(inout) | upwnd, | ||
real, dimension( :, : ), intent(inout) | suf_sig_diagten_bc | ||
) |
: Here we compute the absorption for porous media This is the sigma term defined in the papers and contains The permeability, the relative permeability, the viscosity and the saturation
nphase | Number of phases |
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
PorousMedia_absorp | INOUT Absorption associated to the porous media |
Mdims | Number of dimensions |
CV_funs | Shape functions for the CV mesh |
CV_GIdims | Gauss integration numbers for CV fields |
Mspars | Sparsity of the matrices |
ndgln | Global to local variables |
upwnd | Sigmas to compute the fluxes at the interphase for porous media |
SUF_SIG_DIAGTEN_BC | Like upwnd but for the boundary |
subroutine multiphase_eos::calculate_rho_drhodp | ( | type( state_type ), dimension( : ), intent(inout) | state, |
type( state_type ), intent(inout) | packed_state, | ||
integer, intent(in) | iphase, | ||
integer, intent(in) | icomp, | ||
integer, intent(in) | nphase, | ||
integer, intent(in) | ncomp, | ||
character( len = option_path_len ), intent(in) | eos_option_path, | ||
real, dimension( : ), intent(inout) | rho, | ||
real, dimension( : ), intent(inout) | drhodp | ||
) |
: Computes the density and the derivative of the density
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
iphase | current phase |
icomp | current component |
nphase | number of phases |
ncomp | number of components |
eos_option_path | Path in diamond of the EOS to be used |
rho | density |
drhodp. | Dderivative of density |
subroutine multiphase_eos::calculate_solute_dispersity | ( | type(state_type), dimension(:), intent(in) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_ndgln), intent(in) | ndgln, | ||
real, dimension(:,:), intent(in), target | density, | ||
real, dimension(:, :, :, :), intent(inout) | SoluteDispersion | ||
) |
: Dispersion for porous media For thermal, the field density needs to be passed down, which ensures that even for boussinesq a reference density is still used
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Number of dimensions |
ndgln | Global to local variables |
density | Density of the field (If present density means that we need to use a reference density to ensure consistency with the rest of the equation) |
SoluteDispersion | INOUT The field containing the dispersivity controbution for the given field |
subroutine multiphase_eos::calculate_u_source_cv | ( | type(multi_dimensions), intent(in) | Mdims, |
type(state_type), dimension(:), intent(in) | state, | ||
type( state_type ), intent(inout) | packed_state, | ||
real, dimension(:,:), intent(in) | den, | ||
real, dimension(:,:,:), intent(inout) | u_source_cv | ||
) |
: This subroutine computed the gravity effect, i.e. rho * g
Mdims | Number of dimensions |
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
den | Density field |
u_source_cv | INOUT Source term having now the gravity term |
subroutine multiphase_eos::calculate_viscosity | ( | type( state_type ), dimension( : ), intent(in) | state, |
type( multi_dimensions ), intent(in) | Mdims, | ||
type( multi_ndgln ), intent(in) | ndgln, | ||
real, dimension( :, :, :, : ), intent(inout) | Momentum_Diffusion, | ||
type( multi_field ), intent(inout) | Momentum_Diffusion2 | ||
) |
: Computes the viscosity effect as a momemtum diffusion, this is zero for porous media
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
Mdims | Number of dimensions |
ndgln | Global to local variables |
Momentum_Diffusion | Viscosity term for Stokes/Navier-Stokes |
Momentum_Diffusion2 | Shear viscosity? |
subroutine multiphase_eos::cap_bulk_rho | ( | type(state_type), dimension( : ) | state, |
integer, intent(in) | ncomp, | ||
integer, intent(in) | nphase, | ||
integer, intent(in) | cv_nonods, | ||
real, dimension( cv_nonods * nphase * ncomp ), intent(in) | Density_Component, | ||
real, dimension( cv_nonods * nphase ), intent(inout) | Density, | ||
real, dimension( cv_nonods * nphase ), intent(inout) | Density_Cp, | ||
logical, intent(in) | compute_rhoCP | ||
) |
: Computes the bulk density for components and the derivatives of the density
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
ncomp | number of components |
nphase | number of phases |
cv_nonods | number of CV nodes |
Density_Component | density of a component for compositional modelling |
Density | (self descriptive) |
Density_Cp. | Density times Cp |
compute_rhoCP | This flags computes rhoCp instead of rho |
subroutine multiphase_eos::density_polynomial | ( | real, dimension( : ), intent(in) | eos_coefs, |
real, dimension( : ), intent(in) | pressure, | ||
real, dimension( : ), intent(in) | temperature, | ||
real, dimension( : ), intent(inout) | Density_Field | ||
) |
: Define de density as a polynomial
real function multiphase_eos::diffjwl | ( | real, intent(in) | A, |
real, intent(in) | B, | ||
real, intent(in) | w, | ||
real, intent(in) | R1, | ||
real, intent(in) | R2, | ||
real, intent(in) | E0, | ||
real, intent(in) | roe, | ||
real, intent(in) | ro | ||
) |
Diff of JWL equation functions.
subroutine multiphase_eos::flash_gas_dissolution | ( | type(state_type), dimension(:), intent(inout) | state, |
type(state_type), intent(inout) | packed_state, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_ndgln), intent(in) | ndgln | ||
) |
: subroutine to dissolv phase2 into phase1. Currently only for system for phase 1 = water, phase 2 = gas Dissolve instantaneously the amount introduced in diamond in mol/m3 for CO2 a reference number is 38 mol/m3. Requires the first phase to have a concentration field
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Data type storing all the dimensions describing the mesh, fields, nodes, etc |
ndgln | Global to local variables |
real function multiphase_eos::get_devcappressure | ( | real, intent(in) | sat, |
real, intent(in) | Pe, | ||
real, intent(in) | a, | ||
real, dimension(:), intent(in) | CV_Immobile_Fraction, | ||
integer, intent(in) | iphase, | ||
integer, intent(in) | nphase | ||
) |
:This functions returns the derivative of the capillary pressure with respect to the saturation
Sat | Phase Volume fraction at current CV |
Pe | Entry pressure at current ELE |
a | Exponent at current ELE |
CV_Immobile_Fraction | Immobile fraction at current CV |
iphase | current phase |
nphase | Number of phases |
subroutine multiphase_eos::get_material_absorption | ( | integer, intent(in) | nphase, |
integer, intent(in) | iphase, | ||
real, intent(inout) | material_absorption, | ||
real, dimension(:), intent(in) | sat, | ||
real, dimension(:), intent(in) | visc, | ||
real, dimension(:), intent(in) | CV_Immobile_fract, | ||
real, dimension(:), intent(in) | Corey_exponent, | ||
real, dimension(:), intent(in) | Endpoint_relperm | ||
) |
:Calculates the relative permeability for 1, 2 (Brooks-corey) or 3 (stone's model) phases
nphase | Number of phases |
iphase | current phase |
material_absorption | INOUT Absorption associated to the porous media |
sat | saturation at current CV |
visco | viscosity at current CV |
CV_Immobile_fract | Immobile fraction at current CV |
Corey_exponent | Exponent of the relperm curve at current ELE |
Endpoint_relperm | End point of the relperm curve at current ELE |
subroutine multiphase_eos::get_relperm | ( | integer, intent(in) | nphase, |
integer, intent(in) | iphase, | ||
real, dimension(:), intent(in) | sat, | ||
real, dimension(:), intent(in) | CV_Immobile_fract, | ||
real, dimension(:), intent(in) | Corey_exponent, | ||
real, dimension(:), intent(in) | Endpoint_relperm, | ||
real, intent(inout) | Kr | ||
) |
:Calculates the relative permeability for 1, 2 (Brooks-corey) or 3 (stone's model) phases
nphase | Number of phases |
iphase | current phase |
sat | saturation at current CV |
CV_Immobile_fract | Immobile fraction at current CV |
Corey_exponent | Exponent of the relperm curve at current ELE |
Endpoint_relperm | End point of the relperm curve at current ELE |
Kr | INOUT Relative permeability at current CV |
subroutine multiphase_eos::get_rockfluidprop | ( | type(state_type), dimension(:), intent(inout) | state, |
type( state_type ), intent(inout) | packed_state, | ||
type( multi_dimensions ), intent(in) | Mdims, | ||
type( multi_ndgln ), intent(in) | ndgln, | ||
real, intent(in), optional | current_time, | ||
logical, intent(in), optional | update_only | ||
) |
:Gets the relperm max, the relperm exponent and the immobile fractions and stores them into packed state By index this is: 1) immobile fraction, 2) relperm max, 3)relperm exponent 4)Capillary entry pressure 5) Capillary exponent 6) Capillary imbition term The effective inmobile fraction is the min(inmobile,saturation_flipping formula), being the saturation the value after a succesful non-linear solver convergence! This NEEDS to be called after a succesful non-linear solver (with update_only)
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
Mdims | Data type storing all the dimensions describing the mesh, fields, nodes, etc |
ndgln | Global to local variables |
current_time | current time in type(real). Only for the first time ever, not for checkpointing, overwrite the saturation flipping value with the initial one |
update_only | If true then only the Immobile fraction is updated (for Land trapping modelling only) |
subroutine multiphase_eos::initialise_porous_media | ( | type(multi_dimensions), optional | Mdims, |
type(multi_ndgln), optional | ndgln, | ||
type(state_type), optional | packed_state, | ||
type(state_type), dimension(:), optional | state, | ||
logical, intent(inout) | exit_initialise_porous_media | ||
) |
: Initialising porous media models Given a free water level (FWL) we simulate capillary gravity equilibration, control volumes below FWL is kept at residual lighter phase saturation This subroutine is called after each timestep and saturations overidden below FWL with the heavier phase
Mdims | Data type storing all the dimensions describing the mesh, fields, nodes, etc |
ndgln | Global to local variables |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
exit_initialise_porous_media | Activates the option to after initialising stop the simulation |
real function multiphase_eos::jwl | ( | real, intent(in) | A, |
real, intent(in) | B, | ||
real, intent(in) | w, | ||
real, intent(in) | R1, | ||
real, intent(in) | R2, | ||
real, intent(in) | E0, | ||
real, intent(in) | p, | ||
real, intent(in) | roe, | ||
real, intent(in) | ro | ||
) |
JWL equation functions.
real function, dimension( jwln ) multiphase_eos::jwldensity | ( | real, dimension( : ), intent(in) | eos_coefs, |
real, dimension( : ), intent(in) | pressure, | ||
real, dimension( : ), intent(in) | ro0, | ||
integer, intent(in) | JWLn | ||
) |
Density of JWL equation functions.
real function multiphase_eos::retrieve_reference_density | ( | type( state_type ), dimension( : ), intent(in) | state, |
type( state_type ), intent(inout) | packed_state, | ||
integer, intent(in) | iphase, | ||
integer, intent(in) | icomp, | ||
integer, intent(in) | nphase | ||
) |
: For boussinesq porous media we need the reference density to ensure consistency when mixing with the porous density/Cp etc. In this subroutine we retrieve the value given a phase, component.
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
packed_state | Linked list containing all the fields used by IC-FERST, memory partially shared with state |
iphase | Current phase |
icomp | current component |
nphase | Number of phases |
real function multiphase_eos::saturation_temperature | ( | real | pressure | ) |
: ????
subroutine multiphase_eos::update_velocity_absorption | ( | type( state_type ), dimension( : ), intent(in) | states, |
integer, intent(in) | ndim, | ||
integer, intent(in) | nphase, | ||
real, dimension( :, :, : ), intent(inout) | velocity_absorption | ||
) |
:<INERTIA ONLY>Computes velocity absorption from diamond information
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
ndim | Number of dimensions |
nphase | Number of phases |
velocity_absorption | Absorption term to be updated here |
subroutine multiphase_eos::update_velocity_absorption_coriolis | ( | type( state_type ), dimension( : ), intent(in) | states, |
integer, intent(in) | ndim, | ||
integer, intent(in) | nphase, | ||
real, dimension( :, :, : ), intent(inout) | velocity_absorption | ||
) |
:Computes velocity absorption associated to coriolis forces from diamond information
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
ndim | Number of dimensions |
nphase | Number of phases |
velocity_absorption | Absorption term to be updated here |
subroutine multiphase_eos::update_velocity_source | ( | type( state_type ), dimension( : ), intent(in) | states, |
type( multi_dimensions ), intent(in) | Mdims, | ||
type ( multi_field ), intent(inout) | u_source | ||
) |
:Computes velocity source from diamond information
state | Linked list containing all the fields defined in diamond and considered by Fluidity |
Mdims | Data type storing all the dimensionrs describing the mesh, fields, nodes, etc. |
real, parameter multiphase_eos::flooding_hmin = 1e-5 |