Porous Flow System Requirements Specification

This template follows INL template TEM-135, "IT System Requirements Specification".

commentnote

This document serves as an addendum to Framework System Requirements Specification and captures information for SRS specific to the Porous Flow application.

Introduction

System Purpose

The MOOSE is a tool for solving complex coupled Multiphysics equations using the finite element method. MOOSE uses an object-oriented design to abstract data structure management, parallelism, threading and compiling while providing an easy to use interface targeted at engineers that may not have a lot of software development experience. MOOSE will require extreme scalability and flexibility when compared to other FEM frameworks. For instance, MOOSE needs the ability to run extremely complex material models, or even third-party applications within a parallel simulation without sacrificing parallelism. This capability is in contrast to what is often seen in commercial packages, where custom material models can limit the parallel scalability, forcing serial runs in the most severe cases. When comparing high-end capabilities, many MOOSE competitors target modest-sized clusters with just a few thousand processing cores. MOOSE, however, will be required to routinely executed on much larger clusters with scalability to clusters available in the top 500 systems (top500.org). MOOSE will also be targeted at smaller systems such as high-end laptop computers.

The design goal of MOOSE is to give developers ultimate control over their physical models and applications. Designing new models or solving completely new classes of problems will be accomplished by writing standard C++ source code within the framework's class hierarchy. Scientists and engineers will be free to implement completely new algorithms using pieces of the framework where possible, and extending the framework's capabilities where it makes sense to do so. Commercial applications do not have this capability, and instead opt for either a more rigid parameter system or a limited application-specific metalanguage.

System Scope

MOOSE's scope is to provide a set of interfaces for building FEM simulations. Abstractions to all underlying libraries are provided.

Solving coupled problems where competing physical phenomena impact one and other in a significant nonlinear fashion represents a serious challenge to several solution strategies. Small perturbations in strongly-coupled parameters often have very large adverse effects on convergence behavior. These adverse effects are compounded as additional physics are added to a model. To overcome these challenges, MOOSE employs three distinct yet compatible systems for solving these types of problems.

First, an advanced numerical technique called the JFNK method is employed to solve the most fully-coupled physics in an accurate, consistent way. An example of this would be the effect of temperature on the expansion or contraction of a material. While the JFNK numerical method is very effective at solving fully-coupled equations, it can also be computationally expensive. Plus, not all physical phenomena in a given model are truly coupled to one another. For instance, in a reactor, the speed of the coolant flow may not have any direct effect on the complex chemical reactions taking place inside the fuel rods. We call such models "loosely-coupled". A robust, scalable system must strike the proper balance between the various modeling strategies to avoid performing unnecessary computations or incorrectly predicting behavior in situations such as these.

MOOSE's Multiapp system will allow modelers to group physics into logical categories where MOOSE can solve some groups fully-coupled and others loosely-coupled. The Multiapp system goes even further by also supporting a "tightly-coupled" strategy, which falls somewhere between the "fully-coupled" and "loosely-coupled" approaches. Several sets of physics can then be linked together into logical hierarchies using any one of these coupling strategies, allowing for several potential solution strategies. For instance, a complex nuclear reactor model might consist of several tightly-coupled systems of fully-coupled equations.

Finally, MOOSE's Transfers system ties all of the physics groups contained within the Multiapp system together and allows for full control over the flow of information among the various groups. This capability bridges physical phenomena from several different complementary scales simultaneously. When these three MOOSE systems are combined, myriad coupling combinations are possible. In all cases, the MOOSE framework handles the parallel communication, input, output and execution of the underlying simulation. By handling these computer science tasks, the MOOSE framework keeps modelers focused on doing research.

MOOSE innovates by building advanced simulation capabilities on top of the very best available software technologies in a way that makes them widely accessible for innovative research. MOOSE is equally capable of solving small models on common laptops and the very biggest FEM models ever attempted—all without any major changes to configuration or source code. Since its inception, the MOOSE project has focused on both developer and computational efficiency. Improved developer efficiency is achieved by leveraging existing algorithms and technologies from several leading open-source packages. Additionally, MOOSE uses several complementary parallel technologies (both the distributed-memory message passing paradigm and shared-memory thread-based approaches are used) to lay an efficient computational foundation for development. Using existing open technologies in this manner helps the developers reduce the scope of the project and keeps the size of the MOOSE code base maintainable. This approach provides users with state-of-the-art finite element and solver technology as a basis for the advanced coupling and solution strategies mentioned previously.

MOOSE's developers work openly with other package developers to make sure that cutting-edge technologies are available through MOOSE, providing researchers with competitive research opportunities. MOOSE maintains a set of objects that hide parallel interfaces while exposing advanced spatial and temporal coupling algorithms in the framework. This accessible approach places developmental technology into the hands of scientists and engineers, which can speed the pace of scientific discovery.

System Overview

System Context

MOOSE is a command-line driven application. This is typical for a high-performance software that is designed to run across several nodes of a cluster system. As such, all of the 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. MOOSE does not maintain any back-end database or interact with any system daemons. It is a executable, which may be launched from the command line and writes out various result files as it runs.

Figure 1: Usage of MOOSE and MOOSE-based applications.

System Functions

Since MOOSE is a command-line driven application, all functionality provided in the framework is operated through the use of standard UNIX command line flags and the extendable MOOSE input file. The framework is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.

User Characteristics

  • Framework Developers: These are the core developers of the framework. They will be responsible for following and enforcing the appropriate software development standards. They will be responsible for designing, implementing and maintaining the software.

  • Developers: A Scientist or Engineer that utilizes the framework to build his or her own application. This user will typically have a background in modeling and simulation techniques and/or numerical analysis but may only have a limited skill-set when it comes to object-oriented coding and the C++ language. This is our primary focus group. In many cases these developers will be encouraged to give their code back to the framework maintainers.

  • Analysts: These are users that will run the code and perform various 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 application is developed using MOOSE and is based on various modules, as such the SRS for Porous Flow is dependent upon the files listed at the beginning of this document.

References

  1. ISO/IEC/IEEE 24765:2010(E). Systems and software engineering—Vocabulary. first edition, December 15 2010.[BibTeX]
  2. ASME NQA-1. ASME NQA-1-2008 with the NQA-1a-2009 addenda: Quality Assurance Requirements for Nuclear Facility Applications. first edition, August 31 2009.[BibTeX]

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

AcronymDescription
FEMFinite Element Method
INLIdaho National Laboratory
JFNKJacobian-Free Newton-Krylov
LGPLGNU Lesser General Public License
MOOSEMultiphysics Object Oriented Simulation Environment
NQA-1Nuclear Quality Assurance Level 1
POSIXPortable Operating System Interface
SRSSoftware Requirement Specification

System Requirements

- A POSIX compliant Unix including the two most recent versions of MacOS and most current versions of Linux. - 4 GB of RAM for optimized compilation (8 GB for debug compilation), 2 GB per core execution - 100 GB disk space - C++17 compatible compiler (GCC, Clang) - Python 3.7+ - Git

Functional Requirements

  • porous_flow: Actions
  • 16.1.1The system shall calculate proper density, viscosity, enthalpy and internal energy with the PorousFlowBrine material when using PorousFlowFullySaturated Action.
  • 16.1.2The system shall produce an error when attempting to use a PorousFlowBrine Material without any NaCl variable
  • 16.1.3The system shall produce an error when attempting to use a PorousFlowBrine Material at the same time as a PorousFlowSimpleFluidProperties Material
  • 16.1.4The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material at the same time as a PorousFlowBrine Material
  • 16.1.5The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material without a fluid-properties UserObject
  • 16.1.6The system shall produce an error when attempting to use a non-standard pressure unit choice with PorousFlowBrine
  • 16.1.7The system shall produce an error when attempting to use a non-standard time unit choice with PorousFlowBrine
  • 16.1.8The system shall produce an error if PorousFlowUnsaturated is used with no stabilization.
  • 16.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
  • 16.1.10The system shall produce a warning when attempting to add materials to the simulation when using the PorousFlowFullySaturated Action.
  • 16.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.
  • 16.1.12The system shall handle adding materials properly when the add_nodes parameter is supplied in the PorousFlowFullySaturated Action.
  • 16.1.13The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = Hydro.
  • 16.1.14The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydro.
  • 16.1.15The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = HydroMechanical.
  • 16.1.16The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydroMechanical.
  • 16.1.17The system shall handle adding materials properly when materials are block restricted
  • 16.1.18The system shall add all required objects when using PorousFlowBasicTHM Action to allow boreholes to be used
  • 16.1.19The system shall add all required objects when using PorousFlowFullySaturated Action to allow boreholes to be used
  • 16.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
  • 16.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
  • porous_flow: Adaptivity
  • 16.2.1The system shall work when using mesh adaptivity with TRI3 elements
  • 16.2.2The system shall work when using mesh adaptivity with QUAD elements
  • 16.2.3The system shall work when using mesh adaptivity with TET4 elements
  • 16.2.4The system shall work when using mesh adaptivity with HEX elements
  • porous_flow: Aux Kernels
  • 16.3.1PorousFlow shall be able to calculate the Darcy flow velocity vector for a fully-saturated case
  • 16.3.2PorousFlow shall be able to populate AuxVariables corresponding to capillary pressure, saturation, fluid density, etc
  • 16.3.3PorousFlow shall be able to calculate the Darcy flow velocity vector on 2D fracture embedded inside a 3D matrix
  • 16.3.4PorousFlow 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
  • 16.3.5PorousFlow shall be able to calculate the Darcy flow velocity vector on 1D fracture embedded inside a 2D matrix
  • 16.3.6An error shall be produced if PorousFlow 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
  • 16.3.7PorousFlow 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
  • 16.3.8PorousFlow 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
  • 16.3.9PorousFlow shall be able to calculate a measure of element length in a given direction, in 2D
  • 16.3.10PorousFlow shall be able to calculate a measure of element length in a given direction, in 3D
  • 16.3.11PorousFlow shall be able to calculate element normal, and shall produce an error if a nodal variable is used to store the result
  • 16.3.12PorousFlow 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
  • 16.3.13PorousFlow 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
  • 16.3.14PorousFlow shall be able to calculate element normals for 1D and 2D elements, if provided with a perpendicular vector for the 1D elements
  • 16.3.15PorousFlow 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
  • 16.4.1
  • 16.4.2
  • 16.4.3
  • 16.4.4
  • porous_flow: Buckley Leverett
  • 16.5.1PorousFlow shall be able to simulate a Buckley-Leverett problem
  • 16.5.2PorousFlow shall be able to simulate a Buckley-Leverett problem with small saturation
  • porous_flow: Capillary Pressure
  • 16.6.1
  • 16.6.2
  • 16.6.3
  • 16.6.4
  • 16.6.5
  • porous_flow: Chemistry
  • 16.7.1
  • 16.7.2
  • 16.7.3
  • 16.7.4
  • 16.7.5
  • 16.7.6
  • 16.7.7
  • 16.7.8
  • 16.7.9
  • 16.7.10
  • 16.7.11
  • 16.7.12
  • 16.7.13
  • 16.7.14
  • 16.7.15
  • 16.7.16
  • 16.7.17
  • 16.7.18
  • 16.7.19
  • 16.7.20
  • 16.7.21
  • 16.7.22
  • 16.7.23
  • 16.7.24
  • 16.7.25
  • 16.7.26
  • 16.7.27
  • 16.7.28
  • 16.7.29
  • 16.7.30
  • porous_flow: Density
  • 16.8.1
  • porous_flow: Desorption
  • 16.9.1
  • 16.9.2
  • porous_flow: Dirackernels
  • 16.10.1PorousFlowSquarePulsePointSource shall provide a constant mass point source/sink between two specified times
  • 16.10.2The system shall provide a mass point source/sink computed by a postprocessor
  • 16.10.3The system shall provide an enthalphy point source computed by a postprocessor
  • 16.10.4PorousFlowSquarePulsePointSource shall provide a constant mass point sink between two specified times
  • 16.10.5PorousFlow shall be able to accurately simulate drawdown in 2D groundwater systems, to agree with the Theis solution
  • 16.10.6PorousFlowSquarePulsePointSource shall provide a constant mass point sink between two specified times
  • 16.10.7PorousFlowSquarePulsePointSource shall provide a constant mass point source of a specified fluid phase
  • 16.10.8PorousFlowPeacemanBorehole shall throw an error if the fluid phase is larger than the number of phases in the system
  • 16.10.9PorousFlowPeacemanBorehole shall throw an error if the fluid component is larger than the number of fluid components in the system
  • 16.10.10PorousFlowPeacemanBorehole shall throw an error if flux is a function of porepressure but no porepressure material exists
  • 16.10.11PorousFlowPeacemanBorehole shall throw an error if flux is a function of temperature but no temperature material exists
  • 16.10.12PorousFlowPeacemanBorehole shall throw an error if flux is restricted to a specific fluid component but no mass fraction material exists
  • 16.10.13PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal fluid density material exists
  • 16.10.14PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal relative permeability material exists
  • 16.10.15PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by mobility but no nodal fluid density material exists
  • 16.10.16PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by enthalpy but no fluid enthalpy material exists
  • 16.10.17PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by internal energy but no fluid internal energy material exists
  • 16.10.18PorousFlowPeacemanBorehole shall throw an error if flux is to be multiplied by relative permeability but no nodal relative permeability material exists
  • 16.10.19PorousFlowPeacemanBorehole shall throw an error if the given point file does not exist
  • 16.10.20PorousFlowPeacemanBorehole shall throw an error if two points in the point file are coincident
  • 16.10.21PorousFlowPeacemanBorehole shall throw an error if the element containing the dirac kernel is not larger than the specified borehole radius
  • 16.10.22PorousFlowPeacemanBorehole shall throw an error if flux is a function of porepressure but no permeability material exists
  • 16.10.23PorousFlowPeacemanBorehole shall throw an error if flux is a function of temperature but no thermal conductivity material exists
  • 16.10.24PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.25PorousFlowPolyLineSink shall extract fluid at the specified rate when using the line_base parameter
  • 16.10.26PorousFlowPolyLineSink shall abort with an error if the line base, direction, and length cause the line to exit the mesh domain."
  • 16.10.27PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.28PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.29PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.30PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.31PorousFlowPolyLineSink shall be able to dynamically create dirac points automatically in response to changing mesh geometry.
  • 16.10.32PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.33PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.34PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.35PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.36PorousFlowPolyLineSink shall extract fluid at the specified rate
  • 16.10.37PorousFlowPolyLineSink shall extract fluid at the specified rate getting the coordinates from a reporter
  • 16.10.38PorousFlowPolyLineSink shall abort with an error if the reporter containing the coordinates is not the same size as the reporter containing weights
  • 16.10.39PorousFlowPolyLineSink shall abort with an error if the coordinates reporter is empty
  • 16.10.40PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system
  • 16.10.41PorousFlowPeacemanBorehole shall inject fluid at the specified rate in a fully-saturated system
  • 16.10.42PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system
  • 16.10.43PorousFlowPeacemanBorehole shall inject fluid at the specified rate in an unsaturated system
  • 16.10.44PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a cylindrical model
  • 16.10.45PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a cylindrical model
  • 16.10.46PorousFlowPeacemanBorehole shall extract fluid at the specified rate in a fully-saturated system using reporter for input
  • 16.10.47Multiple PorousFlowPeacemanBorehole objects shall be able to inject and extract fluid in different locations
  • 16.10.48If the strain at the nearest quadpoint is used when evaluating PorousFlowPorosity that is coupled to solid mechanics, all PorousFlow DiracKernels shall be usable
  • 16.10.49It shall be possible to use PorousFlow DiracKernels in simulations involving plastic deformation
  • porous_flow: Dispersion
  • 16.11.1PorousFlow shall correctly simulate the molecular diffusion
  • 16.11.2PorousFlow shall correctly simulate the molecular diffusion when using an action
  • 16.11.3PorousFlow shall correctly simulate the hydrodynamic dispersion
  • 16.11.4PorousFlow shall correctly simulate the hydrodynamic dispersion in a high-resolution setting
  • porous_flow: Energy Conservation
  • 16.12.1PorousFlow shall produce an error if the user specifies a phase number that is too large for the simulation according to the PorousFlowDictator
  • 16.12.2PorousFlow shall produce an error if the user specifies a porous-flow variable that is too large for the simulation according to the PorousFlowDictator
  • 16.12.3PorousFlow shall correctly calculate the heat energy using the heat-energy postprocessor when there are no fluids and constant porosity
  • 16.12.4PorousFlow shall correctly calculate the heat energy using the heat-energy postprocessor when there is 1 fluid phase and constant porosity
  • 16.12.5PorousFlow shall correctly conserve heat energy in a THM simulation when the model is squashed mechanically
  • 16.12.6PorousFlow shall correctly conserve heat energy in a THM simulation when the model is squashed mechanically, in RZ coordinates
  • 16.12.7PorousFlow shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy
  • 16.12.8PorousFlow shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy and fluid, in RZ coordinates
  • 16.12.9PorousFlow shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy, when using the PorousFlowUnsaturated Action
  • 16.12.10PorousFlow shall correctly calculate time-varying temperature, porepressure, stress and porosity in a model containing a source of heat energy, when using the PorousFlowFullySaturated Action
  • 16.12.11PorousFlow 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
  • 16.12.12In fully-coupled THM situations, PorousFlow shall correctly initialize the porosity when it depends on all Variables
  • porous_flow: Fluids
  • 16.13.1PorousFlow shall be able to use high-precision equations of state for water from the FluidProperties module
  • 16.13.2PorousFlow shall be able to use high-precision equations of state for methane from the FluidProperties module
  • 16.13.3PorousFlow shall be able to use equations of state for an ideal gas from the FluidProperties module
  • 16.13.4PorousFlow shall be able to use high-precision equations of state for brine from the FluidProperties module
  • 16.13.5PorousFlow shall be able to use a given UserObject for water properties
  • 16.13.6PorousFlow shall be able to use high-precision equations of state for CO2 from the FluidProperties module
  • 16.13.7PorousFlow shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the temperature unit in Kelvin
  • 16.13.8PorousFlow shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the pressure unit in MPa
  • 16.13.9PorousFlow shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in days
  • 16.13.10PorousFlow shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in hours
  • 16.13.11PorousFlow shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years
  • 16.13.12PorousFlow 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
  • 16.13.13PorousFlow 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
  • porous_flow: Fluidstate
  • 16.14.1PorousFlow shall calculate the properties of the liquid phase in a water and NCG system
  • 16.14.2PorousFlow shall calculate the solubilities and properties of both the gas and liquid phase in a water and NCG system
  • 16.14.3PorousFlow shall calculate the properties of the gas phase in a water and NCG system
  • 16.14.4PorousFlow shall evolve a gas phase as a gas component is added in a water and NCG system
  • 16.14.5PorousFlow shall evolve a gas phase as a gas component is added in a water and NCG system
  • 16.14.6PorousFlow shall evolve a gas phase as a gas component is added in a nonisothermal water and NCG system
  • 16.14.7PorousFlow shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system
  • 16.14.8PorousFlow shall evolve a gas phase as CO2 is added to a liquid brine phase
  • 16.14.9PorousFlow shall evolve a gas phase as CO2 is added to a liquid brine phase in the high temperature regime
  • 16.14.10PorousFlow shall evolve a gas phase as CO2 is added to a liquid brine phase
  • 16.14.11PorousFlow shall evolve a gas phase as CO2 is added to a liquid brine phase in a nonisothermal model
  • 16.14.12PorousFlow shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a water and NCG system
  • 16.14.13PorousFlow shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a brine and CO2 system
  • 16.14.14PorousFlow shall calculate the properties of both the gas and liquid phase in a water-steam system
  • 16.14.15PorousFlow shall calculate the liquid properties in a saturated liquid system
  • 16.14.16PorousFlow shall calculate the gas properties in a saturated gas system
  • 16.14.17PorousFlow shall evolve a vapor phase as conditions enter the two phase region
  • 16.14.18PorousFlow shall calculate the temperature profile in a 1D Avdonin problem
  • 16.14.19PorousFlow shall calculate the temperature profile in a 1D radial Avdonin problem
  • porous_flow: Flux Limited Tvd Advection
  • 16.15.1PorousFlow shall implement Kuzmin-Turek stabilization, and shall error-out if the flux-limiting computations are not evaluated on linear
  • 16.15.2PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when there is no antidiffusion
  • 16.15.3PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is minmod
  • 16.15.4PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is vanleer
  • 16.15.5PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is mc
  • 16.15.6PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries when the flux limiter is superbee
  • 16.15.7PorousFlow shall implement Kuzmin-Turek stabilization, and shall fully compute all Jacobian entries, for more than 1 thread
  • 16.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
  • 16.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
  • 16.15.10PorousFlow shall implement Kuzmin-Turek stabilization in 1D
  • 16.15.11PorousFlow shall implement Kuzmin-Turek stabilization in 1D with more than 1 thread
  • 16.15.12PorousFlow shall implement Kuzmin-Turek stabilization in 2D
  • 16.15.13PorousFlow shall implement Kuzmin-Turek stabilization in 2D with more than 1 thread
  • 16.15.14PorousFlow shall implement Kuzmin-Turek stabilization in 3D
  • 16.15.15PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the velocity is not aligned with the mesh
  • 16.15.16PorousFlow shall implement Kuzmin-Turek stabilization in 2D when using triangular mesh elements
  • 16.15.17PorousFlow shall implement Kuzmin-Turek stabilization in 2D when using triangular mesh elements and with more than 1 thread
  • 16.15.18PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the advection is block limited
  • 16.15.19PorousFlow shall implement Kuzmin-Turek stabilization in 2D when the advection is block limited, and when more than 1 thread is used
  • 16.15.20PorousFlow shall implement Kuzmin-Turek stabilization in 1D when mesh adaptivity is used
  • 16.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
  • 16.16.1PorousFlow shall error-out if the specified phase number >= number of phases in the model, when using Kuzmin-Turek stabilization
  • 16.16.2PorousFlow shall error-out if the specified fluid component number >= number of fluid components in the model, when using Kuzmin-Turek stabilization
  • 16.16.3PorousFlow shall error-out if the fe_family is specified but not fe_order, when using Kuzmin-Turek stabilization
  • 16.16.4PorousFlow error-out if the fe_order is specified but not fe_family, when using Kuzmin-Turek stabilization
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.16.18PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations
  • 16.16.19PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations, for more than 1 thread
  • 16.16.20PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations
  • 16.16.21PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, for more than 1 thread
  • 16.16.22PorousFlow shall issue a warning if the memory is inefficiently used for multi-processor simulations involving Kuzmin-Turek stablization
  • 16.16.23PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations
  • 16.16.24PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when the Darcy velocity is not aligned with the mesh
  • 16.16.25PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when using triangular mesh elements
  • 16.16.26PorousFlow shall implement Kuzmin-Turek stabilization in 2D for PorousFlow simulations, when using triangular mesh elements, and more than 1 thread
  • 16.16.27PorousFlow shall implement Kuzmin-Turek stabilization in 1D for PorousFlow simulations when mesh adaptivity is used
  • porous_flow: Functions
  • 16.17.1
  • 16.17.2
  • porous_flow: Gravity
  • 16.18.1PorousFlow 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
  • 16.18.2PorousFlow 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
  • 16.18.3PorousFlow 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
  • 16.18.4PorousFlow 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
  • 16.18.5PorousFlow 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
  • 16.18.6PorousFlow 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
  • 16.18.7PorousFlow 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
  • 16.18.8PorousFlow 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
  • 16.18.9PorousFlow 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
  • 16.18.10PorousFlow 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
  • 16.18.11PorousFlow 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
  • 16.18.12PorousFlow 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
  • 16.18.13PorousFlow 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
  • 16.18.14PorousFlow 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
  • 16.18.15PorousFlow shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems
  • 16.18.16PorousFlow 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
  • 16.18.17PorousFlow shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems, when using an action
  • 16.18.18PorousFlow shall be able to find steady-state porepressure for single-phase, fully-saturated, multicomponent systems, when using an action and a fluid-volume calculation
  • 16.18.19PorousFlow 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
  • 16.19.1PorousFlow shall produce an error when the kernel describing heat advection by a single-phase fluid is used in a multi-phase situation
  • 16.19.2PorousFlow shall correctly advect heat energy with a moving fluid, using no numerical stabilization
  • 16.19.3PorousFlow shall correctly advect heat energy with a moving fluid, using no numerical stabilization, and the user should be able to activiate this stabilization using the PorousFlow Action system
  • 16.19.4PorousFlow shall correctly advect heat energy with a moving fluid, using full-upwinding for numerical stabilization
  • 16.19.5PorousFlow shall correctly advect heat energy with a moving fluid, using full-upwinding for numerical stabilization, in fully-saturated single-phase systems
  • 16.19.6PorousFlow 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 activiate this stabilization using the PorousFlow Action system
  • 16.19.7PorousFlow shall correctly advect heat energy with a moving fluid, using the Kuzmin-Turek for numerical stabilization
  • 16.19.8PorousFlow 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
  • 16.19.9PorousFlow shall implement Kuzmin-Turek stabilization for PorousFlow simulations involving the advection of heat energy in a moving fluid
  • porous_flow: Heat Conduction
  • 16.20.1PorousFlow shall be able to simulate heat conduction in a fluid-free environment
  • 16.20.2PorousFlow shall be able to simulate heat conduction for systems containing multi-phase fluids
  • porous_flow: Heat Mass Transfer
  • 16.21.1PorousFlow shall be able to transfer heat or mass from one Variable to another when the transfer coefficient is a constant.
  • 16.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
  • 16.22.1The system shall allow the assignment of porosity and permeability from an AuxVariable field.
  • 16.22.2The system shall allow the assignment of porosity and permeability from an AuxVariable field with binlinear relationships.
  • 16.22.3The system shall allow the assignment of porosity and permeability from an AuxVariable read from a mesh
  • 16.22.4The system shall calculate permeability from a changing porosity.
  • porous_flow: Hysteresis
  • 16.23.1If the liquid phase number exceeds the number of phases in the system, PorousFlow shall produce an appropriate error message and exit
  • 16.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
  • 16.23.3An error shall be thrown if the initial order of hysteresis is incommensurate with previous_turning_points
  • 16.23.4An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]
  • 16.23.5An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]
  • 16.23.6An error shall be thrown if the turning points are incorrectly ordered
  • 16.23.7An error shall be thrown if the turning points are incorrectly ordered
  • 16.23.8An error shall be thrown if the turning points are incorrectly ordered
  • 16.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
  • 16.23.10An error shall be thrown if the maximum gas residual saturation is greater than 1 - minimum_liquid_saturation in hysteretic problems
  • 16.23.11An error shall be thrown if parameters are chosen such that the high and low extension regions of the hysteretic capillary pressure overlap
  • 16.23.12A warning shall be produced if the residual saturation is not greater than the minimum saturation in hysteretic simulations
  • 16.23.13An exception shall be thrown if a single-phase hysteretic capillary-pressure Material is used in situations with more than one fluid phase
  • 16.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
  • 16.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
  • 16.23.16When using hysteretic relative permeabilities, an exception shall be thrown if the gas residual saturation is not less than 1 - liquid_residual_saturation
  • 16.23.17PorousFlow shall be able to calculate the hysteresis order
  • 16.23.18PorousFlow shall be able to calculate the hysteresis order
  • 16.23.19PorousFlow shall be able to calculate the hysteresis order
  • 16.23.20PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
  • 16.23.21PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
  • 16.23.22PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
  • 16.23.23PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value
  • 16.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
  • 16.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
  • 16.23.26PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using no low extension
  • 16.23.27PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using quadratic low extension
  • 16.23.28PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using exponential low extension
  • 16.23.29PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using no low extension
  • 16.23.30PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension
  • 16.23.31PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.23.56PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using no low extension
  • 16.23.57PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension
  • 16.23.58PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.23.124PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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 first, second and third order curves
  • 16.23.131PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PP formulation
  • 16.23.132PorousFlow 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
  • 16.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 and then along a second-order drying curve until it meets the primary drying curve
  • 16.23.134PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PS formulation
  • 16.23.135PorousFlow 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
  • 16.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 and then along a second-order drying curve until it meets the primary drying curve
  • 16.23.137PorousFlow 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
  • 16.23.138PorousFlow 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
  • 16.23.139PorousFlow 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
  • 16.23.140PorousFlow 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
  • 16.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 cubic extension
  • 16.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 by assuming is is unity
  • 16.23.143PorousFlow shall be able to compute the full Jacobian entries when using hysteretic relative permeabilities, as the system evolves along a zeroth order curve
  • 16.23.144PorousFlow 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
  • 16.24.1PorousFlow shall calculate an initial condition for a fluid property given pressure and temperature
  • 16.24.2PorousFlow shall calculate an initial condition for a fluid property given pressure and temperature (in C)
  • porous_flow: Infiltration And Drainage
  • 16.25.1PorousFlow shall be able to model 2-phase infiltration and agree with the analytic solution
  • 16.25.2PorousFlow shall be able to model 2-phase infiltration on a coarse mesh and agree with the analytic solution
  • 16.25.3PorousFlow shall be able to model 2-phase drainage and agree with the analytic solution
  • 16.25.4PorousFlow shall be able to model 2-phase drainage on a coarse mesh and agree with the analytic solution
  • 16.25.5PorousFlow shall be able to model single-phase infiltration and agree with the analytic solution
  • 16.25.6PorousFlow shall be able to model single-phase short-term drainage and agree with the analytic solution
  • 16.25.7PorousFlow shall be able to model single-phase long-term drainage and agree with the analytic solution
  • 16.25.8PorousFlow shall be able to model water infiltration into a 2-phase and agree with the analytic solution
  • 16.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
  • 16.26.1PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, fully saturated
  • 16.26.2PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, fully saturated, in a volume approach
  • 16.26.3PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, 1-component, unsaturated
  • 16.26.4PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1phase, constant-bulk density, constant porosity, multi-component, unsaturated
  • 16.26.5PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, 2-component
  • 16.26.6PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, multi-component
  • 16.26.7PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 2-phase, constant-bulk density, constant porosity, multi-component, in a volume formulation
  • 16.26.8PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, constant-bulk density, constant porosity, 1-component, in a log(mass-density) formulation
  • 16.26.9PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, constant-bulk density, constant porosity, 1-component, in a log(mass-density), volumetric formulation
  • 16.26.10PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, constant-bulk density, HMporosity, 1-component, unsaturated
  • 16.26.11PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 2-phase, constant-bulk density, 2-component, PS-formulation
  • 16.26.12PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, constant-bulk density, HM-porosity, 1-component, unsaturated
  • 16.26.13PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, constant-bulk density, HM-porosity, 1-component, unsaturated, with a volumetric formulation
  • 16.26.14PorousFlow shall compute all Jacobian entries of Kernels for the mass time derivative of 1-phase, with a fully-saturated formulation
  • 16.26.15PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 1-component, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.16PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 3-component, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.17PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 2-phase, 2-component, PS formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.18PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 2-phase, 3-component, PP formulation, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.19PorousFlow shall compute all Jacobian entries of 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
  • 16.26.20PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, log-mass-density formulation, unsaturated, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.21PorousFlow shall compute all Jacobian entries of 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
  • 16.26.22PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 1-component, constant viscosity, Kozeny-Carman permeability, constant fluid-bulk modulus, Corey-relative permeability
  • 16.26.23PorousFlow shall compute all Jacobian entries of 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
  • 16.26.24PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 3-component, constant viscosity, constant permeability, constant fluid-bulk modulus, Corey-relative permeability, with BW capilarity
  • 16.26.25PorousFlow shall compute all Jacobian entries of 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
  • 16.26.26PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 3-component, constant viscosity, constant permeability, constant fluid-bulk modulus, FLAC-relative permeability
  • 16.26.27PorousFlow shall compute all Jacobian entries of 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
  • 16.26.28PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 3-components, constant viscosity, constant permeability, constant fluid-bulk modulus, fully-saturated formulation
  • 16.26.29PorousFlow shall compute all Jacobian entries of Kernels for the fluid flux, with 1-phase, 3-components, constant viscosity, constant permeability, constant fluid-bulk modulus, fully-saturated formulation with strong advection
  • 16.26.30PorousFlow shall compute all Jacobian entries of Kernels for the effective stress, with 2-phase, 2-component, PP formulation
  • 16.26.31PorousFlow shall compute all Jacobian entries of Kernels for the effective stress, with 2-phase, 2-component, PS formulation
  • 16.26.32PorousFlow shall compute all Jacobian entries of Kernels for the effective stress, with 2-phase, 2-component, PP formulation, in RZ coordinates
  • 16.26.33PorousFlow shall compute all Jacobian entries of Kernels for the effective stress, with 2-phase, 2-component, PS formulation, in RZ coordinates
  • 16.26.34PorousFlow shall compute all Jacobian entries of Kernels for the mass volumetric expansion, with constant bulk modulus, constant porosity and VG capilarity
  • 16.26.35PorousFlow shall compute all Jacobian entries of Kernels for the mass volumetric expansion, with constant bulk modulus, HM porosity and VG capilarity
  • 16.26.36PorousFlow shall compute all Jacobian entries of Kernels for the mass volumetric expansion, with constant bulk modulus, HM porosity and VG capilarity, in a volumetric formulation
  • 16.26.37PorousFlow shall compute all Jacobian entries of Kernels for the piecewise linear sink, with 1-phase and 1-component
  • 16.26.38PorousFlow shall compute all Jacobian entries of Kernels for the piecewise linear sink, with 2-phase and 2-components
  • 16.26.39PorousFlow shall compute all Jacobian entries of Kernels for the piecewise linear sink, with 2-phase and 3-components
  • 16.26.40PorousFlow shall compute all Jacobian entries of Kernels for the piecewise linear sink, with 2-phase and 3-components, with enthalpy, internal energy and thermal conductivity
  • 16.26.41PorousFlow shall compute all Jacobian entries of Kernels for the half-gaussian sink
  • 16.26.42PorousFlow shall compute all Jacobian entries of Kernels for the half-cubic sink of fluid
  • 16.26.43PorousFlow shall compute all Jacobian entries of Kernels for the half-cubic sink of heat
  • 16.26.44PorousFlow shall compute all Jacobian entries of Kernels for the heat conduction, with 0 phases
  • 16.26.45PorousFlow shall compute all Jacobian entries of Kernels for the heat conduction, with 2 phases
  • 16.26.46PorousFlow shall compute all Jacobian entries of Kernels for the energy-density time derivative, with 0 phases
  • 16.26.47PorousFlow shall compute all Jacobian entries of Kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements
  • 16.26.48PorousFlow shall compute all Jacobian entries of Kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements, and TM porosity
  • 16.26.49PorousFlow shall compute all Jacobian entries of Kernels for the energy-density time derivative, with 2-phase, 1-component, with solid displacements, and THM porosity
  • 16.26.50PorousFlow shall compute all Jacobian entries of 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
  • 16.26.51PorousFlow shall compute all Jacobian entries of Kernels for the heat advection, with 1 phase, unsaturated
  • 16.26.52PorousFlow shall compute all Jacobian entries of Kernels for the heat advection, with 2 phase, unsaturated
  • 16.26.53PorousFlow shall compute all Jacobian entries of Kernels for the heat advection, with 1 phase, fully-saturated formulation
  • 16.26.54PorousFlow shall compute all Jacobian entries of Kernels for the heat advection, with 1 phase, fully-saturated, fully-upwinded formulation
  • 16.26.55PorousFlow shall compute all Jacobian entries of Kernels for the diffusion
  • 16.26.56PorousFlow shall compute all Jacobian entries of Kernels for the diffusion with constant tortuousity and diffusivity
  • 16.26.57PorousFlow shall compute all Jacobian entries of Kernels for the diffusion with 2-phases, with saturation-dependent tortuousity and MQ diffusion coefficients
  • 16.26.58PorousFlow shall compute all Jacobian entries of Kernels for the transverse dispersion
  • 16.26.59PorousFlow shall compute all Jacobian entries of Kernels for the transverse dispersion and diffusion
  • 16.26.60PorousFlow shall compute all Jacobian entries of Kernels for the transverse and longitudinal dispersion
  • 16.26.61PorousFlow shall compute all Jacobian entries of Kernels for the transverse and longitudinal dispersion and diffusion
  • 16.26.62PorousFlow shall compute all Jacobian entries of Kernels for the heat volumetric expansion, 1phase with constant bulk modulus, VG capilarity and THM porosity
  • 16.26.63PorousFlow shall compute all Jacobian entries of Kernels for the plastic heat energy
  • 16.26.64PorousFlow shall compute all Jacobian entries of Kernels for the a peaceman line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity
  • 16.26.65PorousFlow shall compute all Jacobian entries of Kernels for the a poly-line sink, with 2-phase, 3-components, with enthalpy, internal energy and thermal conductivity
  • 16.26.66PorousFlow shall compute all Jacobian entries of 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
  • 16.26.67PorousFlow shall compute all Jacobian entries of 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
  • 16.26.68PorousFlow shall compute all Jacobian entries of 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
  • 16.26.69PorousFlow shall compute all Jacobian entries of 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
  • 16.26.70PorousFlow shall compute all Jacobian entries of Kernels for the desorbed mass
  • 16.26.71PorousFlow shall compute all Jacobian entries of Kernels for the volumetric expansion of desorbed mass
  • 16.26.72PorousFlow shall compute all Jacobian entries of Kernels for the non-condensible gas version of water, 2 phase
  • 16.26.73PorousFlow shall compute all Jacobian entries of Kernels for the non-condensible gas version of water, 1 liquid phase
  • 16.26.74PorousFlow shall compute all Jacobian entries of Kernels for the non-condensible gas version of water, 1 gas phase
  • 16.26.75PorousFlow shall compute all Jacobian entries of Kernels for the non-condensible gas version of water, 2 phase, nonisothermal
  • 16.26.76PorousFlow shall compute all Jacobian entries of Kernels for the brine equation of state, 2 phase
  • 16.26.77PorousFlow shall compute all Jacobian entries of Kernels for the brine equation of state, 1 liquid phase
  • 16.26.78PorousFlow shall compute all Jacobian entries of Kernels for the brine equation of state, 1 gas phase
  • 16.26.79PorousFlow shall compute all Jacobian entries of Kernels for the brine equation of state, 2 phase, nonisothermal
  • 16.26.80PorousFlow shall compute all Jacobian entries of Kernels for the brine equation of state, 1 phase with salt fraction as a variable
  • 16.26.81PorousFlow shall compute all Jacobian entries of Kernels for the exponential decay
  • 16.26.82PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissoluation not depending on temperature
  • 16.26.83PorousFlow shall compute all Jacobian entries of Kernels for the chemical precipitation not depending on temperature
  • 16.26.84PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature
  • 16.26.85PorousFlow shall compute all Jacobian entries of Kernels for the chemical precipitation not depending on temperature
  • 16.26.86PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution not depending on temperature where one concentration is initialized to zero, and the stoichiometry is > 1
  • 16.26.87PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution not depending on temperature where one concentration is initialized to zero, and the stoichiometry is = 1
  • 16.26.88PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution not depending on temperature where the concentrations are initialized to zero
  • 16.26.89PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature where one concentration is initialized to zero, and the stoichiometry is > 1
  • 16.26.90PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature where one concentration is initialized to zero, and the stoichiometry is = 1
  • 16.26.91PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature where concentrations are initialized to zero
  • 16.26.92PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions
  • 16.26.93PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions, with negative initial concentrations
  • 16.26.94PorousFlow shall compute all Jacobian entries of Kernels for the chemical dissolution depending on temperature with 3 primary variables and 4 reactions, with some zero initial concentrations
  • 16.26.95PorousFlow shall compute all Jacobian entries of Kernels for the porosity depending on chemical concentrations
  • 16.26.96PorousFlow shall compute all Jacobian entries of Kernels for the mass-fractions that depend on chemical concentrations
  • 16.26.97PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a pre-defined velocity vector, in the 0-phase, no temperature case
  • 16.26.98PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a Darcy velocity vector in the fully-saturated, constant permeability, constant viscosity case
  • 16.26.99PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a Darcy velocity vector in the unsaturated, constant permeability, constant viscosity case
  • 16.26.100PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a Darcy velocity vector in the unsaturated, non-isothermal, constant permeability, constant viscosity case
  • 16.26.101PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a Darcy velocity vector in the unsaturated case
  • 16.26.102PorousFlow shall compute all Jacobian entries of Kernels for the basic advection with a Darcy velocity vector in the 2-phase PP case
  • 16.26.103PorousFlow shall compute all Jacobian entries of Kernels for the enthalpy sink, where porepressure is specified
  • 16.26.104PorousFlow shall compute all Jacobian entries of Kernels for the enthalpy sink, where external pressure is specified
  • 16.26.105PorousFlow shall compute all Jacobian entries of Kernels for the enthalpy source
  • 16.26.106PorousFlow shall compute all Jacobian entries of Kernels for the outflow boundary condition, 1-phase, 1-component
  • 16.26.107PorousFlow shall compute all Jacobian entries of Kernels for the outflow heat boundary condition, 1-phase, 1-component
  • 16.26.108PorousFlow shall compute all Jacobian entries of Kernels for the outflow fluid and heat boundary conditions, 1-phase, multi-component
  • 16.26.109PorousFlow shall compute all Jacobian entries of Kernels for the outflow fluid boundary conditions, multi-phase, multi-component
  • 16.26.110PorousFlow 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
  • porous_flow: Mass Conservation
  • 16.27.1PorousFlow shall correctly compuate the total fluid mass in a single-phase, single-component fluid
  • 16.27.2PorousFlow shall correctly compuate the total fluid masses in a single-phase, multi-component fluid
  • 16.27.3PorousFlow shall correctly compuate the evolution of fluid mass when there is a source of fluid
  • 16.27.4PorousFlow shall conserve mass in a material with impermeable boundaries that is compressed mechanically
  • 16.27.5PorousFlow shall correctly compuate the total fluid masses in a multi-phase, multi-component fluid
  • 16.27.6PorousFlow shall correctly compuate the component and phase fluid masses in a multi-phase, multi-component fluid, at all saturations, and above a saturation threshold
  • 16.27.7If the phase number exceeds the number of phases in the system, PorousFlow shall produce an appropriate error message and exit
  • 16.27.8If the phase index exceeds the number of phases in the system, PorousFlow shall produce an appropriate error message and exit
  • 16.27.9If a saturation threshold is used in computing the fluid mass, and a phase index is not provided, PorousFlow shall produce an appropriate error message and exit
  • 16.27.10If the user enters a PorousFlow variable number that is not less than the number of PorousFlow variables, PorousFlow shall produce an appropriate error message and exit
  • 16.27.11PorousFlow shall conserve mass in a material with impermeable boundaries that is allowed to expand mechanically while being injected with fluid
  • 16.27.12PorousFlow shall conserve mass in an annular material with impermeable boundaries that is compressed verticaly
  • 16.27.13PorousFlow shall conserve mass in an annular material with impermeable boundaries that is compressed radially
  • porous_flow: Newton Cooling
  • 16.28.1PorousFlow shall be able to model transient newton cooling acting on the fluid mass and agree with the analytic solution
  • 16.28.2PorousFlow shall be able to model steady-state newton cooling acting on the fluid mass and agree with the analytic solution
  • 16.28.3PorousFlow shall be able to model steady-state newton cooling acting on the temperature and agree with the analytic solution
  • 16.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
  • 16.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
  • 16.29.1The system shall be able to solve the advection equation
  • 16.29.2PorousFlow shall be able to solve the advection of fluid species, using mass lumping and no upwinding, employing an Action
  • 16.29.3PorousFlow shall be able to solve the advection of fluid species, using mass lumping and full upwinding, without employing an action
  • 16.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
  • 16.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
  • 16.29.6PorousFlow shall implement Kuzmin-Turek stabilization, but be able to use no antidiffusion
  • 16.29.7PorousFlow shall implement Kuzmin-Turek stabilization
  • 16.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.
  • 16.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
  • 16.30.1PorousFlow shall model heat generated from plastic deformation, including tensile failure
  • 16.30.2PorousFlow shall model heat generated from plastic deformation, including compressive failure
  • 16.30.3PorousFlow shall model heat generated from plastic deformation, including shear failure
  • porous_flow: Poro Elasticity
  • 16.31.1PorousFlow shall be able to model standard poroelasticity in the situation where increasing porepressure leads to volumetric expansion
  • 16.31.2PorousFlow shall be able to model standard poroelasticity and be able to simulate an undrained oedometer test
  • 16.31.3PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-constrained solid
  • 16.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
  • 16.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
  • 16.31.6PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate fluid injection into a mechanically-unconstrained solid
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.31.12PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium
  • 16.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
  • 16.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
  • 16.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
  • 16.31.16PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Mandel consolidation of a drained medium, using Actions
  • 16.31.17PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium
  • 16.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
  • 16.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
  • 16.31.20PorousFlow shall be able to model standard poroelasticity and be able to correctly simulate Terzaghi consolidation of a drained medium, using Actions
  • 16.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
  • 16.32.1PorousFlow shall be able to calculate permeability as a Kozeny-Carman function of porosity, where permeability is defined via setting a grain size
  • 16.32.2PorousFlow shall be able to calculate permeability as a Kozeny-Carman function of porosity, where permeability is defined via setting a reference value of porosity
  • 16.32.3PorousFlow 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
  • 16.32.4PorousFlow 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
  • 16.32.5PorousFlow 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
  • 16.32.6PorousFlow shall be able to calculate porosity for thermo-hydro-mechanical coupled models
  • 16.32.7PorousFlow shall be able to calculate porosity for thermo-mechanical coupled models
  • 16.32.8PorousFlow shall be able to calculate porosity for hydro-mechanical coupled models
  • 16.32.9PorousFlow shall produce an error if the porosity depends on temperature but no thermal expansion coefficient is provided
  • 16.32.10PorousFlow shall produce an error if the porosity depends on porepressure but no solid bulk modulus is provided
  • 16.32.11PorousFlow shall be able to calculate permeability as a product of an anisotropic tensor and a constant term
  • 16.32.12PorousFlow shall be able to calculate permeability as a product of an anisotropic tensor and a spatially-varying variable
  • 16.32.13PorousFlow shall be able to calculate isotropic, spatially-varying permeability
  • 16.32.14PorousFlow 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
  • 16.32.15PorousFlow shall produce an error if a linear porosity relationship that depends on temperature is used if there is no temperature material
  • 16.32.16PorousFlow shall produce an error if a linear porosity relationship that depends on volumetric strain is used if there is no volumetric-strain material
  • 16.32.17PorousFlow shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain
  • 16.32.18PorousFlow 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
  • 16.33.1PorousFlow shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics
  • 16.33.2PorousFlow 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
  • 16.33.3PorousFlow shall find the steady-state distribution resulting from a pressure pulse in 1D using 1 phase physics
  • 16.33.4PorousFlow 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
  • 16.33.5PorousFlow shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 fluid phase with multiple components
  • 16.33.6PorousFlow 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
  • 16.33.7PorousFlow 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
  • 16.33.8PorousFlow 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
  • 16.33.9PorousFlow shall implement Kuzmin-Turek stabilization for multi-phase, multi-component PorousFlow simulations, and illustrate this through the transient evolution of a pressure pulse
  • 16.33.10PorousFlow 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
  • 16.33.11PorousFlow 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
  • 16.33.12PorousFlow 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)
  • 16.33.13PorousFlow 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
  • 16.33.14PorousFlow 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
  • 16.33.15PorousFlow 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
  • 16.33.16PorousFlow shall correctly simulate the transient evolution of a pressure pulse when mesh adaptivity is included
  • 16.33.17PorousFlow 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
  • 16.33.18PorousFlow 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
  • 16.33.19PorousFlow 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
  • porous_flow: Radioactive Decay
  • 16.34.1
  • 16.34.2
  • porous_flow: Recover
  • 16.35.1PorousFlow shall be able to recover from a checkpoint save
  • 16.35.2PorousFlow shall be able to recover from a checkpoint save
  • 16.35.3PorousFlow shall be able to recover from a checkpoint save
  • 16.35.4PorousFlow shall be able to recover from a checkpoint save
  • 16.35.5PorousFlow shall be able to recover from a checkpoint save
  • 16.35.6PorousFlow shall be able to recover from a checkpoint save
  • porous_flow: Relperm
  • 16.36.1
  • 16.36.2
  • 16.36.3
  • 16.36.4
  • 16.36.5
  • 16.36.6
  • 16.36.7
  • 16.36.8
  • 16.36.9
  • porous_flow: Sinks
  • 16.37.1PorousFlow shall be able to model a source/sink boundary condition for single-phase, single-component, fully-saturated flow
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.37.7PorousFlow shall be able to model a source/sink boundary condition for single-phase, multi-component, fully-saturated flow
  • 16.37.8PorousFlow shall be able to model a source/sink boundary condition for multi-phase, multi-component flow
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.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
  • 16.37.17PorousFlow shall be able to inject fluid at user specified temperature.
  • 16.37.18PorousFlow shall be able to setup fluid injection at user specified temperature using a simplified syntax.
  • 16.37.19PorousFlow shall report an error when incorrect number of variables is used when using a simplified enthalpy sink BC syntax.
  • 16.37.20PorousFlow shall report an error when more than 2 porepressure variables are specified when using a simplified BC syntax.
  • 16.37.21PorousFlow shall report an error when both external and pore pressures are specified.
  • 16.37.22PorousFlow shall report an error when neither external and pore pressures are specified.
  • 16.37.23PorousFlow shall report an error when incorrect fluid phase is specified in a BC for injecting fluid at user specified temperature.
  • 16.37.24PorousFlow shall be able to inject fluid at user specified pressure and temperature.
  • 16.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
  • 16.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
  • 16.37.27PorousFlow shall report an error for an incorrect mass-fraction specification in PorousFlowOutflowBC
  • 16.37.28PorousFlow shall report an error if there is no nodal density Material when using PorousFlowOutflowBC
  • 16.37.29PorousFlow shall report an error if there is no nodal relative-permeability Material when using PorousFlowOutflowBC
  • 16.37.30PorousFlow shall report an error if there is no nodal mass-fraction Material when using PorousFlowOutflowBC
  • 16.37.31PorousFlow shall report an error if there is no thermal conductivity Material when using PorousFlowOutflowBC
  • 16.37.32PorousFlow shall report an error if there is no enthalpy Material when using PorousFlowOutflowBC
  • 16.37.33PorousFlow shall report an error if there is no temperature Material when using PorousFlowOutflowBC
  • 16.37.34PorousFlow shall be able to model an outflow boundary condition in single-phase, fully-saturated, multi-component cases
  • 16.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
  • 16.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
  • 16.37.37PorousFlow shall be able to model a free, outflow boundary condition for multi-phase, multi-component fluids
  • porous_flow: Thermal Conductivity
  • 16.38.1
  • porous_flow: Thm Rehbinder
  • 16.39.1
  • 16.39.2
  • 16.39.3

Usability Requirements

Performace Requirements

System Interfaces

System Operations

Human System Integration Requirements

MOOSE is a command line driven application which conforms to all standard terminal behaviors. Specific human system interaction accommodations shall be a function of the end-user's terminal. MOOSE does support optional coloring within the terminal's ability to display color, which may be disabled.

Maintainablity

- 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 his or her 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 framework in its entirety will be made publicly available under the GNU Lesser General Public License (LGPL) version 2.0 license.

Reliability

The regression test suite will cover at least 80% of all lines of code at all times. Known regressions will be recorded and tracked (see Maintainablity) 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 FlagDescription 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(inplies -i flag) Execute the the simulation but use pre-split mesh files instead of the mesh from the input file
--yamlOutput all object descriptions and available parameters in YAML format
--jsonOutput all object descriptions and available parameters in JSON format
--syntaxOutput all registered syntax
--registryOutput all known objects and actions
--registry-hitOutput 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
commentnote

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.

Phyisical Characteristics

MOOSE is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running a MOOSE-based application.

Environmental Conditions

Not Applicable

System Security

MOOSE based applications have no requirements or special needs related to system-security. The framework is designed to run completely in user-space with no elevated privileges required nor recommended.

Information Management

The core framework in its entirety will be made publicly available on an appropriate repository hosting site. Backups and security services will be provided by the hosting service.

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. Some MOOSE-based development teams follow the NQA-1 standards.

Packaging, Handling, Shipping and Transportation

No special requirements are needed for packaging or shipping any media containing MOOSE source code. However, some MOOSE-based applications maybe 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.