Porous Flow System Requirements Specification
This template follows INL template TEM-135, "IT System Requirements Specification".
This document serves as an addendum to Framework System Requirements Specification and captures information for Software Requirement Specification (SRS) specific to the Porous Flow module.
Introduction
System Purpose
The purpose of the MOOSE Porous Flow module is to provide functionality to support simulations for fluid and heat flow in porous media. Typical usage examples include groundwater flow, geothermal modeling, geological storage of , and long-term mineralization due to geochemical reactions. The Porous Flow module can be easily coupled with other physics modules in MOOSE.
System Scope
By simply adding pieces of physics together in an input file, the Porous Flow module enables the user to model problems with any combination of fluid, heat, geomechanics and geochemistry.
System Overview
System Context
The Porous Flow module is command-line driven. Like MOOSE, this is typical for a high-performance software that is designed to run across several nodes of a cluster system. As such, all usage of the software is through any standard terminal program generally available on all supported operating systems. Similarly, for the purpose of interacting through the software, there is only a single user, "the user", which interacts with the software through the command-line. The Porous Flow module does not maintain any back-end database or interact with any system daemons. It is an executable, which may be launched from the command line and writes out various result files as it runs.
Figure 1: Usage of the Porous Flow module and other MOOSE-based applications.
System Functions
Since the Porous Flow module is a command-line driven application, all functionality provided in the software is operated through the use of standard UNIX command line flags and the extendable MOOSE input file. The Porous Flow module is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.
User Characteristics
Like MOOSE, there are three kinds of users working on the Porous Flow module:
Porous Flow module Developers: These are the core developers of the Porous Flow module. They are responsible for following and enforcing the software development standards of the module, as well as designing, implementing, and maintaining the software.
Developers: A scientist or engineer that uses the Porous Flow module alongside MOOSE to build their own application. This user will typically have a background in modeling or simulation techniques (and perhaps numerical analysis) but may only have a limited skillset when it comes to code development using the C++ language. This is the primary focus group of the module. In many cases, these developers will be encouraged to contribute module-appropriate code back to the Porous Flow module, or to MOOSE itself.
Analysts: These are users that will run the code and perform analysis on the simulations they perform. These users may interact with developers of the system requesting new features and reporting bugs found and will typically make heavy use of the input file format.
Assumptions and Dependencies
The Porous Flow module is developed using MOOSE and can itself be based on various MOOSE modules, as such the SRS for the Porous Flow module is dependent upon the files listed at the beginning of this document. Any further assumptions or dependencies are outlined in the remainder of this section.
The Porous Flow module is designed with the fewest possible constraints on hardware and software. For more context on this point, the Porous Flow module SRS defers to the framework Assumptions and Dependencies.
References
Definitions and Acronyms
This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.
Definitions
Verification: (1) The process of: evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (2) Formal proof of program correctness (e.g., requirements, design, implementation reviews, system tests) (24765:2010(E), 2010).
Acronyms
Acronym | Description |
---|---|
INL | Idaho National Laboratory |
LGPL | GNU Lesser General Public License |
MOOSE | Multiphysics Object Oriented Simulation Environment |
NQA-1 | Nuclear Quality Assurance Level 1 |
POSIX | Portable Operating System Interface |
SRS | Software Requirement Specification |
System Requirements
In general, the following is required for MOOSE-based development:
A POSIX compliant Unix-like operating system. This includes any modern Linux-based operating system (e.g., Ubuntu, Fedora, Rocky, etc.), or a Macintosh machine running either of the last two MacOS releases.
Hardware | Information |
---|---|
CPU Architecture | x86_64, ARM (Apple Silicon) |
Memory | 8 GB (16 GBs for debug compilation) |
Disk Space | 30GB |
Libraries | Version / Information |
---|---|
GCC | 8.5.0 - 12.2.1 |
LLVM/Clang | 10.0.1 - 16.0.6 |
Intel (ICC/ICX) | Not supported at this time |
Python | 3.7 - 3.11 |
Python Packages | packaging pyaml jinja2 |
Functional Requirements
- porous_flow: Actions
- 13.1.1The system shall calculate proper density, viscosity, enthalpy and internal energy with the PorousFlowBrine material when using PorousFlowFullySaturated Action.
- 13.1.2The system shall produce an error when attempting to use a PorousFlowBrine Material without any NaCl variable
- 13.1.3The system shall produce an error when attempting to use a PorousFlowBrine Material at the same time as a PorousFlowSimpleFluidProperties Material
- 13.1.4The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material at the same time as a PorousFlowBrine Material
- 13.1.5The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material without a fluid-properties UserObject
- 13.1.6The system shall produce an error when attempting to use a non-standard pressure unit choice with PorousFlowBrine
- 13.1.7The system shall produce an error when attempting to use a non-standard time unit choice with PorousFlowBrine
- 13.1.8The system shall produce an error if PorousFlowUnsaturated is used with no stabilization.
- 13.1.9The system shall produce an error if the number of variables to save fluid-component rates-of-change into is not equal to the number of fluid components
- 13.1.10The system shall produce a warning when attempting to add materials to the simulation when using the PorousFlowFullySaturated Action.
- 13.1.11The system shall handle adding materials properly when the add_nodes parameter and the at_nodes=true parameters are both active in the PorousFlowFullySaturated Action.
- 13.1.12The system shall handle adding materials properly when the add_nodes parameter is supplied in the PorousFlowFullySaturated Action.
- 13.1.13The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = Hydro.
- 13.1.14The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydro.
- 13.1.15The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = HydroMechanical.
- 13.1.16The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydroMechanical.
- 13.1.17The system shall handle adding materials properly when materials are block restricted
- 13.1.18The system shall add all required objects when using PorousFlowBasicTHM Action to allow boreholes to be used
- 13.1.19The system shall add all required objects when using PorousFlowFullySaturated Action to allow boreholes to be used
- 13.1.20PorousFlow shall be able to be block-restricted, specifically so that a model's physics is governed by PorousFlow only on part of the mesh
- 13.1.21PorousFlow shall be able to be block-restricted, and Joiners shall work even when one PorousFlow material is block-restricted for one phase and non block-restricted for another
- 13.1.22The system shall be able to block-restrict the definition of the porous flow equations.
- porous_flow: Adaptivity
- 13.2.1The system shall work when using mesh adaptivity with TRI3 elements
- 13.2.2The system shall work when using mesh adaptivity with QUAD elements
- 13.2.3The system shall work when using mesh adaptivity with TET4 elements
- 13.2.4The system shall work when using mesh adaptivity with HEX elements
- porous_flow: Aux Kernels
- 13.3.1The system shall be able to calculate the Darcy flow velocity vector for a fully-saturated case.
- 13.3.2The system shall be able to calculate the Darcy flow velocity vector for a fully-saturated finite volume case.
- 13.3.3The system shall be able to populate AuxVariables corresponding to capillary pressure, saturation, fluid density, etc.
- 13.3.4The system shall be able to calculate the Darcy flow velocity vector on 2D fracture embedded inside a 3D matrix.
- 13.3.5The system shall be able to calculate the Darcy flow velocity vector on 2D fracture embedded inside a 3D matrix, including the case with triangular and tetrahedral elements.
- 13.3.6The system shall be able to calculate the Darcy flow velocity vector on 1D fracture embedded inside a 2D matrix.
- 13.3.7An error shall be produced if the system is asked to calculate the Darcy flow velocity vector on a lower-dimensional fracture, but the variables are not defined only on the lower-dimensional elements.
- 13.3.8The system shall be able to calculate a measure of element length in a given direction, and shall produce an error if a nodal variable is used to store the results.
- 13.3.9The system shall be able to calculate a measure of element length in a given direction, and shall produce an error if the direction is incorrectly specified.
- 13.3.10The system shall be able to calculate a measure of element length in a given direction, in 2D.
- 13.3.11The system shall be able to calculate a measure of element length in a given direction, in 3D.
- 13.3.12The system shall be able to calculate element normal, and shall produce an error if a nodal variable is used to store the result.
- 13.3.13The system shall be able to calculate element normal for 1D elements if provided with a perpendicular vector, and shall produce an error if the perpendicular vector is incorrectly specified.
- 13.3.14The system shall be able to calculate element normals for meshes containing 3D elements if provided with a default value for the 3D elements, but shall produce an error if that default value is incorrectly specified.
- 13.3.15The system shall be able to calculate element normals for 1D and 2D elements, if provided with a perpendicular vector for the 1D elements.
- 13.3.16The system shall be able to calculate element normals for 2D and 3D elements, if provided with a default value for the 3D elements.
- porous_flow: Basic Advection
- 13.4.1
- 13.4.2
- 13.4.3
- 13.4.4
- porous_flow: Buckley Leverett
- 13.5.1PorousFlow shall be able to simulate a Buckley-Leverett problem
- 13.5.2PorousFlow shall be able to simulate a Buckley-Leverett problem with small saturation
- porous_flow: Capillary Pressure
- 13.6.1
- 13.6.2
- 13.6.3
- 13.6.4
- 13.6.5
- porous_flow: Chemistry
- 13.7.1The system shall produce an error if the number of secondary activity coefficients is not equal to the number of secondary species.
- 13.7.2The system shall produce an error if more than one phase is supplied to for a saturated geochemistry system.
- 13.7.3The system shall produce an error if the number of mass fractions supplied is not correct.
- 13.7.4The system shall produce an error if the number of equilibrium constants is not equal to the number of reactions.
- 13.7.5The system shall produce an error if the number of activity coefficients is not equal to the number of primary species.
- 13.7.6The system shall produce an error if the number of stoichiometric coefficients is not equal to the product of the number of reactions and number of primary species.
- 13.7.7The system shall produce an error if the number of reactive surface areas is not equal to the number of reactions.
- 13.7.8The system shall produce an error if the number of kinetic rate constants is not equal to the number of reactions.
- 13.7.9The system shall produce an error if the number of activation energies is not equal to the number of reactions.
- 13.7.10The system shall produce an error if the number of molar volumes is not equal to the number of reactions.
- 13.7.11The system shall produce an error if the number of theta exponents is not equal to the number of reactions.
- 13.7.12The system shall produce an error if the number of eta exponents is not equal to the number of reactions.
- 13.7.13The system shall produce an error if the number of initial concentrations is not equal to the number of kinetic reactions.
- 13.7.14The system shall produce an error if the number of mineral secondary species is not equal to the number of kinetic reactions.
- 13.7.15The system shall produce an error if the number of stoichiometric coefficients is not equal to the number of kinetic reactions.
- 13.7.16The system shall produce an error if the number of equilibrium reactions specified is not equal to the actual number of reactions in the system.
- 13.7.17The system shall produce an error if the number of kinetic reactions specified is not equal to the actual number of reactions in the system.
- 13.7.18The system shall produce an error if no initial mineral concentration is supplied when porosity depends on chemistry.
- 13.7.19The system shall produce an error if no reference chemical values are supplied when porosity depends on chemistry.
- 13.7.20The system shall produce an error if the aqueous phase number is not less than the number of phases.
- 13.7.21The system shall produce an error if no fluid phases are present.
- 13.7.22The system shall be able to calculate mineral precipitation using a kinetic reaction.
- 13.7.23The system shall be able to calculate the porosity change due to mineral precipitation using a kinetic reaction.
- 13.7.24The system shall be able to calculate mineral dissolution using a kinetic reaction.
- 13.7.25The system shall be able to calculate mineral dissolution using a kinetic reaction when the initial mineral concentration is an elemental AuxVariable.
- 13.7.26The system shall be able to calculate mineral dissolution using a kinetic reaction when the initial mineral concentration is limited.
- 13.7.27The system shall be able to calculate the equilibrium reaction of multiple species.
- 13.7.28The system shall be able to calculate the equilibrium reaction of multiple species when the equilibrium constant is a monomial AuxVariable.
- 13.7.29The system shall be able to calculate mineral precipitation using a kinetic reaction.
- 13.7.30The system shall be able to calculate mineral precipitation using a kinetic reaction when the equilibrium constant is a monomial AuxVariable.
- 13.7.31The system shall be able to calculate mineral precipitation using a kinetic reaction for a two-phase system.
- 13.7.32The system shall be able to calculate mineral dissolution using a kinetic reaction for a two-phase system when the amount of mineral is limited.
- 13.7.33The system shall be able to calculate the equilibrium reaction of multiple species for a two-phase system.
- porous_flow: Density
- 13.8.1
- porous_flow: Desorption
- 13.9.1
- 13.9.2
- porous_flow: Dirackernels
- 13.10.1PorousFlowSquarePulsePointSource shall provide a constant mass point source/sink between two specified times
- 13.10.2The system shall provide a mass point source/sink computed by a postprocessor
- 13.10.3The system shall provide an enthalphy point source computed by a postprocessor
- 13.10.4PorousFlowSquarePulsePointSource shall provide a constant mass point sink between two specified times
- 13.10.5PorousFlow shall be able to accurately simulate drawdown in 2D groundwater systems, to agree with the Theis solution
- 13.10.6PorousFlowSquarePulsePointSource shall provide a constant mass point sink between two specified times
- 13.10.7PorousFlowSquarePulsePointSource shall provide a constant mass point source of a specified fluid phase
- 13.10.8PorousFlowPeacemanBorehole shall throw an error if the fluid phase is larger than the number of phases in the system
- 13.10.9PorousFlowPeacemanBorehole shall throw an error if the fluid component is larger than the number of fluid components in the system
- 13.10.10PorousFlowPeacemanBorehole shall throw an error if flux is a function of porepressure but no porepressure material exists
- 13.10.11PorousFlowPeacemanBorehole shall throw an error if flux is a function of temperature but no temperature material exists
- 13.10.12PorousFlowPeacemanBorehole shall throw an error if flux is restricted to a specific fluid component but no mass fraction material exists
- 13.10.13PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal fluid density material exists
- 13.10.14PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal relative permeability material exists
- 13.10.15PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal fluid density material exists
- 13.10.16PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by enthalpy but no fluid enthalpy material exists
- 13.10.17PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by internal energy but no fluid internal energy material exists
- 13.10.18PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by relative permeability but no nodal relative permeability material exists
- 13.10.19PorousFlowPeacemanBorehole shall throw an error if the given point file does not exist
- 13.10.20PorousFlowPeacemanBorehole shall throw an error if two points in the point file are coincident
- 13.10.21PorousFlowPeacemanBorehole shall throw an error if the element containing the dirac kernel is not larger than the specified borehole radius
- 13.10.22PorousFlowPeacemanBorehole shall throw an error if flux is a function of porepressure but no permeability material exists
- 13.10.23PorousFlowPeacemanBorehole shall throw an error if flux is a function of temperature but no thermal conductivity material exists
- 13.10.24PorousFlowPeacemanBorehole shall throw an error if the last point in the point_file is not at the well bottom, ie has the lowest z coordinate value.
- 13.10.25PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.26PorousFlowPolyLineSink shall extract fluid at the specified rate when using the line_base parameter
- 13.10.27PorousFlowPolyLineSink shall abort with an error if the line base, direction, and length cause the line to exit the mesh domain.
- 13.10.28PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.29PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.30PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.31PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.32PorousFlowPolyLineSink shall be able to dynamically create dirac points automatically in response to changing mesh geometry.
- 13.10.33PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.34PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.35PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.36PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.37PorousFlowPolyLineSink shall extract fluid at the specified rate
- 13.10.38PorousFlowPolyLineSink shall extract fluid at the specified rate getting the coordinates from a reporter
- 13.10.39PorousFlowPolyLineSink shall abort with an error if the reporter containing the coordinates is not the same size as the reporter containing weights
- 13.10.40PorousFlowPolyLineSink shall abort with an error if the coordinates reporter is empty
- 13.10.41PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system
- 13.10.42PorousFlowPeacemanBorehole shall inject fluid at the specified rate in a fully-saturated system
- 13.10.43PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system
- 13.10.44PorousFlowPeacemanBorehole shall inject fluid at the specified rate in an unsaturated system
- 13.10.45PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a cylindrical model
- 13.10.46PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a cylindrical model
- 13.10.47PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system using reporter for input
- 13.10.48Multiple PorousFlowPeacemanBorehole objects shall be able to inject and extract fluid in different locations
- 13.10.49If the strain at the nearest quadpoint is used when evaluating PorousFlowPorosity that is coupled to solid mechanics, all PorousFlow DiracKernels shall be usable
- 13.10.50It shall be possible to use PorousFlow DiracKernels in simulations involving plastic deformation
- porous_flow: Dispersion
- 13.11.1The system shall correctly simulate molecular diffusion.
- 13.11.2The system shall correctly simulate molecular diffusion when using an action.
- 13.11.3The system shall correctly simulate molecular diffusion using finite volumes.
- 13.11.4The system shall correctly simulate hydrodynamic dispersion.
- 13.11.5The system shall correctly simulate hydrodynamic dispersion using finite volumes.
- 13.11.6The system shall correctly simulate hydrodynamic dispersion in a high-resolution setting.
- porous_flow: Energy Conservation
- 13.12.1The system shall produce an error if the user specifies a phase number that is too large for the simulation according to the PorousFlowDictator.
- 13.12.2The system shall produce an error if the user specifies a porous-flow variable that is too large for the simulation according to the PorousFlowDictator.
- 13.12.3If the user enters a base_name strain that does not exist, the system should produce an error.
- 13.12.4The system shall correctly calculate the heat energy using the heat-energy postprocessor when there are no fluids and constant porosity.
- 13.12.5The system shall correctly calculate the heat energy using the heat-energy postprocessor when there is 1 fluid phase and constant porosity.
- 13.12.6The system shall correctly conserve heat energy in a THM simulation when the model is squashed mechanically.
- 13.12.7The system shall correctly conserve heat energy in a THM simulation when the model is squashed mechanically, in RZ coordinates.
- 13.12.8The system shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy.
- 13.12.9The system shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy and fluid, in RZ coordinates.
- 13.12.10The system shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy, when using the PorousFlowUnsaturated Action.
- 13.12.11The system shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy, when using the PorousFlowFullySaturated Action.
- 13.12.12The system shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy, when using the PorousFlowUnsaturated Action with Kuzmin-Turek stabilization.
- 13.12.13In fully-coupled THM situations, the system shall correctly initialize the porosity when it depends on all Variables.
- porous_flow: Fluids
- 13.13.1The system shall be able to use high-precision equations of state for water from the FluidProperties module.
- 13.13.2The system shall be able to use high-precision equations of state for methane from the FluidProperties module.
- 13.13.3The system shall be able to use equations of state for an ideal gas from the FluidProperties module.
- 13.13.4The system shall be able to use high-precision equations of state for brine from the FluidProperties module.
- 13.13.5The system shall be able to use a given UserObject for water properties.
- 13.13.6The system shall be able to use high-precision equations of state for brine from the FluidProperties module where NaCl is an elemental AuxVariable.
- 13.13.7The system shall be able to use high-precision equations of state for CO2 from the FluidProperties module.
- 13.13.8The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the temperature unit in Kelvin.
- 13.13.9The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the pressure unit in MPa.
- 13.13.10The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in days.
- 13.13.11The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in hours.
- 13.13.12The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years.
- 13.13.13The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years, the pressure unit in MPa and the temperature unit in Celsius.
- 13.13.14The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years, the pressure unit in MPa and the temperature unit in Celsius, and this functionality shall be available through the PorousFlowActions.
- 13.13.15The system shall be able to use multicomponent equations of state from the FluidProperties module.
- 13.13.16The system shall be able to use multicomponent equations of state from the FluidProperties module where mass fraction is an elemental AuxVariable.
- porous_flow: Fluidstate
- 13.14.1The system shall calculate the properties of the liquid phase in a water and NCG system.
- 13.14.2The system shall calculate the solubilities and properties of both the gas and liquid phase in a water and NCG system.
- 13.14.3The system shall calculate the properties of the gas phase in a water and NCG system.
- 13.14.4The system shall evolve a gas phase as a gas component is added in a water and NCG system.
- 13.14.5The system shall evolve a gas phase as a gas component is added in a water and NCG system.
- 13.14.6The system shall evolve a gas phase as a gas component is added in a nonisothermal water and NCG system.
- 13.14.7The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system.
- 13.14.8The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system when Xnacl is an elemental AuxVariable.
- 13.14.9The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system using FV variables.
- 13.14.10The system shall evolve a gas phase as CO2 is added to a liquid brine phase.
- 13.14.11The system shall evolve a gas phase as CO2 is added to a liquid brine phase in the high temperature regime.
- 13.14.12The system shall evolve a gas phase as CO2 is added to a liquid brine phase.
- 13.14.13The system shall evolve a gas phase as CO2 is added to a liquid brine phase in a nonisothermal model.
- 13.14.14The system shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a water and NCG system.
- 13.14.15The system shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a brine and CO2 system.
- 13.14.16The system shall calculate the properties of both the gas and liquid phase in a water-steam system.
- 13.14.17The system shall calculate the liquid properties in a saturated liquid system.
- 13.14.18The system shall calculate the gas properties in a saturated gas system.
- 13.14.19The system shall evolve a vapor phase as conditions enter the two phase region.
- 13.14.20The system shall be able to use tabulated fluid properties in conjunction with another fluid properties object to provide non-tabulated properties.
- 13.14.21The system shall calculate the temperature profile in a 1D Avdonin problem.
- 13.14.22The system shall calculate the temperature profile in a 1D radial Avdonin problem.
- porous_flow: Flux Limited Tvd Advection
- 13.15.1PorousFlow shall implement Kuzmin-Turek stabilization, and shall error-out if the flux-limiting computations are not evaluated on linear
- 13.15.2PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when there is no antidiffusion
- 13.15.3PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is minmod
- 13.15.4PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is vanleer
- 13.15.5PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is mc
- 13.15.6PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is superbee
- 13.15.7PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries, for more than 1 thread
- 13.15.8PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is vanleer, when the variable is such that the flux limiter is 1
- 13.15.9PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is mc, when the variable is such that the flux limiter is 1
- 13.15.10PorousFlow shall implement Kuzmin-Turek stabilization in 1D
- 13.15.11PorousFlow shall implement Kuzmin-Turek stabilization in 1D with more than 1 thread
- 13.15.12PorousFlow shall implement Kuzmin-Turek stabilization in 2D
- 13.15.13PorousFlow shall implement Kuzmin-Turek stabilization in 2D with more than 1 thread
- 13.15.14PorousFlow shall implement Kuzmin-Turek stabilization in 3D
- 13.15.15PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the velocity is not aligned with the mesh
- 13.15.16PorousFlow shall implement Kuzmin-Turek stabilization in 2D when using triangular mesh elements
- 13.15.17PorousFlow shall implement Kuzmin-Turek stabilization in 2D when using triangular mesh elements and with more than 1 thread
- 13.15.18PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the advection is block limited
- 13.15.19PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the advection is block limited, and when more than 1 thread is used
- 13.15.20PorousFlow shall implement Kuzmin-Turek stabilization in 1D when mesh adaptivity is used
- 13.15.21PorousFlow shall implement Kuzmin-Turek stabilization in 1D when mesh adaptivity is used, and when more than 1 thread is used
- porous_flow: Flux Limited Tvd Pflow
- 13.16.1PorousFlow shall error-out if the specified phase number >= number of phases in the model, when using Kuzmin-Turek stabilization
- 13.16.2PorousFlow shall error-out if the specified fluid component number >= number of fluid components in the model, when using Kuzmin-Turek stabilization
- 13.16.3PorousFlow shall error-out if the fe_family is specified but not fe_order, when using Kuzmin-Turek stabilization
- 13.16.4PorousFlow error-out if the fe_order is specified but not fe_family, when using Kuzmin-Turek stabilization
- 13.16.5PorousFlow shall error-out if the PorousFlowDictator cannot determine a consistent FE type to use and if no FE type is specified, when using Kuzmin-Turek stabilization
- 13.16.6PorousFlow shall compute all Jacobian entries when there is no antidiffusion in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component
- 13.16.7PorousFlow shall compute all Jacobian entries when there is no antidiffusion in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component, when using more than 1 thread
- 13.16.8PorousFlow shall compute all Jacobian entries when there is no antidiffusion in Kuzmin-Turek stabilized PorousFlow simulations involving 1 unsaturated fluid phase with multiple components
- 13.16.9PorousFlow shall compute all Jacobian entries when there is no antidiffusion in Kuzmin-Turek stabilized PorousFlow simulations involving multiple fluid phases and multiple fluid components
- 13.16.10PorousFlow shall compute all Jacobian entries when there is no antidiffusion in Kuzmin-Turek stabilized PorousFlow simulations involving multiple fluid phases and multiple fluid components, when using more than 1 thread
- 13.16.11PorousFlow shall compute all Jacobian entries when the flux limiter is minmod in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component
- 13.16.12PorousFlow shall compute all Jacobian entries when the flux limiter is vanleer in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component
- 13.16.13PorousFlow shall compute all Jacobian entries when the flux limiter is mc in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component
- 13.16.14PorousFlow shall compute all Jacobian entries when the flux limiter is superbee in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component
- 13.16.15PorousFlow shall compute all Jacobian entries when the flux limiter is vanleer in Kuzmin-Turek stabilized PorousFlow simulations involving full saturation of 1 phase and 1 component, when using more than 1 thread
- 13.16.16PorousFlow shall compute all Jacobian entries when using any non-trivial flux limiter in Kuzmin-Turek stabilized PorousFlow simulations involving multiple phases and multiple components
- 13.16.17PorousFlow shall compute all Jacobian entries when using any non-trivial flux limiter in Kuzmin-Turek stabilized PorousFlow simulations involving multiple phases and multiple components, when using more than 1 thread
- 13.16.18PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations
- 13.16.19PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations, for more than 1 thread
- 13.16.20PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations
- 13.16.21PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, for more than 1 thread
- 13.16.22PorousFlow shall issue a warning if the memory is inefficiently used for multi-processor simulations involving Kuzmin-Turek stablization
- 13.16.23PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations
- 13.16.24PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when the Darcy velocity is not aligned with the mesh
- 13.16.25PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when using triangular mesh elements
- 13.16.26PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when using triangular mesh elements, and more than 1 thread
- 13.16.27PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations when mesh adaptivity is used
- porous_flow: Functions
- 13.17.1
- 13.17.2
- porous_flow: Gravity
- 13.18.1The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.2The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero for single-phase fully-saturated formulations using FV variables.
- 13.18.3The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.4The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.5The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.6The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.7The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.8The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero two-phase PP formulations using FV variables.
- 13.18.9The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.10The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.11The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.12The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero for two-phase PS formulations using FV variables.
- 13.18.13The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.14The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.15The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.16The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.17The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero: for single-phase fully-saturated, single-phase partially-saturated, two-phase PP formulations, and two-phase PS formulations.
- 13.18.18The system shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems.
- 13.18.19The system shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems, if the Darcy flow is expressed in terms of fluid volumes.
- 13.18.20The system shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems, when using an action.
- 13.18.21The system shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems, when using an action and a fluid-volume calculation.
- 13.18.22The system shall be able to find steady-state and long-time transient porepressure when gravity is nonzero, when the simulation contains more than one domain, with each domain having its own capillary pressure and relative permeability function.
- porous_flow: Heat Advection
- 13.19.1The system shall produce an error when the kernel describing heat advection by a single-phase fluid is used in a multi-phase situation.
- 13.19.2The system shall correctly advect heat energy with a moving fluid, using no numerical stabilization
- 13.19.3The system shall correctly advect heat energy with a moving fluid, using no numerical stabilization, and the user should be able to activate this stabilization using the PorousFlow Action system.
- 13.19.4The system shall correctly advect heat energy with a moving fluid, using full-upwinding for numerical stabilization.
- 13.19.5The system shall correctly advect heat energy with a moving fluid using a finite volume discretization.
- 13.19.6The system shall correctly advect heat energy with a moving fluid, using full-upwinding for numerical stabilization, in fully-saturated single-phase systems.
- 13.19.7The system shall correctly advect heat energy with a moving fluid, using full-upwinding for numerical stabilization, in fully-saturated single-phase systems, and the user should be able to activate this stabilization using the PorousFlow Action system.
- 13.19.8The system shall correctly advect heat energy with a moving fluid, using the Kuzmin-Turek for numerical stabilization.
- 13.19.9The system shall implement Kuzmin-Turek stabilization for PorousFlow simulations involving the advection of heat energy in a moving fluid, and the user should be able to activiate this stabilization using the PorousFlow Action system.
- 13.19.10The system shall implement Kuzmin-Turek stabilization for PorousFlow simulations involving the advection of heat energy in a moving fluid.
- porous_flow: Heat Conduction
- 13.20.1The system shall be able to simulate heat conduction in a fluid-free environment.
- 13.20.2The system shall be able to simulate heat conduction in a fluid-free environment using a finite volume discretization.
- 13.20.3The system shall be able to simulate heat conduction for systems containing multi-phase fluids.
- 13.20.4The system shall be able to simulate heat conduction for systems containing multi-phase fluids using a finite volume discretization.
- porous_flow: Heat Mass Transfer
- 13.21.1PorousFlow shall be able to transfer heat or mass from one Variable to another when the transfer coefficient is a constant.
- 13.21.2PorousFlow shall be able to transfer heat or mass from one Variable to another when the transfer coefficient is a variable.
- porous_flow: Heterogeneous Materials
- 13.22.1The system shall allow the assignment of porosity and permeability from an AuxVariable field.
- 13.22.2The system shall allow the assignment of porosity and permeability from an AuxVariable field using FV variables.
- 13.22.3The system shall allow the assignment of porosity and permeability from an AuxVariable field with binlinear relationships.
- 13.22.4The system shall allow the assignment of porosity and permeability from an AuxVariable read from a mesh.
- 13.22.5The system shall calculate permeability from a changing porosity.
- porous_flow: Hysteresis
- 13.23.1If the liquid phase number exceeds the number of phases in the system, PorousFlow shall produce an appropriate error message and exit
- 13.23.2The maximum order for hysteretic relative permeabilities and capillary pressures is 3 and if the user specifies an initial order greater than this amount, an error shall be thrown
- 13.23.3An error shall be thrown if the initial order of hysteresis is incommensurate with previous_turning_points
- 13.23.4An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]
- 13.23.5An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]
- 13.23.6An error shall be thrown if the turning points are incorrectly ordered
- 13.23.7An error shall be thrown if the turning points are incorrectly ordered
- 13.23.8An error shall be thrown if the turning points are incorrectly ordered
- 13.23.9An error shall be thrown if the hysteresis turning-point information is requested for the Nth turning point, when N exceeds the maximum number of turning points
- 13.23.10An error shall be thrown if the maximum gas residual saturation is greater than 1 - minimum_liquid_saturation in hysteretic problems
- 13.23.11An error shall be thrown if parameters are chosen such that the high and low extension regions of the hysteretic capillary pressure overlap
- 13.23.12A warning shall be produced if the residual saturation is not greater than the minimum saturation in hysteretic simulations
- 13.23.13An exception shall be thrown if a single-phase hysteretic capillary-pressure Material is used in situations with more than one fluid phase
- 13.23.14An exception shall be thrown if a two-phase PP hysteretic capillary-pressure Material is used in models that do not have exactly 2 phases
- 13.23.15An exception shall be thrown if a two-phase PS hysteretic capillary-pressure Material is used in models that do not have exactly 2 phases
- 13.23.16When using hysteretic relative permeabilities, an exception shall be thrown if the gas residual saturation is not less than 1 - liquid_residual_saturation
- 13.23.17PorousFlow shall be able to calculate the hysteresis order
- 13.23.18PorousFlow shall be able to calculate the hysteresis order
- 13.23.19PorousFlow shall be able to calculate the hysteresis order
- 13.23.20PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
- 13.23.21PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
- 13.23.22PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
- 13.23.23PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
- 13.23.24PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value, and jumps of greater than 2 in hysteresis order shall be allowed within one time-step
- 13.23.25PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value, and jumps of greater than 2 in hysteresis order shall be allowed within one time-step, and turning points shall be correctly identified in such situations
- 13.23.26PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using no low extension
- 13.23.27PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.28PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.29PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using no low extension
- 13.23.30PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.31PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.32PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.33PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using no low extension and power high extension
- 13.23.34PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.35PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.36PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.37PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.38PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.39PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using no low extension and power high extension
- 13.23.40PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.41PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.42PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.43PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.44PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.45PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using no low extension and power high extension
- 13.23.46PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.47PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.48PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.49PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.50PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.51PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using no low extension and power high extension
- 13.23.52PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.53PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.54PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.55PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.56PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using no low extension
- 13.23.57PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.58PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.59PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.60PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using no low extension and power high extension
- 13.23.61PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.62PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.63PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.64PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.65PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.66PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using no low extension and power high extension
- 13.23.67PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.68PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.69PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.70PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.71PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using no low extension and power high extension
- 13.23.72PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using quadratic low extension and no high extension
- 13.23.73PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.74PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using exponential low extension and no high extension
- 13.23.75PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.76PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using no low extension
- 13.23.77PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.78PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.79PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.80PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.81PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.82PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.83PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.84PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.85PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.86PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.87PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.88PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using no low extension
- 13.23.89PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.90PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.91PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.92PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.93PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.94PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.95PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.96PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.97PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.98PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.99PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.100PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using no low extension
- 13.23.101PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.102PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.103PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.104PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.105PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.106PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.107PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.108PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.109PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.110PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.111PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.112PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using no low extension
- 13.23.113PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using quadratic low extension
- 13.23.114PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using exponential low extension
- 13.23.115PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.116PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.117PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.118PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using no low extension and no high extension
- 13.23.119PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.120PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.121PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using no low extension and no high extension
- 13.23.122PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension
- 13.23.123PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension
- 13.23.124PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve
- 13.23.125PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve and then the primary wetting curve
- 13.23.126PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve and then the first-order wetting
- 13.23.127PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve, then first-order wetting, and then second-order drying
- 13.23.128PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve, then first-order wetting, and then second-order drying, and then third-order
- 13.23.129PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along a first-order wetting curve
- 13.23.130PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along a first-order wetting curve, when the input file has a PorousFlow boundary condition
- 13.23.131PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along first, second and third order curves
- 13.23.132PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PP formulation
- 13.23.133PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PP formulation, as the system evolves in time along the primary drying curve and then along a first-order curve
- 13.23.134PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PP formulation, as the system evolves in time along the primary drying curve and then along a first-order curve and then along a second-order drying curve until it meets the primary drying curve
- 13.23.135PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PS formulation
- 13.23.136PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PS formulation, as the system evolves in time along the primary drying curve and then along a first-order curve
- 13.23.137PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PS formulation, as the system evolves in time along the primary drying curve and then along a first-order curve and then along a second-order drying curve until it meets the primary drying curve
- 13.23.138PorousFlow shall be able to compute hysteretic relative permeability in 1-phase systems as the system evolves in time along the primary drying curve and then along a first-order wetting curve
- 13.23.139PorousFlow shall be able to compute hysteretic relative permeability in 1-phase systems as the saturation cycles between high and low values, including going below the residual saturation
- 13.23.140PorousFlow shall be able to compute hysteretic liquid and gas relative permeabilities in 2-phase systems as the system evolves in time along the primary drying curve and then along first-order wetting curves
- 13.23.141PorousFlow shall be able to compute hysteretic liquid and gas relative permeabilities in 2-phase systems as the system dries and then re-wets, and the gas relative permeability is extended to low saturations using a linear-like extension
- 13.23.142PorousFlow shall be able to compute hysteretic liquid and gas relative permeabilities in 2-phase systems as the system dries and then re-wets, and the gas relative permeability is extended to low saturations using a cubic extension
- 13.23.143PorousFlow shall be able to compute hysteretic liquid and gas relative permeabilities in 2-phase systems as the system dries and then re-wets, and the gas relative permeability is extended to low saturations by assuming is is unity
- 13.23.144PorousFlow shall be able to compute the full Jacobian entries when using hysteretic relative permeabilities, as the system evolves along a zeroth order curve
- 13.23.145PorousFlow shall be able to compute the full Jacobian entries when using hysteretic relative permeabilities, as the system evolves along a first-order curve
- porous_flow: Ics
- 13.24.1PorousFlow shall calculate an initial condition for a fluid property given pressure and temperature
- 13.24.2PorousFlow shall calculate an initial condition for a fluid property given pressure and temperature (in C)
- porous_flow: Infiltration And Drainage
- 13.25.1PorousFlow shall be able to model 2-phase infiltration and agree with the analytic solution
- 13.25.2PorousFlow shall be able to model 2-phase infiltration on a coarse mesh and agree with the analytic solution
- 13.25.3PorousFlow shall be able to model 2-phase drainage and agree with the analytic solution
- 13.25.4PorousFlow shall be able to model 2-phase drainage on a coarse mesh and agree with the analytic solution
- 13.25.5PorousFlow shall be able to model single-phase infiltration and agree with the analytic solution
- 13.25.6PorousFlow shall be able to model single-phase short-term drainage and agree with the analytic solution
- 13.25.7PorousFlow shall be able to model single-phase long-term drainage and agree with the analytic solution
- 13.25.8PorousFlow shall be able to model water infiltration into a 2-phase and agree with the analytic solution
- 13.25.9PorousFlow shall be able to model water infiltration into a 2-phase and agree with the analytic solution in a high-resolution test
- porous_flow: Jacobian
- 13.26.1The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, fully saturated.
- 13.26.2The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, fully saturated, in a volume approach.
- 13.26.3The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, unsaturated.
- 13.26.4The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, multi-component, unsaturated.
- 13.26.5The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, 2-component.
- 13.26.6The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, multi-component.
- 13.26.7The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, multi-component, in a volume formulation.
- 13.26.8The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, constant-bulk density, constant porosity, 1-component, in a log(mass-density) formulation.
- 13.26.9The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, constant-bulk density, constant porosity, 1-component, in a log(mass-density), volumetric formulation.
- 13.26.10The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, constant-bulk density, HMporosity, 1-component, unsaturated.
- 13.26.11The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 2-phase, constant-bulk density, 2-component, PS-formulation.
- 13.26.12The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, constant-bulk density, HM-porosity, 1-component, unsaturated.
- 13.26.13The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, constant-bulk density, HM-porosity, 1-component, unsaturated, with a volumetric formulation.
- 13.26.14The porous flow module shall compute all Jacobian entries of physics kernels for the mass time derivative of 1-phase, with a fully-saturated formulation.
- 13.26.15The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 1-component, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.16The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-component, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.17The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 2-phase, 2-component, PS formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.18The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 2-phase, 3-component, PP formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.19The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, log-mass-density formulation, fully-saturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.20The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, log-mass-density formulation, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.21The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 2-phase, 2-component with components in both phases, PS formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.22The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 1-component, constant viscosity, Kozeny-Carman permeability, constant fluid-bulk modulus, Corey-relative permeability.
- 13.26.23The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 2-phase, 3-component, PP formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability, with RSC capilarity.
- 13.26.24The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-component, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability, with BW capilarity.
- 13.26.25The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-component, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability, with VG capilarity with a cubic extension.
- 13.26.26The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-component, constant viscosity, constant permeability, constant fluid-bulk modulus, FLAC-relative permeability.
- 13.26.27The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 2-phase, 3-component, PP-formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability, with a harmonic-mean mobility.
- 13.26.28The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 2-component multicomponent fluid (brine).
- 13.26.29The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-components, constant viscosity, constant permeability, constant fluid-bulk modulus, fully-saturated formulation.
- 13.26.30The porous flow module shall compute all Jacobian entries of physics kernels for the fluid flux, with 1-phase, 3-components, constant viscosity, constant permeability, constant fluid-bulk modulus, fully-saturated formulation with strong advection.
- 13.26.31The porous flow module shall compute all Jacobian entries of physics kernels for the effective stress, with 2-phase, 2-component, PP formulation.
- 13.26.32The porous flow module shall compute all Jacobian entries of physics kernels for the effective stress, with 2-phase, 2-component, PS formulation.
- 13.26.33The porous flow module shall compute all Jacobian entries of physics kernels for the effective stress, with 2-phase, 2-component, PP formulation, in RZ coordinates.
- 13.26.34The porous flow module shall compute all Jacobian entries of physics kernels for the effective stress, with 2-phase, 2-component, PS formulation, in RZ coordinates.
- 13.26.35The porous flow module shall compute all Jacobian entries of physics kernels for the mass volumetric expansion, with constant bulk modulus, constant porosity and VG capilarity.
- 13.26.36The porous flow module shall compute all Jacobian entries of physics kernels for the mass volumetric expansion, with constant bulk modulus, HM porosity and VG capilarity.
- 13.26.37The porous flow module shall compute all Jacobian entries of physics kernels for the mass volumetric expansion, with constant bulk modulus, HM porosity and VG capilarity, in a volumetric formulation.
- 13.26.38The porous flow module shall compute all Jacobian entries of physics kernels for the piecewise linear sink, with 1-phase and 1-component.
- 13.26.39The porous flow module shall compute all Jacobian entries of physics kernels for the piecewise linear sink, with 2-phase and 2-components.
- 13.26.40The porous flow module shall compute all Jacobian entries of physics kernels for the piecewise linear sink, with 2-phase and 3-components.
- 13.26.41The porous flow module shall compute all Jacobian entries of physics kernels for the piecewise linear sink, with 2-phase and 3-components, with enthalpy, internal energy and thermal conductivity.
- 13.26.42The porous flow module shall compute all Jacobian entries of physics kernels for the half-gaussian sink.
- 13.26.43The porous flow module shall compute all Jacobian entries of physics kernels for the half-cubic sink of fluid.
- 13.26.44The porous flow module shall compute all Jacobian entries of physics kernels for the half-cubic sink of heat.
- 13.26.45The porous flow module shall compute all Jacobian entries of physics kernels for the heat conduction, with 0 phases.
- 13.26.46The porous flow module shall compute all Jacobian entries of physics kernels for the heat conduction, with 2 phases.
- 13.26.47The porous flow module shall compute all Jacobian entries of physics kernels for the energy-density time derivative, with 0 phases.
- 13.26.48The porous flow module shall compute all Jacobian entries of physics kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements.
- 13.26.49The porous flow module shall compute all Jacobian entries of physics kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements, and TM porosity.
- 13.26.50The porous flow module shall compute all Jacobian entries of physics kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements, and THM porosity.
- 13.26.51The porous flow module shall compute all Jacobian entries of physics kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements, and THM porosity, compressive strains and ensuring porosity remains positivie.
- 13.26.52The porous flow module shall compute all Jacobian entries of physics kernels for the heat advection, with 1 phase, unsaturated.
- 13.26.53The porous flow module shall compute all Jacobian entries of physics kernels for the heat advection, with 2 phase, unsaturated.
- 13.26.54The porous flow module shall compute all Jacobian entries of physics kernels for the heat advection, with 1 phase, fully-saturated formulation.
- 13.26.55The porous flow module shall compute all Jacobian entries of physics kernels for the heat advection, with 1 phase, fully-saturated, fully-upwinded formulation.
- 13.26.56The porous flow module shall compute all Jacobian entries of physics kernels for the diffusion.
- 13.26.57The porous flow module shall compute all Jacobian entries of physics kernels for the diffusion with constant tortuousity and diffusivity.
- 13.26.58The porous flow module shall compute all Jacobian entries of physics kernels for the diffusion with 2-phases, with saturation-dependent tortuousity and MQ diffusion coefficients.
- 13.26.59The porous flow module shall compute all Jacobian entries of physics kernels for the transverse dispersion.
- 13.26.60The porous flow module shall compute all Jacobian entries of physics kernels for the transverse dispersion and diffusion.
- 13.26.61The porous flow module shall compute all Jacobian entries of physics kernels for the transverse and longitudinal dispersion.
- 13.26.62The porous flow module shall compute all Jacobian entries of physics kernels for the transverse and longitudinal dispersion and diffusion.
- 13.26.63The porous flow module shall compute all Jacobian entries of physics kernels for the heat volumetric expansion, 1phase with constant bulk modulus, VG capilarity and THM porosity.
- 13.26.64The porous flow module shall compute all Jacobian entries of physics kernels for the plastic heat energy.
- 13.26.65The porous flow module shall compute all Jacobian entries of physics kernels for the a peaceman line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity.
- 13.26.66The porous flow module shall compute all Jacobian entries of physics kernels for the a poly-line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity.
- 13.26.67The porous flow module shall compute all Jacobian entries of physics kernels for the a peaceman sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity, and with many points within each element.
- 13.26.68The porous flow module shall compute all Jacobian entries of physics kernels for the a peaceman sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity, and with 5 points within each element.
- 13.26.69The porous flow module shall compute all Jacobian entries of physics kernels for the a poly-line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity, and with 5 points within each element.
- 13.26.70The porous flow module shall compute all Jacobian entries of physics kernels for the a poly-line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity, and with 1 point within each element.
- 13.26.71The porous flow module shall compute all Jacobian entries of physics kernels for the desorbed mass.
- 13.26.72The porous flow module shall compute all Jacobian entries of physics kernels for the volumetric expansion of desorbed mass.
- 13.26.73The porous flow module shall compute all Jacobian entries of physics kernels for the non-condensible gas version of water, 2 phase.
- 13.26.74The porous flow module shall compute all Jacobian entries of physics kernels for the non-condensible gas version of water, 1 liquid phase.
- 13.26.75The porous flow module shall compute all Jacobian entries of physics kernels for the non-condensible gas version of water, 1 gas phase.
- 13.26.76The porous flow module shall compute all Jacobian entries of physics kernels for the non-condensible gas version of water, 2 phase, nonisothermal.
- 13.26.77The porous flow module shall compute all Jacobian entries of physics kernels for the brine equation of state, 2 phase.
- 13.26.78The porous flow module shall compute all Jacobian entries of physics kernels for the brine equation of state, 1 liquid phase.
- 13.26.79The porous flow module shall compute all Jacobian entries of physics kernels for the brine equation of state, 1 gas phase.
- 13.26.80The porous flow module shall compute all Jacobian entries of physics kernels for the brine equation of state, 2 phase, nonisothermal.
- 13.26.81The porous flow module shall compute all Jacobian entries of physics kernels for the brine equation of state, 1 phase with salt fraction as a variable.
- 13.26.82The porous flow module shall compute all Jacobian entries of physics kernels for the exponential decay.
- 13.26.83The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissoluation not depending on temperature.
- 13.26.84The porous flow module shall compute all Jacobian entries of physics kernels for the chemical precipitation not depending on temperature.
- 13.26.85The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature.
- 13.26.86The porous flow module shall compute all Jacobian entries of physics kernels for the chemical precipitation not depending on temperature.
- 13.26.87The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution not depending on temperature where one concentration is initialized to zero, and the stoichiometry is > 1.
- 13.26.88The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution not depending on temperature where one concentration is initialized to zero, and the stoichiometry is = 1.
- 13.26.89The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution not depending on temperature where the concentrations are initialized to zero.
- 13.26.90The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature where one concentration is initialized to zero, and the stoichiometry is > 1.
- 13.26.91The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature where one concentration is initialized to zero, and the stoichiometry is = 1.
- 13.26.92The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature where concentrations are initialized to zero.
- 13.26.93The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions.
- 13.26.94The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions, with negative initial concentrations.
- 13.26.95The porous flow module shall compute all Jacobian entries of physics kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions, with some zero initial concentrations.
- 13.26.96The porous flow module shall compute all Jacobian entries of physics kernels for the porosity depending on chemical concentrations.
- 13.26.97The porous flow module shall compute all Jacobian entries of physics kernels for the mass-fractions that depend on chemical concentrations.
- 13.26.98The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a pre-defined velocity vector, in the 0-phase, no temperature case.
- 13.26.99The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a Darcy velocity vector in the fully-saturated, constant permeability, constant viscosity case.
- 13.26.100The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a Darcy velocity vector in the unsaturated, constant permeability, constant viscosity case.
- 13.26.101The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a Darcy velocity vector in the unsaturated, non-isothermal, constant permeability, constant viscosity case.
- 13.26.102The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a Darcy velocity vector in the unsaturated case.
- 13.26.103The porous flow module shall compute all Jacobian entries of physics kernels for the basic advection with a Darcy velocity vector in the 2-phase PP case.
- 13.26.104The porous flow module shall compute all Jacobian entries of physics kernels for the enthalpy sink, where porepressure is specified.
- 13.26.105The porous flow module shall compute all Jacobian entries of physics kernels for the enthalpy sink, where external pressure is specified.
- 13.26.106The porous flow module shall compute all Jacobian entries of physics kernels for the enthalpy source.
- 13.26.107The porous flow module shall compute all Jacobian entries of physics kernels for the outflow boundary condition, 1-phase, 1-component.
- 13.26.108The porous flow module shall compute all Jacobian entries of physics kernels for the outflow heat boundary condition, 1-phase, 1-component.
- 13.26.109The porous flow module shall compute all Jacobian entries of physics kernels for the outflow fluid and heat boundary conditions, 1-phase, multi-component.
- 13.26.110The porous flow module shall compute all Jacobian entries of physics kernels for the outflow fluid boundary conditions, multi-phase, multi-component.
- 13.26.111The porous flow module shall be able to calculate the analytic Jacobian of systems that include a porosity that is a linear function of effective porepressure, temperature and volumetric strain.
- 13.26.112The porous flow module shall compute all Jacobian entries of FV physics kernels for flux and mass conservation.
- porous_flow: Mass Conservation
- 13.27.1The system shall correctly compute the total fluid mass in a single-phase, single-component fluid.
- 13.27.2The system shall correctly compute the total fluid masses in a single-phase, multi-component fluid.
- 13.27.3The system shall correctly compate the evolution of fluid mass when there is a source of fluid.
- 13.27.4The system shall conserve mass in a material with impermeable boundaries that is compressed mechanically.
- 13.27.5The system shall correctly compute the total fluid masses in a multi-phase, multi-component fluid.
- 13.27.6The system shall correctly compute the component and phase fluid masses in a multi-phase, multi-component fluid, at all saturations, and above a saturation threshold.
- 13.27.7If the phase number exceeds the number of phases in the system, the system shall produce an appropriate error message and exit.
- 13.27.8If the phase index exceeds the number of phases in the system, the system shall produce an appropriate error message and exit.
- 13.27.9If a saturation threshold is used in computing the fluid mass, and a phase index is not provided, the system shall produce an appropriate error message and exit.
- 13.27.10If the user enters a PorousFlow variable number that is not less than the number of PorousFlow variables, the system shall produce an appropriate error message and exit.
- 13.27.11The system shall conserve mass in a material with impermeable boundaries that is allowed to expand mechanically while being injected with fluid.
- 13.27.12The system shall conserve mass in an annular material with impermeable boundaries that is compressed vertically.
- 13.27.13The system shall conserve mass in an annular material with impermeable boundaries that is compressed radially.
- 13.27.14If the user enters a base_name strain that does not exist when using FV variables, the system should produce an error.
- 13.27.15If the user enters a base_name strain that does not exist when using FE variables, the system should produce an error.
- porous_flow: Newton Cooling
- 13.28.1PorousFlow shall be able to model transient newton cooling acting on the fluid mass and agree with the analytic solution
- 13.28.2PorousFlow shall be able to model steady-state newton cooling acting on the fluid mass and agree with the analytic solution
- 13.28.3PorousFlow shall be able to model steady-state newton cooling acting on the temperature and agree with the analytic solution
- 13.28.4PorousFlow shall be able to model newton cooling acting on the porepressure and at the same time extracting heat along with the extracted fluid and agree with the analytic solution
- 13.28.5PorousFlow shall be able to model newton cooling acting on the porepressure of an ideal gas and at the same time extracting heat along with the extracted gas and agree with the analytic solution
- porous_flow: Numerical Diffusion
- 13.29.1The system shall be able to solve the advection equation
- 13.29.2PorousFlow shall be able to solve the advection of fluid species, using mass lumping and no upwinding, employing an Action
- 13.29.3PorousFlow shall be able to solve the advection of fluid species, using mass lumping and full upwinding, without employing an action
- 13.29.4PorousFlow shall be able to solve the advection of fluid species in a fully-saturated single-phase situation, using mass lumping and full upwinding, via employing an action
- 13.29.5PorousFlow shall be able to solve the advection of fluid species in a fully-saturated single-phase situation, using mass lumping and KT upwinding, via employing an action
- 13.29.6PorousFlow shall implement Kuzmin-Turek stabilization, but be able to use no antidiffusion
- 13.29.7PorousFlow shall implement Kuzmin-Turek stabilization
- 13.29.8PorousFlow shall implement Kuzmin-Turek stabilization for PorousFlow simulations. The advection via the Darcy velocity shall have the correct velocity. With no flux-limiter the results should be the same as full upwinding. The results for simulations involving PorousFlow Kernels and UserObjects when the Darcy velocity is constant shall be the same as the constant-velocity, non-PorousFlow case.
- 13.29.9PorousFlow shall implement Kuzmin-Turek stabilization for PorousFlow simulations and the user shall be able to use the PorousFlow Action system to choose the Kuzmin-Turek stabilization for single-phase, multi-component fluid flow
- porous_flow: Plastic Heating
- 13.30.1PorousFlow shall model heat generated from plastic deformation, including tensile failure
- 13.30.2PorousFlow shall model heat generated from plastic deformation, including compressive failure
- 13.30.3PorousFlow shall model heat generated from plastic deformation, including shear failure
- porous_flow: Poro Elasticity
- 13.31.1PorousFlow shall be able to model standard poroelasticity in the situation where increasing porepressure leads to volumetric expansion
- 13.31.2PorousFlow shall be able to model standard poroelasticity and be able to simulate an undrained oedometer test
- 13.31.3PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-constrained solid
- 13.31.4PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-constrained solid, using PorousFlow Actions
- 13.31.5PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-constrained solid, using a fully-saturated formulation
- 13.31.6PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid
- 13.31.7PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid, using a constant Biot modulus
- 13.31.8PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid, using a constant Biot modulus, and be able to simulate this using an Action
- 13.31.9PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid, using a fully-saturated formulation
- 13.31.10PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid, using a fully-saturated formulation, based on fluid volumes instead of fluid masses
- 13.31.11PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid, using a Actions
- 13.31.12PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium
- 13.31.13PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium, using a constant Biot modulus
- 13.31.14PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium, using a fully-saturated formalism
- 13.31.15PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium, using a fully-saturated formalism based on fluid volume instaed of the usual fluid mass
- 13.31.16PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium, using Actions
- 13.31.17PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium
- 13.31.18PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium, using a constant Biot modulus
- 13.31.19PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium, using a fully-saturated formalism
- 13.31.20PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium, using Actions
- 13.31.21PorousFlow shall be able to model standard poroelasticity and be able to calculate porosity and permeability increases in an unconfined sample where porepressure is increased
- porous_flow: Poroperm
- 13.32.1The system shall be able to calculate permeability as a Kozeny-Carman function of porosity, where permeability is defined via setting a grain size.
- 13.32.2The system shall be able to calculate permeability as a Kozeny-Carman function of porosity, where permeability is defined via setting a grain size.
- 13.32.3The system shall be able to calculate permeability as a Kozeny-Carman function of porosity, where permeability is defined via setting a reference value of porosity.
- 13.32.4The system shall be able to calculate permeability as an exponential function of porosity, where an anisotropy is specified, and k is defined through an exponential function.
- 13.32.5The system shall be able to calculate permeability as an exponential function of porosity, where an anisotropy is specified, and k is defined through an exponential function.
- 13.32.6The system shall be able to calculate permeability as an exponential function of porosity, where an anisotropy is specified, and log(k) is defined through a linear function.
- 13.32.7The system shall be able to calculate permeability as an exponential function of porosity, where an anisotropy is specified, and ln(k) is defined through a linear function.
- 13.32.8The system shall be able to calculate porosity for thermo-hydro-mechanical coupled models.
- 13.32.9The system shall be able to calculate porosity for thermo-mechanical coupled models.
- 13.32.10The system shall be able to calculate porosity for hydro-mechanical coupled models.
- 13.32.11The system shall produce an error if the porosity depends on temperature but no thermal expansion coefficient is provided.
- 13.32.12The system shall produce an error if the porosity depends on porepressure but no solid bulk modulus is provided.
- 13.32.13The system shall be able to calculate permeability as a product of an anisotropic tensor and a constant term.
- 13.32.14The system shall be able to calculate permeability as a product of an anisotropic tensor and a constant term.
- 13.32.15The system shall be able to calculate permeability as a product of an anisotropic tensor and a spatially-varying variable.
- 13.32.16The system shall be able to calculate isotropic, spatially-varying permeability.
- 13.32.17The system shall produce an error if a linear porosity relationship that depends on effective fluid pressure is used if there is no effective fluid pressure material.
- 13.32.18The system shall produce an error if a linear porosity relationship that depends on temperature is used if there is no temperature material.
- 13.32.19The system shall produce an error if a linear porosity relationship that depends on volumetric strain is used if there is no volumetric-strain material.
- 13.32.20The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain.
- 13.32.21The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain and place a lower bound on the resulting porosity.
- porous_flow: Pressure Pulse
- 13.33.1The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics.
- 13.33.2The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics, and be able to employ the Action system in such settings.
- 13.33.3The system shall find the steady-state distribution resulting from a pressure pulse in 1D using 1 phase physics.
- 13.33.4The system shall find the steady-state distribution resulting from a pressure pulse in 1D using 1 phase physics, and be able to employ the Action system in such settings
- 13.33.5The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 fluid phase with multiple components.
- 13.33.6The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 fluid phase with multiple components, and be able to employ the Action system in such simulations.
- 13.33.7The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, when one phase has zero saturation.
- 13.33.8The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components specified using CONSTANT MONOMIAL AuxVariables, when one phase has zero saturation.
- 13.33.9The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, when one phase has zero saturation using FV variables.
- 13.33.10The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with constant capillary pressure.
- 13.33.11The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with constant capillary pressure using FV variables.
- 13.33.12The system shall implement Kuzmin-Turek stabilization for multi-phase, multi-component simulations, and illustrate this through the transient evolution of a pressure pulse.
- 13.33.13The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with van-Genuchten capillary pressure.
- 13.33.14The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with van-Genuchten capillary pressure and a logarithmic extension.
- 13.33.15The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase in the MD formulation where the primary variable is log(mass-density).
- 13.33.16The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase and employing the fully-saturated version of Darcy flow.
- 13.33.17The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase with 3 components and employing the fully-saturated version of Darcy flow.
- 13.33.18The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase and employing the fully-saturated version of Darcy flow along with the fully-saturated version of the fluid-mass time derivative.
- 13.33.19The system shall correctly simulate the transient evolution of a pressure pulse when mesh adaptivity is included.
- 13.33.20The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use full-upwinding in such settings.
- 13.33.21The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use no upwinding in such settings.
- 13.33.22The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use KT stabilization in such settings.
- 13.33.23The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics with FV variables.
- 13.33.24The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase fully-saturated physics with FV variables.
- porous_flow: Radioactive Decay
- 13.34.1
- 13.34.2
- porous_flow: Recover
- 13.35.1PorousFlow shall be able to recover from a checkpoint save
- 13.35.2PorousFlow shall be able to recover from a checkpoint save
- 13.35.3PorousFlow shall be able to recover from a checkpoint save
- 13.35.4PorousFlow shall be able to recover from a checkpoint save
- 13.35.5PorousFlow shall be able to recover from a checkpoint save
- 13.35.6PorousFlow shall be able to recover from a checkpoint save
- porous_flow: Relperm
- 13.36.1
- 13.36.2
- 13.36.3
- 13.36.4
- 13.36.5
- 13.36.6
- 13.36.7
- 13.36.8
- 13.36.9
- porous_flow: Sinks
- 13.37.1PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow
- 13.37.2PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, when the source/sink strength is multiplied by the mobility
- 13.37.3PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, unsaturated flow, when the source/sink strength is multiplied by the relative permeability
- 13.37.4PorousFlow shall be able to model source/sink boundary condition for single-phase, single-component flow, when the boundary flux is a piecewise-linear function of porepressure
- 13.37.5PorousFlow shall be able to model source/sink boundary condition for single-phase, single-component flow, when the boundary flux is a half-gaussian function of porepressure
- 13.37.6PorousFlow shall be able to model source/sink boundary condition for single-phase, single-component flow, when the boundary flux is a half-cubic function of porepressure
- 13.37.7PorousFlow shall be able to model a source/sink boundary condition for single-phase, multi-component, fully-saturated flow
- 13.37.8PorousFlow shall be able to model a source/sink boundary condition for multi-phase, multi-component flow
- 13.37.9PorousFlow shall be able to model a source/sink boundary condition that holds porepressures fixed and extracts fluid components from boundaries at a rate prescribed by the flow within the model at the boundary - viz, the sink should behave like a free boundary
- 13.37.10PorousFlow shall be able to model a source/sink boundary condition that holds porepressures fixed and extracts fluid components from boundaries at a rate prescribed by the flow within the model at the boundary - viz, the sink should behave like a free boundary, and this feature shall be compatible with the fully-saturated formalism within PorousFlow
- 13.37.11PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the left-side nodes in this case
- 13.37.12PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the right-side nodes in this case
- 13.37.13PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the top-side nodes in this case
- 13.37.14PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the bottom-side nodes in this case
- 13.37.15PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the front-side nodes in this case
- 13.37.16PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow, and the source/sink shall remove fluid from the correct node in a mesh: the back-side nodes in this case
- 13.37.17PorousFlow shall be able to inject fluid at user specified temperature.
- 13.37.18PorousFlow shall be able to setup fluid injection at user specified temperature using a simplified syntax.
- 13.37.19PorousFlow shall report an error when incorrect number of variables is used when using a simplified enthalpy sink BC syntax.
- 13.37.20PorousFlow shall report an error when more than 2 porepressure variables are specified when using a simplified BC syntax.
- 13.37.21PorousFlow shall report an error when both external and pore pressures are specified.
- 13.37.22PorousFlow shall report an error when neither external and pore pressures are specified.
- 13.37.23PorousFlow shall report an error when incorrect fluid phase is specified in a BC for injecting fluid at user specified temperature.
- 13.37.24PorousFlow shall be able to inject fluid at user specified pressure and temperature.
- 13.37.25PorousFlow shall be able to model a free boundary condition for multi-phase, multi-component fluids, and a clear example showing how this is possible shall be given
- 13.37.26PorousFlow shall be able to model a source/sink boundary condition, and a clear example showing how these boundary conditions can be used to fix porepressures shall be given
- 13.37.27PorousFlow shall report an error for an incorrect mass-fraction specification in PorousFlowOutflowBC
- 13.37.28PorousFlow shall report an error if there is no nodal density Material when using PorousFlowOutflowBC
- 13.37.29PorousFlow shall report an error if there is no nodal relative-permeability Material when using PorousFlowOutflowBC
- 13.37.30PorousFlow shall report an error if there is no nodal mass-fraction Material when using PorousFlowOutflowBC
- 13.37.31PorousFlow shall report an error if there is no thermal conductivity Material when using PorousFlowOutflowBC
- 13.37.32PorousFlow shall report an error if there is no enthalpy Material when using PorousFlowOutflowBC
- 13.37.33PorousFlow shall report an error if there is no temperature Material when using PorousFlowOutflowBC
- 13.37.34PorousFlow shall be able to model an outflow boundary condition in single-phase, fully-saturated, multi-component cases
- 13.37.35PorousFlow shall be able to model an outflow boundary condition in single-phase, fully-saturated, single-component case and record the total mass outflow
- 13.37.36PorousFlow shall be able to model a heat-energy outflow boundary condition in single-phase, fully-saturated, single-component case and record the total heat-energy outflow
- 13.37.37PorousFlow shall be able to model a free, outflow boundary condition for multi-phase, multi-component fluids
- porous_flow: Thermal Conductivity
- 13.38.1
- porous_flow: Thm Rehbinder
- 13.39.1
- 13.39.2
- 13.39.3
Usability Requirements
No requirements of this type exist for this application, beyond those of its dependencies.Performance Requirements
No requirements of this type exist for this application, beyond those of its dependencies.System Interfaces
No requirements of this type exist for this application, beyond those of its dependencies.System Operations
Human System Integration Requirements
The Porous Flow module is command line driven and conforms to all standard terminal behaviors. Specific human system interaction accommodations shall be a function of the end-user's terminal. MOOSE (and therefore the Porous Flow module) does support optional coloring within the terminal's ability to display color, which may be disabled.
Maintainability
The latest working version (defined as the version that passes all tests in the current regression test suite) shall be publicly available at all times through the repository host provider.
Flaws identified in the system shall be reported and tracked in a ticket or issue based system. The technical lead will determine the severity and priority of all reported issues and assign resources at their discretion to resolve identified issues.
The software maintainers will entertain all proposed changes to the system in a timely manner (within two business days).
The core software in its entirety will be made available under the terms of a designated software license. These license terms are outlined in the LICENSE file alongside the Porous Flow module source code. As a MOOSE physics module, the license for the Porous Flow module is identical to that of the framework - that is, the LGPL version 2.1 license.
Reliability
The regression test suite will cover at least 95% of all lines of code within the Porous Flow module at all times. Known regressions will be recorded and tracked (see Maintainability) to an independent and satisfactory resolution.
System Modes and States
MOOSE applications normally run in normal execution mode when an input file is supplied. However, there are a few other modes that can be triggered with various command line flags as indicated here:
Command Line Flag | Description of mode |
---|---|
-i <input_file> | Normal execution mode |
--split-mesh <splits> | Read the mesh block splitting the mesh into two or more pieces for use in a subsequent run |
--use-split | (implies -i flag) Execute the simulation but use pre-split mesh files instead of the mesh from the input file |
--yaml | Output all object descriptions and available parameters in YAML format |
--json | Output all object descriptions and available parameters in JSON format |
--syntax | Output all registered syntax |
--registry | Output all known objects and actions |
--registry-hit | Output all known objects and actions in HIT format |
--mesh-only (implies -i flag) | Run only the mesh related tasks and output the final mesh that would be used for the simulation |
--start-in-debugger <debugger> | Start the simulation attached to the supplied debugger |
The list of system-modes may not be extensive as the system is designed to be extendable to end-user applications. The complete list of command line options for applications can be obtained by running the executable with zero arguments. See the command line usage.
Physical Characteristics
The Porous Flow module is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running the Porous Flow module.
Environmental Conditions
Not Applicable
System Security
MOOSE-based applications such as the Porous Flow module have no requirements or special needs related to system security. The software is designed to run completely in user-space with no elevated privileges required nor recommended.
Information Management
The core framework and all modules in their entirety will be made publicly available on an appropriate repository hosting site. Day-to-day backups and security services will be provided by the hosting service. More information about MOOSE backups of the public repository on INL-hosted services can be found on the following page: GitHub Backups
Polices and Regulations
MOOSE-based applications must comply with all export control restrictions.
System Life Cycle Sustainment
MOOSE-based development follows various agile methods. The system is continuously built and deployed in a piecemeal fashion since objects within the system are more or less independent. Every new object requires a test, which in turn requires an associated requirement and design description. The Porous Flow module development team follows the NQA-1 standards.
Packaging, Handling, Shipping and Transportation
No special requirements are needed for packaging or shipping any media containing MOOSE and Porous Flow module source code. However, some MOOSE-based applications that use the Porous Flow module may be export-controlled, in which case all export control restrictions must be adhered to when packaging and shipping media.
Verification
The regression test suite will employ several verification tests using comparison against known analytical solutions, the method of manufactured solutions, and convergence rate analysis.