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()
[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()
[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()
[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()
[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()
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()
[10]:
r = RamsayPlot()
r.path(Eevol, marker='.')
r.point(E, color='r', marker='o')
r.show()
[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()
[12]:
r = HsuPlot()
r.path(Eevol, marker='.')
r.point(E, color='r', marker='o')
r.show()
[ ]: