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 2297774 : effectiveSaturation(Real pc, Real shift, Real scale) 16 : { 17 2297774 : Real x = (pc - shift) / scale; 18 2297774 : Real ex = std::exp(x); 19 2297774 : return std::pow(1.0 + ex, -0.5); 20 : } 21 : 22 : Real 23 2276974 : dEffectiveSaturation(Real pc, Real shift, Real scale) 24 : { 25 2276974 : Real x = (pc - shift) / scale; 26 2276974 : Real ex = std::exp(x); 27 2276974 : return -0.5 * ex * std::pow(1.0 + ex, -1.5) / scale; 28 : } 29 : 30 : Real 31 1137638 : d2EffectiveSaturation(Real pc, Real shift, Real scale) 32 : { 33 1137638 : Real x = (pc - shift) / scale; 34 1137638 : Real ex = std::exp(x); 35 1137638 : return (0.75 * ex * ex * std::pow(1.0 + ex, -2.5) - 0.5 * ex * std::pow(1.0 + ex, -1.5)) / scale / 36 1137638 : scale; 37 : } 38 : }