Skip to content

Commit 78739c7

Browse files
committed
Deployed ee27e01 with MkDocs version: 1.4.2
1 parent a1a41a3 commit 78739c7

12 files changed

Lines changed: 69 additions & 32 deletions

File tree

cpo-structuretensors/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,9 @@ <h2 id="principal-frame">Principal frame</h2>
170170
\]</div>
171171
<p>therefore has a similar interpretation as in PCA:
172172
the first principal component (eigenvector <span class="arithmatex">\({\bf m}_1\)</span>) is the direction that maximizes the variance (eigenvalue <span class="arithmatex">\(\lambda_1\)</span>) of the projected data (red curve), the second component is the direction orthogonal to the first component that maximizes the variance of the projected data, and so on with the third component. </p>
173-
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/refs/heads/main/images/harmonic-expansion/a2.png#center" style="width:580px" /></p>
173+
<div style="width: 100%; text-align: center;">
174+
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/refs/heads/main/images/harmonic-expansion/a2.png#center" style="width:600px" /></p>
175+
</div>
174176
<h2 id="convert-to-spectral">Convert to spectral</h2>
175177
<p>Converting between spectral and tensorial representations is a linear problem in the sense that </p>
176178
<div class="arithmatex">\[

enhancements-strainrate-ice/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,14 @@
139139
<div class="section" itemprop="articleBody">
140140

141141
<h1 id="ice-viscous-anisotropy">Ice viscous anisotropy</h1>
142+
<div style="float: left; width: 30%; text-align: center;">
142143
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/tranisotropic/monoice-viscous.png" style="width:150px" /></p>
144+
</div>
145+
<div style="float: right; width: 70%;">
143146
<p>If ice grains are treated as transversely isotropic, the rheology of a single grain can be modeled as a <a href="../constitutive-viscoplastic/">transversely isotropic power law</a>.
144147
This requires specifying the grain eigenenhancements <span class="arithmatex">\(E_{cc}'\)</span> and <span class="arithmatex">\(E_{ca}'\)</span> and the power law exponent <span class="arithmatex">\(n'\)</span>. </p>
148+
</div>
149+
<div style="clear: both;"></div>
145150
<p>The grain parameters proposed by <a href="https://doi.org/10.1017/jog.2021.88">Rathmann and Lilien (2021)</a> assume linear-viscous behavior of single crystals (<span class="arithmatex">\(n'=1\)</span>) and promote the activation of basal glide by making that slip system soft compared to other systems: <span class="arithmatex">\(E_{ca}' &gt; 1\)</span>, whereas <span class="arithmatex">\(E_{cc}'=1\)</span>.
146151
This reduces the problem to picking <span class="arithmatex">\(E_{ca}'\)</span> and <span class="arithmatex">\(\alpha\)</span> (Taylor&mdash;Sachs homogenization weight), which <a href="https://doi.org/10.1017/jog.2021.88">Rathmann and Lilien (2021)</a> determined by requiring that deformation tests on strong single-maximum CPOs (aligned grains) are approximately reproduced; that is, <span class="arithmatex">\(E_{mt}=10\)</span> and <span class="arithmatex">\(E_{mm}=0.01\)</span>.</p>
147152
<p>The effect of choosing different <span class="arithmatex">\(E_{ca}'\)</span> and <span class="arithmatex">\(\alpha\)</span> (left panel) on the eigenenhancements of different CPO states (right panel) is shown below for combinations of <span class="arithmatex">\(E_{ca}'\)</span> and <span class="arithmatex">\(\alpha\)</span> that fulfill <span class="arithmatex">\(E_{mt}=10\)</span> given a unidirectional CPO. </p>

enhancements-strainrate-olivine/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,14 @@
137137
<div class="section" itemprop="articleBody">
138138

139139
<h1 id="olivine-viscous-anisotropy">Olivine viscous anisotropy</h1>
140+
<div style="float: left; width: 35%; text-align: center;">
140141
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/orthotropic/monooli-viscous-mi.png" style="width:200px" /></p>
142+
</div>
143+
<div style="float: right; width: 65%;">
141144
<p>If grains are approximately orthotropic, the grain rheology can be modelled using the <a href="../constitutive-viscoplastic/">orthotropic power-law rheology</a>.
142145
This requires specifying the grain eigenenhancements <span class="arithmatex">\(E_{ij}'\)</span>, the power-law exponent <span class="arithmatex">\(n'\)</span>, and the Taylor&mdash;Sachs weight <span class="arithmatex">\(\alpha\)</span>.</p>
146+
</div>
147+
<div style="clear: both;"></div>
143148
<p>🚧 <em>Not yet documented &mdash; see <a href="https://doi.org/10.1029/2024GC011831">Rathmann et al. (2024)</a> for details.</em></p>
144149

145150
</div>

fabdyn-CDRX/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,14 @@
141141
<div class="section" itemprop="articleBody">
142142

143143
<h1 id="continous-dynamic-recrystallization-cdrx">Continous dynamic recrystallization (CDRX)</h1>
144+
<div style="float: left; width: 25%; text-align: center;">
144145
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/tranisotropic/iceproc-CDRX.png" style="width:120px" /></p>
146+
</div>
147+
<div style="float: right; width: 75%;">
145148
<p>Polygonization (rotation recrystallization, CDRX) accounts for the division of grains along internal sub-grain boundaries resulting from local strain incompatibilities.
146149
In effect, CDRX reduces the average grain size upon grain division but does not necessarily change the CPO much (<a href="https://doi.org/10.3189/S0022143000003658">Alley, 1992</a>). </p>
150+
</div>
151+
<div style="clear: both;"></div>
147152
<p>Following <a href="https://doi.org/10.1007/s001610050095">Gödert (2003)</a>, CDRX can be modeled by approximating this effect as a Laplacian diffusive process on <span class="arithmatex">\(S^2\)</span>:</p>
148153
<div class="arithmatex">\[
149154
\frac{\mathrm{D} n}{\mathrm{D} t} = \Lambda\nabla^2 n ,

fabdyn-DDRX/index.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,14 @@
141141
<div class="section" itemprop="articleBody">
142142

143143
<h2 id="discontinous-dynamic-recrystallization-ddrx">Discontinous dynamic recrystallization (DDRX)</h2>
144+
<div style="float: left; width: 25%; text-align: center;">
144145
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/tranisotropic/iceproc-DDRX.png" style="width:120px" /></p>
146+
</div>
147+
<div style="float: right; width: 75%;">
148+
<p>Following <a href="https://doi.org/10.1007/s00161-009-0126-0">Placidi and others (2010)</a>, DDRX is modeled as a spontaneous mass decay&mdash;production process in orientation space <span class="arithmatex">\(S^2\)</span>, intended to represent the combined effect of nucleation and grain boundary migration.
149+
That is, mass is spontaneously exchanged between grains with different orientations depending on the local stress state, strain rate, and temperature, in a statistical sense. </p>
150+
</div>
151+
<div style="clear: both;"></div>
145152
<p>Following <a href="https://doi.org/10.1007/s00161-009-0126-0">Placidi and others (2010)</a>, DDRX is modeled as a spontaneous mass decay&mdash;production process in orientation space <span class="arithmatex">\(S^2\)</span>, intended to represent the combined effect of nucleation and grain boundary migration.
146153
That is, mass is spontaneously exchanged between grains with different orientations depending on the local stress state, strain rate, and temperature, in a statistical sense. </p>
147154
<p>The decay&mdash;production rate is defined as</p>

gallery-Eulerian-CPO-field/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ <h1 id="eulerian-cpo-field">Eulerian CPO field</h1>
157157
<p>where <span class="arithmatex">\({\bf \bar s}(x,y)\)</span> is the depth-average CPO state vector field, <span class="arithmatex">\({\bf{u}}(x,y)=[u_x(x,y),u_y(x,y)]\)</span> is the horizontal surface velocity field, and <span class="arithmatex">\(H\)</span> is the ice thickness.
158158
The first term represents CPO advection along stream lines, and the second term represents the depth-average effect of crystal processes.
159159
The third and fourth terms are state-space attractors, causing <span class="arithmatex">\({\bf \bar s}\)</span> to tend towards the characteristic CPO states of ice that accumulates on the surface <span class="arithmatex">\({\bf s}_{\mathrm{sfc}}\)</span> or subglacially <span class="arithmatex">\({\bf s}_{\mathrm{sub}}\)</span>, depending on the positively-defined ice-equivalent accumulation rates <span class="arithmatex">\(a_{\mathrm{sfc}}\)</span> and <span class="arithmatex">\(a_{\mathrm{sub}}\)</span>. </p>
160-
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/SSA-fabric/SSA-fabric.png" style="width:450px" /></p>
160+
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/SSA-fabric/SSA-fabric-long.png" style="width:700px" /></p>
161161
<h2 id="closure">Closure</h2>
162162
<p>If CPO development is dominated by lattice rotation (typical for cold ice), the problem is closed by specifying the horizontal surface velocity field (e.g., satellite-derived velocities), together with accumulation rates and the characteristic CPO state of accumulated ice (typically isotropic). </p>
163163
<p>If DDRX is non-negligible (typical for warm ice), the temperature and stress field must additionally be prescribed.

gallery-Lagrangian-CPO-parcel/index.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
<ul class="current">
9393
<li class="toctree-l2"><a class="reference internal" href="#constant-thermomechanical-conditions">Constant thermomechanical conditions</a>
9494
</li>
95-
<li class="toctree-l2"><a class="reference internal" href="#ice-core-cpos">Ice core CPOs</a>
95+
<li class="toctree-l2"><a class="reference internal" href="#ice-divide">Ice divide</a>
9696
<ul>
9797
<li class="toctree-l3"><a class="reference internal" href="#code-example">📝 Code example</a>
9898
</li>
@@ -208,7 +208,7 @@ <h2 id="constant-thermomechanical-conditions">Constant thermomechanical conditio
208208
strain = np.array([sf.F_to_strain(Fi[nn]) for nn in np.arange(Nt)]) # strain tensor
209209
</code></pre>
210210
<hr />
211-
<h2 id="ice-core-cpos">Ice core CPOs</h2>
211+
<h2 id="ice-divide">Ice divide</h2>
212212
<div style="float: left; width: 60%;">
213213
<p>A Lagrangian approach is well-suited for modelling the vertical CPO profile at ice sheet domes and divides.
214214
Assuming e.g. the classical Nye model of an ice divide of height <span class="arithmatex">\(H\)</span> (no basal melt, constant rate of thinning, a constant accumulation rate <span class="arithmatex">\(a\)</span>), the <a href="../deformation-kinematics/">velocity gradient</a> is constant and equal to </p>
@@ -231,11 +231,12 @@ <h2 id="ice-core-cpos">Ice core CPOs</h2>
231231
</div>
232232
<div style="float: right;width: 2%;"></div>
233233
<div style="float: right;width: 38%;">
234-
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/deformation/divide-parcel.png" style="width:250px" /> </p>
234+
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/deformation/divide-parcel.png" style="width:300px" /> </p>
235235
</div>
236236
<div style="clear: both;"></div>
237237
<h3 id="code-example">📝 Code example</h3>
238-
<p>The below example shows how to model the CPO profile of the GRIP ice core, Greenland:</p>
238+
<p>The below example shows how to model the CPO profile of the GRIP ice core, Greenland.
239+
Eigenvalues of other ice cores can be <a href="https://github.com/nicholasmr/specfab/tree/main/data/icecores">found here</a>.</p>
239240
<pre><code class="language-python">&quot;&quot;&quot;
240241
Modeled CPO profile of the GRIP ice core, Greenland
241242
&quot;&quot;&quot;
@@ -372,9 +373,11 @@ <h3 id="code-example">📝 Code example</h3>
372373

373374
plt.savefig('GRIP.png', dpi=175, pad_inches=0.1, bbox_inches='tight')
374375
</code></pre>
376+
<p>The below figure shows the model result (lines) compared to observations (markers) from thin sections made on the GRIP ice core. </p>
375377
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/docs/snippets/Lagrangian-CPO-parcel/GRIP.png#center" style="width:400px" /> </p>
376378
<hr />
377379
<h2 id="ssa-column">SSA column</h2>
380+
<p><img alt="" src="https://raw.githubusercontent.com/nicholasmr/specfab/main/images/SSA-fabric/lagrangian-column-trajectory.png#center" style="width:500px" /> </p>
378381
<p>If the Shallow Shelf/Stream Approximation (SSA) is applicable, velocities can be assumed depth constant (no vertical shearing).
379382
In this case, a <a href="../gallery-Eulerian-CPO-field/">depth-average treatment of CPO evolution</a> transforms the Lagrangian parcel model into a Lagrangian <em>column</em> model.
380383
This generalizes the above parcel model, since the velocity gradient, stress and temperature fields can no longer be assumed constant but depend on the column position <span class="arithmatex">\({\bf x}(t)=[x(t),y(t)]\)</span>.</p>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,5 +195,5 @@ <h1 id="specfab-documentation">specfab documentation</h1>
195195

196196
<!--
197197
MkDocs version : 1.4.2
198-
Build Date UTC : 2025-06-24 16:09:18.784490+00:00
198+
Build Date UTC : 2025-06-25 08:55:47.592841+00:00
199199
-->

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sitemap.xml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,122 +2,122 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>None</loc>
5-
<lastmod>2025-06-24</lastmod>
5+
<lastmod>2025-06-25</lastmod>
66
<changefreq>daily</changefreq>
77
</url>
88
<url>
99
<loc>None</loc>
10-
<lastmod>2025-06-24</lastmod>
10+
<lastmod>2025-06-25</lastmod>
1111
<changefreq>daily</changefreq>
1212
</url>
1313
<url>
1414
<loc>None</loc>
15-
<lastmod>2025-06-24</lastmod>
15+
<lastmod>2025-06-25</lastmod>
1616
<changefreq>daily</changefreq>
1717
</url>
1818
<url>
1919
<loc>None</loc>
20-
<lastmod>2025-06-24</lastmod>
20+
<lastmod>2025-06-25</lastmod>
2121
<changefreq>daily</changefreq>
2222
</url>
2323
<url>
2424
<loc>None</loc>
25-
<lastmod>2025-06-24</lastmod>
25+
<lastmod>2025-06-25</lastmod>
2626
<changefreq>daily</changefreq>
2727
</url>
2828
<url>
2929
<loc>None</loc>
30-
<lastmod>2025-06-24</lastmod>
30+
<lastmod>2025-06-25</lastmod>
3131
<changefreq>daily</changefreq>
3232
</url>
3333
<url>
3434
<loc>None</loc>
35-
<lastmod>2025-06-24</lastmod>
35+
<lastmod>2025-06-25</lastmod>
3636
<changefreq>daily</changefreq>
3737
</url>
3838
<url>
3939
<loc>None</loc>
40-
<lastmod>2025-06-24</lastmod>
40+
<lastmod>2025-06-25</lastmod>
4141
<changefreq>daily</changefreq>
4242
</url>
4343
<url>
4444
<loc>None</loc>
45-
<lastmod>2025-06-24</lastmod>
45+
<lastmod>2025-06-25</lastmod>
4646
<changefreq>daily</changefreq>
4747
</url>
4848
<url>
4949
<loc>None</loc>
50-
<lastmod>2025-06-24</lastmod>
50+
<lastmod>2025-06-25</lastmod>
5151
<changefreq>daily</changefreq>
5252
</url>
5353
<url>
5454
<loc>None</loc>
55-
<lastmod>2025-06-24</lastmod>
55+
<lastmod>2025-06-25</lastmod>
5656
<changefreq>daily</changefreq>
5757
</url>
5858
<url>
5959
<loc>None</loc>
60-
<lastmod>2025-06-24</lastmod>
60+
<lastmod>2025-06-25</lastmod>
6161
<changefreq>daily</changefreq>
6262
</url>
6363
<url>
6464
<loc>None</loc>
65-
<lastmod>2025-06-24</lastmod>
65+
<lastmod>2025-06-25</lastmod>
6666
<changefreq>daily</changefreq>
6767
</url>
6868
<url>
6969
<loc>None</loc>
70-
<lastmod>2025-06-24</lastmod>
70+
<lastmod>2025-06-25</lastmod>
7171
<changefreq>daily</changefreq>
7272
</url>
7373
<url>
7474
<loc>None</loc>
75-
<lastmod>2025-06-24</lastmod>
75+
<lastmod>2025-06-25</lastmod>
7676
<changefreq>daily</changefreq>
7777
</url>
7878
<url>
7979
<loc>None</loc>
80-
<lastmod>2025-06-24</lastmod>
80+
<lastmod>2025-06-25</lastmod>
8181
<changefreq>daily</changefreq>
8282
</url>
8383
<url>
8484
<loc>None</loc>
85-
<lastmod>2025-06-24</lastmod>
85+
<lastmod>2025-06-25</lastmod>
8686
<changefreq>daily</changefreq>
8787
</url>
8888
<url>
8989
<loc>None</loc>
90-
<lastmod>2025-06-24</lastmod>
90+
<lastmod>2025-06-25</lastmod>
9191
<changefreq>daily</changefreq>
9292
</url>
9393
<url>
9494
<loc>None</loc>
95-
<lastmod>2025-06-24</lastmod>
95+
<lastmod>2025-06-25</lastmod>
9696
<changefreq>daily</changefreq>
9797
</url>
9898
<url>
9999
<loc>None</loc>
100-
<lastmod>2025-06-24</lastmod>
100+
<lastmod>2025-06-25</lastmod>
101101
<changefreq>daily</changefreq>
102102
</url>
103103
<url>
104104
<loc>None</loc>
105-
<lastmod>2025-06-24</lastmod>
105+
<lastmod>2025-06-25</lastmod>
106106
<changefreq>daily</changefreq>
107107
</url>
108108
<url>
109109
<loc>None</loc>
110-
<lastmod>2025-06-24</lastmod>
110+
<lastmod>2025-06-25</lastmod>
111111
<changefreq>daily</changefreq>
112112
</url>
113113
<url>
114114
<loc>None</loc>
115-
<lastmod>2025-06-24</lastmod>
115+
<lastmod>2025-06-25</lastmod>
116116
<changefreq>daily</changefreq>
117117
</url>
118118
<url>
119119
<loc>None</loc>
120-
<lastmod>2025-06-24</lastmod>
120+
<lastmod>2025-06-25</lastmod>
121121
<changefreq>daily</changefreq>
122122
</url>
123123
</urlset>

0 commit comments

Comments
 (0)