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 26 of file RichardsSeffPrimePrimeAux.h.

Constructor & Destructor Documentation

◆ RichardsSeffPrimePrimeAux()

RichardsSeffPrimePrimeAux::RichardsSeffPrimePrimeAux ( const InputParameters &  parameters)

Definition at line 34 of file RichardsSeffPrimePrimeAux.C.

35  : AuxKernel(parameters),
36  _seff_UO(getUserObject<RichardsSeff>("seff_UO")),
37  _wrt1(getParam<int>("wrtnum1")),
38  _wrt2(getParam<int>("wrtnum2"))
39 {
40  int n = coupledComponents("pressure_vars");
41  if (_wrt1 < 0 || _wrt1 >= n)
42  mooseError("Your wrtnum1 is ", _wrt1, " but it must obey 0 <= wrtnum1 < ", n, ".");
43  if (_wrt2 < 0 || _wrt2 >= n)
44  mooseError("Your wrtnum2 is ", _wrt2, " but it must obey 0 <= wrtnum2 < ", n, ".");
45  _pressure_vals.resize(n);
46 
47  for (int i = 0; i < n; ++i)
48  _pressure_vals[i] = &coupledValue("pressure_vars", i);
49 
50  _mat.resize(n);
51  for (int i = 0; i < n; ++i)
52  _mat[i].resize(n);
53 }
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

◆ computeValue()

Real RichardsSeffPrimePrimeAux::computeValue ( )
protectedvirtual

Definition at line 56 of file RichardsSeffPrimePrimeAux.C.

57 {
59  return _mat[_wrt1][_wrt2];
60 }
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...
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...
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 Data Documentation

◆ _mat

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

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

Definition at line 61 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

◆ _pressure_vals

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 58 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

◆ _seff_UO

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 39 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue().

◆ _wrt1

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 45 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().

◆ _wrt2

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 51 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().


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