User Tools

Site Tools


数値計算ライブラリ:itensor:1サイト

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
数値計算ライブラリ:itensor:1サイト [2017/06/13 23:29]
koudai
数値計算ライブラリ:itensor:1サイト [2021/06/27 22:04] (current)
Line 2: Line 2:
  
 もっとも簡単な例として、シングルサイトにおけるスピン演算子と波動関数を定義する。 もっとも簡単な例として、シングルサイトにおけるスピン演算子と波動関数を定義する。
- 
- 
 ====== 理論 ====== ====== 理論 ======
  
Line 143: Line 141:
     }     }
 </sxh> </sxh>
- 
-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)/this_dir.mk 
-include $(LIBRARY_DIR)/options.mk 
- 
-TENSOR_HEADERS=$(LIBRARY_DIR)/itensor/all.h 
- 
-#Mappings -------------- 
-OBJECTS=$(patsubst %.cc,%.o, $(CCFILES)) 
-GOBJECTS=$(patsubst %,.debug_objs/%, $(OBJECTS)) 
- 
-#Rules ------------------ 
- 
-%.o: %.cc $(HEADERS) $(TENSOR_HEADERS) 
- $(CCCOM) -c $(CCFLAGS) -o $@ $< 
- 
-.debug_objs/%.o: %.cc $(HEADERS) $(TENSOR_HEADERS) 
- $(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 
-</sxh> 
- 
-プログラムのコンパイルと実行は、プログラムのあるディレクトリに入って次のようにする。 
- 
-> \$ make 
-> \$ ./01_tutorial_code 
- 
  
 ====== プログラムの解説 ====== ====== プログラムの解説 ======
Line 249: Line 187:
 </sxh> </sxh>
  
-次にスピン演算子$S^x_{s, s'}$$S^z_{s,s'}$を作成する。+次にスピン演算子$S^z_{s,s'}$および$S^x_{s, s'}$を作成する。
 2階のテンソルを作りたい場合は次のようにする。 2階のテンソルを作りたい場合は次のようにする。
 <sxh C++; first-line: 30> <sxh C++; first-line: 30>
Line 285: Line 223:
  
 最後に、演算子の期待値の求め方を紹介する。 最後に、演算子の期待値の求め方を紹介する。
- +状態$\psi_s$とエルミート共役$\psi^*_{s'}$は次のように作る。 
-auto cpsi = dag(prime(psi));+<sxh C++; first-line: 68> 
 +    auto cpsi = dag(prime(psi)); 
 +</sxh> 
 +スピン演算子の期待値は積 cpsi * Sz * psi あるいは cpsi * Sx * psi により得られるが、このままだとオブジェクトのままなので、実数として扱うためにメソッド.realを使う。  
 +<sxh C++; first-line: 68> 
 +    Real zz = (cpsi * Sz * psi).real(); 
 +    Real xx = (cpsi * Sx * psi).real(); 
 +</sxh> 
 +ここで計算したのは 
 +\begin{equation} 
 + \sum_{s,s'} \psi^*_{s'} S^x_{s, s'} \psi_{s}  
 +\end{equation} 
 +である(添字の順番に注意)。
数値計算ライブラリ/itensor/1サイト.1497364197.txt.gz · Last modified: 2021/06/27 21:57 (external edit)