In [1]:
%matplotlib inline

添加 SuperCell


In [2]:
from catplot.grid_components.supercell import SuperCell2D
from catplot.grid_components.nodes import Node2D
from catplot.grid_components.edges import Edge2D

创建Nodes

创建四个top位Node


In [3]:
t1 = Node2D([0.0, 0.0], color="#2277D1")

In [4]:
t2 = t1.clone([0.0, 1.0])
t3 = t2.clone([1.0, 0.0])
t4 = t1.clone([1.0, 0.0])

创建四个bridge位Node


In [5]:
b1 = Node2D([0.0, 0.5], color="#F87D05", style=">")

In [6]:
b2 = b1.clone([0.5, 0.5])
b2.style = "v"
b3 = b1.clone([0.5, -0.5])
b3.style = "^"
b4 = b1.clone([1.0, 0.0])
b4.style = "<"

创建一个hollow位Node


In [7]:
h = Node2D([0.5, 0.5], color="#008800", style="s")

创建edges


In [8]:
from catplot.grid_components.edges import Edge2D

In [9]:
e1 = Edge2D(t1, t2)
e2 = Edge2D(t2, t3)
e3 = Edge2D(t3, t4)
e4 = Edge2D(t1, t4)

In [10]:
e5 = Edge2D(b1, b2, style="dashed")
e6 = Edge2D(b1, b3, style="dashed")
e7 = Edge2D(b2, b4, style="dashed")
e8 = Edge2D(b3, b4, style="dashed")

创建supercell


In [11]:
from catplot.grid_components.supercell import SuperCell

In [12]:
supercell = SuperCell2D([t1, t2, t3, t4, b1, b2, b3, b4, h],
                        [e1, e2, e3, e4, e5, e6, e7, e8])

创建画布


In [13]:
from catplot.grid_components.grid_canvas import Grid2DCanvas

In [14]:
canvas = Grid2DCanvas()


向画布中添加supercell


In [15]:
canvas.add_supercell(supercell=supercell)

绘制


In [16]:
canvas.draw()
canvas.figure


Out[16]:

克隆supercell


In [17]:
supercell_clone = supercell.clone([1.0, 0.0])

In [18]:
canvas.add_supercell(supercell_clone)

In [19]:
canvas.nodes


Out[19]:
[<catplot.grid_components.nodes.Node2D at 0x10a1f3828>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f37b8>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3898>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3908>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3978>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3a58>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3ac8>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3b38>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3ba8>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3668>,
 <catplot.grid_components.nodes.Node2D at 0x10a1f3f28>,
 <catplot.grid_components.nodes.Node2D at 0x10a740128>,
 <catplot.grid_components.nodes.Node2D at 0x10a740198>,
 <catplot.grid_components.nodes.Node2D at 0x10a740208>,
 <catplot.grid_components.nodes.Node2D at 0x10a740278>,
 <catplot.grid_components.nodes.Node2D at 0x10a7402e8>,
 <catplot.grid_components.nodes.Node2D at 0x10a740358>,
 <catplot.grid_components.nodes.Node2D at 0x10a7403c8>]

In [20]:
canvas.edges


Out[20]:
[<catplot.grid_components.edges.Edge2D at 0x10a206710>,
 <catplot.grid_components.edges.Edge2D at 0x10a206748>,
 <catplot.grid_components.edges.Edge2D at 0x10a206828>,
 <catplot.grid_components.edges.Edge2D at 0x10a206908>,
 <catplot.grid_components.edges.Edge2D at 0x10a206c88>,
 <catplot.grid_components.edges.Edge2D at 0x10a206c50>,
 <catplot.grid_components.edges.Edge2D at 0x10a206cc0>,
 <catplot.grid_components.edges.Edge2D at 0x10a206cf8>,
 <catplot.grid_components.edges.Edge2D at 0x10a851278>,
 <catplot.grid_components.edges.Edge2D at 0x10a8513c8>,
 <catplot.grid_components.edges.Edge2D at 0x10a851048>,
 <catplot.grid_components.edges.Edge2D at 0x10a851400>,
 <catplot.grid_components.edges.Edge2D at 0x10a8515c0>,
 <catplot.grid_components.edges.Edge2D at 0x10a8510b8>,
 <catplot.grid_components.edges.Edge2D at 0x10a8516a0>,
 <catplot.grid_components.edges.Edge2D at 0x10a851588>]

In [21]:
canvas.draw()
canvas.figure


Out[21]: