https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowAquiferBC.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "PorousFlowSink.h"
13
45{
46public:
48
50
51protected:
52 virtual Real multiplier() const override;
53 virtual Real dmultiplier_dvar(unsigned int pvar) const override;
54
55private:
57 const RealVectorValue _gravity;
58
60 const Real _g;
61
63 const bool _use_head_form;
64
66 const Real _aquifer_head;
67
69 const Real _p_datum;
70
72 const Real _datum_elevation;
73
75 const Real _conductance;
76
79
82
85
88
91
94
97
101
104
107};
const InputParameters & parameters() const
Robin (aquifer) boundary condition for PorousFlow.
const MaterialProperty< std::vector< Real > > & _fluid_density_nodal
Nodal fluid density for each phase [kg/m^3] – used in the hydrostatic correction.
static InputParameters validParams()
virtual Real dmultiplier_dvar(unsigned int pvar) const override
d(multiplier)/d(Porous flow variable pvar)
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_viscosity_nodal_dvar
d(nodal fluid viscosity)/d(PorousFlow variable) (pressure formulation only)
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_nodal_dvar
d(nodal fluid density)/d(PorousFlow variable) – needed for the Jacobian
const Real _aquifer_permeability
User-supplied permeability of the material between boundary and aquifer [m^2].
const RealVectorValue _gravity
Gravitational acceleration vector [m/s^2].
const Real _conductance
Conductance per unit boundary area [kg/(m^2 Pa s)] (head formulation only)
virtual Real multiplier() const override
The flux gets multiplied by this quantity.
const Real _datum_elevation
Reference elevation for pressure-at-datum formulation [m].
const Real _aquifer_distance
Distance from boundary to far-field aquifer [m] (pressure formulation only)
const bool _use_aquifer_perm
True when the user supplied aquifer_permeability; false means the boundary k_nn is used.
const Real _g
Magnitude of gravity.
const MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dvar
d(nodal pore pressure)/d(PorousFlow variable)
const Real _aquifer_head
Far-field hydraulic head [m] (head formulation only)
const MaterialProperty< std::vector< Real > > *const _fluid_viscosity_nodal
Nodal fluid viscosity for each phase (pressure formulation only; null for head form)
const Real _p_datum
Far-field pressure at datum_elevation [Pa] (pressure formulation only)
const bool _use_head_form
True when aquifer_head formulation is used; false for pressure-at-datum formulation.
const MaterialProperty< std::vector< Real > > & _pp
Nodal pore pressure in each phase [Pa].
const MaterialProperty< RealTensorValue > *const _permeability_qp
Permeability tensor at quadrature points (pressure formulation without aquifer_permeability only; nul...
Applies a flux sink to a boundary.