www.mooseframework.org
RichardsHalfGaussianSinkFlux.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "SideIntegralVariablePostprocessor.h"
13 #include "RichardsVarNames.h"
14 
15 class Function;
16 
17 // Forward Declarations
19 
20 template <>
22 
30 class RichardsHalfGaussianSinkFlux : public SideIntegralVariablePostprocessor
31 {
32 public:
33  RichardsHalfGaussianSinkFlux(const InputParameters & parameters);
34 
35 protected:
36  virtual Real computeQpIntegral();
37 
38  FEProblemBase & _feproblem;
39 
41  Real _maximum;
42 
44  Real _sd;
45 
47  Real _centre;
48 
54 
62  unsigned int _pvar;
63 
65  const Function & _m_func;
66 
68  const MaterialProperty<std::vector<Real>> & _pp;
69 };
validParams< RichardsHalfGaussianSinkFlux >
InputParameters validParams< RichardsHalfGaussianSinkFlux >()
Definition: RichardsHalfGaussianSinkFlux.C:20
RichardsHalfGaussianSinkFlux::_sd
Real _sd
flux out = max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and flux out = max otherwise
Definition: RichardsHalfGaussianSinkFlux.h:44
RichardsVarNames
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels,...
Definition: RichardsVarNames.h:25
RichardsHalfGaussianSinkFlux
Postprocessor that records the mass flux from porespace to a half-gaussian sink.
Definition: RichardsHalfGaussianSinkFlux.h:30
RichardsVarNames.h
RichardsHalfGaussianSinkFlux::_pp
const MaterialProperty< std::vector< Real > > & _pp
porepressure (or porepressure vector for multiphase problems)
Definition: RichardsHalfGaussianSinkFlux.h:68
RichardsHalfGaussianSinkFlux::_centre
Real _centre
flux out = max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and flux out = max otherwise
Definition: RichardsHalfGaussianSinkFlux.h:47
RichardsHalfGaussianSinkFlux::_pvar
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
Definition: RichardsHalfGaussianSinkFlux.h:62
RichardsHalfGaussianSinkFlux::_feproblem
FEProblemBase & _feproblem
Definition: RichardsHalfGaussianSinkFlux.h:38
RichardsHalfGaussianSinkFlux::RichardsHalfGaussianSinkFlux
RichardsHalfGaussianSinkFlux(const InputParameters &parameters)
Definition: RichardsHalfGaussianSinkFlux.C:45
RichardsHalfGaussianSinkFlux::_richards_name_UO
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
Definition: RichardsHalfGaussianSinkFlux.h:53
RichardsHalfGaussianSinkFlux::computeQpIntegral
virtual Real computeQpIntegral()
Definition: RichardsHalfGaussianSinkFlux.C:59
RichardsHalfGaussianSinkFlux::_m_func
const Function & _m_func
the multiplier function
Definition: RichardsHalfGaussianSinkFlux.h:65
RichardsHalfGaussianSinkFlux::_maximum
Real _maximum
flux out = max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and flux out = max otherwise
Definition: RichardsHalfGaussianSinkFlux.h:41