www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RichardsSeffPrimePrimeAux Class Reference

Calculates derivative of effective saturation wrt specified porepressures. More...

#include <RichardsSeffPrimePrimeAux.h>

Inheritance diagram for RichardsSeffPrimePrimeAux:
[legend]

Public Member Functions

 RichardsSeffPrimePrimeAux (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeValue ()
 

Protected Attributes

const RichardsSeff_seff_UO
 The user object that defines effective saturation as function of porepressure (or porepressures in the multiphase situation) More...
 
int _wrt1
 AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wrt to. More...
 
int _wrt2
 AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wrt to. More...
 
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 requires) Eg, for twophase simulations N=2 More...
 
std::vector< std::vector< Real > > _mat
 matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2]; More...
 

Detailed Description

Calculates derivative of effective saturation wrt specified porepressures.

Definition at line 24 of file RichardsSeffPrimePrimeAux.h.

Constructor & Destructor Documentation

RichardsSeffPrimePrimeAux::RichardsSeffPrimePrimeAux ( const InputParameters &  parameters)

Definition at line 30 of file RichardsSeffPrimePrimeAux.C.

31  : AuxKernel(parameters),
32  _seff_UO(getUserObject<RichardsSeff>("seff_UO")),
33  _wrt1(getParam<int>("wrtnum1")),
34  _wrt2(getParam<int>("wrtnum2"))
35 {
36  int n = coupledComponents("pressure_vars");
37  if (_wrt1 < 0 || _wrt1 >= n)
38  mooseError("Your wrtnum1 is ", _wrt1, " but it must obey 0 <= wrtnum1 < ", n, ".");
39  if (_wrt2 < 0 || _wrt2 >= n)
40  mooseError("Your wrtnum2 is ", _wrt2, " but it must obey 0 <= wrtnum2 < ", n, ".");
41  _pressure_vals.resize(n);
42 
43  for (int i = 0; i < n; ++i)
44  _pressure_vals[i] = &coupledValue("pressure_vars", i);
45 
46  _mat.resize(n);
47  for (int i = 0; i < n; ++i)
48  _mat[i].resize(n);
49 }
const RichardsSeff & _seff_UO
The user object that defines effective saturation as function of porepressure (or porepressures in th...
std::vector< std::vector< Real > > _mat
matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2];
int _wrt1
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wr...
int _wrt2
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wr...
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...

Member Function Documentation

Real RichardsSeffPrimePrimeAux::computeValue ( )
protectedvirtual

Definition at line 52 of file RichardsSeffPrimePrimeAux.C.

53 {
55  return _mat[_wrt1][_wrt2];
56 }
const RichardsSeff & _seff_UO
The user object that defines effective saturation as function of porepressure (or porepressures in th...
std::vector< std::vector< Real > > _mat
matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2];
int _wrt1
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wr...
int _wrt2
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wr...
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 void d2seff(std::vector< const VariableValue * > p, unsigned int qp, std::vector< std::vector< Real >> &result) const =0
second derivative(s) of effective saturation as a function of porepressure(s) at given quadpoint of t...

Member Data Documentation

std::vector<std::vector<Real> > RichardsSeffPrimePrimeAux::_mat
protected

matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2];

Definition at line 59 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

std::vector<const VariableValue *> RichardsSeffPrimePrimeAux::_pressure_vals
protected

the porepressure values (this will be length N where N is the number of arguments that the _seff_UO requires) Eg, for twophase simulations N=2

Definition at line 56 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

const RichardsSeff& RichardsSeffPrimePrimeAux::_seff_UO
protected

The user object that defines effective saturation as function of porepressure (or porepressures in the multiphase situation)

Definition at line 37 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue().

int RichardsSeffPrimePrimeAux::_wrt1
protected

AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wrt to.

Definition at line 43 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

int RichardsSeffPrimePrimeAux::_wrt2
protected

AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wrt to.

Definition at line 49 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().


The documentation for this class was generated from the following files: