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) # fourth-order structure tensor
nlm = np.zeros((nlm_len), dtype=np.complex64)
nlm[:sf.L4len] = sf.a4_to_nlm(a4) # corresponding expansion coefficients
### Enhancement factor basis
ei, lami = sf.eig(nlm) # use a^(2) basis (m1,m2,m3; i.e. eigenenhancements)
#ei = np.eye(3) # use Cartesian basis (x,y,z)
### Transversely isotropic monocrystal parameters for ice (Rathmann & Lilien, 2021)
n_grain = 1 # power-law exponent: n_grain=1 => linear grain rheology, nonlinear (n_grain>1) is unsupported.
Eij_grain = (1, 1e3) # grain eigenenhancements for compression along c-axis (Ecc) and for shear parallel to basal plane (Eca)
alpha = 0.0125 # Taylor--Sachs weight
### Calculate enhancement factors in ei frame
Eij = sf.Eij_tranisotropic(nlm, *ei, Eij_grain,alpha,n_grain) # Eij=(E11,E22,E33,E23,E13,E12)