Ice viscous anisotropy
If ice grains are treated as transversely isotropic, the rheology of a single grain can be modeled as a transversely isotropic power law. This requires specifying the grain eigenenhancements \(E_{cc}'\) and \(E_{ca}'\) and the power law exponent \(n'\).
The grain parameters proposed by Rathmann and Lilien (2021) assume linear-viscous behavior of single crystals (\(n'=1\)) and promote the activation of basal glide by making that slip system soft compared to other systems: \(E_{ca}' > 1\), whereas \(E_{cc}'=1\). This reduces the problem to picking \(E_{ca}'\) and \(\alpha\) (Taylor—Sachs homogenization weight), which Rathmann and Lilien (2021) determined by requiring that deformation tests on strong single-maximum CPOs (aligned grains) are approximately reproduced; that is, \(E_{mt}=10\) and \(E_{mm}=0.01\).
The effect of choosing different \(E_{ca}'\) and \(\alpha\) (left panel) on the eigenenhancements of different CPO states (right panel) is shown below for combinations of \(E_{ca}'\) and \(\alpha\) that fulfill \(E_{mt}=10\) given a unidirectional CPO.
Clearly, there is a trade-off between how shear enhanced (\(E_{mt}\)) and how hard for axial compression (\(E_{mm}\)) the model allows a unidirectional CPO to be.
Code example
The below code shows how to calculate \(E_{ij}\) given \({\bf a}^{(4)}\) (or the state vector \(\bf s\)) and a set of grain parameters.
import numpy as np
from specfabpy import specfab as sf
lm, nlm_len = sf.init(8)
### Synthetic unidirectional CPO (all c-axes aligned in z-direction)
m = np.array([0,0,1])
a4 = np.einsum('i,j,k,l', m,m,m,m) # 4-times repeated outer product of m
nlm = np.zeros((nlm_len), dtype=np.complex64)
nlm[:sf.L4len] = sf.a4_to_nlm(a4) # derive corresponding expansion coefficients
### Basis for enhancement factor calculations
(e1,e2,e3, eigvals) = sf.frame(nlm, 'e') # enhancement factors are w.r.t. a^(2) basis (i.e. eigenenhancements)
#(e1,e2,e3) = np.eye(3) # enhancement factors are w.r.t. Cartesian basis (x,y,z)
### Transversely isotropic monocrystal parameters for ice (Rathmann & Lilien, 2021)
n_grain = 1 # power-law exponent: n=1 => linear grain rheology, nonlinear (n>1) is unsupported.
Eij_grain = (1, 1e3) # grain eigenenhancements (Ecc,Eca) for compression along c-axis (Ecc) and for shear parallel to basal plane (Eca)
alpha = 0.0125 # Taylor--Sachs weight
### Calculate enhancement factors w.r.t. (e1,e2,e3)
Eij = sf.Eij_tranisotropic(nlm, e1,e2,e3, Eij_grain,alpha,n_grain) # Eij=(E11,E22,E33,E23,E13,E12)