In [1]:
%matplotlib inline
In [2]:
nodes, edges = [], []
In [3]:
from catplot.grid_components.nodes import Node2D
from catplot.grid_components.edges import Edge2D
In [4]:
top = Node2D([0.0, 0.0], size=800, color="#2A6A9C")
# 辅助top位
t1 = top.clone([0.0, 1.0])
t2 = top.clone([1.0, 0.0])
t3 = top.clone([1.0, 1.0])
In [5]:
te1 = Edge2D(top, t1, width=5)
te2 = Edge2D(top, t2, width=5)
te3 = Edge2D(t1, t2, width=5)
In [6]:
nodes.append(top)
edges.extend([te1, te2, te3])
In [7]:
bridge1 = Node2D([0.0, 0.5], style="s", size=600, color="#5A5A5A", alpha=0.6)
bridge2 = Node2D([0.5, 0.0], style="s", size=600, color="#5A5A5A", alpha=0.6)
bridge3 = Node2D([0.5, 0.5], style="s", size=600, color="#5A5A5A", alpha=0.6)
# 辅助bridge位
b1 = Node2D([0.5, 1.0])
b2 = Node2D([1.0, 0.5])
In [8]:
be1 = Edge2D(bridge1, bridge2)
be2 = Edge2D(bridge1, bridge3)
be3 = Edge2D(bridge2, bridge3)
be4 = Edge2D(bridge3, b2)
be5 = Edge2D(b2, b1)
be6 = Edge2D(bridge3, b1)
In [9]:
nodes.extend([bridge1, bridge2, bridge3])
edges.extend([be1, be2, be3, be4, be5, be6])
In [10]:
hollow1 = Node2D([1/3., 1./3], style="h", size=700, color="#5A5A5A", alpha=0.3)
hollow2 = Node2D([2/3., 2./3], style="h", size=700, color="#5A5A5A", alpha=0.3)
In [11]:
nodes.extend([hollow1, hollow2])
In [12]:
from catplot.grid_components.supercell import SuperCell2D
from math import sqrt
In [13]:
supercell = SuperCell2D(nodes, edges, cell_vectors=[[1.0, 0.0],
[0.5, sqrt(3)/2]])
In [14]:
from catplot.grid_components.grid_canvas import Grid2DCanvas
In [15]:
canvas = Grid2DCanvas()
canvas.add_supercell(supercell)
In [16]:
canvas.draw()
canvas.figure
Out[16]:
In [17]:
canvas_big = Grid2DCanvas(figsize=(30, 20), dpi=60)
In [18]:
expanded_supercell = supercell.expand(4, 4)
In [19]:
canvas_big.add_supercell(expanded_supercell)
In [20]:
canvas_big.draw()
canvas_big.figure
Out[20]: