Applies a flux sink to a boundary. More...
#include <PorousFlowHalfGaussianSink.h>
Public Member Functions | |
PorousFlowHalfGaussianSink (const InputParameters ¶meters) | |
Protected Member Functions | |
virtual Real | multiplier () const override |
The flux gets multiplied by this quantity. More... | |
virtual Real | dmultiplier_dvar (unsigned int pvar) const override |
d(multiplier)/d(Porous flow variable pvar) More... | |
virtual Real | ptVar () const |
Provides the variable value (either porepressure, or temperature, depending on _involves_fluid) More... | |
virtual Real | dptVar (unsigned pvar) const |
Provides the d(variable)/(d PorousFlow Variable pvar) More... | |
virtual Real | computeQpResidual () override |
virtual Real | computeQpJacobian () override |
virtual Real | computeQpOffDiagJacobian (unsigned int jvar) override |
Real | jac (unsigned int jvar) const |
Derivative of residual with respect to the jvar variable. More... | |
Protected Attributes | |
const Real | _maximum |
Maximum of the Gaussian sink. More... | |
const Real | _sd |
Standard deviation of the Gaussian sink. More... | |
const Real | _center |
Center of the Gaussian sink. More... | |
const MaterialProperty< std::vector< Real > > *const | _pp |
Nodal pore pressure in each phase. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dpp_dvar |
d(Nodal pore pressure in each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< Real > *const | _temp |
Nodal temperature. More... | |
const MaterialProperty< std::vector< Real > > *const | _dtemp_dvar |
d(Nodal temperature)/d(PorousFlow variable) More... | |
const VariableValue & | _pt_shift |
Subtract this from porepressure or temperature before evaluating PiecewiseLinearSink, HalfCubicSink, etc. More... | |
const PorousFlowDictator & | _dictator |
PorousFlowDictator UserObject. More... | |
const bool | _involves_fluid |
Whether this BC involves fluid (whether the user has supplied a fluid phase number) More... | |
const unsigned int | _ph |
The phase number. More... | |
const bool | _use_mass_fraction |
Whether the flux will be multiplied by the mass fraction. More... | |
const bool | _has_mass_fraction |
Whether there is a "mass_fraction" Material. This is just for error checking. More... | |
const unsigned int | _sp |
The component number (only used if _use_mass_fraction==true) More... | |
const bool | _use_mobility |
Whether to multiply the sink flux by permeability*density/viscosity. More... | |
const bool | _has_mobility |
Whether there are Materials that can form "mobility". This is just for error checking. More... | |
const bool | _use_relperm |
Whether to multiply the sink flux by relative permeability. More... | |
const bool | _has_relperm |
Whether there is a "relperm" Material. This is just for error checking. More... | |
const bool | _use_enthalpy |
Whether to multiply the sink flux by enthalpy. More... | |
const bool | _has_enthalpy |
Whether there is an "enthalpy" Material. This is just for error checking. More... | |
const bool | _use_internal_energy |
Whether to multiply the sink flux by internal_energy. More... | |
const bool | _has_internal_energy |
Whether there is an "internal_energy" Material. This is just for error checking. More... | |
const bool | _use_thermal_conductivity |
Whether to multiply the sink flux by thermal_conductivity. More... | |
const bool | _has_thermal_conductivity |
Whether there is an "thermal_conductivity" Material. This is just for error checking. More... | |
const Function & | _m_func |
The flux. More... | |
const MaterialProperty< RealTensorValue > *const | _permeability |
Permeability of porous material. More... | |
const MaterialProperty< std::vector< RealTensorValue > > *const | _dpermeability_dvar |
d(Permeability)/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > *const | _dpermeability_dgradvar |
d(Permeability)/d(grad(PorousFlow variable)) More... | |
const MaterialProperty< std::vector< Real > > *const | _fluid_density_node |
Fluid density for each phase (at the node) More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_density_node_dvar |
d(Fluid density for each phase (at the node))/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< Real > > *const | _fluid_viscosity |
Viscosity of each component in each phase. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_viscosity_dvar |
d(Viscosity of each component in each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< Real > > *const | _relative_permeability |
Relative permeability of each phase. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _drelative_permeability_dvar |
d(Relative permeability of each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _mass_fractions |
Mass fraction of each component in each phase. More... | |
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > *const | _dmass_fractions_dvar |
d(Mass fraction of each component in each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< Real > > *const | _enthalpy |
Enthalpy of each phase. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _denthalpy_dvar |
d(enthalpy of each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< std::vector< Real > > *const | _internal_energy |
Internal_Energy of each phase. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dinternal_energy_dvar |
d(internal_energy of each phase)/d(PorousFlow variable) More... | |
const MaterialProperty< RealTensorValue > *const | _thermal_conductivity |
Thermal_Conductivity of porous material. More... | |
const MaterialProperty< std::vector< RealTensorValue > > *const | _dthermal_conductivity_dvar |
d(Thermal_Conductivity)/d(PorousFlow variable) More... | |
const bool | _perm_derivs |
Flag to check whether permeabiity derivatives are non-zero. More... | |
Applies a flux sink to a boundary.
The base flux defined by PorousFlowSink is multiplied by a _maximum*exp(-(0.5*(p - c)/_sd)^2)*_m_func for p<c _maximum*_m_func for p>=c Here p = porepressure for fluid fluxes, or p = temperature for heat fluxes. This is typically used for modelling evapotranspiration from the top of a groundwater model
Definition at line 28 of file PorousFlowHalfGaussianSink.h.
PorousFlowHalfGaussianSink::PorousFlowHalfGaussianSink | ( | const InputParameters & | parameters | ) |
Definition at line 35 of file PorousFlowHalfGaussianSink.C.
|
overrideprotectedvirtualinherited |
Definition at line 250 of file PorousFlowSink.C.
|
overrideprotectedvirtualinherited |
Definition at line 256 of file PorousFlowSink.C.
|
overrideprotectedvirtualinherited |
Definition at line 225 of file PorousFlowSink.C.
|
overrideprotectedvirtual |
d(multiplier)/d(Porous flow variable pvar)
Reimplemented from PorousFlowSink.
Definition at line 53 of file PorousFlowHalfGaussianSink.C.
|
protectedvirtualinherited |
Provides the d(variable)/(d PorousFlow Variable pvar)
Definition at line 55 of file PorousFlowSinkPTDefiner.C.
Referenced by PorousFlowPiecewiseLinearSink::dmultiplier_dvar(), dmultiplier_dvar(), and PorousFlowHalfCubicSink::dmultiplier_dvar().
|
protectedinherited |
Derivative of residual with respect to the jvar variable.
Definition at line 262 of file PorousFlowSink.C.
Referenced by PorousFlowSink::computeQpJacobian(), and PorousFlowSink::computeQpOffDiagJacobian().
|
overrideprotectedvirtual |
The flux gets multiplied by this quantity.
Reimplemented from PorousFlowSink.
Definition at line 44 of file PorousFlowHalfGaussianSink.C.
|
protectedvirtualinherited |
Provides the variable value (either porepressure, or temperature, depending on _involves_fluid)
Definition at line 47 of file PorousFlowSinkPTDefiner.C.
Referenced by PorousFlowPiecewiseLinearSink::dmultiplier_dvar(), dmultiplier_dvar(), PorousFlowHalfCubicSink::dmultiplier_dvar(), PorousFlowPiecewiseLinearSink::multiplier(), multiplier(), and PorousFlowHalfCubicSink::multiplier().
|
protected |
Center of the Gaussian sink.
Definition at line 41 of file PorousFlowHalfGaussianSink.h.
Referenced by dmultiplier_dvar(), and multiplier().
|
protectedinherited |
d(enthalpy of each phase)/d(PorousFlow variable)
Definition at line 132 of file PorousFlowSink.h.
|
protectedinherited |
d(Fluid density for each phase (at the node))/d(PorousFlow variable)
Definition at line 108 of file PorousFlowSink.h.
|
protectedinherited |
d(Viscosity of each component in each phase)/d(PorousFlow variable)
Definition at line 114 of file PorousFlowSink.h.
|
protectedinherited |
PorousFlowDictator UserObject.
Definition at line 45 of file PorousFlowSink.h.
Referenced by PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
d(internal_energy of each phase)/d(PorousFlow variable)
Definition at line 138 of file PorousFlowSink.h.
|
protectedinherited |
d(Mass fraction of each component in each phase)/d(PorousFlow variable)
Definition at line 126 of file PorousFlowSink.h.
|
protectedinherited |
d(Permeability)/d(grad(PorousFlow variable))
Definition at line 102 of file PorousFlowSink.h.
Referenced by PorousFlowSink::jac().
|
protectedinherited |
d(Permeability)/d(PorousFlow variable)
Definition at line 99 of file PorousFlowSink.h.
|
protectedinherited |
d(Nodal pore pressure in each phase)/d(PorousFlow variable)
Definition at line 34 of file PorousFlowSinkPTDefiner.h.
Referenced by PorousFlowSinkPTDefiner::dptVar(), and PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner().
|
protectedinherited |
d(Relative permeability of each phase)/d(PorousFlow variable)
Definition at line 120 of file PorousFlowSink.h.
|
protectedinherited |
d(Nodal temperature)/d(PorousFlow variable)
Definition at line 40 of file PorousFlowSinkPTDefiner.h.
Referenced by PorousFlowSinkPTDefiner::dptVar(), and PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner().
|
protectedinherited |
d(Thermal_Conductivity)/d(PorousFlow variable)
Definition at line 144 of file PorousFlowSink.h.
|
protectedinherited |
Enthalpy of each phase.
Definition at line 129 of file PorousFlowSink.h.
|
protectedinherited |
Fluid density for each phase (at the node)
Definition at line 105 of file PorousFlowSink.h.
|
protectedinherited |
Viscosity of each component in each phase.
Definition at line 111 of file PorousFlowSink.h.
Referenced by PorousFlowSink::jac().
|
protectedinherited |
Whether there is an "enthalpy" Material. This is just for error checking.
Definition at line 78 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether there is an "internal_energy" Material. This is just for error checking.
Definition at line 84 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether there is a "mass_fraction" Material. This is just for error checking.
Definition at line 57 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether there are Materials that can form "mobility". This is just for error checking.
Definition at line 66 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether there is a "relperm" Material. This is just for error checking.
Definition at line 72 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether there is an "thermal_conductivity" Material. This is just for error checking.
Definition at line 90 of file PorousFlowSink.h.
Referenced by PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Internal_Energy of each phase.
Definition at line 135 of file PorousFlowSink.h.
|
protectedinherited |
Whether this BC involves fluid (whether the user has supplied a fluid phase number)
Definition at line 48 of file PorousFlowSink.h.
Referenced by PorousFlowSinkPTDefiner::dptVar(), PorousFlowSink::PorousFlowSink(), PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner(), and PorousFlowSinkPTDefiner::ptVar().
|
protectedinherited |
The flux.
Definition at line 93 of file PorousFlowSink.h.
Referenced by PorousFlowSink::multiplier().
|
protectedinherited |
Mass fraction of each component in each phase.
Definition at line 123 of file PorousFlowSink.h.
|
protected |
Maximum of the Gaussian sink.
Definition at line 35 of file PorousFlowHalfGaussianSink.h.
Referenced by dmultiplier_dvar(), and multiplier().
|
protectedinherited |
Flag to check whether permeabiity derivatives are non-zero.
Definition at line 156 of file PorousFlowSink.h.
Referenced by PorousFlowSink::jac().
|
protectedinherited |
Permeability of porous material.
Definition at line 96 of file PorousFlowSink.h.
|
protectedinherited |
The phase number.
Definition at line 51 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSinkPTDefiner::dptVar(), PorousFlowSink::jac(), PorousFlowSink::PorousFlowSink(), and PorousFlowSinkPTDefiner::ptVar().
|
protectedinherited |
Nodal pore pressure in each phase.
Definition at line 31 of file PorousFlowSinkPTDefiner.h.
Referenced by PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner(), and PorousFlowSinkPTDefiner::ptVar().
|
protectedinherited |
Subtract this from porepressure or temperature before evaluating PiecewiseLinearSink, HalfCubicSink, etc.
Definition at line 43 of file PorousFlowSinkPTDefiner.h.
Referenced by PorousFlowSinkPTDefiner::ptVar().
|
protectedinherited |
Relative permeability of each phase.
Definition at line 117 of file PorousFlowSink.h.
|
protected |
Standard deviation of the Gaussian sink.
Definition at line 38 of file PorousFlowHalfGaussianSink.h.
Referenced by dmultiplier_dvar(), and multiplier().
|
protectedinherited |
The component number (only used if _use_mass_fraction==true)
Definition at line 60 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Nodal temperature.
Definition at line 37 of file PorousFlowSinkPTDefiner.h.
Referenced by PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner(), and PorousFlowSinkPTDefiner::ptVar().
|
protectedinherited |
Thermal_Conductivity of porous material.
Definition at line 141 of file PorousFlowSink.h.
|
protectedinherited |
Whether to multiply the sink flux by enthalpy.
Definition at line 75 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether to multiply the sink flux by internal_energy.
Definition at line 81 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether the flux will be multiplied by the mass fraction.
Definition at line 54 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether to multiply the sink flux by permeability*density/viscosity.
Definition at line 63 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether to multiply the sink flux by relative permeability.
Definition at line 69 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().
|
protectedinherited |
Whether to multiply the sink flux by thermal_conductivity.
Definition at line 87 of file PorousFlowSink.h.
Referenced by PorousFlowSink::computeQpResidual(), PorousFlowSink::jac(), and PorousFlowSink::PorousFlowSink().