Julia

基本的なもの

配列の長さを知る --- length

x が 1 次元の配列

>x=[1 2 3]

>length(x)

3

x が 2 次元

>x=[1 2 3;

         4 5 6]

>length(x)

6

>length(x[:,1])

2

>length(x[1,:])

3


ファイルへの出力

基本技 --- open

f=open("output.txt", "w")

print(f, "hello")

close(f)

特殊関数

SpecialFunctions

球ベッセル関数

using "SpecialFunctions"

sbj(n, x) = √(π./2x)*besselj.(n+1/2, x)

sby(n, x) = √(π./2x)*bessely.(n+1/2, x)

shankel(n,x) = sbj.(n,x) + 1im.*sby.(n,x) 


SpecialPolynomials

Polynomials

ルジャンドル多項式、ルジャンドル陪多項式

using "SpecialPolynomials"

using "Polynomials"

角運動量合成に関するパッケージ

角運動量の合成則に使われる係数の定義:

これらを計算するには、WignerSymbols と CGcoefficient のパッケージがある。

 1. WignerSymbols パッケージ(Racah 9Jない)

インストール

]add WignerSymbols

または

Using Pkg

Pkg.add("WignerSymbols")

使い方

半整数は rational (例: 3//2 =1.5, 5//2=2.5)を使って引数とする

Wigner-3j:

wigner3j(int j1, int j2, int j3, int m1, int m2, int m3=-m1-m2)

Wigner-6j:

wigner6j(int j1, int j2, int j3, int j4, int j5, int j6)

Clebsch-Gordan: 

clebschgordan(int j1, int m2, int j2, int m2, int j3, int m3=m1+m2) 

 2.CGcoefficient パッケージ(こっちは9Jまである)

説明書

https://0382.github.io/CGcoefficient.jl/dev/

インストール

]add CGcoefficient

または

Using Pkg

Pkg.add("CGcoefficient")

使い方 (float version)

半整数は rational (例: 3//2 =1.5, 5//2=2.5)を使って引数とする

Clebsch-Gordan

CG(int j1, int j2, int j3, int m1, int m2, int m3=m1+m2)

Wigner 3j symbol

threeJ(int j1, int j2, int j3, int m1, int m2, int m3=-m1-m2);

Wigner 6j symbol:

sixJ(int j1, int j2, int j3, int j4, int j5, int j6);

Racah coefficient:

Racah(int j1, int j2, int j3, int j4, int j5, int j6);

Wigner 9j symbol

nineJ(int j1, int j2, int j3, int j4, int j5, int j6, int j7, int j8, int j9);