www.mooseframework.org
RichardsSeffAux.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 // This post processor returns the effective saturation of a region.
9 //
10 #include "RichardsSeffAux.h"
11 
12 template <>
13 InputParameters
15 {
16  InputParameters params = validParams<AuxKernel>();
17  params.addRequiredCoupledVar("pressure_vars", "List of variables that represent the pressure");
18  params.addRequiredParam<UserObjectName>("seff_UO",
19  "Name of user object that defines effective saturation.");
20  params.addClassDescription("auxillary variable which is effective saturation");
21  return params;
22 }
23 
24 RichardsSeffAux::RichardsSeffAux(const InputParameters & parameters)
25  : AuxKernel(parameters), _seff_UO(getUserObject<RichardsSeff>("seff_UO"))
26 {
27  int n = coupledComponents("pressure_vars");
28  _pressure_vals.resize(n);
29 
30  for (int i = 0; i < n; ++i)
31  _pressure_vals[i] = &coupledValue("pressure_vars", i);
32 }
33 
34 Real
36 {
37  return _seff_UO.seff(_pressure_vals, _qp);
38 }
Base class for effective saturation as a function of porepressure(s) The functions seff...
Definition: RichardsSeff.h:22
InputParameters validParams< RichardsSeffAux >()
RichardsSeffAux(const InputParameters &parameters)
std::vector< const VariableValue * > _pressure_vals
the porepressure values (this will be length N where N is the number of arguments that the _seff_UO r...
virtual Real computeValue()
const RichardsSeff & _seff_UO
The user object that defines effective saturation as function of porepressure (or porepressures in th...
virtual Real seff(std::vector< const VariableValue * > p, unsigned int qp) const =0
effective saturation as a function of porepressure(s) at given quadpoint of the element ...