ICFERST  22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
multiphase_eos Module Reference

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
 

Detailed Description

This module contains subroutines related to the equations of state and other properties such as relative permeabilities, capillary, flash, etc.

Function/Subroutine Documentation

◆ assign_equation_of_state()

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

Parameters
eos_option_path_outDiamond path of the EOS to be used
Here is the caller graph for this function:

◆ calculate_absorption2()

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

Parameters
nphaseNumber of phases
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
PorousMedia_absorpINOUT Absorption associated to the porous media
MdimsNumber of dimensions
ndglnGlobal to local variables
SATURAPhasevolumeFraction field
viscositiesviscosity field
inv_PorousMedia_absorp(optional) INOUT inverse of the absorption term
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_all_rhos()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
get_RhoCpThis flags computes rhoCp instead of rho
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_capillary_pressure()

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

Parameters
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
ndglnGlobal to local variables
ToteleTotal number of elements
cv_nlocTotal number of CVs per element
CV_funsShape functions for the CV mesh
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_component_rho()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_diffusivity()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsNumber of dimensions
ndglnGlobal to local variables
ScalarAdvectionField_DiffusionINOUT 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
Here is the caller graph for this function:

◆ calculate_porous_rho_drhop()

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).

Author
Geraldine Regnier
Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsNumber of dimensions
cv_ndglnGlobal to local variables for the CV mesh
drhodp.Derivative of the porous density
Here is the caller graph for this function:

◆ calculate_porousmedia_absorptionterms()

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

Parameters
nphaseNumber of phases
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
PorousMedia_absorpINOUT Absorption associated to the porous media
MdimsNumber of dimensions
CV_funsShape functions for the CV mesh
CV_GIdimsGauss integration numbers for CV fields
MsparsSparsity of the matrices
ndglnGlobal to local variables
upwndSigmas to compute the fluxes at the interphase for porous media
SUF_SIG_DIAGTEN_BCLike upwnd but for the boundary
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_rho_drhodp()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
iphasecurrent phase
icompcurrent component
nphasenumber of phases
ncompnumber of components
eos_option_pathPath in diamond of the EOS to be used
rhodensity
drhodp.Dderivative of density
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_solute_dispersity()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsNumber of dimensions
ndglnGlobal to local variables
densityDensity of the field (If present density means that we need to use a reference density to ensure consistency with the rest of the equation)
SoluteDispersionINOUT The field containing the dispersivity controbution for the given field
Here is the caller graph for this function:

◆ calculate_u_source_cv()

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

Parameters
MdimsNumber of dimensions
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
denDensity field
u_source_cvINOUT Source term having now the gravity term
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_viscosity()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
MdimsNumber of dimensions
ndglnGlobal to local variables
Momentum_DiffusionViscosity term for Stokes/Navier-Stokes
Momentum_Diffusion2Shear viscosity?
Here is the caller graph for this function:

◆ cap_bulk_rho()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
ncompnumber of components
nphasenumber of phases
cv_nonodsnumber of CV nodes
Density_Componentdensity of a component for compositional modelling
Density(self descriptive)
Density_Cp.Density times Cp
compute_rhoCPThis flags computes rhoCp instead of rho
Here is the caller graph for this function:

◆ density_polynomial()

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

Here is the caller graph for this function:

◆ diffjwl()

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.

Here is the caller graph for this function:

◆ flash_gas_dissolution()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
ndglnGlobal to local variables
Here is the caller graph for this function:

◆ get_devcappressure()

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

Parameters
SatPhase Volume fraction at current CV
PeEntry pressure at current ELE
aExponent at current ELE
CV_Immobile_FractionImmobile fraction at current CV
iphasecurrent phase
nphaseNumber of phases
Here is the caller graph for this function:

◆ get_material_absorption()

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

Parameters
nphaseNumber of phases
iphasecurrent phase
material_absorptionINOUT Absorption associated to the porous media
satsaturation at current CV
viscoviscosity at current CV
CV_Immobile_fractImmobile fraction at current CV
Corey_exponentExponent of the relperm curve at current ELE
Endpoint_relpermEnd point of the relperm curve at current ELE
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_relperm()

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

Parameters
nphaseNumber of phases
iphasecurrent phase
satsaturation at current CV
CV_Immobile_fractImmobile fraction at current CV
Corey_exponentExponent of the relperm curve at current ELE
Endpoint_relpermEnd point of the relperm curve at current ELE
KrINOUT Relative permeability at current CV
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_rockfluidprop()

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)

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
ndglnGlobal to local variables
current_timecurrent time in type(real). Only for the first time ever, not for checkpointing, overwrite the saturation flipping value with the initial one
update_onlyIf true then only the Immobile fraction is updated (for Land trapping modelling only)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialise_porous_media()

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

Parameters
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
ndglnGlobal to local variables
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
stateLinked list containing all the fields defined in diamond and considered by Fluidity
exit_initialise_porous_mediaActivates the option to after initialising stop the simulation
Here is the caller graph for this function:

◆ jwl()

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.

Here is the caller graph for this function:

◆ jwldensity()

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.

Here is the call graph for this function:

◆ retrieve_reference_density()

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.

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
iphaseCurrent phase
icompcurrent component
nphaseNumber of phases
Here is the call graph for this function:
Here is the caller graph for this function:

◆ saturation_temperature()

real function multiphase_eos::saturation_temperature ( real  pressure)

: ????

◆ update_velocity_absorption()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
ndimNumber of dimensions
nphaseNumber of phases
velocity_absorptionAbsorption term to be updated here
Here is the caller graph for this function:

◆ update_velocity_absorption_coriolis()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
ndimNumber of dimensions
nphaseNumber of phases
velocity_absorptionAbsorption term to be updated here
Here is the caller graph for this function:

◆ update_velocity_source()

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

Parameters
stateLinked list containing all the fields defined in diamond and considered by Fluidity
MdimsData type storing all the dimensionrs describing the mesh, fields, nodes, etc.
Here is the caller graph for this function:

Variable Documentation

◆ flooding_hmin

real, parameter multiphase_eos::flooding_hmin = 1e-5