Fibonacci Lattice (F-Basic)

 準周期性を考える上で、必ず例に挙げられるのがフィボナッチ格子(1次元準周期性)とペンローズ・タイリング(2次元準周期性)である。
複数の単位胞(Unit Cell)で空間を充填する周期性を持たない構造を”準格子”と呼ぶ。フィボナッチ格子の場合は、二週類の直線(ShortLong)で表される。


 まず、フィボナッチ列を考えてみよう!規則( A ->AB, B -> A )に従って A, B を並べると、

  S1 = A                                            1  (AとBの比)
  S2 = AB                        1/1
  S3 = ABA                        2/1= 2.0
  S4 = ABAAB                      3/2 = 1.5
  S5 = ABAABABA                    5/3 = 1.6667・・・
  S6 = ABAABABAABAAB               8/5 = 1.6
 S7 = ABAABABAABAABABAABABA  13/8 = 1.625

            ・・・
 Sn = ・・・

となり、一般に、 Sn = Sn-1 + Sn-2 と表される。ABの個数の総和は、1, 2, 3, 5, 8, 13, 21 ・・・となり、次のフィボナッチ数列になる。

Fn+1 = Fn-1 + Fn , F0 = F1 = 1
変換行列は、となり、固有値方程式は、x2 - x - 1 = 0 で与えられて、解はとなる。特に、(黄金比)とすると、他の解はとなる。この黄金比は、自然界のあらゆるところに出てくる不思議な数である。Sn AB の比は、nが大きくなると黄金比に近づく。の関係も簡単に求められる。


τの幾何学的な関係

 τ = 2 cos(π/5) の関係から左図のような正五角形上での幾何学的関係が導かれる。


この関係を応用すると、外側の正五角形は内側の正五角形よりもτ2倍大きくなっている(相似比はτ2)。

L = τ、S = 1 として、L'->L+S, S' -> Lというフィボナッチ列に従うようにグラフに書くと下図のようになる。τ2 = τ+1 の関係から L' の長さはτ2 になる。つまり、フィボナッチ列をτ倍してもτ倍大きいフィボナッチ列が現れる(相似比はτ)。これを「自己相似性」(フラクタル)という。大きく見ても小さく見ても同じようなパターンが現れることは、自然界にはたくさんあります。フラクタルということは聞いたことがあると思いますが、準周期性を語る上でも非常に重要な概念です。

参考文献
(1)木村 薫、竹内 伸、固体物理20(1985)897.
(2)竹内 伸、木村 薫、固体物理23(1988)433.
(3)木村 薫、竹内 伸、固体物理23(1988)689.
(4)小特集; 日本金属学会会報25、2号(1986).
(5)特集;   日本金属学会会報29、10号(1990)
(6)竹内 伸、枝川圭一、「結晶・準結晶・アモルファス」 内田老鶴圃1997
(7)高安秀樹、「フラクタル」朝倉書店1992.



フィボナッチ格子上の ordering と phason strain

 正方格子に、傾き τ の直線を描き、この直線と正方格子の交わる位置に原子を置くとフィボナッチ格子ができます。
傾き τ の直線は”我々が生きている空間”です(パラレル空間、||空間)。この直線に垂直な空間は、”あの世(仮想空間)”でパープ空間(⊥空間)と呼ばれています。準周期性も”あの世”まで考えると周期性が現れます。3次元準結晶は6次元空間の周期性によって説明できます。また、⊥空間方向の棒を atomic surface と呼び、原子配列の対称性が反映されます。
 ||空間方向の歪を phonon 歪と呼ぶのに対し、⊥空間方向の歪を phason 歪と呼びます。phason 歪は、準周期性にかかわる方向の歪なので
準周期性-周期性相転移で重要な役割を果たす。また、phonon は連続的であるが、phason は、原子ジャンプによる不連続的な原子フリップを引き起こす(詳しくは下の図を参考にしてください)。



いろいろなモデル

Disordering
赤い原子緑の原子が1:1でがランダムに配置しているので、平均すると下図のようになります。

Antiferro-like ordering
隣の Atomic Surface の赤と緑の分布が逆になっています。そのため、高次元の unit cell が2倍になる。

Ferro-like ordering (Atomic Surface Type I)
Atomic Surface の分布はすべて同じです。

Ferro-like ordering (Atomic Surface Type II)
Atomic Surface の分布を変調させます。

Ferro-like ordering (Atomic Surface Type II, Random Phason)
Random Phason を導入します。局所的な原子フリップが起きます。

Ferro-like ordering (Atomic Surface Type II, Linear Phason)
Linear Phason を導入します(傾き1.5)。準周期性がなくなり長周期が現れます。


'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
'     Fibonacci Lattice for anti-ferro
'
'        プリンタへの印刷
'
'                                       Feb. 29, 2000
'                                       By Hiroshi ABE
'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#include "WINDOWS.BI"
'************************************************************************
'* プロシージャ定義      *
'************************************************************************
declare sub MAINFORM_START edecl ()
declare sub COPY_ON edecl ()
declare sub PRINT_ON edecl ()
declare sub EXIT_ON edecl ()
declare sub DRAWGRP edecl ()
common shared PI as double,TAU as double,XS,XE,YS,YE,XMIN,XMAX,YMIN,YMAX
common shared AMP, ALP, SF
common shared N_AD as integer, N_AF as integer
  PI = 4.0# * atn(1.0#)            ' π
  TAU = (1.0# + sqr(5.0#)) / 2.0#  ' τ: Golden mean
'------------------------------------------------------
  ALP=TAU         ' gradient (no Linear Phason)
'  ALP= 3.0#/2.0#  ' gradient (Linear Phason) Approximant
'----------------
  AMP=-0.20       ' Amplitude of Random phason
  AMP=0.0         ' no Random phason
'----------------
  N_AF = 0              ' ferro
'  N_AF = 1              ' antiferro
'  N_AF = 2: SF=0.3       ' superstructure, SF: superstructure factor
  N_AF = 3              ' disorder
'----------------
'  if N_AF=0 or N_AF=1 then
    N_AD = 1              ' domain type 1
'    N_AD = 2              ' domain type 2
'  end if
'************************************************************************
'* イベントループ       *
'************************************************************************
while 1
  WAITEVENT
wend
end
'************************************************************************
'* 初期化処理(クライアント描画)     *
'************************************************************************
sub MAINFORM_START()
  SETMOUSEPOINTER 2
  DRAWGRP
  SETMOUSEPOINTER 0
  SETMAPMODE 2
end sub
'************************************************************************
'* 終了        *
'************************************************************************
sub EXIT_ON()
  if 0=MESSAGEBOX( GETWINDOWTEXT, "終了します", 1, 1 ) then end
end sub
'************************************************************************
'* 印刷        *
'************************************************************************
sub PRINT_ON()
  var PP as PRINTPARAM
  var PRINTER as object
  PRINTEROBJECT PRINTER
  if PRINTER.PRINTDLG(PP) then
    SETMOUSEPOINTER 2
    PRINTER.STARTDOC "文書"
    PRINTER.STARTPAGE
    PRINTER.DRAWGRP
    PRINTER.ENDPAGE
    PRINTER.ENDDOC
    PRINTER.CLOSEPRINTER
    SETMOUSEPOINTER 0
  endif
end sub
'************************************************************************
'* 描画手続き       *
'************************************************************************
sub DRAWGRP()
  var FFONT as FONT
  FFONT.FFNAME = "Times New Roman"
  FFONT.BOLD = -1
  SETMAPMODE 2
'--------------------------
'   Initial condition
'--------------------------
  S = 1.0#                              ' Short for Fibonacci Lattice
  L = TAU*S                             ' Long
  D1X = S:     D1Y = -S*ALP             ' d1 (d1x, d1y)
  D2X = S*ALP: D2Y =  S                 ' d2 (d2x, d2y)
'----------------------------------------------------------------
  RG=10.0                                ' range of graph
  XMIN = -RG: XMAX = RG
  YMIN = -RG: YMAX = RG
  XS=50.0: XE=1850.0                      ' 1/10 [mm]
  YS=50.0: YE=1850.0                      ' 1/10 [mm]
  X0=(XE-XS)/(XMAX-XMIN)*(0-XMIN)+XS
  Y0=(YE-YS)/(YMIN-YMAX)*(0-YMAX)+YS
  line (XS, YS)-(XE, YE),,,b          ' drawing area
  line (XS, Y0)-(XE, Y0),,14          ' X-axis
  line (X0, YS)-(X0, YE),,14          ' Y-axis
'---------------------------------------------------------
  NL=15
'---------------------------------------------------------
  I1=-NL: I2=NL
  for J=-NL to NL
    X1=D1X*I1+D2X*J
    Y1=D1Y*I1+D2Y*J
    X2=D1X*I2+D2X*J
    Y2=D1Y*I2+D2Y*J
    X1=(XE-XS)/(XMAX-XMIN)*(X1-XMIN)+XS
    Y1=(YE-YS)/(YMIN-YMAX)*(Y1-YMAX)+YS
    X2=(XE-XS)/(XMAX-XMIN)*(X2-XMIN)+XS
    Y2=(YE-YS)/(YMIN-YMAX)*(Y2-YMAX)+YS
    line (X1, Y1)-(X2, Y2),,14          ' X in hyper lattice
  next J
'---------------------------------------
  J1=-NL: J2=NL
  for I=-NL to NL
    X1=D1X*I+D2X*J1
    Y1=D1Y*I+D2Y*J1
    X2=D1X*I+D2X*J2
    Y2=D1Y*I+D2Y*J2
    X1=(XE-XS)/(XMAX-XMIN)*(X1-XMIN)+XS
    Y1=(YE-YS)/(YMIN-YMAX)*(Y1-YMAX)+YS
    X2=(XE-XS)/(XMAX-XMIN)*(X2-XMIN)+XS
    Y2=(YE-YS)/(YMIN-YMAX)*(Y2-YMAX)+YS
    line (X1, Y1)-(X2, Y2),,14          ' Y in hyper lattice
  next I
'------------------------------------------------
'              Phason strain
'-------------------------------------------------
  LP=S*4.0
'------------------------------
  X=-NL*S
  Y=AMP*sin(PI*X/LP)
  X1=(XE-XS)/(XMAX-XMIN)*(X-XMIN)+XS
  Y1=(YE-YS)/(YMIN-YMAX)*(Y-YMAX)+YS
  DX=0.01
  ifabs(AMP)>0 then pset (X1,Y1),14
  do
    Y=AMP*sin(PI*X/LP)
    X1=(XE-XS)/(XMAX-XMIN)*(X-XMIN)+XS
    Y1=(YE-YS)/(YMIN-YMAX)*(Y-YMAX)+YS
    ifabs(AMP)>0 then line -(X1,Y1),,14
    X=X+DX
  loop while X<NL*S
'--------------------------------------------------
'               Atomic Domain  for anti-ferro
'                          5: red   / domain 1
'                          9: green / domain 2
'--------------------------------------------------
  RSIZE= 10.0/RG*15
  AD0  = (S+L)/2.0

  if N_AD=1 then          ' DOMAIN 1λ
    DY1=AD0/2.0
    DY2=AD0
  else if N_AD=2 then     ' DOMAIN 2λ
    DY1=AD0/4.0
    DY2=AD0*3.0/4.0
  end if
'--------------------------------------
' unit cell
'-------------------------------------
  if N_AF=0 or N_AF=3 then
    I=1: J=0              ' (1 0)
    X1=D1X*I+D2X*J
    Y1=D1Y*I+D2Y*J
    I=0: J=1              ' (0 1)
    X2=D1X*I+D2X*J
    Y2=D1Y*I+D2Y*J
  else if N_AF=1 or N_AF=2 then
    I=2: J=0              ' (2 0)
    X1=D1X*I+D2X*J
    Y1=D1Y*I+D2Y*J
    I=0: J=2              ' (0 2)
    X2=D1X*I+D2X*J
    Y2=D1Y*I+D2Y*J
  end if
  X1=(XE-XS)/(XMAX-XMIN)*(X1-XMIN)+XS
  Y1=(YE-YS)/(YMIN-YMAX)*(Y1-YMAX)+YS
  X2=(XE-XS)/(XMAX-XMIN)*(X2-XMIN)+XS
  Y2=(YE-YS)/(YMIN-YMAX)*(Y2-YMAX)+YS
  point(X0,Y0)
  connect -step(X1-X0,Y1-Y0)-step(X2-X0,Y2-Y0)-step(X0-X1, Y0-Y1)-step(X0-X2, Y0-Y2),3
'--------------------------------------------------------
' Section method
'--------------------------------------------------------
  for I=-NL to NL
    for J=-NL to NL
      HK=I+J
      X=D1X*I+D2X*J
      Y=D1Y*I+D2Y*J
      YP=Y-AMP*sin(PI*X/LP)        ' Y section (random phason strain)
'-----------------------------------------------------------------------
      select case N_AF
        case 0       ' <====  Ferro
          CN1=5: CN2=9
          if DY1<abs(YP) and abs(YP)<DY2 then CN=5 else CN=9
        case 1       ' <====  Antiferro
          if HK mod 2=0 then
            CN1=5: CN2=9
            if DY1<abs(YP) and abs(YP)<DY2 then CN=5 else CN=9
          else
            CN1=9: CN2=5
            if DY1<abs(YP) and abs(YP)<DY2 then CN=9 else CN=5
          end if
        case 2        ' <====  superstructure
          if HK mod 2=0 then
            AD=AD0*(1.0+SF)
          else
            AD=AD0*(1.0-SF)
          end if
          CN2=5
          if DY1<abs(YP) and abs(YP)<DY2 then CN=5 else CN=9
        case 3        '  <====  disorder
          CN1=13
          CN2=13
      end select
'-------------------------------------------------------------------
      WAS=4                                   ' width of atomic surface

      XC=(XE-XS)/(XMAX-XMIN)*(X -XMIN)+XS
      Y1=Y-AD0: Y2=Y+AD0
      Y1=(YE-YS)/(YMIN-YMAX)*(Y1-YMAX)+YS
      Y2=(YE-YS)/(YMIN-YMAX)*(Y2-YMAX)+YS
      line (XC-WAS, Y1)-(XC+WAS, Y2),,CN2,bf      ' whole atomic surface

      if N_AF=2 then                           ' <====  superstructure
        palette 2, [175, 255, 175]
 
        Y7=Y-AD: Y8=Y-AD0
        Y7=(YE-YS)/(YMIN-YMAX)*(Y7-YMAX)+YS
        Y8=(YE-YS)/(YMIN-YMAX)*(Y8-YMAX)+YS
        line (XC-WAS, Y7)-(XC+WAS, Y8),,2,bf
 
        Y9=Y+AD: Y10=Y+AD0
        Y9=(YE-YS)/(YMIN-YMAX)*(Y9-YMAX)+YS
        Y10=(YE-YS)/(YMIN-YMAX)*(Y10-YMAX)+YS
        line (XC-WAS, Y9)-(XC+WAS, Y10),,2,bf
      else
        Y3=Y-DY1: Y4=Y-DY2
        Y3=(YE-YS)/(YMIN-YMAX)*(Y3-YMAX)+YS
        Y4=(YE-YS)/(YMIN-YMAX)*(Y4-YMAX)+YS
        line (XC-WAS, Y3)-(XC+WAS, Y4),,CN1,bf      ' lower atomic surface

        Y5=Y+DY1: Y6=Y+DY2
        Y5=(YE-YS)/(YMIN-YMAX)*(Y5-YMAX)+YS
        Y6=(YE-YS)/(YMIN-YMAX)*(Y6-YMAX)+YS
        line (XC-WAS, Y5)-(XC+WAS, Y6),,CN1,bf      ' upper atomic surface
      end if
'------------------- atoms on || space ----------
      if N_AF=2 then
        if -AD0<YP and YP<AD0 then
            circle(XC,Y0), RSIZE,CN1,,,,f
        end if
        if (AD<abs(YP) and abs(YP)<AD0) or (AD0<abs(YP) and abs(YP)<AD) then
          circle(XC,Y0), RSIZE,2,,,,f
        end if
      else
        if -AD0<YP and YP<AD0 then
          if N_AF=3 then          '  <====  DISORDER
            circle(XC,Y0), RSIZE,5,,0,0.25,f      ' 1/2 occupation propability
            circle(XC,Y0), RSIZE,5,,0.75,1,f
            circle(XC,Y0), RSIZE,9,,0.25,0.75,f
          else
            circle(XC,Y0), RSIZE,CN,,,,f
          end if
        end if
      end if
    next J
  next I

end sub
'************************************************************************
'* コピー        *
'************************************************************************
sub COPY_ON()
  CLEARCB
  SETCBFORMAT "CF_METAFILEPICT"
  COPY
end sub


Back to ABE

Back to Department of Materials Science and Engineering


ab@cc.nda.ac.jp

Department of Materials Science and Engineering
National Defense Academy

Last Modified: April 1, 2009