Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 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 : #include "PorousFlowRogersStallybrassClements.h" 11 : 12 : namespace PorousFlowRogersStallybrassClements 13 : { 14 : Real 15 3436662 : effectiveSaturation(Real pc, Real shift, Real scale) 16 : { 17 3436662 : Real x = (pc - shift) / scale; 18 3436662 : Real ex = std::exp(x); 19 3436662 : return std::pow(1.0 + ex, -0.5); 20 : } 21 : 22 : Real 23 3403062 : dEffectiveSaturation(Real pc, Real shift, Real scale) 24 : { 25 3403062 : Real x = (pc - shift) / scale; 26 3403062 : Real ex = std::exp(x); 27 3403062 : return -0.5 * ex * std::pow(1.0 + ex, -1.5) / scale; 28 : } 29 : 30 : Real 31 1700262 : d2EffectiveSaturation(Real pc, Real shift, Real scale) 32 : { 33 1700262 : Real x = (pc - shift) / scale; 34 1700262 : Real ex = std::exp(x); 35 1700262 : return (0.75 * ex * ex * std::pow(1.0 + ex, -2.5) - 0.5 * ex * std::pow(1.0 + ex, -1.5)) / scale / 36 1700262 : scale; 37 : } 38 : }