APSG tutorial - Part 4

[1]:
from apsg import *

Fabric plots

Tensor-type objects (ortensor, ellipsoid) can be visualized in several specialized plots. FlinnPlot class provides classical Flinn’s deformation diagram, RamsayPlot class provides Ramsay’s modification of Flinn’s deformation diagram, VollmerPlot class provides triangular fabric plot (Vollmer, 1989) and HsuPlot class provides Hsu’s fabric diagram using natural strains.

[2]:
F = defgrad.from_comp(xx=1/1.1, zz=1.1)
g1 = linset.uniform_sfs(name='Uniform').transform(F)
Fp = defgrad.from_comp(xx=0.5, yy=0.5, zz=6)
g2 = linset.uniform_sfs(name='Cluster').transform(Fp @ F)
Fo = defgrad.from_comp(xx=2, yy=0.25, zz=2)
g3 = linset.uniform_sfs(name='Girdle').transform(Fo @ F)
[3]:
s = StereoNet()
s.point(g1, label=True)
s.point(g2, label=True)
s.point(g3, label=True)
s.show()
../_images/notebooks_04_apsg_fabricplots_4_0.png
[4]:
s = FlinnPlot()
s.point(g1.ortensor(), label=g1.name)
s.point(g2.ortensor(), label=g2.name)
s.point(g3.ortensor(), label=g3.name)
s.show()
../_images/notebooks_04_apsg_fabricplots_5_0.png
[5]:
s = RamsayPlot()
s.point(g1.ortensor(), label=g1.name)
s.point(g2.ortensor(), label=g2.name)
s.point(g3.ortensor(), label=g3.name)
s.show()
../_images/notebooks_04_apsg_fabricplots_6_0.png
[6]:
s = VollmerPlot()
s.point(g1.ortensor(), label=g1.name)
s.point(g2.ortensor(), label=g2.name)
s.point(g3.ortensor(), label=g3.name)
s.show()
../_images/notebooks_04_apsg_fabricplots_7_0.png
[7]:
s = HsuPlot()
s.point(g1.ortensor(), label=g1.name)
s.point(g2.ortensor(), label=g2.name)
s.point(g3.ortensor(), label=g3.name)
s.show()
../_images/notebooks_04_apsg_fabricplots_8_0.png

All fabric plots have path method which accepts ellipsoidset or ortensorset objects, plotted as a line.

[8]:
F = defgrad.from_comp(xx=2, xy=2, yz=2, zz=0.5)
E = ellipsoid.from_defgrad(F)
L = velgrad.from_comp(xx=-2, zz=2)
Eevol = ellipsoidset([E.transform(L.defgrad(t/50)) for t in range(50)])
[9]:
r = FlinnPlot()
r.path(Eevol, marker='.')
r.point(E, color='r', marker='o')
r.show()
../_images/notebooks_04_apsg_fabricplots_11_0.png
[10]:
r = RamsayPlot()
r.path(Eevol, marker='.')
r.point(E, color='r', marker='o')
r.show()
../_images/notebooks_04_apsg_fabricplots_12_0.png
[11]:
ot = g1.ortensor()
otevol = ortensorset([g1.transform(L.defgrad(t/50)).ortensor() for t in range(50)])
f = VollmerPlot()
f.path(otevol, marker='.')
f.point(ot, color='r', marker='o')
f.show()
../_images/notebooks_04_apsg_fabricplots_13_0.png
[12]:
r = HsuPlot()
r.path(Eevol, marker='.')
r.point(E, color='r', marker='o')
r.show()
../_images/notebooks_04_apsg_fabricplots_14_0.png
[ ]: