Porous Flow Failure Analysis Report

Introduction

The Software Requirement Specification (SRS) for Porous Flow describes the system functional and non-functional requirements that describe the expected interactions that the software shall provide.

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 following documents.

Failure Analysis Requirements

The following is a complete list for all the requirements related to failure analysis for Porous Flow.

  • porous_flow: Actions
  • 16.1.2The system shall produce an error when attempting to use a PorousFlowBrine Material without any NaCl variable

    Specification(s): fullsat_brine_except1

    Design: Brine and carbon dioxide

    Issue(s): #10093#16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.3The system shall produce an error when attempting to use a PorousFlowBrine Material at the same time as a PorousFlowSimpleFluidProperties Material

    Specification(s): fullsat_brine_except2

    Design: Brine and carbon dioxide

    Issue(s): #10093#16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.4The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material at the same time as a PorousFlowBrine Material

    Specification(s): fullsat_brine_except3

    Design: Brine and carbon dioxide

    Issue(s): #10093#16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.5The system shall produce an error when attempting to use a PorousFlowSingleComponentFluid Material without a fluid-properties UserObject

    Specification(s): fullsat_brine_except4

    Design: PorousFlowFullySaturated

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.6The system shall produce an error when attempting to use a non-standard pressure unit choice with PorousFlowBrine

    Specification(s): fullsat_brine_except5

    Design: PorousFlowFullySaturated

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.7The system shall produce an error when attempting to use a non-standard time unit choice with PorousFlowBrine

    Specification(s): fullsat_brine_except6

    Design: PorousFlowFullySaturated

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.1.8The system shall produce an error if PorousFlowUnsaturated is used with no stabilization.

    Specification(s): unsat_except1

    Design: PorousFlowUnsaturated

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): unsat_except2

    Design: PorousFlowUnsaturated

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • porous_flow: Aux Kernels
  • 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

    Specification(s): darcy_velocity_lower_except

    Design: PorousFlowDarcyVelocityComponentLowerDimensional

    Issue(s): #17159

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): element_length_except1

    Design: PorousFlowElementLength

    Issue(s): #18232

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): element_length_except2

    Design: PorousFlowElementLength

    Issue(s): #18232

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): element_normal_except1

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): element_normal_except2

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): element_normal_except3

    Design: PorousFlowElementNormal

    Issue(s): #18232

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • porous_flow: Basic Advection
  • 16.4.1

    Specification(s): except1

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.4.2

    Specification(s): except2

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • porous_flow: Chemistry
  • 16.7.1

    Specification(s): except1

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.2

    Specification(s): except2

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.3

    Specification(s): except3

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.4

    Specification(s): except5

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.5

    Specification(s): except6

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.6

    Specification(s): except7

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.7

    Specification(s): except8

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.8

    Specification(s): except9

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.9

    Specification(s): except10

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.10

    Specification(s): except11

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.11

    Specification(s): except12

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.12

    Specification(s): except13

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.13

    Specification(s): except14

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.14

    Specification(s): except15

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.15

    Specification(s): except16

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.16

    Specification(s): except17

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.17

    Specification(s): except18

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.18

    Specification(s): except19

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.19

    Specification(s): except20

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.20

    Specification(s): except21

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.7.21

    Specification(s): except22

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • porous_flow: Functions
  • 16.17.1

    Specification(s): mpf_except1

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except1

    Design: PorousFlowFullySaturatedUpwindHeatAdvection

    Issue(s): #16841

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except01

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except02

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

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

    Specification(s): except06

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

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

    Specification(s): except07

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

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

    Specification(s): except08

    Design: PorousFlowHysteresisOrder

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except09

    Design: PorousFlowHysteresisOrderPorousFlowPropertyAux

    Issue(s): #16021

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except11

    Design: Hysteresis in PorousFlow

    Issue(s): #16129

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except13

    Design: PorousFlow1PhaseHysP

    Issue(s): #16129

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except14

    Design: PorousFlow2PhaseHysPP

    Issue(s): #16260

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except15

    Design: PorousFlow2PhaseHysPS

    Issue(s): #16260

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): except16

    Design: PorousFlowHystereticRelativePermeabilityLiquidPorousFlowHystereticRelativePermeabilityGas

    Issue(s): #16324

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • porous_flow: Poroperm
  • 16.32.9PorousFlow 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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.32.10PorousFlow 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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): linear_except1

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 16.32.15PorousFlow 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): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 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

    Specification(s): linear_except3

    Design: PorosityPorousFlowPorosityLinear

    Issue(s): #18079

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException