Loading [MathJax]/extensions/TeX/AMSmath.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages

◆ effective_viscosity() [1/2]

void pism::rheology::FlowLaw::effective_viscosity ( double  hardness,
double  gamma,
double nu,
double dnu 
) const

Computes the regularized effective viscosity and its derivative with respect to the second invariant \gamma .

\begin{align*} \nu &= \frac{1}{2} B \left( \epsilon + \gamma \right)^{(1-n)/(2n)},\\ \diff{\nu}{\gamma} &= \frac{1}{2} B \cdot \frac{1-n}{2n} \cdot \left(\epsilon + \gamma \right)^{(1-n)/(2n) - 1}, \\ &= \frac{1-n}{2n} \cdot \frac{1}{2} B \left( \epsilon + \gamma \right)^{(1-n)/(2n)} \cdot \frac{1}{\epsilon + \gamma}, \\ &= \frac{1-n}{2n} \cdot \frac{\nu}{\epsilon + \gamma}. \end{align*}

Here \gamma is the second invariant

\begin{align*} \gamma &= \frac{1}{2} D_{ij} D_{ij}\\ &= \frac{1}{2}\, ((u_x)^2 + (v_y)^2 + (u_x + v_y)^2 + \frac{1}{2}\, (u_y + v_x)^2) \\ \end{align*}

and

D_{ij}(\mathbf{u}) = \frac{1}{2}\left(\diff{u_{i}}{x_{j}} + \diff{u_{j}}{x_{i}}\right).

Either one of nu and dnu can be NULL if the corresponding output is not needed.

Parameters
[in]Bice hardness
[in]gammathe second invariant
[out]nueffective viscosity
[out]dnuderivative of \nu with respect to \gamma

Definition at line 162 of file FlowLaw.cc.

References effective_viscosity(), hardness(), and m_schoofReg.

Referenced by pism::stressbalance::compute_2D_stresses(), pism::diagnostics::IceViscosity::compute_impl(), and effective_viscosity().