こちらで説明した渦糸周りの秩序変数に、位相に応じた色を付けました。上図は下のスクリプトを実行して作られたPostScriptファイルsingle-vortex-phase.epsからコピーしたものです。
渦糸中心では位相が定義できないため、中心に向かって色が黒に変化していくようにしています。そのために、HSVサークルの項で説明した方法を用いています。
#version 4.4.0
set angles degrees
# Vortex中心付近の秩序変数
vortex(x,y)=tanh(nu*sqrt(x**2+y**2)/xi)
nu=1.0
xi=0.01
## HSV色空間からRGB色空間への変換。Wikipedia参照
#変換の補助関数群
HSV_Hi(h)=sgn(h)*floor(abs(h)/60)%6+(h>=0 ? 0 : 5)
HSV_f(h)=(sgn(h)*(abs(h)-(floor(abs(h))/360)*360.0)/60.0+(h>=0 ? 0 : 6))-HSV_Hi(h)
HSV2R(h,s,v)=( \
HSV_Hi(h)==0 || HSV_Hi(h)==5 ? v : (\
HSV_Hi(h)==1 ? v*(1-HSV_f(h)*s) : (\
HSV_Hi(h)==4 ? v*(1-(1-HSV_f(h))*s) : (\
HSV_Hi(h)==2 || HSV_Hi(h)==3 ? v*(1-s) : 0.0) )))
HSV2G(h,s,v)=( \
HSV_Hi(h)==1 || HSV_Hi(h)==2 ? v : (\
HSV_Hi(h)==3 ? v*(1-HSV_f(h)*s) : (\
HSV_Hi(h)==0 ? v*(1-(1-HSV_f(h))*s) : (\
HSV_Hi(h)==4 || HSV_Hi(h)==5 ? v*(1-s) : 0.0) )))
HSV2B(h,s,v)=( \
HSV_Hi(h)==3 || HSV_Hi(h)==4 ? v : (\
HSV_Hi(h)==5 ? v*(1-HSV_f(h)*s) : (\
HSV_Hi(h)==2 ? v*(1-(1-HSV_f(h))*s) : (\
HSV_Hi(h)==0 || HSV_Hi(h)==1 ? v*(1-s) : 0.0) )))
set xrange [-0.05:0.05]
set yrange [-0.05:0.05]
set samples 51
set isosamples 51
# いったんパラメータファイルを作る
tablefile="table.dat"
set table tablefile
splot 0
unset table
# 表面にgrid描画
set pm3d depthorder interpolate 1,1 hidden3d 1
# grid用のlinestyleの設定
set style line 1 linetype 1 linecolor rgb "black" linewidth 0.25
set view 65,338
unset colorbox
set border 0
unset xtics
unset ytics
unset ztics
unset key
# HSV-ringの動径方向の分割数
N=50.0
colmax = (N)*360.0
set cbrange [0:colmax]
# 色使いの指定: 渦芯を白くする
set palette model RGB functions \
HSV2R((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, (floor(gray*colmax/360.0)/N), 1),\
HSV2G((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, (floor(gray*colmax/360.0)/N), 1),\
HSV2B((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, (floor(gray*colmax/360.0)/N), 1)
# 色使いの指定: 渦芯を黒くする
set palette model RGB functions \
HSV2R((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, 1, (floor(gray*colmax/360.0)/N)),\
HSV2G((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, 1, (floor(gray*colmax/360.0)/N)),\
HSV2B((gray*colmax/360.0-floor(gray*colmax/360.0))*360.0, 1, (floor(gray*colmax/360.0)/N))
set pm3d corners2color min
splot tablefile using 1:2:(vortex($1,$2)):(floor(vortex($1,$2)*N)*360.0+atan2($2,$1)+180) \
with pm3d
pause -1
set out "single-vortex-phase.eps"
set term post color enhanced
replot
set out
set term pop
なお、上のスクリプトにはset palette...
が2か所ありますが、あとの方を削除すると下のように渦芯の白いVortexが描けます。