proteus.SubsurfaceTransportCoefficients module

TransportCoefficients for flow and transport in porous media

Inheritance diagram of proteus.SubsurfaceTransportCoefficients

class proteus.SubsurfaceTransportCoefficients.BlockHeterogeneousCoefficients(mesh)[source]

Bases: object

Basic data structures and functionality for keeping track of a block heterogeneity

initializeMaterialTypes()[source]

returns material type identifiers for mesh topology in tuple element,exterior_element_boundaries,element_boundaries

note element_boundaries is nElementBoundaries_global x 2 and gives the element material property to the left and right of a global element boundary

class proteus.SubsurfaceTransportCoefficients.SinglePhaseDarcyCoefficients(K_types, source_types, S_s_types=None, nc=1, nd=2, timeVaryingCoefficients=False, materialValuesLocallyConstant=False)[source]

Bases: proteus.TransportCoefficients.TC_base

\(S_s h_t -\deld ( K_i(x,t) \grad h_i ) + r(x,t) = 0 i=1,nc\)

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

evaluateHeterogeneity_element(t, cq)[source]
evaluateHeterogeneity_elementBoundary(t, cebq)[source]
evaluateHeterogeneity_globalElementBoundary(t, cebq_global)[source]
evaluateHeterogeneity_exteriorElementBoundary(t, cebqe)[source]
evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.ConservativeHeadRichardsMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, gravity, density, beta, diagonal_conductivity=True, getSeepageFace=None, pc_eps=1e-08)[source]

Bases: proteus.TransportCoefficients.TC_base

version of Re where element material type id’s used in evals

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

conservativeHeadRichardsMualemVanGenuchtenHetEvaluateV2()[source]
conservativeHeadRichardsMualemVanGenuchten_sd_het()[source]
initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.RE_NCP1_OneLevelTransport(uDict, phiDict, testSpaceDict, matType, dofBoundaryConditionsDict, dofBoundaryConditionsSetterDict, coefficients, elementQuadrature, elementBoundaryQuadrature, fluxBoundaryConditionsDict=None, advectiveFluxBoundaryConditionsSetterDict=None, diffusiveFluxBoundaryConditionsSetterDictDict=None, stressFluxBoundaryConditionsSetterDict=None, stabilization=None, shockCapturing=None, conservativeFluxDict=None, numericalFluxType=None, TimeIntegrationClass=None, massLumping=False, reactionLumping=False, options=None, name='defaultName', reuse_trial_and_test_quadrature=False, sd=True, movingDomain=False)[source]

Bases: proteus.Transport.OneLevelTransport

OneLevelTransport designed specifically for Non-Conforming \(P^1\) approximation to RE Approximation uses nodal quadrature and upwinding

Allocate storage and initialize some variables.

Parameters
  • uDict (dict) – Dictionary of proteus.FemTools.FiniteElementFunction objects.

  • phiDict (dict) – Dictionary of proteus.FemTools.FiniteElementFunction objects.

  • testSpaceDict (dict) – Dictionary of FiniteElementSpace objects

  • dofBoundaryConditionsDict (dict) – Dictionary of DOFBoundaryConditions objects for the Dirichlet conditions.

  • coefficients (proteus.TransportCoefficients.TC_base) – Problem’s Transport Coefficients class.

  • elementQuadratureDict (dict) – Dictionary of dictionaries of quadrature rules for each element integral in each component equation.

  • elementBoundaryQuadratureDict (dict) – Dictionary of dictionaries of quadrature rules for each element boundary integral in each component equation

  • stabilization (bool) –

  • shockCapturing (bool) –

  • numericalFlux (bool) –

  • bdyNullSpace (bool) – Indicates whether the boundary conditions create a global null space.

Notes

The constructor sets the input arguments, calculates dimensions, and allocates storage. The meanings of variable suffixes are

  • global – per physical domain

  • element – per element

  • elementBoundary – per element boundary

The prefix n means ‘number of’.

Storage is divided into quantities required at different sets of points or geometric entities. Each type of storage has a dictionary for all the quantities of that type. The names and dimensions of the storage dictionaries are

  • e – at element

  • q – at element quadrature, unique to elements

  • ebq – at element boundary quadrature, unique to elements

  • ebq_global – at element boundary quadrature, unique to element boundary

  • ebqe – at element boundary quadrature, unique to global, exterior element boundary

  • phi_ip – at the generalized interpolation points required to build a nonlinear phi

calculateElementCoefficients()[source]

calculate the nonlinear coefficients at the quadrature points and nodes include interpolation points explicitly here now

calculateElementResidual()[source]

Calculate all the element residuals

calculateElementJacobian()[source]
class proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, diagonal_conductivity=True, nPSKsplineKnots=None)[source]

Bases: proteus.TransportCoefficients.TC_base

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_vol_frac()[source]

compute phase volume fractions

Use point-vals for sw and zoned material types for porosity (omega)

generateSplineTables()[source]

generate spline table look up arrays

default_density_w_parameters = {'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}[source]
default_density_n_parameters = {'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}[source]
initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

setMaterialTypes(Ksw_types=[1.0], omega_types=[0.4], Sw_max_types=[1.0], Sw_min_types=[0.0], bc_lambda_types=None, bc_pd_types=None, vg_alpha_types=None, vg_m_types=None, psk_spline_types=None)[source]
class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, diagonal_conductivity=True, spatialCompressibilityFlag=0, nPSKsplineKnots=None)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

continuity equation for each phase

\[\pd{m_w}{t} - \deld ( en{a}_w \grad \phi_w) + r_w = 0 \pd{m_n}{t} - \deld ( en{a}_n \grad \phi_n) + r_n = 0\]

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_fc_sd_het_matType()[source]

Evaluate the coefficients of the fully coupled formulation of (slightly) compressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep. for het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.FullyCoupledMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_params, density_n_params, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, use_spline=False, nPSKsplineKnots=None)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc

Formulation using phase continuity equations and Van-Genuchten Mualem psk relations

Basically a convenience wrapper for fully coupled approximation with volume-fraction based inputs as in Richards’ equation formulations

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.FullyCoupledSimplePSKs(nd, Ksw_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_params, density_n_params, diagonal_conductivity=True)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc

Formulation using phase continuity equations and ‘simp’ quadratic rel-perm, linear capillary pressure psk relations

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc_pp(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, diagonal_conductivity=True, nPSKsplineKnots=None)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

continuity equation for each phase

\[\pd{m_w}{t} - \deld ( en{a}_w \grad \phi_w) + r_w = 0 \pd{m_n}{t} - \deld ( en{a}_n \grad \phi_n) + r_n = 0\]

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_fc_pp_sd_het_matType()[source]

Evaluate the coefficients of the fully coupled formulation of (slightly) compressible, two-phase Darcy flow for a heterogeneous medium, pressure-pressure sparse diffusion rep. for het

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.FullyCoupledPressurePressureMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_params, density_n_params, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, use_spline=False, nPSKsplineKnots=None)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc_pp

Formulation using phase continuity equations, pressure-pressure formulation and Van-Genuchten Mualem psk relations

Basically a convenience wrapper for fully coupled approximation with volume-fraction based inputs as in Richards’ equation formulations

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.FullyCoupledPressurePressureSimplePSKs(nd, Ksw_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_params, density_n_params, diagonal_conductivity=True)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_fc_pp

Formulation using phase continuity equations and ‘simp’ quadratic rel-perm, linear capillary pressure psk relations pressure-pressure formulation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pressure_base(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nSatModel=1, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

Base class for ‘pressure’ or total flow conservation equation in fractional flow formulations. This

The primary functionality of the base class is to handle synchronization with a ‘saturation’ model to get the saturation, S_w, and capillary pressure (head), psi_c, variables

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_saturation_base(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nPressModel=0, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

Base class for aqueous phase mass conservation equation (saturation equation) in a fractional flow formulation.

The primary responsibility of the base class is to handle synchronization with the ‘pressure’ equation to get the total flow velocity variable, q_t, and aqueous phase pressure head, psi_w

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pressure(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, psk_model='VGM', nMaterialTypes=1, nSatModel=1, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pressure_base

Total flow conservation equation in an incompressible fractional flow formulation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_incompressible_split_sd_pressure_het_matType()[source]

Evaluate the pressure coefficients

Use the split fractional flow formulation of incompressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_saturation(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, psk_model='VGM', nMaterialTypes=1, nPressModel=0, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_saturation_base

Aqueous phase mass conservation equation (saturation equation) in an incompressible fractional flow formulation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_incompressible_split_sd_saturation_het_matType()[source]

Evaluate the saturation coefficients

Use the split fractional flow formulation of incompressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_compressible_split_pressure(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nSatModel=1, compressibilityFlag=2, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pressure_base

Total flow conservation equation in a split compressible fractional flow formulation Right now, the options are

compressibility for the non-wetting phase (compressibleN) : compressiblityFlag=1

compressibility for both phases but with the slight compressiblity assumption (spatial density gradients are negligible) compressiblityFlag=2

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_slightCompressible_split_sd_pressure_het_matType()[source]

Evaluate the pressure coefficients

Use the split fractional flow formulation of slight compressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

twophaseDarcy_compressibleN_split_sd_pressure_het_matType()[source]

Evaluate the pressure coefficients

Use the split fractional flow formulation of compressible non-wetting phase, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_compressible_split_saturation(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nPressModel=0, compressibilityFlag=2, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_saturation_base

Aqueous phase mass conservation equation (saturation equation) in a compressible fractional flow formulation

Right now, the options are

compressibility for the non-wetting phase (compressibleN) : compressiblityFlag=1

compressibility for both phases but with the slight compressiblity assumption (spatial density gradients are negligible) compressiblityFlag=2

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_slightCompressible_split_sd_saturation_het_matType()[source]

Evaluate the saturation coefficients

Use the split fractional flow formulation of slight compressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

twophaseDarcy_compressibleN_split_sd_saturation_het_matType()[source]

Evaluate the saturation coefficients

Use the split fractional flow formulation of compressible non-wetting phase, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pp_pressure_base(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nSatModel=1, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

Base class for ‘pressure’ or total flow conservation equation in fractional flow formulations. This

The primary functionality of the base class is to handle synchronization with a ‘saturation’ model to get the saturation, \(S_w\), and capillary pressure (head), \(\psi_c\), variables

This version would allow for capillary pressure to be unknown for saturation equation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pp_saturation_base(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, density_w_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 998.2}, density_n_parameters={'beta': 0.0, 'model': 'Exponential', 'nParameters': 3, 'psi_0': 0.0, 'rho_0': 1.205}, psk_model='VGM', nMaterialTypes=1, nPressModel=0, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcyFlow_base

Base class for aqueous phase mass conservation equation (saturation equation) in a fractional flow formulation.

The primary responsibility of the base class is to handle synchronization with the ‘pressure’ equation to get the total flow velocity variable, \(q_t\), and aqueous phase pressure head, \(psi_w\)

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pp_pressure(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, psk_model='VGM', nMaterialTypes=1, nSatModel=1, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pp_pressure_base

Total flow conservation equation in an incompressible fractional flow formulation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_incompressible_split_sd_pressure_het_matType()[source]

Evaluate the pressure coefficients

Use the split fractional flow formulation of incompressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pp_saturation(nd=1, dimensionless_gravity=[- 1.0], density_w=998.2, density_n=1.205, viscosity_w=0.00089, viscosity_n=1.81e-05, psk_model='VGM', nMaterialTypes=1, nPressModel=0, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_split_pp_saturation_base

Aqueous phase mass conservation equation (saturation equation) in an incompressible fractional flow formulation

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

twophaseDarcy_incompressible_split_pp_sd_saturation_het_matType()[source]

Evaluate the saturation coefficients

Use the split fractional flow formulation of incompressible, two-phase Darcy flow for a heterogeneous medium, sparse diffusion rep het capillary pressure is primary variable

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowPressureMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nSatModel=1, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pressure

Total flow equation coefficients for incompressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowSaturationMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nPressModel=1, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_saturation

Saturation equation coefficients for incompressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowSaturationMualemVanGenuchtenSplitAdvDiff(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nPressModel=1, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0, satModelIndex_me=1, satModelIndex_other=2)[source]

Bases: proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowSaturationMualemVanGenuchten

Saturation equation coefficients for incompressible flow assuming Mualem-Van Genuchten psk’s and splitting of advection and capillary diffusion terms

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

preStep(t, firstStep=False)[source]

Give the TC object an opportunity to modify itself before the time step.

class proteus.SubsurfaceTransportCoefficients.CompressibleFractionalFlowPressureMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_parameters, density_n_parameters, nSatModel=1, compressibilityFlag=2, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_compressible_split_pressure

Total flow equation coefficients for slight compressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.CompressibleFractionalFlowSaturationMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, density_w_parameters, density_n_parameters, nPressModel=1, compressibilityFlag=2, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_compressible_split_saturation

Saturation equation coefficients for slightly compressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowPressureSimplePSKs(nd, Ksw_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nSatModel=1, diagonal_conductivity=True, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pressure

Total flow equation coefficients for incompressible flow assuming ‘simp’ quadratic rel-perm, linear capillary pressure psk relations

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.IncompressibleFractionalFlowSaturationSimplePSKs(nd, Ksw_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nPressModel=1, diagonal_conductivity=True, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_saturation

Saturation equation coefficients for incompressible flow assuming ‘simp’ quadratic rel-perm, linear capillary pressure psk relations

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.PressurePressureIncompressibleFractionalFlowPressureMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nSatModel=1, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, swConstant=1.0, capillaryDiffusionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pp_pressure

Total flow equation coefficients for incompressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.PressurePressureIncompressibleFractionalFlowSaturationMualemVanGenuchten(nd, Ksw_types, vgm_n_types, vgm_alpha_types, thetaR_types, thetaSR_types, dimensionless_gravity, density_w, density_n, viscosity_w, viscosity_n, nPressModel=1, diagonal_conductivity=True, vgm_small_eps=1e-16, vgm_ns_del=1e-08, qScalarConstant=1.0, capillaryDiffusionScaling=1.0, advectionScaling=1.0)[source]

Bases: proteus.SubsurfaceTransportCoefficients.TwophaseDarcy_incompressible_split_pp_saturation

Saturation equation coefficients for incompressible flow assuming Mualem-Van Genuchten psk’s

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

class proteus.SubsurfaceTransportCoefficients.GroundwaterTransportCoefficients(nc=1, nd=2, omega_types=array([0.3]), alpha_L_types=array([1.]), alpha_T_types=array([0.1]), d=array([1.3e-09]), meModelId=0, flowModelId=None, velocityFunctions=None)[source]

Bases: proteus.TransportCoefficients.TC_base

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

groundwaterTransportCoefficientsEvaluate_hetMat()[source]
initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

evaluateVelocity(t, c)[source]
evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.MultiphaseGroundwaterTransportCoefficients(nc=1, nd=2, omega_types=array([0.3]), alpha_L_types=array([1.]), alpha_T_types=array([0.1]), d=array([1.3e-09]), meModelId=0, flowModelId=None, velocityFunctions=None)[source]

Bases: proteus.TransportCoefficients.TC_base

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

variablySaturatedGroundwaterTransportCoefficientsEvaluate_hetMat()[source]
initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

Give the TC object access to the element quadrature storage

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

Give the TC object access to the element boundary quadrature storage

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

Give the TC object access to the exterior element boundary quadrature storage

attachModels(modelList)[source]

Give the TC object access to other models in a loosely coupled split operator formulation (e.g. a transport equation for concentration might get velocity from a flow equation)

evaluateVelocity(t, c)[source]
evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.SubsurfaceTransportCoefficients.VariablySaturatedGroundwaterEnergyTransportCoefficients(nc=1, nd=2, density_w=998.2, density_n=1.205, specificHeat_w=0.04882, specificHeat_n=0.01446, omega_types=array([0.3]), alpha_L_types=array([1.]), alpha_T_types=array([0.1]), d=array([1.3e-09]), density_s_types=array([2725.086]), specificHeat_s_types=array([0.004167]), lambda_sat_types=array([0.58]), lambda_dry_types=array([0.3]), lambda_ani_types=array([1., 1., 1.]), meModelId=0, flowModelId=None, velocityFunctions=None)[source]

Bases: proteus.SubsurfaceTransportCoefficients.MultiphaseGroundwaterTransportCoefficients

Set the number of components (equations) of the PDE and initialize the dicitionaries describing the form of the coefficients. Strings naming each component (used for viewing and archiving) and a structure defining the sparsity pattern of diffusion tensors may also be provided.

variablySaturatedGroundwaterEnergyTransportCoefficientsEvaluate_hetMat()[source]
evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.