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 25 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 }

Member Function Documentation

◆ computeValue()

Real RichardsSeffPrimePrimeAux::computeValue ( )
protectedvirtual

Definition at line 56 of file RichardsSeffPrimePrimeAux.C.

57 {
59  return _mat[_wrt1][_wrt2];
60 }

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 60 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 57 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 38 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 44 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 50 of file RichardsSeffPrimePrimeAux.h.

Referenced by computeValue(), and RichardsSeffPrimePrimeAux().


The documentation for this class was generated from the following files:
RichardsSeffPrimePrimeAux::_pressure_vals
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...
Definition: RichardsSeffPrimePrimeAux.h:57
RichardsSeffPrimePrimeAux::_mat
std::vector< std::vector< Real > > _mat
matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2];
Definition: RichardsSeffPrimePrimeAux.h:60
RichardsSeffPrimePrimeAux::_seff_UO
const RichardsSeff & _seff_UO
The user object that defines effective saturation as function of porepressure (or porepressures in th...
Definition: RichardsSeffPrimePrimeAux.h:38
RichardsSeffPrimePrimeAux::_wrt2
int _wrt2
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wr...
Definition: RichardsSeffPrimePrimeAux.h:50
RichardsSeffPrimePrimeAux::_wrt1
int _wrt1
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wr...
Definition: RichardsSeffPrimePrimeAux.h:44
RichardsSeff::d2seff
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...