Porous Flow System Design Description

This template follows INL template TEM-140, "IT System Design Description."

commentnote

This document serves as an addendum to Framework System Design Description and captures information for SDD specific to the Porous Flow module.

Introduction

The MOOSE Porous Flow module is based on the MOOSE framework and thus inherits the unique features and base characteristics of the framework, as outlined in the Framework System Design Description. Specific details unique to the module are outlined in this document.

System Purpose

The Software Design Description provided here is description of each object in the system. The pluggable architecture of the underlying framework of the Porous Flow module makes MOOSE and MOOSE-based applications straightforward to develop as each piece of end-user (developer) code that goes into the system follows a well-defined interface for the underlying systems that those object plug into. These descriptions are provided through developer-supplied "markdown" files that are required for all new objects that are developed as part of the Porous Flow module. More information about the design documentation for MOOSE-based applications and like the Porous Flow module can be found in Documenting MOOSE.

System Scope

By simply adding pieces of physics together in an input file, the Porous Flow module enables the user to model problems with any combination of fluid, heat, geomechanics and geochemistry.

Dependencies and Limitations

The Porous Flow module inherits the software dependencies and limitations of the MOOSE framework. It depends on the Fluid Properties module for all fluid property calculations, the Solid Mechanics module for the mechanical aspects of coupled flow and geomechanics models, and the Geochemistry module for coupled flow and geochemical reactions. The Porous Flow module currently has the following limitations in functionality:

  • As it depends on other physics modules for fluid properties, mechanics and geochemistry calculations, the Porous Flow module is limited to the capability of each of the physics modules listed above. For example, the only fluids that can be used are those that are made available in the Fluid Properties module.

  • Only a small selection of constitutive models for properties like relative permeability or porosity-permeability relationships are available to the user. If a user requires some other constitutive model, they must develop that functionality themselves.

  • The Porous Flow module was developed before the inclusion of Automatic Differentiation (AD) capability in MOOSE, and the physics kernels are not currently designed for AD materials, meaning that new functionality currently requires hand-coded Jacobian entries.

Definitions and Acronyms

This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.

Definitions

  • Pull (Merge) Request: A proposed change to the software (e.g. usually a code change, but may also include documentation, requirements, design, and/or testing).

  • Baseline: A specification or product (e.g., project plan, maintenance and operations (M&O) plan, requirements, or design) that has been formally reviewed and agreed upon, that thereafter serves as the basis for use and further development, and that can be changed only by using an approved change control process (NQA-1, 2009).

  • Validation: Confirmation, through the provision of objective evidence (e.g., acceptance test), that the requirements for a specific intended use or application have been fulfilled (24765:2010(E), 2010).

  • 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
APIApplication Programming Interface
DOE-NEDepartment of Energy, Nuclear Energy
FEfinite element
HITHierarchical Input Text
HPCHigh Performance Computing
I/OInput/Output
INLIdaho National Laboratory
MOOSEMultiphysics Object Oriented Simulation Environment
MPIMessage Passing Interface
SDDSoftware Design Description

Design Stakeholders and Concerns

Design Stakeholders

Stakeholders for MOOSE include several of the funding sources including DOE-NE and the INL. However, Since MOOSE is an open-source project, several universities, companies, and foreign governments have an interest in the development and maintenance of the MOOSE project.

Stakeholder Design Concerns

Concerns from many of the stakeholders are similar. These concerns include correctness, stability, and performance. The mitigation plan for each of these can be addressed. For correctness, Porous Flow module development requires either regression or unit testing for all new code added to the repository. The project contains several comparisons against analytical solutions where possible and also other verification methods such as MMS. For stability, the Porous Flow module (located within the MOOSE repository) maintains multiple branches to incorporate several layers of testing both internally and for dependent applications. Finally, performance tests are also performed as part of the the normal testing suite to monitor code change impacts to performance.

System Design

The Porous Flow module inherits the wide range of pluggable systems from MOOSE. More information regarding MOOSE system design can be found in the framework System Design section.

The Porous Flow module provides functionality to support simulations for fluid and heat flow in porous media. More detailed information on the theory of the module can be found on the module home page under the subsection "Module overview". Numerical implementation details for the module can be found on the same page, under the subsection "Implementation details". A requirement of each Porous Flow simulation is the PorousFlowDictator object, which holds information about the nonlinear solution variables within the module, as well as the number of fluid phases and fluid components in each simulation. This object ensures that all of the required derivative terms are included in the Jacobian to aid solver convergence.

Kernels for a wide range of transport physics, such as advection, diffusion, hydrodynamic dispersion, and heat conduction are provided, as well as Kernels that couple fluid and heat flow to geomechanics and geochemistry. These are listed in the governing equations alongside the terms of the governing equations that each kernel represents.

Various boundary conditions are provided to represent common cases, such as boundaries to represent large aquifers, or boundaries to model evapotranspiration at a surface. Similarly, a number of Dirac kernels objects are provided, from simple point sources to wellbores.

The Porous Flow module also provides several choices of constitutive equations for relative permeability, capillary pressure, porosity, and permeability etc. Saturation history dependent hysteresis in capillary pressure and relative permeability is also included.

Documentation for each object, data structure, and process specific to the module are kept up-to-date alongside the MOOSE documentation. Expected failure modes and error conditions are accounted for via regression testing, and error conditions are noted in object documentation where applicable.

System Structure

The architecture of the Porous Flow module consists of a core and several pluggable systems (both inherited from the MOOSE framework). The core of MOOSE consists of a number of key objects responsible for setting up and managing the user-defined objects of a finite element or finite volume simulation. This core set of objects has limited extendability and exists for every simulation configuration that the module is capable of running.

AuxKernels

AuxVariables

BCs

DiracKernels

FVBCs

FVKernels

Functions

ICs

Kernels

Materials

Modules

Modules/PorousFlow

Modules/PorousFlow/BCs

PorousFlowBasicTHM

PorousFlowFullySaturated

PorousFlowUnsaturated

Postprocessors

UserObjects

Variables

The MooseApp is the top-level object used to hold all of the other objects in a simulation. In a normal simulation a single MooseApp object is created and "run()". This object uses its Factory objects to build user-defined objects which are stored in a series of Warehouse objects and executed. The Finite Element and/or Finite Volume data is stored in the Systems and Assembly objects while the domain information (the Mesh) is stored in the Mesh object. A series of threaded loops are used to run parallel calculations on the objects created and stored within the warehouses.

MOOSE's pluggable systems are documented on MOOSE website, and those for the Porous Flow module are on this webpage, accessible through the high-level system links above. Each of these systems has a set of defined polymorphic interfaces and are designed to accomplish a specific task within the simulation. The design of these systems is fluid and is managed through agile methods and ticket request system either on GitHub (for MOOSE) or on the defined software repository for this application.

Data Design and Control

At a high level, the system is designed to process HIT input files to construct several objects that will constitute an FE simulation. Some of the objects in the simulation may in turn load other file-based resources to complete the simulation. Examples include meshes or data files. The system will then assemble systems of equations and solve them using the libraries of the Code Platform. The system can then output the solution in one or more supported output formats commonly used for visualization.

Human-Machine Interface Design

The Porous Flow module is a command-line driven program. All interaction with the Porous Flow module is ultimately done through the command line. This is typical for HPC applications that use the MPI interface for running on super computing clusters. Optional GUIs may be used to assist in creating input files and launching executables on the command line.

System Design Interface

All external system interaction is performed either through file I/O or through local API calls. Neither the Porous Flow module, nor the MOOSE framework, nor the other MOOSE modules are designed to interact with any external system directly through remote procedure calls. Any code to code coupling performed using the framework are done directly through API calls either in a static binary or after loading shared libraries.

Security Structure

The Porous Flow module does not require any elevated privileges to operate and does not run any stateful services, daemons or other network programs. Distributed runs rely on the MPI library.

Requirements Cross-Reference

  • porous_flow: PorousFlowBasicTHM
  • 13.1.13The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = Hydro.

    Specification(s): basicthm_h

    Design: PorousFlowBasicTHM

    Issue(s): #8574

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.1.14The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydro.

    Specification(s): basicthm_th

    Design: PorousFlowBasicTHM

    Issue(s): #8574

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.1.15The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = HydroMechanical.

    Specification(s): basicthm_hm

    Design: PorousFlowBasicTHM

    Issue(s): #8574

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.1.16The system shall add all required objects when using PorousFlowBasicTHM Action with coupling_type = ThermoHydroMechanical.

    Specification(s): basicthm_thm

    Design: PorousFlowBasicTHM

    Issue(s): #8574

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.1.18The system shall add all required objects when using PorousFlowBasicTHM Action to allow boreholes to be used

    Specification(s): basicthm_bh

    Design: PorousFlowBasicTHM

    Issue(s): #17025

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.1.22The system shall be able to block-restrict the definition of the porous flow equations.

    Specification(s): block_restricted

    Design: PorousFlowFullySaturatedPorousFlowBasicTHMPorousFlowUnsaturated

    Issue(s): #28030

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • porous_flow: Mass lumping
  • 13.2.1The system shall work when using mesh adaptivity with TRI3 elements

    Specification(s): tri

    Design: Mass lumping

    Issue(s): #14428

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.2.2The system shall work when using mesh adaptivity with QUAD elements

    Specification(s): quad

    Design: Mass lumping

    Issue(s): #14428

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.2.3The system shall work when using mesh adaptivity with TET4 elements

    Specification(s): tet

    Design: Mass lumping

    Issue(s): #14428

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.2.4The system shall work when using mesh adaptivity with HEX elements

    Specification(s): hex

    Design: Mass lumping

    Issue(s): #14428

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • porous_flow: PorousFlowElementNormal
  • 13.3.12The system shall be able to calculate element normal, and shall produce an error if a nodal variable is used to store the result.

    Specification(s): element_normal_except1

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.3.13The system shall be able to calculate element normal for 1D elements if provided with a perpendicular vector, and shall produce an error if the perpendicular vector is incorrectly specified.

    Specification(s): element_normal_except2

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.3.14The system shall be able to calculate element normals for meshes containing 3D elements if provided with a default value for the 3D elements, but shall produce an error if that default value is incorrectly specified.

    Specification(s): element_normal_except3

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.3.15The system shall be able to calculate element normals for 1D and 2D elements, if provided with a perpendicular vector for the 1D elements.

    Specification(s): element_normal_1D_2D

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.3.16The system shall be able to calculate element normals for 2D and 3D elements, if provided with a default value for the 3D elements.

    Specification(s): element_normal_2D_3D

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlow PreDis
  • 13.7.14The system shall produce an error if the number of mineral secondary species is not equal to the number of kinetic reactions.

    Specification(s): except15

    Design: PorousFlow PreDis

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.7.15The system shall produce an error if the number of stoichiometric coefficients is not equal to the number of kinetic reactions.

    Specification(s): except16

    Design: PorousFlow PreDis

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • porous_flow: PorousFlowPorosity
  • 13.7.18The system shall produce an error if no initial mineral concentration is supplied when porosity depends on chemistry.

    Specification(s): except19

    Design: PorousFlowPorosity

    Issue(s): #10847#11049

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.7.19The system shall produce an error if no reference chemical values are supplied when porosity depends on chemistry.

    Specification(s): except20

    Design: PorousFlowPorosity

    Issue(s): #10847#11049

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.7.23The system shall be able to calculate the porosity change due to mineral precipitation using a kinetic reaction.

    Specification(s): precipitation_porosity_change

    Design: PorousFlow Aqueous PreDis MineralPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.22.1The system shall allow the assignment of porosity and permeability from an AuxVariable field.

    Specification(s): constant_poroperm

    Design: PorousFlowPorosity

    Issue(s): #8062

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.22.2The system shall allow the assignment of porosity and permeability from an AuxVariable field using FV variables.

    Specification(s): constant_poroperm_fv

    Design: PorousFlowPorosity

    Issue(s): #8062#21275

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.22.3The system shall allow the assignment of porosity and permeability from an AuxVariable field with binlinear relationships.

    Specification(s): constant_poroperm2

    Design: PorousFlowPorosity

    Issue(s): #8062

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.22.4The system shall allow the assignment of porosity and permeability from an AuxVariable read from a mesh.

    Specification(s): constant_poroperm3

    Design: PorousFlowPorosity

    Issue(s): #13478

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.22.5The system shall calculate permeability from a changing porosity.

    Specification(s): vol_expansion_poroperm

    Design: PorousFlowPorosity

    Issue(s): #8062

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.32.12The system shall be able to calculate porosity for thermo-hydro-mechanical coupled models.

    Specification(s): poro_thm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.13The system shall be able to calculate porosity for thermo-mechanical coupled models.

    Specification(s): poro_tm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.14The system shall be able to calculate porosity for hydro-mechanical coupled models.

    Specification(s): poro_hm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.15The system shall produce an error if the porosity depends on temperature but no thermal expansion coefficient is provided.

    Specification(s): except1

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.16The system shall produce an error if the porosity depends on porepressure but no solid bulk modulus is provided.

    Specification(s): except2

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • porous_flow: PorousFlowSingleComponentFluid
  • 13.13.1The system shall be able to use high-precision equations of state for water from the FluidProperties module.

    Specification(s): h2o

    Design: PorousFlowSingleComponentFluid

    Issue(s): #11716

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.2The system shall be able to use high-precision equations of state for methane from the FluidProperties module.

    Specification(s): methane

    Design: PorousFlowSingleComponentFluid

    Issue(s): #11716

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.3The system shall be able to use equations of state for an ideal gas from the FluidProperties module.

    Specification(s): ideal_gas

    Design: PorousFlowSingleComponentFluid

    Issue(s): #11716

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.7The system shall be able to use high-precision equations of state for CO2 from the FluidProperties module.

    Specification(s): co2

    Design: PorousFlowSingleComponentFluid

    Issue(s): #11716

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.8The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the temperature unit in Kelvin.

    Specification(s): simple_fluid

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.9The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the pressure unit in MPa.

    Specification(s): simple_fluid_MPa

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.10The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in days.

    Specification(s): simple_fluid_dy

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.11The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in hours.

    Specification(s): simple_fluid_hr

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.12The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years.

    Specification(s): simple_fluid_yr

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.13The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years, the pressure unit in MPa and the temperature unit in Celsius.

    Specification(s): simple_fluid_yr_MPa_C

    Design: PorousFlowSingleComponentFluid

    Issue(s): #13154

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.14The system shall be able to use equations of state from the FluidProperties module for a single-component fluid and specify the time unit in years, the pressure unit in MPa and the temperature unit in Celsius, and this functionality shall be available through the PorousFlowActions.

    Specification(s): simple_fluid_yr_MPa_C_action

    Design: PorousFlowSingleComponentFluidPorousFlowFullySaturated

    Issue(s): #13154#16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowBrine
  • 13.13.4The system shall be able to use high-precision equations of state for brine from the FluidProperties module.

    Specification(s): brine1

    Design: PorousFlowBrine

    Issue(s): #11716

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.5The system shall be able to use a given UserObject for water properties.

    Specification(s): brine1_tab

    Design: PorousFlowBrine

    Issue(s): #11716#13882

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.13.6The system shall be able to use high-precision equations of state for brine from the FluidProperties module where NaCl is an elemental AuxVariable.

    Specification(s): brine1_monomial

    Design: PorousFlowBrine

    Issue(s): #11716#13882#24381

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowWaterNCG
  • 13.14.1The system shall calculate the properties of the liquid phase in a water and NCG system.

    Specification(s): waterncg_liquid

    Design: PorousFlowWaterNCG

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.14.2The system shall calculate the solubilities and properties of both the gas and liquid phase in a water and NCG system.

    Specification(s): waterncg_twophase

    Design: PorousFlowWaterNCG

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.14.3The system shall calculate the properties of the gas phase in a water and NCG system.

    Specification(s): waterncg_gas

    Design: PorousFlowWaterNCG

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 13.14.4The system shall evolve a gas phase as a gas component is added in a water and NCG system.

    Specification(s): theis

    Design: PorousFlowWaterNCG

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.5The system shall evolve a gas phase as a gas component is added in a water and NCG system.

    Specification(s): theis_tabulated

    Design: PorousFlowWaterNCG

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.6The system shall evolve a gas phase as a gas component is added in a nonisothermal water and NCG system.

    Specification(s): theis_nonisothermal

    Design: PorousFlowWaterNCG

    Issue(s): #8818#10167

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowBrineCO2
  • 13.14.7The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system.

    Specification(s): brineco2

    Design: PorousFlowBrineCO2

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.8The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system when Xnacl is an elemental AuxVariable.

    Specification(s): brineco2_monomial

    Design: PorousFlowBrineCO2

    Issue(s): #8818#24381

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.9The system shall calculate the solubilities and properties of both the gas and liquid phase in a brine and CO2 system using FV variables.

    Specification(s): brineco2_fv

    Design: PorousFlowBrineCO2

    Issue(s): #8818#21275

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.10The system shall evolve a gas phase as CO2 is added to a liquid brine phase.

    Specification(s): brineco2_2

    Design: PorousFlowBrineCO2

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.11The system shall evolve a gas phase as CO2 is added to a liquid brine phase in the high temperature regime.

    Specification(s): brineco2_hightemp

    Design: PorousFlowBrineCO2

    Issue(s): #8818#11359

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.12The system shall evolve a gas phase as CO2 is added to a liquid brine phase.

    Specification(s): theis_brineco2

    Design: PorousFlowBrineCO2

    Issue(s): #8818

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.13The system shall evolve a gas phase as CO2 is added to a liquid brine phase in a nonisothermal model.

    Specification(s): theis_brineco2_nonisothermal

    Design: PorousFlowBrineCO2

    Issue(s): #8818#10167

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowFluidStateIC
  • 13.14.14The system shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a water and NCG system.

    Specification(s): waterncg_ic

    Design: PorousFlowFluidStateIC

    Issue(s): #9377

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.14.15The system shall calculate the initial value of total mass fraction corresponding to the specified gas saturation in a brine and CO2 system.

    Specification(s): brineco2_ic

    Design: PorousFlowFluidStateIC

    Issue(s): #9377

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowHysteresisOrder
  • 13.23.1If the liquid phase number exceeds the number of phases in the system, PorousFlow shall produce an appropriate error message and exit

    Specification(s): except01

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.2The maximum order for hysteretic relative permeabilities and capillary pressures is 3 and if the user specifies an initial order greater than this amount, an error shall be thrown

    Specification(s): except02

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.3An error shall be thrown if the initial order of hysteresis is incommensurate with previous_turning_points

    Specification(s): except03

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.4An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]

    Specification(s): except04

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.5An error shall be thrown if the hysteretic turning points do not lie in the range [0, 1]

    Specification(s): except05

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.6An error shall be thrown if the turning points are incorrectly ordered

    Specification(s): except06

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.7An error shall be thrown if the turning points are incorrectly ordered

    Specification(s): except07

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.8An error shall be thrown if the turning points are incorrectly ordered

    Specification(s): except08

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.9An error shall be thrown if the hysteresis turning-point information is requested for the Nth turning point, when N exceeds the maximum number of turning points

    Specification(s): except09

    Design: PorousFlowHysteresisOrderPorousFlowPropertyAux

    Issue(s): #16021

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.17PorousFlow shall be able to calculate the hysteresis order

    Specification(s): hys_order_01

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.18PorousFlow shall be able to calculate the hysteresis order

    Specification(s): hys_order_02

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.19PorousFlow shall be able to calculate the hysteresis order

    Specification(s): hys_order_03

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.20PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value

    Specification(s): hys_order_04

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.21PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value

    Specification(s): hys_order_05

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.22PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value

    Specification(s): hys_order_06

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.23PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value

    Specification(s): hys_order_07

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.24PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value, and jumps of greater than 2 in hysteresis order shall be allowed within one time-step

    Specification(s): hys_order_08

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.25PorousFlow shall be able to calculate the hysteresis order and hysteresis order shall be able to be initialized to a nonzero value, and jumps of greater than 2 in hysteresis order shall be allowed within one time-step, and turning points shall be correctly identified in such situations

    Specification(s): hys_order_09

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: Hysteresis in PorousFlow
  • 13.23.10An error shall be thrown if the maximum gas residual saturation is greater than 1 - minimum_liquid_saturation in hysteretic problems

    Specification(s): except10

    Design: Hysteresis in PorousFlow

    Issue(s): #16129

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.11An error shall be thrown if parameters are chosen such that the high and low extension regions of the hysteretic capillary pressure overlap

    Specification(s): except11

    Design: Hysteresis in PorousFlow

    Issue(s): #16129

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.12A warning shall be produced if the residual saturation is not greater than the minimum saturation in hysteretic simulations

    Specification(s): except12

    Design: Hysteresis in PorousFlow

    Issue(s): #16129

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • porous_flow: PorousFlow1PhaseHysP
  • 13.23.13An exception shall be thrown if a single-phase hysteretic capillary-pressure Material is used in situations with more than one fluid phase

    Specification(s): except13

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.26PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_sat_01

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.27PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_sat_02

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.28PorousFlow shall be able to compute saturation according to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_sat_03

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.129PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along a first-order wetting curve

    Specification(s): 1phase

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.130PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along a first-order wetting curve, when the input file has a PorousFlow boundary condition

    Specification(s): 1phase_bc

    Design: PorousFlow1PhaseHysP

    Issue(s): #23871

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.131PorousFlow shall be able to compute saturation in 1-phase hysteretic systems, as the system evolves in time along the primary drying curve and then along first, second and third order curves

    Specification(s): 1phase_3rd

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlow2PhaseHysPP
  • 13.23.14An exception shall be thrown if a two-phase PP hysteretic capillary-pressure Material is used in models that do not have exactly 2 phases

    Specification(s): except14

    Design: PorousFlow2PhaseHysPP

    Issue(s): #16260

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.132PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PP formulation

    Specification(s): 2phasePP_jacobian

    Design: PorousFlow2PhaseHysPP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): PetscJacobianTester

  • 13.23.133PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PP formulation, as the system evolves in time along the primary drying curve and then along a first-order curve

    Specification(s): 2phasePP_1

    Design: PorousFlow2PhaseHysPP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.134PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PP formulation, as the system evolves in time along the primary drying curve and then along a first-order curve and then along a second-order drying curve until it meets the primary drying curve

    Specification(s): 2phasePP_2

    Design: PorousFlow2PhaseHysPP

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlow2PhaseHysPS
  • 13.23.15An exception shall be thrown if a two-phase PS hysteretic capillary-pressure Material is used in models that do not have exactly 2 phases

    Specification(s): except15

    Design: PorousFlow2PhaseHysPS

    Issue(s): #16260

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.23.135PorousFlow shall be able to compute the full Jacobian entries in 2-phase hysteretic systems when using a PS formulation

    Specification(s): 2phasePS_jacobian

    Design: PorousFlow2PhaseHysPS

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): PetscJacobianTester

  • 13.23.136PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PS formulation, as the system evolves in time along the primary drying curve and then along a first-order curve

    Specification(s): 2phasePS_1

    Design: PorousFlow2PhaseHysPS

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.137PorousFlow shall be able to compute saturations and porepressures in 2-phase hysteretic systems when using a PS formulation, as the system evolves in time along the primary drying curve and then along a first-order curve and then along a second-order drying curve until it meets the primary drying curve

    Specification(s): 2phasePS_2

    Design: PorousFlow2PhaseHysPS

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowHystereticInfo
  • 13.23.29PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_pc_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.30PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_pc_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.31PorousFlow shall be able to compute capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_pc_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.32PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_pc_1_w_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.33PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_pc_1_w_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.34PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_pc_1_w_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.35PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_pc_1_w_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.36PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_pc_1_w_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.37PorousFlow shall be able to compute capillary pressure according to the primary wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_pc_1_w_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.38PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_pc_1_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.39PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_pc_1_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.40PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_pc_1_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.41PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_pc_1_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.42PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_pc_1_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.43PorousFlow shall be able to compute capillary pressure according to the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_pc_1_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.44PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_pc_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.45PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_pc_2_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.46PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_pc_2_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.47PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_pc_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.48PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_pc_2_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.49PorousFlow shall be able to compute capillary pressure according to the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_pc_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.50PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_pc_3_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.51PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_pc_3_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.52PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_pc_3_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.53PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_pc_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.54PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_pc_3_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.55PorousFlow shall be able to compute capillary pressure according to the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_pc_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.56PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_sat_prim_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.57PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_sat_prim_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.58PorousFlow shall be able to compute saturation from capillary pressure according to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_sat_prim_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.59PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_sat_1_w_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.60PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_sat_1_w_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.61PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_sat_1_w_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.62PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_sat_1_w_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.63PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_sat_1_w_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.64PorousFlow shall be able to compute liquid saturation according to the primary wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_sat_1_w_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.65PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_sat_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.66PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_sat_2_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.67PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_sat_2_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.68PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_sat_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.69PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_sat_2_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.70PorousFlow shall be able to compute liquid saturation according to the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_sat_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.71PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using no low extension and power high extension

    Specification(s): hys_sat_3_none_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.72PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using quadratic low extension and no high extension

    Specification(s): hys_sat_3_quadratic_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.73PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_sat_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.74PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using exponential low extension and no high extension

    Specification(s): hys_sat_3_exponential_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.75PorousFlow shall be able to compute liquid saturation according to the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_sat_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.76PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_dpc_prim_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.77PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_dpc_prim_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.78PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_dpc_prim_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.79PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dpc_1_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.80PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dpc_1_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.81PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dpc_1_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.82PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dpc_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.83PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dpc_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.84PorousFlow shall be able to compute the derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dpc_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.85PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dpc_3_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.86PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dpc_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.87PorousFlow shall be able to compute the derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dpc_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.88PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_d2pc_prim_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.89PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_d2pc_prim_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.90PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_d2pc_prim_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.91PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2pc_1_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.92PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2pc_1_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.93PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2pc_1_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.94PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2pc_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.95PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2pc_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.96PorousFlow shall be able to compute the second derivative of capillary pressure with respect to liquid saturation along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2pc_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.97PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2pc_3_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.98PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2pc_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.99PorousFlow shall be able to compute the second derivative of the capillary pressure with respect to the liquid saturation along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2pc_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.100PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_dsat_prim_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.101PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_dsat_prim_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.102PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_dsat_prim_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.103PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dsat_1_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.104PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dsat_1_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.105PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dsat_1_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.106PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dsat_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.107PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dsat_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.108PorousFlow shall be able to compute the derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dsat_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.109PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_dsat_3_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.110PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_dsat_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.111PorousFlow shall be able to compute the derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_dsat_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.112PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using no low extension

    Specification(s): hys_d2sat_prim_01

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.113PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using quadratic low extension

    Specification(s): hys_d2sat_prim_02

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.114PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along to the primary drying curve in hysteretic problems, using exponential low extension

    Specification(s): hys_d2sat_prim_03

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.115PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2sat_1_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.116PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2sat_1_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.117PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the first-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2sat_1_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.118PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2sat_2_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.119PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2sat_2_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.120PorousFlow shall be able to compute the second derivative of liquid saturation with respect to capillary pressure along the second-order drying curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2sat_2_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.121PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using no low extension and no high extension

    Specification(s): hys_d2sat_3_none_none

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.122PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using quadratic low extension and power high extension

    Specification(s): hys_d2sat_3_quadratic_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.123PorousFlow shall be able to compute the second derivative of the liquid saturation with respect to capillary pressure along the third-order wetting curve in hysteretic problems, using exponential low extension and power high extension

    Specification(s): hys_d2sat_3_exponential_power

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.124PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve

    Specification(s): vary_sat_1a

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.125PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve and then the primary wetting curve

    Specification(s): vary_sat_1b

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.126PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve and then the first-order wetting

    Specification(s): vary_sat_1c

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.127PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve, then first-order wetting, and then second-order drying

    Specification(s): vary_sat_1d

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.23.128PorousFlow shall be able to compute capillary pressure as a function of saturation in hysteretic time-dependent problems, along the primary drying curve, then first-order wetting, and then second-order drying, and then third-order

    Specification(s): vary_sat_1e

    Design: PorousFlowHystereticInfo

    Issue(s): #16129

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: Porosity
  • 13.26.112The porous flow module shall be able to calculate the analytic Jacobian of systems that include a porosity that is a linear function of effective porepressure, temperature and volumetric strain.

    Specification(s): linear_por

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): PetscJacobianTester

  • 13.32.12The system shall be able to calculate porosity for thermo-hydro-mechanical coupled models.

    Specification(s): poro_thm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.13The system shall be able to calculate porosity for thermo-mechanical coupled models.

    Specification(s): poro_tm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.14The system shall be able to calculate porosity for hydro-mechanical coupled models.

    Specification(s): poro_hm

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.15The system shall produce an error if the porosity depends on temperature but no thermal expansion coefficient is provided.

    Specification(s): except1

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.16The system shall produce an error if the porosity depends on porepressure but no solid bulk modulus is provided.

    Specification(s): except2

    Design: PorosityPorousFlowPorosity

    Issue(s): #10847

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.21The system shall produce an error if a linear porosity relationship that depends on effective fluid pressure is used if there is no effective fluid pressure material.

    Specification(s): linear_except1

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.22The system shall produce an error if a linear porosity relationship that depends on temperature is used if there is no temperature material.

    Specification(s): linear_except2

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.23The system shall produce an error if a linear porosity relationship that depends on volumetric strain is used if there is no volumetric-strain material.

    Specification(s): linear_except3

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.24The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain.

    Specification(s): linear_test_vals1

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.25The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain and place a lower bound on the resulting porosity.

    Specification(s): linear_test_vals2

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: PorousFlowPorosityLinear
  • 13.26.112The porous flow module shall be able to calculate the analytic Jacobian of systems that include a porosity that is a linear function of effective porepressure, temperature and volumetric strain.

    Specification(s): linear_por

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): PetscJacobianTester

  • 13.32.21The system shall produce an error if a linear porosity relationship that depends on effective fluid pressure is used if there is no effective fluid pressure material.

    Specification(s): linear_except1

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.22The system shall produce an error if a linear porosity relationship that depends on temperature is used if there is no temperature material.

    Specification(s): linear_except2

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.23The system shall produce an error if a linear porosity relationship that depends on volumetric strain is used if there is no volumetric-strain material.

    Specification(s): linear_except3

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONALFAILURE_ANALYSIS

    Type(s): RunException

  • 13.32.24The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain.

    Specification(s): linear_test_vals1

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.32.25The system shall be able to calculate porosity as a linear function of effective porepressure, temperature and volumetric strain and place a lower bound on the resulting porosity.

    Specification(s): linear_test_vals2

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: Heat and fluid responses in 1D bars
  • 13.28.1PorousFlow shall be able to model transient newton cooling acting on the fluid mass and agree with the analytic solution

    Specification(s): nc01

    Design: Heat and fluid responses in 1D bars

    Issue(s): #13155#16953

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.28.2PorousFlow shall be able to model steady-state newton cooling acting on the fluid mass and agree with the analytic solution

    Specification(s): nc02

    Design: Heat and fluid responses in 1D bars

    Issue(s): #13155

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.28.3PorousFlow shall be able to model steady-state newton cooling acting on the temperature and agree with the analytic solution

    Specification(s): nc04

    Design: Heat and fluid responses in 1D bars

    Issue(s): #13155

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.28.4PorousFlow shall be able to model newton cooling acting on the porepressure and at the same time extracting heat along with the extracted fluid and agree with the analytic solution

    Specification(s): nc06

    Design: Heat and fluid responses in 1D bars

    Issue(s): #13155

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.28.5PorousFlow shall be able to model newton cooling acting on the porepressure of an ideal gas and at the same time extracting heat along with the extracted gas and agree with the analytic solution

    Specification(s): nc08

    Design: Heat and fluid responses in 1D bars

    Issue(s): #13155

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • porous_flow: Pressure-pulses in 1D
  • 13.33.1The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics.

    Specification(s): pressure_pulse_1d

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.2The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics, and be able to employ the Action system in such settings.

    Specification(s): pressure_pulse_1d_action

    Design: PorousFlowFullySaturatedPressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.3The system shall find the steady-state distribution resulting from a pressure pulse in 1D using 1 phase physics.

    Specification(s): pressure_pulse_1d_steady

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.4The system shall find the steady-state distribution resulting from a pressure pulse in 1D using 1 phase physics, and be able to employ the Action system in such settings

    Specification(s): pressure_pulse_1d_steady_action

    Design: PorousFlowFullySaturatedPressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.5The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 fluid phase with multiple components.

    Specification(s): pressure_pulse_1d_3comp

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.6The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 fluid phase with multiple components, and be able to employ the Action system in such simulations.

    Specification(s): pressure_pulse_1d_3comp_action

    Design: Pressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.7The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, when one phase has zero saturation.

    Specification(s): pressure_pulse_1d_2phase

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.8The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components specified using CONSTANT MONOMIAL AuxVariables, when one phase has zero saturation.

    Specification(s): pressure_pulse_1d_2phase_monomial

    Design: Pressure-pulses in 1D

    Issue(s): #6845#24381

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.9The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, when one phase has zero saturation using FV variables.

    Specification(s): pressure_pulse_1d_2phase_fv

    Design: Pressure-pulses in 1D

    Issue(s): #6845#21275

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.10The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with constant capillary pressure.

    Specification(s): pressure_pulse_1d_2phasePS

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.11The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with constant capillary pressure using FV variables.

    Specification(s): pressure_pulse_1d_2phasePS_fv

    Design: Pressure-pulses in 1D

    Issue(s): #6845#21275

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.13The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with van-Genuchten capillary pressure.

    Specification(s): pressure_pulse_1d_2phasePSVG

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.14The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 2 fluid phases, with 2 immiscible components, with van-Genuchten capillary pressure and a logarithmic extension.

    Specification(s): pressure_pulse_1d_2phasePSVG2

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.15The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase in the MD formulation where the primary variable is log(mass-density).

    Specification(s): pressure_pulse_1d_MD

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.16The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase and employing the fully-saturated version of Darcy flow.

    Specification(s): pressure_pulse_1d_fully_saturated

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.17The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase with 3 components and employing the fully-saturated version of Darcy flow.

    Specification(s): pressure_pulse_1d_3comp_fully_saturated

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.18The system shall correctly simulate the transient evolution of a pressure pulse in 1D when using 1 fluid phase and employing the fully-saturated version of Darcy flow along with the fully-saturated version of the fluid-mass time derivative.

    Specification(s): pressure_pulse_1d_fully_saturated_2

    Design: Pressure-pulses in 1D

    Issue(s): #6845

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.19The system shall correctly simulate the transient evolution of a pressure pulse when mesh adaptivity is included.

    Specification(s): pressure_pulse_1d_adapt

    Design: Pressure-pulses in 1D

    Issue(s): #6845#14035

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.20The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use full-upwinding in such settings.

    Specification(s): pressure_pulse_1d_2comp_nodens_full

    Design: PorousFlowFullySaturatedPressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.21The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use no upwinding in such settings.

    Specification(s): pressure_pulse_1d_2comp_nodens_none

    Design: PorousFlowFullySaturatedPressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.22The system shall be able to advect tracers in fully-saturated single-phase systems, using a fluid-volume conservation approach, and be able to use KT stabilization in such settings.

    Specification(s): pressure_pulse_1d_2comp_nodens_KT

    Design: PorousFlowFullySaturatedPressure-pulses in 1D

    Issue(s): #16841

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.23The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase physics with FV variables.

    Specification(s): pressure_pulse_1d_fv

    Design: Pressure-pulses in 1D

    Issue(s): #21275

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 13.33.24The system shall correctly simulate the transient evolution of a pressure pulse in 1D using 1 phase fully-saturated physics with FV variables.

    Specification(s): pressure_pulse_1d_fullys_saturated_fv

    Design: Pressure-pulses in 1D

    Issue(s): #21275

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

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]