PorousFlowSinkBC

This class adds a PorousFlowSink and a PorousFlowEnthalpySink to model adding fluid at a mass flux rate and specified temperature.

commentnote

Despite its name, PorousFlowSinkBC adds fluid rather than removing it. The term "Sink" is used solely to maintain consistency with other PorousFlow objects.

This BC can be used to model two situations, both of which involve injecting fluid at a specified rate and specified temperature:

  • If "porepressure_var" is provided, then the injected enthalpy is calculated using this pressure (which may be an AuxVariable, for instance) and "T_in". This corresponds to injecting a fluid at a specified rate, specified pressure and specified temperature.

  • If "fluid_phase" is provided, then the injected enthalpy is calculated using the porepressure within the porous medium, and "T_in".

In both cases flux_function must be negative. Its magnitude gives the fluid mass flux into the model (kg.m.s).

[Modules<<<{"href": "../../syntax/Modules/index.html"}>>>]
  [PorousFlow<<<{"href": "../../syntax/Modules/PorousFlow/index.html"}>>>]
    [BCs<<<{"href": "../../syntax/Modules/PorousFlow/BCs/index.html"}>>>]
      [left]
        type = PorousFlowSinkBC<<<{"description": "BC corresponding to hot/cold fluid injection. This BC is only valid for single-phase, non-isothermal simulations using (P, T) variables. This BC adds fluid mass and heat energy. It is only meaningful if flux_function <= 0", "href": "PorousFlowSinkBC.html"}>>>
        boundary<<<{"description": "The list of boundary IDs from the mesh where this boundary condition applies"}>>> = left
        fluid_phase<<<{"description": "Evaluate enthalpy at the pressure of this fluid phase."}>>> = 0
        T_in<<<{"description": "Specified inlet temperature (measured in K)"}>>> = 300
        fp<<<{"description": "The name of the user object for fluid properties"}>>> = simple_fluid
        flux_function<<<{"description": "The flux.  The flux is OUT of the medium: hence positive values of this function means this BC will act as a SINK, while negative values indicate this flux will be a SOURCE. However, this BC only makes physical sense if flux_function <= 0.  This function is measured in kg.m^-2.s^-1."}>>> = -1
      []
    []
  []
[]
(modules/porous_flow/test/tests/sinks/s11_act.i)

Input Parameters

  • PorousFlowDictatorThe UserObject that holds the list of PorousFlow variable names

    C++ Type:UserObjectName

    Controllable:No

    Description:The UserObject that holds the list of PorousFlow variable names

  • T_inSpecified inlet temperature (measured in K)

    C++ Type:Real

    Unit:(no unit assumed)

    Controllable:No

    Description:Specified inlet temperature (measured in K)

  • boundaryThe list of boundary IDs from the mesh where this boundary condition applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundary IDs from the mesh where this boundary condition applies

  • flux_functionThe flux. The flux is OUT of the medium: hence positive values of this function means this BC will act as a SINK, while negative values indicate this flux will be a SOURCE. However, this BC only makes physical sense if flux_function <= 0. This function is measured in kg.m^-2.s^-1.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The flux. The flux is OUT of the medium: hence positive values of this function means this BC will act as a SINK, while negative values indicate this flux will be a SOURCE. However, this BC only makes physical sense if flux_function <= 0. This function is measured in kg.m^-2.s^-1.

  • fpThe name of the user object for fluid properties

    C++ Type:UserObjectName

    Controllable:No

    Description:The name of the user object for fluid properties

Required Parameters

  • fluid_phaseEvaluate enthalpy at the pressure of this fluid phase.

    C++ Type:unsigned int

    Controllable:No

    Description:Evaluate enthalpy at the pressure of this fluid phase.

  • porepressure_varName of the porepressure variable

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the porepressure variable

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files