数値計算ライブラリ:itensor:1サイト
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
数値計算ライブラリ:itensor:1サイト [2017/06/13 23:42] – [テンソルの定義] koudai | 数値計算ライブラリ:itensor:1サイト [2021/06/27 22:04] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 2: | Line 2: | ||
もっとも簡単な例として、シングルサイトにおけるスピン演算子と波動関数を定義する。 | もっとも簡単な例として、シングルサイトにおけるスピン演算子と波動関数を定義する。 | ||
- | |||
- | |||
====== 理論 ====== | ====== 理論 ====== | ||
Line 143: | Line 141: | ||
} | } | ||
</ | </ | ||
- | |||
- | Makefileの APP=one を APP=01_tutorial_code に書き換える。 | ||
- | |||
- | <sxh; first-line: 1; highlight: [6]; title: Makefile> | ||
- | LIBRARY_DIR=../ | ||
- | |||
- | ifdef app | ||
- | APP=$(app) | ||
- | else | ||
- | APP=01_tutorial_code | ||
- | endif | ||
- | |||
- | CCFILES=$(APP).cc | ||
- | |||
- | ################################################################# | ||
- | ################################################################# | ||
- | ################################################################# | ||
- | ################################################################# | ||
- | |||
- | |||
- | include $(LIBRARY_DIR)/ | ||
- | include $(LIBRARY_DIR)/ | ||
- | |||
- | TENSOR_HEADERS=$(LIBRARY_DIR)/ | ||
- | |||
- | #Mappings -------------- | ||
- | OBJECTS=$(patsubst %.cc,%.o, $(CCFILES)) | ||
- | GOBJECTS=$(patsubst %, | ||
- | |||
- | #Rules ------------------ | ||
- | |||
- | %.o: %.cc $(HEADERS) $(TENSOR_HEADERS) | ||
- | $(CCCOM) -c $(CCFLAGS) -o $@ $< | ||
- | |||
- | .debug_objs/ | ||
- | $(CCCOM) -c $(CCGFLAGS) -o $@ $< | ||
- | |||
- | #Targets ----------------- | ||
- | |||
- | build: $(APP) | ||
- | debug: $(APP)-g | ||
- | |||
- | $(APP): $(OBJECTS) $(ITENSOR_LIBS) | ||
- | $(CCCOM) $(CCFLAGS) $(OBJECTS) -o $(APP) $(LIBFLAGS) | ||
- | |||
- | $(APP)-g: mkdebugdir $(GOBJECTS) $(ITENSOR_GLIBS) | ||
- | $(CCCOM) $(CCGFLAGS) $(GOBJECTS) -o $(APP)-g $(LIBGFLAGS) | ||
- | |||
- | clean: | ||
- | rm -fr .debug_objs *.o $(APP) $(APP)-g | ||
- | |||
- | mkdebugdir: | ||
- | mkdir -p .debug_objs | ||
- | </ | ||
- | |||
- | プログラムのコンパイルと実行は、プログラムのあるディレクトリに入って次のようにする。 | ||
- | |||
- | > \$ make | ||
- | > \$ ./ | ||
- | |||
====== プログラムの解説 ====== | ====== プログラムの解説 ====== | ||
Line 289: | Line 227: | ||
auto cpsi = dag(prime(psi)); | auto cpsi = dag(prime(psi)); | ||
</ | </ | ||
- | スピン演算子の期待値はテンソル積 cpsi * Sz * psi あるいは cpsi * Sx * psi により得られるが、このままだとオブジェクトのままなので、実数として扱うためにメソッド.realを使う。 | + | スピン演算子の期待値は積 cpsi * Sz * psi あるいは cpsi * Sx * psi により得られるが、このままだとオブジェクトのままなので、実数として扱うためにメソッド.realを使う。 |
<sxh C++; first-line: 68> | <sxh C++; first-line: 68> | ||
Real zz = (cpsi * Sz * psi).real(); | Real zz = (cpsi * Sz * psi).real(); | ||
Line 296: | Line 234: | ||
ここで計算したのは | ここで計算したのは | ||
\begin{equation} | \begin{equation} | ||
- | | + | \sum_{s, |
\end{equation} | \end{equation} | ||
である(添字の順番に注意)。 | である(添字の順番に注意)。 |
数値計算ライブラリ/itensor/1サイト.1497364947.txt.gz · Last modified: 2021/06/27 21:57 (external edit)