PISM, A Parallel Ice Sheet Model  stable v2.0.4 committed by Constantine Khrulev on 2022-05-25 12:02:27 -0800

◆ effective_viscosity() [1/2]

void pism::rheology::FlowLaw::effective_viscosity ( double  B,
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 163 of file FlowLaw.cc.

References m_schoofReg.

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