APSG tutorial - Part 4

[1]:
from apsg import *

Fabric plots

Tensor-type objects (ortensor, ellipsoid) could be visualized in several specialized plots. FlinnPlot class provide classical Flinn’s deformation diagram, RamsayPlot class provide Ramsay modification of Flinn’s deformation diagram, VollmerPlot class provide triangular fabric plot (Vollmer, 1989) and HsuPlot class provide Hsu 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=4)
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.line(g1, label=True)
s.line(g2, label=True)
s.line(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 has path method which accepts ellipsoidset or ortensorset objects plotted as 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
[ ]: