fermisurfer Git
Revision | 2dd449de3502712311ba3d39f43b1c86698045e3 (tree) |
---|---|
Zeit | 2015-10-18 14:52:21 |
Autor | ![]() |
Commiter | mitsuaki1987 |
Add frame in html manuals
@@ -91,7 +91,7 @@ ALLOW_UNICODE_NAMES = NO | ||
91 | 91 | # Ukrainian and Vietnamese. |
92 | 92 | # The default value is: English. |
93 | 93 | |
94 | -OUTPUT_LANGUAGE = English | |
94 | +OUTPUT_LANGUAGE = Japanese | |
95 | 95 | |
96 | 96 | # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member |
97 | 97 | # descriptions after the members that are listed in the file and class |
@@ -971,19 +971,19 @@ INLINE_SOURCES = NO | ||
971 | 971 | # Fortran comments will always remain visible. |
972 | 972 | # The default value is: YES. |
973 | 973 | |
974 | -STRIP_CODE_COMMENTS = YES | |
974 | +STRIP_CODE_COMMENTS = NO | |
975 | 975 | |
976 | 976 | # If the REFERENCED_BY_RELATION tag is set to YES then for each documented |
977 | 977 | # function all documented functions referencing it will be listed. |
978 | 978 | # The default value is: NO. |
979 | 979 | |
980 | -REFERENCED_BY_RELATION = NO | |
980 | +REFERENCED_BY_RELATION = YES | |
981 | 981 | |
982 | 982 | # If the REFERENCES_RELATION tag is set to YES then for each documented function |
983 | 983 | # all documented entities called/used by that function will be listed. |
984 | 984 | # The default value is: NO. |
985 | 985 | |
986 | -REFERENCES_RELATION = NO | |
986 | +REFERENCES_RELATION = YES | |
987 | 987 | |
988 | 988 | # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set |
989 | 989 | # to YES then the hyperlinks from functions in REFERENCES_RELATION and |
@@ -1495,7 +1495,7 @@ FORMULA_TRANSPARENT = YES | ||
1495 | 1495 | # The default value is: NO. |
1496 | 1496 | # This tag requires that the tag GENERATE_HTML is set to YES. |
1497 | 1497 | |
1498 | -USE_MATHJAX = NO | |
1498 | +USE_MATHJAX = YES | |
1499 | 1499 | |
1500 | 1500 | # When MathJax is enabled you can set the default output format to be used for |
1501 | 1501 | # the MathJax output. See the MathJax site (see: |
@@ -1505,7 +1505,7 @@ USE_MATHJAX = NO | ||
1505 | 1505 | # The default value is: HTML-CSS. |
1506 | 1506 | # This tag requires that the tag USE_MATHJAX is set to YES. |
1507 | 1507 | |
1508 | -MATHJAX_FORMAT = HTML-CSS | |
1508 | +MATHJAX_FORMAT = NativeMML | |
1509 | 1509 | |
1510 | 1510 | # When MathJax is enabled you need to specify the location relative to the HTML |
1511 | 1511 | # output directory using the MATHJAX_RELPATH option. The destination directory |
@@ -22,8 +22,9 @@ | ||
22 | 22 | <a href="http://osdn.jp/projects/fermisurfer/">FermiSurfer</a> |
23 | 23 | |
24 | 24 | <p> |
25 | - FermiSurferは固体物理学の各種数値計算結果を入力としてFermi面の描画し、 | |
26 | - かつ何らかの物理量をFermi面上にカラーマップとして表示させる可視化ツールです。 | |
25 | + FermiSurfer is an visualization tool for Fermi surfaces. | |
26 | + This application displays Fermi surfaces colored as a function of an arbitrary | |
27 | + scalar quantities such as magnitude of Fermi velocities and superconducting gap. | |
27 | 28 | </p> |
28 | 29 | |
29 | 30 | <table width="100%" valign="top"> |
@@ -15,463 +15,10 @@ | ||
15 | 15 | <meta name="description" content="Manual for FermiSurfer"> |
16 | 16 | |
17 | 17 | </head> |
18 | - <body bgcolor="CCFFCC"> | |
19 | 18 | |
20 | - <center><h1>Manual for FermiSurfer</h1></center> | |
21 | - <center><h2>Version 1.4</h2></center> | |
22 | - <center><h2>Mitsuaki Kawamura</h2></center> | |
19 | + <frameset cols="300,*"> | |
20 | + <frame name="left" src="./manual_left_en.html"> | |
21 | + <frame name="right" src="./manual_right_en.html"> | |
22 | + </frameset> | |
23 | 23 | |
24 | - <hr> | |
25 | - | |
26 | - <h1>Contents</h1> | |
27 | - <p><a href="#introduction">1, Introduction</a></p> | |
28 | - <p><a href="#mit-license">2, MIT License</a></p> | |
29 | - <p><a href="#files-in-this-package">3, Files in this package</a></p> | |
30 | - <p><a href="#install">4, Install</a></p> | |
31 | - <p><a href="#input-file">5, Input file</a></p> | |
32 | - <p><a href="#control-fermisurfer">6, Control FermiSurfer</a></p> | |
33 | - <p><a href="#gallery">7, Gallery</a></p> | |
34 | - <p><a href="#acknowledgment">8, Acknowledgment</a></p> | |
35 | - <p><a href="#contact">9, Contact</a></p> | |
36 | - | |
37 | - <hr> | |
38 | - | |
39 | - <h1><a name="introduction">1, Introduction</a></h1> | |
40 | - | |
41 | - <p>This document is a manual for the Fermi surface drawing program ``Fermi Surfer". | |
42 | - Fermi Surfer have been developed since 2012 by Mitsuaki Kawamura | |
43 | - (ISSP, The University of Tokyo); it is opened on web at November, 2014. | |
44 | - It draws Fermi surfaces, and plot $k$-depend matrix elements such as | |
45 | - the superconducting gap and orbital character with colors.</p> | |
46 | - | |
47 | - <hr><h1><a name="mit-license">2, MIT License</a></h1> | |
48 | - | |
49 | - <p>Copyright (c) 2014 Mitsuaki Kawamura</p> | |
50 | - <p>Permission is hereby granted, free of charge, | |
51 | - to any person obtaining a copy of this software and associated documentation files | |
52 | - (the "Software"), to deal in the Software without restriction, | |
53 | - including without limitation the rights to use, copy, modify, merge, publish, | |
54 | - distribute, sublicense, and/or sell copies of the Software, | |
55 | - and to permit persons to whom the Software is furnished to do so, | |
56 | - subject to the following conditions:</p> | |
57 | - <p>The above copyright notice and this permission notice shall be included | |
58 | - in all copies or substantial portions of the Software.</p> | |
59 | - <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
60 | - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
61 | - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS | |
62 | - OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
63 | - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
64 | - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE | |
65 | - OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> | |
66 | - | |
67 | - <hr><h1><a name="files-in-this-package">3, Files in this package</a></h1> | |
68 | - | |
69 | - <dl> | |
70 | - <p><code>bin/fermisurfer.exe</code> : Executable for Windows</p> | |
71 | - <p><code>doc/manual_en.pdf</code> : Manual (English)</p> | |
72 | - <p><code>doc/manual_ja.pdf</code> : Manual (Japanese)</p> | |
73 | - <p><code>examples/mgb2_vfz.frmsf</code> : Sample input file</p> | |
74 | - <p><code>src/fermisurfer.c</code> : Source file</p> | |
75 | - <p><code>src/mac.diff</code> : Patch for Mac OSX</p> | |
76 | - <p><code>src/Makefile</code> : Makefile for Linux</p> | |
77 | - <p><code>src/Makefile-mac</code> : Makefile for Mac OSX</p> | |
78 | - </dl> | |
79 | - | |
80 | - <hr><h1><a name="install">4, Install</a></h1> | |
81 | - | |
82 | - <hr><h2 id="installation-in-linux">4.1, Installation in Linux</h2> | |
83 | - | |
84 | - <ol> | |
85 | - <li><p>Install the required package</p> | |
86 | - <ul> | |
87 | - <li><p>For Debian/Ubuntu</p> | |
88 | - <pre><code> $ sudo aptitude install freeglut3-dev | |
89 | - </code></pre></li> | |
90 | - <li><p>For Red Hat Enterprise Linux/CentOS</p> | |
91 | - <pre><code> $ sudo yum install freeglut-devel.x86_64 | |
92 | - </code></pre></li> | |
93 | - </ul></li> | |
94 | - <li><p>Make</p> | |
95 | - <pre><code> | |
96 | -$ cd ./src | |
97 | -$ make fermisurfer | |
98 | -$ make install | |
99 | - </code></pre> | |
100 | - </li> | |
101 | - </ol> | |
102 | - <p>Then a binary file <code>fermisurfer</code> is generated and put | |
103 | - in <code>/usr/local/bin/</code>.</p> | |
104 | - | |
105 | - <hr><h2 id="For mac-osx">4.2, For Mac OSX</h2> | |
106 | - | |
107 | - <ol> | |
108 | - <li><p>Install Xcode.</p></li> | |
109 | - <li><p>Patch the source code.</p> | |
110 | - <pre><code> | |
111 | -$ cd ./src | |
112 | -$ patch -p1 < mac.diff | |
113 | - </code></pre> | |
114 | - </li> | |
115 | - <li><p>Make.</p> | |
116 | - <pre><code> | |
117 | -$ make -f Makefile-mac fermisurfer | |
118 | -$ make -f Makefile-mac install | |
119 | - </code></pre> | |
120 | - <p>Then a binary file <code>fermisurfer</code> is generated and put | |
121 | - in <code>/usr/local/bin/</code>.</p></li> | |
122 | - </ol> | |
123 | - | |
124 | - <hr><h2 id="installation-in-windows">4.3, Installation in Windows</h2> | |
125 | - | |
126 | - <ol> | |
127 | - <li><p>Download the <code>zip</code> file which contains <code>freeglut.dll</code> | |
128 | - from "freeglut Windows Development Library" site</p> | |
129 | - <pre><code> | |
130 | -http://www.transmissionzero.co.uk/software/freeglut-devel/ | |
131 | - </code></pre> | |
132 | - <p>(in "freeglut MSVC package" item). Then, <code>unzip</code> it.</p></li> | |
133 | - <li><p>copy <code>.\bin\freeglut.dll</code> to the folder | |
134 | - which contains <code>fermisurfer.exe</code> (<code>bin</code>). | |
135 | - (You should not use <code>.\bin\x64\freeglut.dll</code>)</p></li> | |
136 | - </ol> | |
137 | - | |
138 | - <hr><h1><a name="input-file">5, Input file</a></h1> | |
139 | - | |
140 | - <hr><h2 id="input-file-format">5.1, input-file format</h2> | |
141 | - | |
142 | - <p>You have to prepare following data:</p> | |
143 | - <ul> | |
144 | - <li><p>The number of $k$ grid (three direction)</p></li> | |
145 | - <li><p>Reciprocal lattice vectors</p></li> | |
146 | - <li><p>The number of bands</p></li> | |
147 | - <li><p>The orbital energy at each band and $k$ (We call it "energy") .</p></li> | |
148 | - <li><p>Variables that you want to plot with color (We call it "matrix elements").</p></li> | |
149 | - </ul> | |
150 | - <p>This program supports two kind of uniform $k$ grid, | |
151 | - a grid (${\rm \Gamma}$ centered) and grid with a half-grid shift. | |
152 | - The latter is used when the matrix element becomes singular at ${\rm \Gamma}$.</p> | |
153 | - <p>The input file is as follows (<code>mgb2_vfz.fs</code>):</p> | |
154 | - <pre><code> | |
155 | -40 40 36 (1) | |
156 | -0 (2) | |
157 | -3 (3) | |
158 | -1.0000000 0.57735026 -0.0000000 (4) | |
159 | -0.0000000 1.1547005 0.0000000 (5) | |
160 | -0.0000000 -0.0000000 0.87206507 (6) | |
161 | -2.91340202E-02 (7) | |
162 | -2.93242838E-02 | |
163 | -2.98905596E-02 | |
164 | -3.08193434E-02 | |
165 | -: | |
166 | -: | |
167 | -0.14393796 | |
168 | -0.12800488 | |
169 | -0.0000000 (8) | |
170 | -0.36269817 | |
171 | -0.71675694 | |
172 | -1.0535113 | |
173 | -1.3644149 | |
174 | -: | |
175 | -: | |
176 | --26.409407 | |
177 | --19.318560 | |
178 | --10.315671 | |
179 | - </code></pre> | |
180 | - <ol> | |
181 | - <li><p>The $k$ point grid</p></li> | |
182 | - <li><p>0 for ${\rm \Gamma}$ centered grid. 1 for shifted grid.</p></li> | |
183 | - <li><p>The number of bands</p></li> | |
184 | - <li><p>Reciprocal lattice vector 1 (arbitrary unit)</p></li> | |
185 | - <li><p>Reciprocal lattice vector 2</p></li> | |
186 | - <li><p>Reciprocal lattice vector 3</p></li> | |
187 | - <li><p>Energy</p></li> | |
188 | - <li><p>Matrix elements</p></li> | |
189 | - </ol> | |
190 | - | |
191 | - <hr><h2 id="how-to-produce-the-input-file-in-c-and-fortran-programs"> | |
192 | - 5.2, How to produce the input file in C and fortran programs</h2> | |
193 | - | |
194 | - <p>fortran</p> | |
195 | - <pre><code> | |
196 | - real(4) :: bvec1(3), bvec2(3), bvec3(3) ! Resiplocal lattice vector | |
197 | - integer :: nk1, nk2, nk3 ! k-grid of each direction | |
198 | - integer :: ishift ! 1 for shifted grid, 0 for unshifted grid. | |
199 | - integer :: nbnd ! The number of bands | |
200 | - real(4) :: eig(nk3,nk2,nk1,nbnd) ! energy | |
201 | - real(4) :: x(nk3,nk2,nk1,nbnd) ! matrix element | |
202 | - | |
203 | - integer :: ik1, ik2, ik3, ibnd, fo | |
204 | - | |
205 | - open(fo, file = "sample.fs") | |
206 | - write(fo,*) nk1, nk2, nk3 | |
207 | - write(fo,*) ishift | |
208 | - write(fo,*) nbnd | |
209 | - write(fo,*) real(bvec1(1:3)) | |
210 | - write(fo,*) real(bvec2(1:3)) | |
211 | - write(fo,*) real(bvec3(1:3)) | |
212 | - do ibnd = 1, nbnd | |
213 | - do ik1 = 1, nk1 | |
214 | - do ik2 = 1, nk2 | |
215 | - do ik3 = 1, nk3 | |
216 | - write(fo,*) real(eig(ik3,ik2,ik1,ibnd)) | |
217 | - end do | |
218 | - end do | |
219 | - end do | |
220 | - end do | |
221 | - do ibnd = 1, nbnd | |
222 | - do ik1 = 1, nk1 | |
223 | - do ik2 = 1, nk2 | |
224 | - do ik3 = 1, nk3 | |
225 | - write(fo,*) real(x(ik3,ik2,ik1,ibnd)) | |
226 | - end do | |
227 | - end do | |
228 | - end do | |
229 | - end do | |
230 | - close(fo) | |
231 | - </code></pre> | |
232 | - <p>C</p> | |
233 | - <pre><code> | |
234 | - float bvec1[3], bvec2[3], bvec3[3]; /*Resiplocal lattice vector*/ | |
235 | - int nk1, nk2, nk3; /*k-grid of each direction*/ | |
236 | - int ishift; /*1 for shifted grid, 0 for unshifted grid.*/ | |
237 | - int nbnd; /*The number of bands*/ | |
238 | - float eig[nbnd][nk1][nk2][nk3]; /*Energy*/ | |
239 | - float x[nbnd][nk1][nk2][nk3]; /*Matrix element*/ | |
240 | - | |
241 | - FILE* fo; | |
242 | - int ibnd, ik1, ik2, ik3; | |
243 | - | |
244 | - fo = fopen("sample.fs", "w"); | |
245 | - ierr = fprintf(fo, "%d %d %d", nk1, nk2, nk3); | |
246 | - ierr = fprintf(fo, "%d, iswitch); | |
247 | - ierr = fprintf(fo, "%d, nbnd); | |
248 | - ierr = fprintf(fp, "%e %e %e", bvec1[0], bvec1[1], bvec1[2]); | |
249 | - ierr = fprintf(fp, "%e %e %e", bvec2[0], bvec2[1], bvec2[2]); | |
250 | - ierr = fprintf(fp, "%e %e %e", bvec3[0], bvec3[1], bvec3[2]); | |
251 | - for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
252 | - for (ik1 = 0; ik1 < nk1; ++ik1) { | |
253 | - for (ik2 = 0; ik2 < nk2; ++ik2) { | |
254 | - for (ik3 = 0; ik3 < nk3; ++ik3) { | |
255 | - ierr = fprintf(fo, "%e", eig[ibnd][ik1][ik2][ik3]); | |
256 | - } | |
257 | - } | |
258 | - } | |
259 | - } | |
260 | - for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
261 | - for (ik1 = 0; ik1 < nk1; ++ik1) { | |
262 | - for (ik2 = 0; ik2 < nk2; ++ik2) { | |
263 | - for (ik3 = 0; ik3 < nk3; ++ik3) { | |
264 | - ierr = fprintf(fo, "%e", x[ibnd][ik1][ik2][ik3]); | |
265 | - } | |
266 | - } | |
267 | - } | |
268 | - } | |
269 | - fclose(fo); | |
270 | - </code></pre> | |
271 | - | |
272 | - <hr><h1><a name="control-fermisurfer">6, Control FermiSurfer</a></h1> | |
273 | - | |
274 | - <hr><h2 id="for-linux">6.1, For Linux</h2> | |
275 | - | |
276 | - <p>You can launch generated executable as follows:</p> | |
277 | - <pre><code> | |
278 | -$ ./fermisurfer mgb2_vfz.fs | |
279 | - </code></pre> | |
280 | - <p>You need a space between the command and input-file name. | |
281 | - (The sample input file <code>mgb2_vfz.fs</code> contains $z$ element | |
282 | - of the Fermi velocity in MgB$_2$.)</p> | |
283 | - | |
284 | - <hr><h2 id="for-windows">6.2, For Windows</h2> | |
285 | - | |
286 | - <p>Click mouse right button on the input file. | |
287 | - Choose "Open With ..." menu, then choose <code>fermisurfer.exe</code>.</p> | |
288 | - <p>After that, <code>fermisurfer</code> runs as the same whether you use Linux or Windows. | |
289 | - The information from the input file is printed.</p> | |
290 | - <pre><code> | |
291 | -##### Brillouin zone informations ##### | |
292 | - | |
293 | -k point grid : 40 40 36 | |
294 | -k point grid is not shifted | |
295 | -# of bands : 3 | |
296 | -bvec 1 : 1.000000 0.577350 -0.000000 | |
297 | -bvec 2 : 0.000000 1.154701 0.000000 | |
298 | -bvec 3 : 0.000000 -0.000000 0.872065 | |
299 | - | |
300 | -# of lines for BZ : 84 (1) | |
301 | - | |
302 | -##### Max. and Min. of each bands ##### | |
303 | - | |
304 | -Band Eig_Min. Eig_Max Mat_Min Mat_Max | |
305 | -1 -0.428153 0.056262 -24.048639 24.048639 (2) | |
306 | -2 -0.289572 0.121181 -23.320309 23.320309 (2) | |
307 | -3 -0.133566 0.497620 -43.651634 43.651634 (2) | |
308 | - | |
309 | -##### First Brillouin zone mode ##### | |
310 | - | |
311 | -band # of patchs | |
312 | -1 8824 (3) | |
313 | -2 29469 (3) | |
314 | -3 28315 (3) | |
315 | - | |
316 | -band # of nodeline | |
317 | -1 632 (4) | |
318 | -2 1524 (4) | |
319 | -3 2268 (4) | |
320 | - | |
321 | -##### Full color scale ##### | |
322 | - | |
323 | -Max. value : 22.283419 (5) | |
324 | -Min. value : -22.283419 (5) | |
325 | - </code></pre> | |
326 | - <ol> | |
327 | - <li><p>The number of lines on the edge of the Brillouin zone.</p></li> | |
328 | - <li><p>The maximum/minimum value of energies and matrix elements in each bands.</p></li> | |
329 | - <li><p>The number of patches (planes that makes Fermi surfaces) in each bands.</p></li> | |
330 | - <li><p>The number of node lines in each band.</p></li> | |
331 | - <li><p>The maximum and the minimum of matrix elements on Fermi surface. | |
332 | - These correspond to the red and the blue; in this case, | |
333 | - the matrix element is -22.283419 in the blue region, and that is 22.283419 | |
334 | - in the red region. | |
335 | - [(2) is Max./Min. in whole Brillouin zone.]</p></li> | |
336 | - </ol> | |
337 | - <p>Then, Operations are printed, and Fermi surfaces are drawn (Fig. 1).</p> | |
338 | - <p><img src="figs/start.jpg" align="middle" width="800" alt="" /> | |
339 | - Fig. 1: Main view.</p> | |
340 | - <p>The following operations are available:</p> | |
341 | - <ul> | |
342 | - <li><p>Rotation of objects with mouse drag</p></li> | |
343 | - <li><p>Expand and shrink with mouse wheel</p></li> | |
344 | - <li><p>Window re-sizing</p></li> | |
345 | - <li><p>Moving objects with cursor keys</p></li> | |
346 | - <li><p>Opening the menu with mouse right button</p></li> | |
347 | - </ul> | |
348 | - <p>Here, I will explain all menus.</p> | |
349 | - | |
350 | - <hr><h2 id="band">6.3, Band</h2> | |
351 | - | |
352 | - <p>It makes each band enable/disable (Fig. 2).</p> | |
353 | - <p><img src="figs/band.jpg" align="middle" width="800" alt="" /> | |
354 | - Fig. 2: You make each band enable/disable with <code>Band</code> menu.</p> | |
355 | - | |
356 | - <hr><h2 id="mouse-drag">6.4, Mouse Drag</h2> | |
357 | - | |
358 | - <p>It turns the event of the mouse-left-drag.</p> | |
359 | - <dl> | |
360 | - <p>Rotate(default) : Rotate the figure along the mouse drag.</p> | |
361 | - <p>Scale : Expand/shrink the figure in upward/downward drag.</p> | |
362 | - <p>Translate : Translate the figure along the mouse drag.</p> | |
363 | - </dl> | |
364 | - | |
365 | - <hr><h2 id="shift-fermi-energy">6.5, Shift Fermi energy</h2> | |
366 | - | |
367 | - <p>It shifts the Fermi energy (= 0 in default) to arbitrary value. | |
368 | - When you use this menu, first, it displays minimum and maximum energy | |
369 | - in the input file and the current Fermi energy;</p> | |
370 | - <pre><code> | |
371 | -Min Max E_F | |
372 | --0.428153 0.497620 0.000000 | |
373 | -Fermi energy shift : | |
374 | - </code></pre> | |
375 | - <p>Then, you should type the new Fermi energy; finally, | |
376 | - the new Fermi surfaces are depicted (Fig. 3).</p> | |
377 | - <p><img src="figs/shift.jpg" align="middle" width="800" alt="" /> | |
378 | - Fig. 3: The Fermi energy is set from 0 Ry to 0.1 Ry | |
379 | - with <code>Shift Fermi energy</code> menu</p> | |
380 | - | |
381 | - <hr><h2 id="background-color">6.6, Background color</h2> | |
382 | - | |
383 | - <p>The background color is toggled between black and white; | |
384 | - the edge of the Brillouin Zone is also toggled between white and black | |
385 | - (Fig. 4).</p> | |
386 | - <p><img src="figs/background.jpg" align="middle" width="800" alt="" /> | |
387 | - Fig. 4: The background color is toggled with <code>Background color</code> menu.</p> | |
388 | - | |
389 | - <hr><h2 id="color-scale-mode">6.7, Color scale mode</h2> | |
390 | - | |
391 | - <p>It turns color pattern on Fermi surfaces (Fig. 5).</p> | |
392 | - <dl> | |
393 | - <p>Auto(default) : It makes blue as the minimum on Fermi surfaces | |
394 | - and red as the maximum on them.</p> | |
395 | - <p>Manual : You can set manually (from standard input) | |
396 | - values corresponding to blue and red.</p> | |
397 | - <p>Uni-color : Fermi surfaces of each band are depicted | |
398 | - with uni-color without relation to the matrix element.</p> | |
399 | - <p>Periodic : It makes periodic color plot enable. When the matrix element varies as | |
400 | - $0$ $\rightarrow$ $\pi/ 3$ $\rightarrow$ $2\pi/ 3$ $\rightarrow$ $\pi$ | |
401 | - $\rightarrow$ $4\pi/ 3$ $\rightarrow$ $5\pi/ 3$ $\rightarrow$ $2\pi$, | |
402 | - the color varies as red $\rightarrow$ yellow $\rightarrow$ green | |
403 | - $\rightarrow$ cyan $\rightarrow$ blue $\rightarrow$ magenta $\rightarrow$ red.</p> | |
404 | - </dl> | |
405 | - <p><img src="figs/colorscale.jpg" align="middle" width="800" alt="" /> | |
406 | - Fig. 5: <code>Color scale mode</code> menu.</p> | |
407 | - | |
408 | - <hr><h2 id="brillouin-zone">6.8, Brillouin zone</h2> | |
409 | - | |
410 | - <p>You choose Brillouin-zone type as follows (Fig. 6):</p> | |
411 | - <dl> | |
412 | - <p>First Brillouin Zone : The region surrounded by Bragg's planes | |
413 | - the nearest to ${\rm \Gamma}$ point.</p> | |
414 | - <p>Primitive Brillouin Zone : A hexahedron whose corner is the reciprocal lattice point.</p> | |
415 | - </dl> | |
416 | - <p><img src="figs/brillouinzone.jpg" align="middle" width="800" alt="" /> | |
417 | - Fig. 6: You can change the type of the Brillouin zone | |
418 | - with <code>Brillouin zone</code> menu.</p> | |
419 | - | |
420 | - <hr><h2 id="node-line">6.9, Node line</h2> | |
421 | - | |
422 | - <p>The line on which the matrix element becomes 0 (we call it node line) | |
423 | - becomes enable/disable (Fig. 7).</p> | |
424 | - <p><img src="figs/nodeline.jpg" align="middle" width="800" alt="" /> | |
425 | - Fig. 7: Toggling the node line with <code>Node line</code> menu.</p> | |
426 | - | |
427 | - <hr><h2 id="color-bar-onoff">6.10, Color bar On/Off</h2> | |
428 | - | |
429 | - <p>The color bar becomes enable/disable (Fig. 8).</p> | |
430 | - <p><img src="figs/colorbar.jpg" align="middle" width="800" alt="" /> | |
431 | - Fig. 8: Toggling the color bar with <code>Color bar On/Off</code> menu.</p> | |
432 | - | |
433 | - <hr><h2 id="stereogram">6.11, Stereogram</h2> | |
434 | - | |
435 | - <p>The stereogram (parallel eyes and cross eyes) becomes enabled/disabled | |
436 | - (Fig. 9).</p> | |
437 | - <dl> | |
438 | - <p>None (Default)</p> | |
439 | - <p>Parallel : Parallel-eyes stereogram</p> | |
440 | - <p>Cross : Cross-eyes stereogram</p> | |
441 | - </dl> | |
442 | - <p><img src="figs/stereogram.jpg" align="middle" width="800" alt="" /> | |
443 | - Fig. 9: The stereogram becomes enabled/disabled with <code>Stereogram</code> menu.</p> | |
444 | - | |
445 | - <hr><h2 id="tetrahedron">6.12, Tetrahedron</h2> | |
446 | - | |
447 | - <p>You change the scheme to divide into tetrahedra (<code>tetra # 1</code> as default). | |
448 | - It is experimental.</p> | |
449 | - | |
450 | - <hr><h2 id="exit">6.13, Exit</h2> | |
451 | - | |
452 | - <p>This finishes <code>fermisurfer</code>.</p> | |
453 | - | |
454 | - <hr><h1><a name="gallery">7, Gallery</a></h1> | |
455 | - | |
456 | - <p>Contributions of each Fermi surfaces to the Hall effect in IrO$_2$ | |
457 | - (Fig. 10. Provided by Mr. Wataru Sano in Arita group, RIKEN)</p> | |
458 | - <p><img src="figs/iro2.jpg" align="middle" width="800" alt="" /> | |
459 | - Fig. 10: Contributions of each Fermi surfaces to the Hall effect</p> | |
460 | - | |
461 | - <hr><h1><a name="acknowledgment">8, Acknowledgment</a></h1> | |
462 | - | |
463 | - <p>I thank Dr. Yusuke Konishi in ISSP; he performed a test in Mac OSX, | |
464 | - and proposed Makefiles and a patch.</p> | |
465 | - | |
466 | - <hr><h1><a name="contact">9, Contact</a></h1> | |
467 | - | |
468 | - <p>Please post bag reports and questions to the forum</p> | |
469 | - <pre><code> | |
470 | -http://sourceforge.jp/projects/fermisurfer/forums/ | |
471 | - </code></pre> | |
472 | - <p>When you want to join us, please contact me as follows.</p> | |
473 | - <p>The Institute of Solid State Physics</p> | |
474 | - <p>Mitsuaki Kawamura</p> | |
475 | - <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
476 | - </body> | |
477 | 24 | </html> |
@@ -15,503 +15,9 @@ | ||
15 | 15 | <meta name="description" content="FermiSurfer日本語マニュアル"> |
16 | 16 | |
17 | 17 | </head> |
18 | - <body bgcolor="CCFFCC"> | |
19 | 18 | |
20 | - <center><h1>FermiSurferマニュアル</h1></center> | |
21 | - <center><h2>バージョン1.4</h2></center> | |
22 | - <center><h2>河村光晶</h2></center> | |
23 | - | |
24 | - <hr> | |
25 | - | |
26 | - <h1>目次</h1> | |
27 | - <p><a href="#hajimeni">1, はじめに</a></p> | |
28 | - <p><a href="#mitlicense">2, MIT ライセンス</a></p> | |
29 | - <p><a href="#filesinthispackage">3, このパッケージに含まれているファイル</a></p> | |
30 | - <p><a href="#instlation">4, インストール手順</a></p> | |
31 | - <p><a href="#inputfile">5, Input file</a></p> | |
32 | - <p><a href="#controlling">6, 操作方法</a></p> | |
33 | - <p><a href="#garally">7, ギャラリー</a></p> | |
34 | - <p><a href="#acknoledge">8, 謝辞</a></p> | |
35 | - <p><a href="#contacts">9, 問い合わせ先</a></p> | |
36 | - | |
37 | - <hr><a name="hajimeni"><h1>1, はじめに</h1></a> | |
38 | - | |
39 | - <p>この文書ではFermi面描画ソフト「Fermi Surfer」についての解説を行っています. | |
40 | - Fermi Surferは東京大学の河村光晶 が2012年頃から開発を行っていたもので, | |
41 | - 2014年11月に公開されました. | |
42 | - Fermi面を描画しその上に各種物理量(超伝導ギャップ関数や軌道キャラクターなど) | |
43 | - をカラープロットするソフトウェアです.</p> | |
44 | - | |
45 | - <hr> | |
46 | - <a name="mitlicense"><h1>2, MIT ライセンス</h1></a> | |
47 | - | |
48 | - <p>Copyright (c) 2014 Mitsuaki Kawamura</p> | |
49 | - <p>以下に定める条件に従い, 本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」) | |
50 | - の複製を取得するすべての人に対し, ソフトウェアを無制限に扱うことを無償で許可します. | |
51 | - これには, ソフトウェアの複製を使用, 複写, 変更, 結合, 掲載, 頒布, サブライセンス, | |
52 | - および/または販売する権利, | |
53 | - およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます. </p> | |
54 | - <p>上記の著作権表示および本許諾表示を, | |
55 | - ソフトウェアのすべての複製または重要な部分に記載するものとします. </p> | |
56 | - <p>ソフトウェアは「現状のまま」で, 明示であるか暗黙であるかを問わず, | |
57 | - 何らの保証もなく提供されます. | |
58 | - ここでいう保証とは, 商品性, 特定の目的への適合性, | |
59 | - および権利非侵害についての保証も含みますが, それに限定されるものではありません. | |
60 | - 作者または著作権者は, 契約行為, 不法行為, またはそれ以外であろうと, | |
61 | - ソフトウェアに起因または関連し, | |
62 | - あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求, 損害, | |
63 | - その他の義務について何らの責任も負わないものとします. </p> | |
64 | - | |
65 | - <hr> | |
66 | - <a name="filesinthispackage"><h1>3, このパッケージに含まれているファイル</h1></a> | |
67 | - | |
68 | - <dl> | |
69 | - <p><code>bin/fermisurfer.exe</code> : Windows用実行ファイル</p> | |
70 | - <p><code>doc/manual_en.pdf</code> : マニュアル(英語)</p> | |
71 | - <p><code>doc/manual_ja.pdf</code> : マニュアル(日本語)</p> | |
72 | - <p><code>examples/mgb2_vfz.frmsf</code> : サンプル入力ファイル</p> | |
73 | - <p><code>src/fermisurfer.c</code> : ソースファイル</p> | |
74 | - <p><code>src/mac.diff</code> : Mac OSX用 パッチ</p> | |
75 | - <p><code>src/Makefile</code> : Linux用 Makefile</p> | |
76 | - <p><code>src/Makefile-mac</code> : Mac OSX用 Makefile</p> | |
77 | - </dl> | |
78 | - | |
79 | - <hr><a name="instlation"><h1>4, インストール手順</h1></a> | |
80 | - | |
81 | - <hr><h2>4.1, Linuxの場合</h2> | |
82 | - | |
83 | - <ol> | |
84 | - <li><p>必要なパッケージをインストール(既にパッケージが入っている場合は何も起こりません. )</p> | |
85 | - <ul> | |
86 | - <li><p>Debian/Ubuntu 等</p> | |
87 | - <pre><code> | |
88 | -$ sudo aptitude install freeglut3-dev | |
89 | - </code></pre> | |
90 | - </li> | |
91 | - <li><p>Red Hat Enterprise Linux/CentOS 等</p> | |
92 | - <pre><code> | |
93 | -$ sudo yum install freeglut-devel.x86_64 | |
94 | - </code></pre> | |
95 | - </li> | |
96 | - </ul></li> | |
97 | - <li><p>メイク</p> | |
98 | - <pre><code> | |
99 | -$ cd ./src | |
100 | -$ make fermisurfer | |
101 | -$ make install | |
102 | - </code></pre> | |
103 | - </li> | |
104 | - </ol> | |
105 | - <p>以上で実行可能ファイル <code>fermisurfer</code> が作られ, | |
106 | - <code>/usr/local/bin/</code>にコピーされます.</p> | |
107 | - | |
108 | - <hr><h2>4.2, Mac OSX の場合</h2> | |
109 | - | |
110 | - <ol> | |
111 | - <li><p>Xcodeをあらかじめインストールしておく</p></li> | |
112 | - <li><p>ソースコードにパッチを当てる</p> | |
113 | - <pre><code> | |
114 | -$ cd ./src | |
115 | -$ patch -p1 < mac.diff | |
116 | - </code></pre> | |
117 | - </li> | |
118 | - <li><p>メイク</p> | |
119 | - <pre><code> | |
120 | -$ make -f Makefile-mac fermisurfer | |
121 | -$ make -f Makefile-mac install | |
122 | - </code></pre> | |
123 | - </li> | |
124 | - </ol> | |
125 | - <p>以上で実行可能ファイル <code>fermisurfer</code> が作られ, | |
126 | - <code>/usr/local/bin/</code>にコピーされます.</p> | |
127 | - | |
128 | - <hr><h2>4.3, Windowsの場合</h2> | |
129 | - | |
130 | - <ol> | |
131 | - <li><p>freeglutWindows Development Libraryのサイト</p> | |
132 | - <pre><code> | |
133 | -http://www.transmissionzero.co.uk/software/freeglut-devel/ | |
134 | - </code></pre> | |
135 | - <p>内の「freeglut MSVC package」という項目から <code>freeglut.dll</code>を含む | |
136 | - <code>zip</code>ファイルを ダウンロードし, 展開する.</p></li> | |
137 | - <li><p>展開したフォルダ内の<code>bin</code>というフォルダに入っている, | |
138 | - <code>freeglut.dll</code>を<code>fermisurfer.exe</code> | |
139 | - のあるフォルダ(<code>bin</code>)にコピーする.</p> | |
140 | - <p>(注) <code>bin\x64\</code>にも<code>freeglut.dll</code>があるが, | |
141 | - そちらは使わない.</p></li> | |
142 | - <li><p><code>fermisurfer.exe</code>と<code>freeglut.dll</code>は | |
143 | - 常に同じフォルダにおいておくこと.</p></li> | |
144 | - </ol> | |
145 | - | |
146 | - <hr><a name="inputfile"><h1>5, Input file</h1></a> | |
147 | - | |
148 | - | |
149 | - <hr><h2>5.1, input fileの書式</h2> | |
150 | - | |
151 | - <p>用意するデータは,</p> | |
152 | - <ul> | |
153 | - <li><p>Brillouin領域分割数(3方向)</p></li> | |
154 | - <li><p>逆格子ベクトル</p></li> | |
155 | - <li><p>バンド本数</p></li> | |
156 | - <li><p>軌道固有値(以下エネルギーと呼びます)の各バンド, | |
157 | - $k$グリッド点での値</p></li> | |
158 | - <li><p>カラープロットしたい物理量(以下物理量と呼びます)の各バンド, | |
159 | - $k$グリッド点での値</p></li> | |
160 | - </ul> | |
161 | - <p>です.</p> | |
162 | - <p>※ $k$グリッドの取り方 | |
163 | - $k$点の取り方として, | |
164 | - ${\rm \Gamma}$点を含むグリッドと, | |
165 | - ${\rm \Gamma}$点から半グリッド分だけずらしたグリッド | |
166 | - の二つに対応しています. | |
167 | - 後者はプロットしたい物理量が${\rm \Gamma}$点で特異的になっている | |
168 | - 場合等に使われる事を想定しています.</p> | |
169 | - <p>上記データを次のとおりの書式で並べます(サンプルファイル | |
170 | - <code>mgb2_vfz.frmsf</code>の中身).</p> | |
171 | - <pre><code> | |
172 | -40 40 36 (1) | |
173 | -0 (2) | |
174 | -3 (3) | |
175 | -1.0000000 0.57735026 -0.0000000 (4) | |
176 | -0.0000000 1.1547005 0.0000000 (5) | |
177 | -0.0000000 -0.0000000 0.87206507 (6) | |
178 | -2.91340202E-02 (7) | |
179 | -2.93242838E-02 | |
180 | -2.98905596E-02 | |
181 | -3.08193434E-02 | |
182 | -: | |
183 | -: | |
184 | -0.14393796 | |
185 | -0.12800488 | |
186 | -0.0000000 (8) | |
187 | -0.36269817 | |
188 | -0.71675694 | |
189 | -1.0535113 | |
190 | -1.3644149 | |
191 | -: | |
192 | -: | |
193 | --26.409407 | |
194 | --19.318560 | |
195 | --10.315671 | |
196 | - </code></pre> | |
197 | - <ol> | |
198 | - <li><p>$k$グリッド数</p></li> | |
199 | - <li><p>${\rm \Gamma}$点を含むグリッド | |
200 | - (含まないグリッドでは1とする)</p></li> | |
201 | - <li><p>バンド本数</p></li> | |
202 | - <li><p>逆格子ベクトル1 (任意単位)</p></li> | |
203 | - <li><p>逆格子ベクトル2</p></li> | |
204 | - <li><p>逆格子ベクトル3</p></li> | |
205 | - <li><p>エネルギー (並び順は下記参照)</p></li> | |
206 | - <li><p>物理量 (並び順は下記参照)</p></li> | |
207 | - </ol> | |
208 | - | |
209 | - <hr><h2>5.2, C/fortranでの入力ファイルの書き出し方</h2> | |
210 | - | |
211 | - <p>・fortran</p> | |
212 | - <pre><code> | |
213 | - real(4) :: bvec1(3), bvec2(3), bvec3(3) !逆格子ベクトル | |
214 | - integer :: nk1, nk2, nk3 !各逆格子ベクトルの方向の分割数 | |
215 | - integer :: ishift !グリットをシフトさせるか(=1)否か(=0) | |
216 | - integer :: nbnd !バンド数 | |
217 | - real(4) :: eig(nk3,nk2,nk1,nbnd) !エネルギー | |
218 | - real(4) :: x(nk3,nk2,nk1,nbnd) !物理量 | |
219 | - | |
220 | - integer :: ik1, ik2, ik3, ibnd, fo | |
221 | - | |
222 | - open(fo, file = “sample.frmsf”) | |
223 | - write(fo,*) nk1, nk2, nk3 | |
224 | - write(fo,*) ishift | |
225 | - write(fo,*) nbnd | |
226 | - write(fo,*) real(bvec1(1:3)) | |
227 | - write(fo,*) real(bvec2(1:3)) | |
228 | - write(fo,*) real(bvec3(1:3)) | |
229 | - do ibnd = 1, nbnd | |
230 | - do ik1 = 1, nk1 | |
231 | - do ik2 = 1, nk2 | |
232 | - do ik3 = 1, nk3 | |
233 | - write(fo,*) real(eig(ik3,ik2,ik1,ibnd)) | |
234 | - end do | |
235 | - end do | |
236 | - end do | |
237 | - end do | |
238 | - do ibnd = 1, nbnd | |
239 | - do ik1 = 1, nk1 | |
240 | - do ik2 = 1, nk2 | |
241 | - do ik3 = 1, nk3 | |
242 | - write(fo,*) real(x(ik3,ik2,ik1,ibnd)) | |
243 | - end do | |
244 | - end do | |
245 | - end do | |
246 | - end do | |
247 | - close(fo) | |
248 | - </code></pre> | |
249 | - <p>・C言語</p> | |
250 | - <pre><code> | |
251 | - float bvec1[3], bvec2[3], bvec3[3]; /*逆格子ベクトル*/ | |
252 | - int nk1, nk2, nk3; /*各逆格子ベクトルの方向の分割数*/ | |
253 | - int ishift; /*グリットをシフトさせるか(=1)否か(=0)*/ | |
254 | - int nbnd; /*バンド数*/ | |
255 | - float eig[nbnd][nk1][nk2][nk3]; /*エネルギー*/ | |
256 | - float x[nbnd][nk1][nk2][nk3]; /*物理量*/ | |
257 | - | |
258 | - FILE* fo; | |
259 | - int ibnd, ik1, ik2, ik3; | |
260 | - | |
261 | - fo = fopen(“sample.frmsf”, “w”); | |
262 | - ierr = fprintf(fo, "%d %d %d", nk1, nk2, nk3); | |
263 | - ierr = fprintf(fo, "%d, iswitch); | |
264 | - ierr = fprintf(fo, "%d, nbnd); | |
265 | - ierr = fprintf(fp, "%e %e %e", bvec1[0], bvec1[1], bvec1[2]); | |
266 | - ierr = fprintf(fp, "%e %e %e", bvec2[0], bvec2[1], bvec2[2]); | |
267 | - ierr = fprintf(fp, "%e %e %e", bvec3[0], bvec3[1], bvec3[2]); | |
268 | - for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
269 | - for (ik1 = 0; ik1 < nk1; ++ik1) { | |
270 | - for (ik2 = 0; ik2 < nk2; ++ik2) { | |
271 | - for (ik3 = 0; ik3 < nk3; ++ik3) { | |
272 | - ierr = fprintf(fo, "%e", eig[ibnd][ik1][ik2][ik3]); | |
273 | - } | |
274 | - } | |
275 | - } | |
276 | - } | |
277 | - for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
278 | - for (ik1 = 0; ik1 < nk1; ++ik1) { | |
279 | - for (ik2 = 0; ik2 < nk2; ++ik2) { | |
280 | - for (ik3 = 0; ik3 < nk3; ++ik3) { | |
281 | - ierr = fprintf(fo, "%e", x[ibnd][ik1][ik2][ik3]); | |
282 | - } | |
283 | - } | |
284 | - } | |
285 | - } | |
286 | - fclose(fo); | |
287 | - </code></pre> | |
288 | - | |
289 | - <hr><a name="controlling"><h1>6, 操作方法</h1></a> | |
290 | - | |
291 | - <hr><h2>6.1, Linuxの場合</h2> | |
292 | - | |
293 | - <p>作成した実行可能ファイル<code>fermisurfer</code>にパスが通っている状態で</p> | |
294 | - <pre><code> | |
295 | -$ fermisurfer mgb2_vfz.frmsf | |
296 | - </code></pre> | |
297 | - <p>とコマンド, スペース, 入力ファイル名とタイプします. | |
298 | - (サンプルファイルの中身はMgB$_2$ | |
299 | - のFermi速度の$z$方向成分です. )</p> | |
300 | - | |
301 | - <hr><h2>6.2, Windowsの場合</h2> | |
302 | - | |
303 | - <p>入力ファイル(この場合は<code>mgb2_vfz.frmsf</code>)を右クリックし, | |
304 | - メニューから「プログラムから開く」を選択し, | |
305 | - 実行ファイルを<code>fermisurfer.exe</code>に設定してください.</p> | |
306 | - <p>このあとはLinux, Windows共通です. <code>fermisurfer</code>が起動すると, | |
307 | - まずファイルから読み取った情報が出力されます.</p> | |
308 | - <pre><code> | |
309 | -##### Brillouin zone informations ##### | |
310 | - | |
311 | -k point grid : 40 40 36 | |
312 | -k point grid is not shifted | |
313 | -# of bands : 3 | |
314 | -bvec 1 : 1.000000 0.577350 -0.000000 | |
315 | -bvec 2 : 0.000000 1.154701 0.000000 | |
316 | -bvec 3 : 0.000000 -0.000000 0.872065 | |
317 | - | |
318 | -# of lines for BZ : 84 (1) | |
319 | - | |
320 | -##### Max. and Min. of each bands ##### | |
321 | - | |
322 | -Band Eig_Min. Eig_Max Mat_Min Mat_Max | |
323 | -1 -0.428153 0.056262 -24.048639 24.048639 (2) | |
324 | -2 -0.289572 0.121181 -23.320309 23.320309 (2) | |
325 | -3 -0.133566 0.497620 -43.651634 43.651634 (2) | |
326 | - | |
327 | -##### First Brillouin zone mode ##### | |
328 | - | |
329 | -band # of patchs | |
330 | -1 8824 (3) | |
331 | -2 29469 (3) | |
332 | -3 28315 (3) | |
333 | - | |
334 | -band # of nodeline | |
335 | -1 632 (4) | |
336 | -2 1524 (4) | |
337 | -3 2268 (4) | |
338 | - | |
339 | -##### Full color scale ##### | |
340 | - | |
341 | -Max. value : 22.283419 (5) | |
342 | -Min. value : -22.283419 (5) | |
343 | - </code></pre> | |
344 | - <ol> | |
345 | - <li><p>Brillouin領域の境界を表示する線の数.</p></li> | |
346 | - <li><p>それぞれのバンドにおけるエネルギーと物理量の最小値・最大値.</p></li> | |
347 | - <li><p>それぞれのバンドにおけるパッチ(Fermi面を構成する平面)の数.</p></li> | |
348 | - <li><p>それぞれのバンドにおけるnode line (後述)の本数.</p></li> | |
349 | - <li><p>物理量のFermi面における最大値と最小値. この数字がカラーバーの最大・最小に対応します. | |
350 | - 下の例では一番青いところが-22.283419, 一番赤いところが22.283419となります. | |
351 | - (2)で表示されているのはBrillouin領域全体のものです.</p></li> | |
352 | - </ol> | |
353 | - <p>次に操作方法が出力され, Fermi面が描画されます(図1).</p> | |
354 | - <p><img src="figs/start.jpg" align="middle" width="800" alt="初期画面"/> | |
355 | - 図1: Fermisurferを起動した直後の画面.</p> | |
356 | - <ul> | |
357 | - <li><p>マウスのドラッグによる回転が出来ます.</p></li> | |
358 | - <li><p>マウスのホイールを使っての拡大・縮小が出来ます.</p></li> | |
359 | - <li><p>ウィンドウの大きさを変えることもできます.</p></li> | |
360 | - <li><p>カーソルキーを使ってウィンドウ内で上下左右に図を動かせます.</p></li> | |
361 | - <li><p>ウィンドウ内でマウスの右クリックをするとメニューが表示されます.</p></li> | |
362 | - </ul> | |
363 | - <p>次から右クリックで表示されるメニューを説明します.</p> | |
364 | - | |
365 | - <hr><h2>6.3, Band</h2> | |
366 | - | |
367 | - <p>バンド毎の表示on/offを切り替えます(図2).</p> | |
368 | - <p><img src="figs/band.jpg" align="middle" width="800" alt="" /> | |
369 | - 図2: <code>Band</code>メニューで3番目のバンドの表示/非表示を切り替える.</p> | |
370 | - | |
371 | - <hr><h2>6.4, Mouse Drag</h2> | |
372 | - | |
373 | - <p>マウスの左ボタンドラッグを行った時の動作を変更します.</p> | |
374 | - <dl> | |
375 | - <dt>Rotate(デフォルト)</dt> | |
376 | - <dd><p>ドラッグをした方向に図形を回転させます.</p> | |
377 | - </dd> | |
378 | - <dt>Scale</dt> | |
379 | - <dd><p>上方にドラッグすると図形を拡大, 下方にドラッグすると図形を縮小します.</p> | |
380 | - </dd> | |
381 | - <dt>Translate</dt> | |
382 | - <dd><p>ドラッグした方向に図形を動かします.</p> | |
383 | - </dd> | |
384 | - </dl> | |
385 | - | |
386 | - <hr><h2>6.5, Shift Fermi energy</h2> | |
387 | - | |
388 | - <p>Fermiエネルギー(デフォルトでは0)を任意の値にずらします. | |
389 | - このメニューを選択すると次のようにインプット中の最小のエネルギー, | |
390 | - 最大のエネルギー, 現在のFermiエネルギーが標準出力として表示されます.</p> | |
391 | - <pre><code> | |
392 | -Min Max E_F | |
393 | --0.428153 0.497620 0.000000 | |
394 | -Fermi energy shift : | |
395 | - </code></pre> | |
396 | - <p>次に新しいFermiエネルギーを入力すると, | |
397 | - Fermi面が再描画されます (図3).</p> | |
398 | - <p><img src="figs/shift.jpg" align="middle" width="800" alt="" /> | |
399 | - 図3: <code>Shift Fermi energy</code>メニューで | |
400 | - Fermi エネルギーを0 Ryから0.1 Ryに変える.</p> | |
401 | - | |
402 | - <hr><h2>6.6, Background color</h2> | |
403 | - | |
404 | - <p>背景色を黒または白に切り替えます. | |
405 | - Brillouin Zoneの枠線も白/黒と切り替わります (図4).</p> | |
406 | - <p><img src="figs/background.jpg" align="middle" width="800" alt="" /> | |
407 | - 図4: <code>Background color</code>メニューで背景色を白/黒に切り替える.</p> | |
408 | - | |
409 | - <hr><h2>6.7, Color scale mode</h2> | |
410 | - | |
411 | - <p>Fermi面の色表示のさせ方を変更します(図5).</p> | |
412 | - <dl> | |
413 | - <dt>Auto(デフォルト)</dt> | |
414 | - <dd><p>カラースケールの範囲をFermi面上での物理量の最小値から最大値までとします.</p> | |
415 | - </dd> | |
416 | - <dt>Manual</dt> | |
417 | - <dd><p>カラースケールの範囲を標準入力から設定します.</p> | |
418 | - </dd> | |
419 | - <dt>Unicolor</dt> | |
420 | - <dd><p>物理量に関係なく, 各バンド毎に単色でFermi面を塗ります.</p> | |
421 | - </dd> | |
422 | - <dt>Periodic</dt> | |
423 | - <dd><p>周期的な量のプロットに用います. | |
424 | - 物理量が 0 $\rightarrow$ | |
425 | - $\pi/3$ $\rightarrow$ | |
426 | - $2\pi/3$ $\rightarrow$ | |
427 | - $\pi$ $\rightarrow$ | |
428 | - $4\pi/3$ $\rightarrow$ | |
429 | - $5\pi/3$ $\rightarrow$ | |
430 | - $2\pi$ と変化するに連れて | |
431 | - 色が赤$\rightarrow$黄$\rightarrow$ | |
432 | - 緑$\rightarrow$シアン$\rightarrow$ | |
433 | - 青$\rightarrow$ マゼンタ$\rightarrow$ | |
434 | - 赤と変わります.</p> | |
435 | - </dd> | |
436 | - </dl> | |
437 | - <p><img src="figs/colorscale.jpg" align="middle" width="800" alt="" /> | |
438 | - 図5: <code>Color scale mode</code>メニュー.</p> | |
439 | - | |
440 | - <hr><h2>6.8, Brillouin zone</h2> | |
441 | - | |
442 | - <p>描画範囲をFirst Brillouin Zone/Primitive Brillouin Zoneと | |
443 | - 切り替える事が出来ます (図6).</p> | |
444 | - <dl> | |
445 | - <dt>Fisrst Brillouin Zone</dt> | |
446 | - <dd><p><span class="math">${\rm \Gamma}$</span> | |
447 | - 点から一番近いBragg面で囲まれた領域</p> | |
448 | - </dd> | |
449 | - <dt>Primitive Brillouine Zone</dt> | |
450 | - <dd><p>逆格子ベクトルを辺とする平行6面体領域</p> | |
451 | - </dd> | |
452 | - </dl> | |
453 | - <p><img src="figs/brillouinzone.jpg" align="middle" width="800" alt="" /> | |
454 | - 図6: <code>Brillouin zone</code>メニューでBrillouin領域のとり方を変更する.</p> | |
455 | - | |
456 | - <hr><h2>6.9, Node line</h2> | |
457 | - | |
458 | - <p>物理量が0となるところに引く線(node line)のOn/Offを切り替えます(図7).</p> | |
459 | - <p><img src="figs/nodeline.jpg" align="middle" width="800" alt="" /> | |
460 | - 図7: <code>Node line</code>メニューでnode lineの表示/非表示を切り替える.</p> | |
461 | - | |
462 | - <hr><h2>6.10, Color bar On/Off</h2> | |
463 | - | |
464 | - <p>カラーバーの表示/非表示を切り替えます(図8).</p> | |
465 | - <p><img src="figs/colorbar.jpg" align="middle" width="800" alt="" /> | |
466 | - 図8: <code>Color bar On/Off</code>メニューでカラーバーの表示/非表示を切り替える.</p> | |
467 | - | |
468 | - <hr><h2>6.11, Stereogram</h2> | |
469 | - | |
470 | - <p>裸眼立体視用の図の表示/非表示を切り替えます(図9).</p> | |
471 | - <dl> | |
472 | - <dt>None (デフォルト)</dt> | |
473 | - <dd><p>立体視を無効にします.</p> | |
474 | - </dd> | |
475 | - <dt>Parallel</dt> | |
476 | - <dd><p>平行法用の図を表示します.</p> | |
477 | - </dd> | |
478 | - <dt>Cross</dt> | |
479 | - <dd><p>交差法用の図を表示します.</p> | |
480 | - </dd> | |
481 | - </dl> | |
482 | - <p><img src="figs/stereogram.jpg" align="middle" width="800" alt="" /> | |
483 | - 図9: <code>Stereogram</code>メニューで立体視用画像を表示する.</p> | |
484 | - | |
485 | - <hr><h2>6.12, Tetrahedron</h2> | |
486 | - | |
487 | - <p>四面体の切り方を変えます(デフォルトは<code>tetra # 1</code>). | |
488 | - 図が綺麗になる可能性がありますが, | |
489 | - 多くの場合は逆に図がギザギザして汚くなるようです.</p> | |
490 | - | |
491 | - <hr><h2>6.13, Exit</h2> | |
492 | - | |
493 | - <p>Fermi Surferを終了します.</p> | |
494 | - | |
495 | - <hr><a name="garally"><h1>7, ギャラリー</h1></a> | |
496 | - | |
497 | - <p>IrO$_2$のHall係数に対するFermi面上の各軌道からの寄与 (図10). | |
498 | - 理化学研究所 有田グループ 佐野航氏提供).</p> | |
499 | - <p><img src="figs/iro2.jpg" align="middle" width="800" alt="" /> | |
500 | - 図10: IrO$_2$のHall係数に対するFermi面上の各軌道からの寄与.</p> | |
501 | - | |
502 | - <hr><a name="acknoledge"><h1>8, 謝辞</h1></a> | |
503 | - | |
504 | - <p>東京大学物性研究所 小西優祐氏には, | |
505 | - Mac OSXでの動作チェックおよびMakefile, | |
506 | - パッチの提供をしていただいたことに感謝する.</p> | |
507 | - | |
508 | - <hr><a name="contacts"><h1>9, 問い合わせ先</h1></a> | |
509 | - | |
510 | - <p>プログラムのバグや質問は以下のフォーラムへご投稿ください.</p> | |
511 | - <pre><code>http://sourceforge.jp/projects/fermisurfer/forums/</code></pre> | |
512 | - <p>開発に参加したい方は以下の連絡先にて受け付けております.</p> | |
513 | - <p>東京大学物性研究所</p> | |
514 | - <p>河村光晶</p> | |
515 | - <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
516 | - </body> | |
19 | + <frameset cols="300,*"> | |
20 | + <frame name="left" src="./manual_left_ja.html"> | |
21 | + <frame name="right" src="./manual_right_ja.html"> | |
22 | + </frameset> | |
517 | 23 | </html> |
@@ -0,0 +1,43 @@ | ||
1 | +<html> | |
2 | + <head> | |
3 | + <meta http-equiv="Content-Type" | |
4 | + content="text/html; charset=utf-8"> | |
5 | + <script type="text/x-mathjax-config"> | |
6 | + MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); | |
7 | + </script> | |
8 | + <script type="text/javascript" | |
9 | + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> | |
10 | + </script> | |
11 | + <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> | |
12 | + | |
13 | + <title>Manual for FermiSurfer</title> | |
14 | + | |
15 | + <meta name="description" content="Manual for FermiSurfer"> | |
16 | + | |
17 | + </head> | |
18 | + <body bgcolor="CCFFCC"> | |
19 | + | |
20 | + <h1>Contents</h1> | |
21 | + <p><a href="./manual_right_en.html#introduction" target="right">1, Introduction</a></p> | |
22 | + <p><a href="./manual_right_en.html#mit-license" target="right">2, MIT License</a></p> | |
23 | + <p><a href="./manual_right_en.html#files-in-this-package" target="right">3, Files in this package</a></p> | |
24 | + <p><a href="./manual_right_en.html#install" target="right">4, Install</a></p> | |
25 | + <p><a href="./manual_right_en.html#input-file" target="right">5, Input file</a></p> | |
26 | + <p><a href="./manual_right_en.html#control-fermisurfer" target="right">6, Control FermiSurfer</a></p> | |
27 | + <p><a href="./manual_right_en.html#gallery" target="right">7, Gallery</a></p> | |
28 | + <p><a href="./manual_right_en.html#acknowledgment" target="right">8, Acknowledgment</a></p> | |
29 | + <p><a href="./manual_right_en.html#contact" target="right">9, Contact</a></p> | |
30 | + | |
31 | + <hr> | |
32 | + | |
33 | + <h1>Goto</h1> | |
34 | + <p><a href="./index.html.en" target="_top">Home</a></p> | |
35 | + <p><a href="http://osdn.jp/projects/fermisurfer/releases/" target="_top">Download</a></p> | |
36 | + <p><a href="./manual_ja.html" target="_top">日本語マニュアル</a></p> | |
37 | + <p><a href="http://osdn.jp/projects/fermisurfer/ticket/" target="_top">Report Bugs</a></p> | |
38 | + <p><a href="http://osdn.jp/projects/fermisurfer/forums/" target="_top">Forum</a></p> | |
39 | + <p><a href="http://osdn.jp/projects/fermisurfer/lists/" target="_top">Mailing list</a></p> | |
40 | + | |
41 | + | |
42 | + </body> | |
43 | +</html> |
@@ -0,0 +1,42 @@ | ||
1 | +<html> | |
2 | + <head> | |
3 | + <meta http-equiv="Content-Type" | |
4 | + content="text/html; charset=utf-8"> | |
5 | + <script type="text/x-mathjax-config"> | |
6 | + MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); | |
7 | + </script> | |
8 | + <script type="text/javascript" | |
9 | + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> | |
10 | + </script> | |
11 | + <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> | |
12 | + | |
13 | + <title>FermiSurfer日本語マニュアル</title> | |
14 | + | |
15 | + <meta name="description" content="FermiSurfer日本語マニュアル"> | |
16 | + | |
17 | + </head> | |
18 | + <body bgcolor="CCFFCC"> | |
19 | + | |
20 | + <h1>目次</h1> | |
21 | + <p><a href="./manual_right_ja.html#hajimeni" target="right">1, はじめに</a></p> | |
22 | + <p><a href="./manual_right_ja.html#mitlicense" target="right">2, MIT ライセンス</a></p> | |
23 | + <p><a href="./manual_right_ja.html#filesinthispackage" target="right"> | |
24 | + 3, このパッケージに含まれているファイル</a></p> | |
25 | + <p><a href="./manual_right_ja.html#instlation" target="right">4, インストール手順</a></p> | |
26 | + <p><a href="./manual_right_ja.html#inputfile" target="right">5, Input file</a></p> | |
27 | + <p><a href="./manual_right_ja.html#controlling" target="right">6, 操作方法</a></p> | |
28 | + <p><a href="./manual_right_ja.html#garally" target="right">7, ギャラリー</a></p> | |
29 | + <p><a href="./manual_right_ja.html#acknoledge" target="right">8, 謝辞</a></p> | |
30 | + <p><a href="./manual_right_ja.html#contacts" target="right">9, 問い合わせ先</a></p> | |
31 | + <hr> | |
32 | + | |
33 | + <h1>移動</h1> | |
34 | + <p><a href="./index.html.ja" target="_top">ホーム</a></p> | |
35 | + <p><a href="http://osdn.jp/projects/fermisurfer/releases/" target="_top">ダウンロード</a></p> | |
36 | + <p><a href="./manual_en.html" target="_top">Manual in English</a></p> | |
37 | + <p><a href="http://osdn.jp/projects/fermisurfer/ticket/" target="_top">バグ報告</a></p> | |
38 | + <p><a href="http://osdn.jp/projects/fermisurfer/forums/" target="_top">フォーラム</a></p> | |
39 | + <p><a href="http://osdn.jp/projects/fermisurfer/lists/" target="_top">メーリングリスト</a></p> | |
40 | + | |
41 | + </body> | |
42 | +</html> |
@@ -0,0 +1,464 @@ | ||
1 | +<html> | |
2 | + <head> | |
3 | + <meta http-equiv="Content-Type" | |
4 | + content="text/html; charset=utf-8"> | |
5 | + <script type="text/x-mathjax-config"> | |
6 | + MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); | |
7 | + </script> | |
8 | + <script type="text/javascript" | |
9 | + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> | |
10 | + </script> | |
11 | + <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> | |
12 | + | |
13 | + <title>Manual for FermiSurfer</title> | |
14 | + | |
15 | + <meta name="description" content="Manual for FermiSurfer"> | |
16 | + | |
17 | + </head> | |
18 | + <body bgcolor="CCFFCC"> | |
19 | + | |
20 | + <center><h1>Manual for FermiSurfer</h1></center> | |
21 | + <center><h2>Version 1.4</h2></center> | |
22 | + <center><h2>Mitsuaki Kawamura</h2></center> | |
23 | + | |
24 | + <hr> | |
25 | + | |
26 | + <h1><a name="introduction">1, Introduction</a></h1> | |
27 | + | |
28 | + <p>This document is a manual for the Fermi surface drawing program ``Fermi Surfer". | |
29 | + Fermi Surfer have been developed since 2012 by Mitsuaki Kawamura | |
30 | + (ISSP, The University of Tokyo); it is opened on web at November, 2014. | |
31 | + It draws Fermi surfaces, and plot $k$-depend matrix elements such as | |
32 | + the superconducting gap and orbital character with colors.</p> | |
33 | + | |
34 | + <hr><h1><a name="mit-license">2, MIT License</a></h1> | |
35 | + | |
36 | + <p>Copyright (c) 2014 Mitsuaki Kawamura</p> | |
37 | + <p>Permission is hereby granted, free of charge, | |
38 | + to any person obtaining a copy of this software and associated documentation files | |
39 | + (the "Software"), to deal in the Software without restriction, | |
40 | + including without limitation the rights to use, copy, modify, merge, publish, | |
41 | + distribute, sublicense, and/or sell copies of the Software, | |
42 | + and to permit persons to whom the Software is furnished to do so, | |
43 | + subject to the following conditions:</p> | |
44 | + <p>The above copyright notice and this permission notice shall be included | |
45 | + in all copies or substantial portions of the Software.</p> | |
46 | + <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
47 | + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
48 | + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS | |
49 | + OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
50 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
51 | + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE | |
52 | + OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> | |
53 | + | |
54 | + <hr><h1><a name="files-in-this-package">3, Files in this package</a></h1> | |
55 | + | |
56 | + <dl> | |
57 | + <p><code>bin/fermisurfer.exe</code> : Executable for Windows</p> | |
58 | + <p><code>doc/manual_en.pdf</code> : Manual (English)</p> | |
59 | + <p><code>doc/manual_ja.pdf</code> : Manual (Japanese)</p> | |
60 | + <p><code>examples/mgb2_vfz.frmsf</code> : Sample input file</p> | |
61 | + <p><code>src/fermisurfer.c</code> : Source file</p> | |
62 | + <p><code>src/mac.diff</code> : Patch for Mac OSX</p> | |
63 | + <p><code>src/Makefile</code> : Makefile for Linux</p> | |
64 | + <p><code>src/Makefile-mac</code> : Makefile for Mac OSX</p> | |
65 | + </dl> | |
66 | + | |
67 | + <hr><h1><a name="install">4, Install</a></h1> | |
68 | + | |
69 | + <hr><h2 id="installation-in-linux">4.1, Installation in Linux</h2> | |
70 | + | |
71 | + <ol> | |
72 | + <li><p>Install the required package</p> | |
73 | + <ul> | |
74 | + <li><p>For Debian/Ubuntu</p> | |
75 | + <pre><code> $ sudo aptitude install freeglut3-dev | |
76 | + </code></pre></li> | |
77 | + <li><p>For Red Hat Enterprise Linux/CentOS</p> | |
78 | + <pre><code> $ sudo yum install freeglut-devel.x86_64 | |
79 | + </code></pre></li> | |
80 | + </ul></li> | |
81 | + <li><p>Make</p> | |
82 | + <pre><code> | |
83 | +$ cd ./src | |
84 | +$ make fermisurfer | |
85 | +$ make install | |
86 | + </code></pre> | |
87 | + </li> | |
88 | + </ol> | |
89 | + <p>Then a binary file <code>fermisurfer</code> is generated and put | |
90 | + in <code>/usr/local/bin/</code>.</p> | |
91 | + | |
92 | + <hr><h2 id="For mac-osx">4.2, For Mac OSX</h2> | |
93 | + | |
94 | + <ol> | |
95 | + <li><p>Install Xcode.</p></li> | |
96 | + <li><p>Patch the source code.</p> | |
97 | + <pre><code> | |
98 | +$ cd ./src | |
99 | +$ patch -p1 < mac.diff | |
100 | + </code></pre> | |
101 | + </li> | |
102 | + <li><p>Make.</p> | |
103 | + <pre><code> | |
104 | +$ make -f Makefile-mac fermisurfer | |
105 | +$ make -f Makefile-mac install | |
106 | + </code></pre> | |
107 | + <p>Then a binary file <code>fermisurfer</code> is generated and put | |
108 | + in <code>/usr/local/bin/</code>.</p></li> | |
109 | + </ol> | |
110 | + | |
111 | + <hr><h2 id="installation-in-windows">4.3, Installation in Windows</h2> | |
112 | + | |
113 | + <ol> | |
114 | + <li><p>Download the <code>zip</code> file which contains <code>freeglut.dll</code> | |
115 | + from "freeglut Windows Development Library" site</p> | |
116 | + <pre><code> | |
117 | +http://www.transmissionzero.co.uk/software/freeglut-devel/ | |
118 | + </code></pre> | |
119 | + <p>(in "freeglut MSVC package" item). Then, <code>unzip</code> it.</p></li> | |
120 | + <li><p>copy <code>.\bin\freeglut.dll</code> to the folder | |
121 | + which contains <code>fermisurfer.exe</code> (<code>bin</code>). | |
122 | + (You should not use <code>.\bin\x64\freeglut.dll</code>)</p></li> | |
123 | + </ol> | |
124 | + | |
125 | + <hr><h1><a name="input-file">5, Input file</a></h1> | |
126 | + | |
127 | + <hr><h2 id="input-file-format">5.1, input-file format</h2> | |
128 | + | |
129 | + <p>You have to prepare following data:</p> | |
130 | + <ul> | |
131 | + <li><p>The number of $k$ grid (three direction)</p></li> | |
132 | + <li><p>Reciprocal lattice vectors</p></li> | |
133 | + <li><p>The number of bands</p></li> | |
134 | + <li><p>The orbital energy at each band and $k$ (We call it "energy") .</p></li> | |
135 | + <li><p>Variables that you want to plot with color (We call it "matrix elements").</p></li> | |
136 | + </ul> | |
137 | + <p>This program supports two kind of uniform $k$ grid, | |
138 | + a grid (${\rm \Gamma}$ centered) and grid with a half-grid shift. | |
139 | + The latter is used when the matrix element becomes singular at ${\rm \Gamma}$.</p> | |
140 | + <p>The input file is as follows (<code>mgb2_vfz.fs</code>):</p> | |
141 | + <pre><code> | |
142 | +40 40 36 (1) | |
143 | +0 (2) | |
144 | +3 (3) | |
145 | +1.0000000 0.57735026 -0.0000000 (4) | |
146 | +0.0000000 1.1547005 0.0000000 (5) | |
147 | +0.0000000 -0.0000000 0.87206507 (6) | |
148 | +2.91340202E-02 (7) | |
149 | +2.93242838E-02 | |
150 | +2.98905596E-02 | |
151 | +3.08193434E-02 | |
152 | +: | |
153 | +: | |
154 | +0.14393796 | |
155 | +0.12800488 | |
156 | +0.0000000 (8) | |
157 | +0.36269817 | |
158 | +0.71675694 | |
159 | +1.0535113 | |
160 | +1.3644149 | |
161 | +: | |
162 | +: | |
163 | +-26.409407 | |
164 | +-19.318560 | |
165 | +-10.315671 | |
166 | + </code></pre> | |
167 | + <ol> | |
168 | + <li><p>The $k$ point grid</p></li> | |
169 | + <li><p>0 for ${\rm \Gamma}$ centered grid. 1 for shifted grid.</p></li> | |
170 | + <li><p>The number of bands</p></li> | |
171 | + <li><p>Reciprocal lattice vector 1 (arbitrary unit)</p></li> | |
172 | + <li><p>Reciprocal lattice vector 2</p></li> | |
173 | + <li><p>Reciprocal lattice vector 3</p></li> | |
174 | + <li><p>Energy</p></li> | |
175 | + <li><p>Matrix elements</p></li> | |
176 | + </ol> | |
177 | + | |
178 | + <hr><h2 id="how-to-produce-the-input-file-in-c-and-fortran-programs"> | |
179 | + 5.2, How to produce the input file in C and fortran programs</h2> | |
180 | + | |
181 | + <p>fortran</p> | |
182 | + <pre><code> | |
183 | + real(4) :: bvec1(3), bvec2(3), bvec3(3) ! Resiplocal lattice vector | |
184 | + integer :: nk1, nk2, nk3 ! k-grid of each direction | |
185 | + integer :: ishift ! 1 for shifted grid, 0 for unshifted grid. | |
186 | + integer :: nbnd ! The number of bands | |
187 | + real(4) :: eig(nk3,nk2,nk1,nbnd) ! energy | |
188 | + real(4) :: x(nk3,nk2,nk1,nbnd) ! matrix element | |
189 | + | |
190 | + integer :: ik1, ik2, ik3, ibnd, fo | |
191 | + | |
192 | + open(fo, file = "sample.fs") | |
193 | + write(fo,*) nk1, nk2, nk3 | |
194 | + write(fo,*) ishift | |
195 | + write(fo,*) nbnd | |
196 | + write(fo,*) real(bvec1(1:3)) | |
197 | + write(fo,*) real(bvec2(1:3)) | |
198 | + write(fo,*) real(bvec3(1:3)) | |
199 | + do ibnd = 1, nbnd | |
200 | + do ik1 = 1, nk1 | |
201 | + do ik2 = 1, nk2 | |
202 | + do ik3 = 1, nk3 | |
203 | + write(fo,*) real(eig(ik3,ik2,ik1,ibnd)) | |
204 | + end do | |
205 | + end do | |
206 | + end do | |
207 | + end do | |
208 | + do ibnd = 1, nbnd | |
209 | + do ik1 = 1, nk1 | |
210 | + do ik2 = 1, nk2 | |
211 | + do ik3 = 1, nk3 | |
212 | + write(fo,*) real(x(ik3,ik2,ik1,ibnd)) | |
213 | + end do | |
214 | + end do | |
215 | + end do | |
216 | + end do | |
217 | + close(fo) | |
218 | + </code></pre> | |
219 | + <p>C</p> | |
220 | + <pre><code> | |
221 | + float bvec1[3], bvec2[3], bvec3[3]; /*Resiplocal lattice vector*/ | |
222 | + int nk1, nk2, nk3; /*k-grid of each direction*/ | |
223 | + int ishift; /*1 for shifted grid, 0 for unshifted grid.*/ | |
224 | + int nbnd; /*The number of bands*/ | |
225 | + float eig[nbnd][nk1][nk2][nk3]; /*Energy*/ | |
226 | + float x[nbnd][nk1][nk2][nk3]; /*Matrix element*/ | |
227 | + | |
228 | + FILE* fo; | |
229 | + int ibnd, ik1, ik2, ik3; | |
230 | + | |
231 | + fo = fopen("sample.fs", "w"); | |
232 | + ierr = fprintf(fo, "%d %d %d", nk1, nk2, nk3); | |
233 | + ierr = fprintf(fo, "%d, iswitch); | |
234 | + ierr = fprintf(fo, "%d, nbnd); | |
235 | + ierr = fprintf(fp, "%e %e %e", bvec1[0], bvec1[1], bvec1[2]); | |
236 | + ierr = fprintf(fp, "%e %e %e", bvec2[0], bvec2[1], bvec2[2]); | |
237 | + ierr = fprintf(fp, "%e %e %e", bvec3[0], bvec3[1], bvec3[2]); | |
238 | + for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
239 | + for (ik1 = 0; ik1 < nk1; ++ik1) { | |
240 | + for (ik2 = 0; ik2 < nk2; ++ik2) { | |
241 | + for (ik3 = 0; ik3 < nk3; ++ik3) { | |
242 | + ierr = fprintf(fo, "%e", eig[ibnd][ik1][ik2][ik3]); | |
243 | + } | |
244 | + } | |
245 | + } | |
246 | + } | |
247 | + for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
248 | + for (ik1 = 0; ik1 < nk1; ++ik1) { | |
249 | + for (ik2 = 0; ik2 < nk2; ++ik2) { | |
250 | + for (ik3 = 0; ik3 < nk3; ++ik3) { | |
251 | + ierr = fprintf(fo, "%e", x[ibnd][ik1][ik2][ik3]); | |
252 | + } | |
253 | + } | |
254 | + } | |
255 | + } | |
256 | + fclose(fo); | |
257 | + </code></pre> | |
258 | + | |
259 | + <hr><h1><a name="control-fermisurfer">6, Control FermiSurfer</a></h1> | |
260 | + | |
261 | + <hr><h2 id="for-linux">6.1, For Linux</h2> | |
262 | + | |
263 | + <p>You can launch generated executable as follows:</p> | |
264 | + <pre><code> | |
265 | +$ ./fermisurfer mgb2_vfz.fs | |
266 | + </code></pre> | |
267 | + <p>You need a space between the command and input-file name. | |
268 | + (The sample input file <code>mgb2_vfz.fs</code> contains $z$ element | |
269 | + of the Fermi velocity in MgB$_2$.)</p> | |
270 | + | |
271 | + <hr><h2 id="for-windows">6.2, For Windows</h2> | |
272 | + | |
273 | + <p>Click mouse right button on the input file. | |
274 | + Choose "Open With ..." menu, then choose <code>fermisurfer.exe</code>.</p> | |
275 | + <p>After that, <code>fermisurfer</code> runs as the same whether you use Linux or Windows. | |
276 | + The information from the input file is printed.</p> | |
277 | + <pre><code> | |
278 | +##### Brillouin zone informations ##### | |
279 | + | |
280 | +k point grid : 40 40 36 | |
281 | +k point grid is not shifted | |
282 | +# of bands : 3 | |
283 | +bvec 1 : 1.000000 0.577350 -0.000000 | |
284 | +bvec 2 : 0.000000 1.154701 0.000000 | |
285 | +bvec 3 : 0.000000 -0.000000 0.872065 | |
286 | + | |
287 | +# of lines for BZ : 84 (1) | |
288 | + | |
289 | +##### Max. and Min. of each bands ##### | |
290 | + | |
291 | +Band Eig_Min. Eig_Max Mat_Min Mat_Max | |
292 | +1 -0.428153 0.056262 -24.048639 24.048639 (2) | |
293 | +2 -0.289572 0.121181 -23.320309 23.320309 (2) | |
294 | +3 -0.133566 0.497620 -43.651634 43.651634 (2) | |
295 | + | |
296 | +##### First Brillouin zone mode ##### | |
297 | + | |
298 | +band # of patchs | |
299 | +1 8824 (3) | |
300 | +2 29469 (3) | |
301 | +3 28315 (3) | |
302 | + | |
303 | +band # of nodeline | |
304 | +1 632 (4) | |
305 | +2 1524 (4) | |
306 | +3 2268 (4) | |
307 | + | |
308 | +##### Full color scale ##### | |
309 | + | |
310 | +Max. value : 22.283419 (5) | |
311 | +Min. value : -22.283419 (5) | |
312 | + </code></pre> | |
313 | + <ol> | |
314 | + <li><p>The number of lines on the edge of the Brillouin zone.</p></li> | |
315 | + <li><p>The maximum/minimum value of energies and matrix elements in each bands.</p></li> | |
316 | + <li><p>The number of patches (planes that makes Fermi surfaces) in each bands.</p></li> | |
317 | + <li><p>The number of node lines in each band.</p></li> | |
318 | + <li><p>The maximum and the minimum of matrix elements on Fermi surface. | |
319 | + These correspond to the red and the blue; in this case, | |
320 | + the matrix element is -22.283419 in the blue region, and that is 22.283419 | |
321 | + in the red region. | |
322 | + [(2) is Max./Min. in whole Brillouin zone.]</p></li> | |
323 | + </ol> | |
324 | + <p>Then, Operations are printed, and Fermi surfaces are drawn (Fig. 1).</p> | |
325 | + <p><img src="figs/start.jpg" align="middle" width="800" alt="" /> | |
326 | + Fig. 1: Main view.</p> | |
327 | + <p>The following operations are available:</p> | |
328 | + <ul> | |
329 | + <li><p>Rotation of objects with mouse drag</p></li> | |
330 | + <li><p>Expand and shrink with mouse wheel</p></li> | |
331 | + <li><p>Window re-sizing</p></li> | |
332 | + <li><p>Moving objects with cursor keys</p></li> | |
333 | + <li><p>Opening the menu with mouse right button</p></li> | |
334 | + </ul> | |
335 | + <p>Here, I will explain all menus.</p> | |
336 | + | |
337 | + <hr><h2 id="band">6.3, Band</h2> | |
338 | + | |
339 | + <p>It makes each band enable/disable (Fig. 2).</p> | |
340 | + <p><img src="figs/band.jpg" align="middle" width="800" alt="" /> | |
341 | + Fig. 2: You make each band enable/disable with <code>Band</code> menu.</p> | |
342 | + | |
343 | + <hr><h2 id="mouse-drag">6.4, Mouse Drag</h2> | |
344 | + | |
345 | + <p>It turns the event of the mouse-left-drag.</p> | |
346 | + <dl> | |
347 | + <p>Rotate(default) : Rotate the figure along the mouse drag.</p> | |
348 | + <p>Scale : Expand/shrink the figure in upward/downward drag.</p> | |
349 | + <p>Translate : Translate the figure along the mouse drag.</p> | |
350 | + </dl> | |
351 | + | |
352 | + <hr><h2 id="shift-fermi-energy">6.5, Shift Fermi energy</h2> | |
353 | + | |
354 | + <p>It shifts the Fermi energy (= 0 in default) to arbitrary value. | |
355 | + When you use this menu, first, it displays minimum and maximum energy | |
356 | + in the input file and the current Fermi energy;</p> | |
357 | + <pre><code> | |
358 | +Min Max E_F | |
359 | +-0.428153 0.497620 0.000000 | |
360 | +Fermi energy shift : | |
361 | + </code></pre> | |
362 | + <p>Then, you should type the new Fermi energy; finally, | |
363 | + the new Fermi surfaces are depicted (Fig. 3).</p> | |
364 | + <p><img src="figs/shift.jpg" align="middle" width="800" alt="" /> | |
365 | + Fig. 3: The Fermi energy is set from 0 Ry to 0.1 Ry | |
366 | + with <code>Shift Fermi energy</code> menu</p> | |
367 | + | |
368 | + <hr><h2 id="background-color">6.6, Background color</h2> | |
369 | + | |
370 | + <p>The background color is toggled between black and white; | |
371 | + the edge of the Brillouin Zone is also toggled between white and black | |
372 | + (Fig. 4).</p> | |
373 | + <p><img src="figs/background.jpg" align="middle" width="800" alt="" /> | |
374 | + Fig. 4: The background color is toggled with <code>Background color</code> menu.</p> | |
375 | + | |
376 | + <hr><h2 id="color-scale-mode">6.7, Color scale mode</h2> | |
377 | + | |
378 | + <p>It turns color pattern on Fermi surfaces (Fig. 5).</p> | |
379 | + <dl> | |
380 | + <p>Auto(default) : It makes blue as the minimum on Fermi surfaces | |
381 | + and red as the maximum on them.</p> | |
382 | + <p>Manual : You can set manually (from standard input) | |
383 | + values corresponding to blue and red.</p> | |
384 | + <p>Uni-color : Fermi surfaces of each band are depicted | |
385 | + with uni-color without relation to the matrix element.</p> | |
386 | + <p>Periodic : It makes periodic color plot enable. When the matrix element varies as | |
387 | + $0$ $\rightarrow$ $\pi/ 3$ $\rightarrow$ $2\pi/ 3$ $\rightarrow$ $\pi$ | |
388 | + $\rightarrow$ $4\pi/ 3$ $\rightarrow$ $5\pi/ 3$ $\rightarrow$ $2\pi$, | |
389 | + the color varies as red $\rightarrow$ yellow $\rightarrow$ green | |
390 | + $\rightarrow$ cyan $\rightarrow$ blue $\rightarrow$ magenta $\rightarrow$ red.</p> | |
391 | + </dl> | |
392 | + <p><img src="figs/colorscale.jpg" align="middle" width="800" alt="" /> | |
393 | + Fig. 5: <code>Color scale mode</code> menu.</p> | |
394 | + | |
395 | + <hr><h2 id="brillouin-zone">6.8, Brillouin zone</h2> | |
396 | + | |
397 | + <p>You choose Brillouin-zone type as follows (Fig. 6):</p> | |
398 | + <dl> | |
399 | + <p>First Brillouin Zone : The region surrounded by Bragg's planes | |
400 | + the nearest to ${\rm \Gamma}$ point.</p> | |
401 | + <p>Primitive Brillouin Zone : A hexahedron whose corner is the reciprocal lattice point.</p> | |
402 | + </dl> | |
403 | + <p><img src="figs/brillouinzone.jpg" align="middle" width="800" alt="" /> | |
404 | + Fig. 6: You can change the type of the Brillouin zone | |
405 | + with <code>Brillouin zone</code> menu.</p> | |
406 | + | |
407 | + <hr><h2 id="node-line">6.9, Node line</h2> | |
408 | + | |
409 | + <p>The line on which the matrix element becomes 0 (we call it node line) | |
410 | + becomes enable/disable (Fig. 7).</p> | |
411 | + <p><img src="figs/nodeline.jpg" align="middle" width="800" alt="" /> | |
412 | + Fig. 7: Toggling the node line with <code>Node line</code> menu.</p> | |
413 | + | |
414 | + <hr><h2 id="color-bar-onoff">6.10, Color bar On/Off</h2> | |
415 | + | |
416 | + <p>The color bar becomes enable/disable (Fig. 8).</p> | |
417 | + <p><img src="figs/colorbar.jpg" align="middle" width="800" alt="" /> | |
418 | + Fig. 8: Toggling the color bar with <code>Color bar On/Off</code> menu.</p> | |
419 | + | |
420 | + <hr><h2 id="stereogram">6.11, Stereogram</h2> | |
421 | + | |
422 | + <p>The stereogram (parallel eyes and cross eyes) becomes enabled/disabled | |
423 | + (Fig. 9).</p> | |
424 | + <dl> | |
425 | + <p>None (Default)</p> | |
426 | + <p>Parallel : Parallel-eyes stereogram</p> | |
427 | + <p>Cross : Cross-eyes stereogram</p> | |
428 | + </dl> | |
429 | + <p><img src="figs/stereogram.jpg" align="middle" width="800" alt="" /> | |
430 | + Fig. 9: The stereogram becomes enabled/disabled with <code>Stereogram</code> menu.</p> | |
431 | + | |
432 | + <hr><h2 id="tetrahedron">6.12, Tetrahedron</h2> | |
433 | + | |
434 | + <p>You change the scheme to divide into tetrahedra (<code>tetra # 1</code> as default). | |
435 | + It is experimental.</p> | |
436 | + | |
437 | + <hr><h2 id="exit">6.13, Exit</h2> | |
438 | + | |
439 | + <p>This finishes <code>fermisurfer</code>.</p> | |
440 | + | |
441 | + <hr><h1><a name="gallery">7, Gallery</a></h1> | |
442 | + | |
443 | + <p>Contributions of each Fermi surfaces to the Hall effect in IrO$_2$ | |
444 | + (Fig. 10. Provided by Mr. Wataru Sano in Arita group, RIKEN)</p> | |
445 | + <p><img src="figs/iro2.jpg" align="middle" width="800" alt="" /> | |
446 | + Fig. 10: Contributions of each Fermi surfaces to the Hall effect</p> | |
447 | + | |
448 | + <hr><h1><a name="acknowledgment">8, Acknowledgment</a></h1> | |
449 | + | |
450 | + <p>I thank Dr. Yusuke Konishi in ISSP; he performed a test in Mac OSX, | |
451 | + and proposed Makefiles and a patch.</p> | |
452 | + | |
453 | + <hr><h1><a name="contact">9, Contact</a></h1> | |
454 | + | |
455 | + <p>Please post bag reports and questions to the forum</p> | |
456 | + <pre><code> | |
457 | +http://sourceforge.jp/projects/fermisurfer/forums/ | |
458 | + </code></pre> | |
459 | + <p>When you want to join us, please contact me as follows.</p> | |
460 | + <p>The Institute of Solid State Physics</p> | |
461 | + <p>Mitsuaki Kawamura</p> | |
462 | + <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
463 | + </body> | |
464 | +</html> |
@@ -0,0 +1,504 @@ | ||
1 | +<html> | |
2 | + <head> | |
3 | + <meta http-equiv="Content-Type" | |
4 | + content="text/html; charset=utf-8"> | |
5 | + <script type="text/x-mathjax-config"> | |
6 | + MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); | |
7 | + </script> | |
8 | + <script type="text/javascript" | |
9 | + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> | |
10 | + </script> | |
11 | + <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> | |
12 | + | |
13 | + <title>FermiSurfer日本語マニュアル</title> | |
14 | + | |
15 | + <meta name="description" content="FermiSurfer日本語マニュアル"> | |
16 | + | |
17 | + </head> | |
18 | + <body bgcolor="CCFFCC"> | |
19 | + | |
20 | + <center><h1>FermiSurferマニュアル</h1></center> | |
21 | + <center><h2>バージョン1.4</h2></center> | |
22 | + <center><h2>河村光晶</h2></center> | |
23 | + | |
24 | + <hr><a name="hajimeni"><h1>1, はじめに</h1></a> | |
25 | + | |
26 | + <p>この文書ではFermi面描画ソフト「Fermi Surfer」についての解説を行っています. | |
27 | + Fermi Surferは東京大学の河村光晶 が2012年頃から開発を行っていたもので, | |
28 | + 2014年11月に公開されました. | |
29 | + Fermi面を描画しその上に各種物理量(超伝導ギャップ関数や軌道キャラクターなど) | |
30 | + をカラープロットするソフトウェアです.</p> | |
31 | + | |
32 | + <hr> | |
33 | + <a name="mitlicense"><h1>2, MIT ライセンス</h1></a> | |
34 | + | |
35 | + <p>Copyright (c) 2014 Mitsuaki Kawamura</p> | |
36 | + <p>以下に定める条件に従い, 本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」) | |
37 | + の複製を取得するすべての人に対し, ソフトウェアを無制限に扱うことを無償で許可します. | |
38 | + これには, ソフトウェアの複製を使用, 複写, 変更, 結合, 掲載, 頒布, サブライセンス, | |
39 | + および/または販売する権利, | |
40 | + およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます. </p> | |
41 | + <p>上記の著作権表示および本許諾表示を, | |
42 | + ソフトウェアのすべての複製または重要な部分に記載するものとします. </p> | |
43 | + <p>ソフトウェアは「現状のまま」で, 明示であるか暗黙であるかを問わず, | |
44 | + 何らの保証もなく提供されます. | |
45 | + ここでいう保証とは, 商品性, 特定の目的への適合性, | |
46 | + および権利非侵害についての保証も含みますが, それに限定されるものではありません. | |
47 | + 作者または著作権者は, 契約行為, 不法行為, またはそれ以外であろうと, | |
48 | + ソフトウェアに起因または関連し, | |
49 | + あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求, 損害, | |
50 | + その他の義務について何らの責任も負わないものとします. </p> | |
51 | + | |
52 | + <hr> | |
53 | + <a name="filesinthispackage"><h1>3, このパッケージに含まれているファイル</h1></a> | |
54 | + | |
55 | + <dl> | |
56 | + <p><code>bin/fermisurfer.exe</code> : Windows用実行ファイル</p> | |
57 | + <p><code>doc/manual_en.pdf</code> : マニュアル(英語)</p> | |
58 | + <p><code>doc/manual_ja.pdf</code> : マニュアル(日本語)</p> | |
59 | + <p><code>examples/mgb2_vfz.frmsf</code> : サンプル入力ファイル</p> | |
60 | + <p><code>src/fermisurfer.c</code> : ソースファイル</p> | |
61 | + <p><code>src/mac.diff</code> : Mac OSX用 パッチ</p> | |
62 | + <p><code>src/Makefile</code> : Linux用 Makefile</p> | |
63 | + <p><code>src/Makefile-mac</code> : Mac OSX用 Makefile</p> | |
64 | + </dl> | |
65 | + | |
66 | + <hr><a name="instlation"><h1>4, インストール手順</h1></a> | |
67 | + | |
68 | + <hr><h2>4.1, Linuxの場合</h2> | |
69 | + | |
70 | + <ol> | |
71 | + <li><p>必要なパッケージをインストール(既にパッケージが入っている場合は何も起こりません. )</p> | |
72 | + <ul> | |
73 | + <li><p>Debian/Ubuntu 等</p> | |
74 | + <pre><code> | |
75 | +$ sudo aptitude install freeglut3-dev | |
76 | + </code></pre> | |
77 | + </li> | |
78 | + <li><p>Red Hat Enterprise Linux/CentOS 等</p> | |
79 | + <pre><code> | |
80 | +$ sudo yum install freeglut-devel.x86_64 | |
81 | + </code></pre> | |
82 | + </li> | |
83 | + </ul></li> | |
84 | + <li><p>メイク</p> | |
85 | + <pre><code> | |
86 | +$ cd ./src | |
87 | +$ make fermisurfer | |
88 | +$ make install | |
89 | + </code></pre> | |
90 | + </li> | |
91 | + </ol> | |
92 | + <p>以上で実行可能ファイル <code>fermisurfer</code> が作られ, | |
93 | + <code>/usr/local/bin/</code>にコピーされます.</p> | |
94 | + | |
95 | + <hr><h2>4.2, Mac OSX の場合</h2> | |
96 | + | |
97 | + <ol> | |
98 | + <li><p>Xcodeをあらかじめインストールしておく</p></li> | |
99 | + <li><p>ソースコードにパッチを当てる</p> | |
100 | + <pre><code> | |
101 | +$ cd ./src | |
102 | +$ patch -p1 < mac.diff | |
103 | + </code></pre> | |
104 | + </li> | |
105 | + <li><p>メイク</p> | |
106 | + <pre><code> | |
107 | +$ make -f Makefile-mac fermisurfer | |
108 | +$ make -f Makefile-mac install | |
109 | + </code></pre> | |
110 | + </li> | |
111 | + </ol> | |
112 | + <p>以上で実行可能ファイル <code>fermisurfer</code> が作られ, | |
113 | + <code>/usr/local/bin/</code>にコピーされます.</p> | |
114 | + | |
115 | + <hr><h2>4.3, Windowsの場合</h2> | |
116 | + | |
117 | + <ol> | |
118 | + <li><p>freeglutWindows Development Libraryのサイト</p> | |
119 | + <pre><code> | |
120 | +http://www.transmissionzero.co.uk/software/freeglut-devel/ | |
121 | + </code></pre> | |
122 | + <p>内の「freeglut MSVC package」という項目から <code>freeglut.dll</code>を含む | |
123 | + <code>zip</code>ファイルを ダウンロードし, 展開する.</p></li> | |
124 | + <li><p>展開したフォルダ内の<code>bin</code>というフォルダに入っている, | |
125 | + <code>freeglut.dll</code>を<code>fermisurfer.exe</code> | |
126 | + のあるフォルダ(<code>bin</code>)にコピーする.</p> | |
127 | + <p>(注) <code>bin\x64\</code>にも<code>freeglut.dll</code>があるが, | |
128 | + そちらは使わない.</p></li> | |
129 | + <li><p><code>fermisurfer.exe</code>と<code>freeglut.dll</code>は | |
130 | + 常に同じフォルダにおいておくこと.</p></li> | |
131 | + </ol> | |
132 | + | |
133 | + <hr><a name="inputfile"><h1>5, Input file</h1></a> | |
134 | + | |
135 | + | |
136 | + <hr><h2>5.1, input fileの書式</h2> | |
137 | + | |
138 | + <p>用意するデータは,</p> | |
139 | + <ul> | |
140 | + <li><p>Brillouin領域分割数(3方向)</p></li> | |
141 | + <li><p>逆格子ベクトル</p></li> | |
142 | + <li><p>バンド本数</p></li> | |
143 | + <li><p>軌道固有値(以下エネルギーと呼びます)の各バンド, | |
144 | + $k$グリッド点での値</p></li> | |
145 | + <li><p>カラープロットしたい物理量(以下物理量と呼びます)の各バンド, | |
146 | + $k$グリッド点での値</p></li> | |
147 | + </ul> | |
148 | + <p>です.</p> | |
149 | + <p>※ $k$グリッドの取り方 | |
150 | + $k$点の取り方として, | |
151 | + ${\rm \Gamma}$点を含むグリッドと, | |
152 | + ${\rm \Gamma}$点から半グリッド分だけずらしたグリッド | |
153 | + の二つに対応しています. | |
154 | + 後者はプロットしたい物理量が${\rm \Gamma}$点で特異的になっている | |
155 | + 場合等に使われる事を想定しています.</p> | |
156 | + <p>上記データを次のとおりの書式で並べます(サンプルファイル | |
157 | + <code>mgb2_vfz.frmsf</code>の中身).</p> | |
158 | + <pre><code> | |
159 | +40 40 36 (1) | |
160 | +0 (2) | |
161 | +3 (3) | |
162 | +1.0000000 0.57735026 -0.0000000 (4) | |
163 | +0.0000000 1.1547005 0.0000000 (5) | |
164 | +0.0000000 -0.0000000 0.87206507 (6) | |
165 | +2.91340202E-02 (7) | |
166 | +2.93242838E-02 | |
167 | +2.98905596E-02 | |
168 | +3.08193434E-02 | |
169 | +: | |
170 | +: | |
171 | +0.14393796 | |
172 | +0.12800488 | |
173 | +0.0000000 (8) | |
174 | +0.36269817 | |
175 | +0.71675694 | |
176 | +1.0535113 | |
177 | +1.3644149 | |
178 | +: | |
179 | +: | |
180 | +-26.409407 | |
181 | +-19.318560 | |
182 | +-10.315671 | |
183 | + </code></pre> | |
184 | + <ol> | |
185 | + <li><p>$k$グリッド数</p></li> | |
186 | + <li><p>${\rm \Gamma}$点を含むグリッド | |
187 | + (含まないグリッドでは1とする)</p></li> | |
188 | + <li><p>バンド本数</p></li> | |
189 | + <li><p>逆格子ベクトル1 (任意単位)</p></li> | |
190 | + <li><p>逆格子ベクトル2</p></li> | |
191 | + <li><p>逆格子ベクトル3</p></li> | |
192 | + <li><p>エネルギー (並び順は下記参照)</p></li> | |
193 | + <li><p>物理量 (並び順は下記参照)</p></li> | |
194 | + </ol> | |
195 | + | |
196 | + <hr><h2>5.2, C/fortranでの入力ファイルの書き出し方</h2> | |
197 | + | |
198 | + <p>・fortran</p> | |
199 | + <pre><code> | |
200 | + real(4) :: bvec1(3), bvec2(3), bvec3(3) !逆格子ベクトル | |
201 | + integer :: nk1, nk2, nk3 !各逆格子ベクトルの方向の分割数 | |
202 | + integer :: ishift !グリットをシフトさせるか(=1)否か(=0) | |
203 | + integer :: nbnd !バンド数 | |
204 | + real(4) :: eig(nk3,nk2,nk1,nbnd) !エネルギー | |
205 | + real(4) :: x(nk3,nk2,nk1,nbnd) !物理量 | |
206 | + | |
207 | + integer :: ik1, ik2, ik3, ibnd, fo | |
208 | + | |
209 | + open(fo, file = “sample.frmsf”) | |
210 | + write(fo,*) nk1, nk2, nk3 | |
211 | + write(fo,*) ishift | |
212 | + write(fo,*) nbnd | |
213 | + write(fo,*) real(bvec1(1:3)) | |
214 | + write(fo,*) real(bvec2(1:3)) | |
215 | + write(fo,*) real(bvec3(1:3)) | |
216 | + do ibnd = 1, nbnd | |
217 | + do ik1 = 1, nk1 | |
218 | + do ik2 = 1, nk2 | |
219 | + do ik3 = 1, nk3 | |
220 | + write(fo,*) real(eig(ik3,ik2,ik1,ibnd)) | |
221 | + end do | |
222 | + end do | |
223 | + end do | |
224 | + end do | |
225 | + do ibnd = 1, nbnd | |
226 | + do ik1 = 1, nk1 | |
227 | + do ik2 = 1, nk2 | |
228 | + do ik3 = 1, nk3 | |
229 | + write(fo,*) real(x(ik3,ik2,ik1,ibnd)) | |
230 | + end do | |
231 | + end do | |
232 | + end do | |
233 | + end do | |
234 | + close(fo) | |
235 | + </code></pre> | |
236 | + <p>・C言語</p> | |
237 | + <pre><code> | |
238 | + float bvec1[3], bvec2[3], bvec3[3]; /*逆格子ベクトル*/ | |
239 | + int nk1, nk2, nk3; /*各逆格子ベクトルの方向の分割数*/ | |
240 | + int ishift; /*グリットをシフトさせるか(=1)否か(=0)*/ | |
241 | + int nbnd; /*バンド数*/ | |
242 | + float eig[nbnd][nk1][nk2][nk3]; /*エネルギー*/ | |
243 | + float x[nbnd][nk1][nk2][nk3]; /*物理量*/ | |
244 | + | |
245 | + FILE* fo; | |
246 | + int ibnd, ik1, ik2, ik3; | |
247 | + | |
248 | + fo = fopen(“sample.frmsf”, “w”); | |
249 | + ierr = fprintf(fo, "%d %d %d", nk1, nk2, nk3); | |
250 | + ierr = fprintf(fo, "%d, iswitch); | |
251 | + ierr = fprintf(fo, "%d, nbnd); | |
252 | + ierr = fprintf(fp, "%e %e %e", bvec1[0], bvec1[1], bvec1[2]); | |
253 | + ierr = fprintf(fp, "%e %e %e", bvec2[0], bvec2[1], bvec2[2]); | |
254 | + ierr = fprintf(fp, "%e %e %e", bvec3[0], bvec3[1], bvec3[2]); | |
255 | + for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
256 | + for (ik1 = 0; ik1 < nk1; ++ik1) { | |
257 | + for (ik2 = 0; ik2 < nk2; ++ik2) { | |
258 | + for (ik3 = 0; ik3 < nk3; ++ik3) { | |
259 | + ierr = fprintf(fo, "%e", eig[ibnd][ik1][ik2][ik3]); | |
260 | + } | |
261 | + } | |
262 | + } | |
263 | + } | |
264 | + for (ibnd = 0; ibnd < nbnd; ++ibnd) { | |
265 | + for (ik1 = 0; ik1 < nk1; ++ik1) { | |
266 | + for (ik2 = 0; ik2 < nk2; ++ik2) { | |
267 | + for (ik3 = 0; ik3 < nk3; ++ik3) { | |
268 | + ierr = fprintf(fo, "%e", x[ibnd][ik1][ik2][ik3]); | |
269 | + } | |
270 | + } | |
271 | + } | |
272 | + } | |
273 | + fclose(fo); | |
274 | + </code></pre> | |
275 | + | |
276 | + <hr><a name="controlling"><h1>6, 操作方法</h1></a> | |
277 | + | |
278 | + <hr><h2>6.1, Linuxの場合</h2> | |
279 | + | |
280 | + <p>作成した実行可能ファイル<code>fermisurfer</code>にパスが通っている状態で</p> | |
281 | + <pre><code> | |
282 | +$ fermisurfer mgb2_vfz.frmsf | |
283 | + </code></pre> | |
284 | + <p>とコマンド, スペース, 入力ファイル名とタイプします. | |
285 | + (サンプルファイルの中身はMgB$_2$ | |
286 | + のFermi速度の$z$方向成分です. )</p> | |
287 | + | |
288 | + <hr><h2>6.2, Windowsの場合</h2> | |
289 | + | |
290 | + <p>入力ファイル(この場合は<code>mgb2_vfz.frmsf</code>)を右クリックし, | |
291 | + メニューから「プログラムから開く」を選択し, | |
292 | + 実行ファイルを<code>fermisurfer.exe</code>に設定してください.</p> | |
293 | + <p>このあとはLinux, Windows共通です. <code>fermisurfer</code>が起動すると, | |
294 | + まずファイルから読み取った情報が出力されます.</p> | |
295 | + <pre><code> | |
296 | +##### Brillouin zone informations ##### | |
297 | + | |
298 | +k point grid : 40 40 36 | |
299 | +k point grid is not shifted | |
300 | +# of bands : 3 | |
301 | +bvec 1 : 1.000000 0.577350 -0.000000 | |
302 | +bvec 2 : 0.000000 1.154701 0.000000 | |
303 | +bvec 3 : 0.000000 -0.000000 0.872065 | |
304 | + | |
305 | +# of lines for BZ : 84 (1) | |
306 | + | |
307 | +##### Max. and Min. of each bands ##### | |
308 | + | |
309 | +Band Eig_Min. Eig_Max Mat_Min Mat_Max | |
310 | +1 -0.428153 0.056262 -24.048639 24.048639 (2) | |
311 | +2 -0.289572 0.121181 -23.320309 23.320309 (2) | |
312 | +3 -0.133566 0.497620 -43.651634 43.651634 (2) | |
313 | + | |
314 | +##### First Brillouin zone mode ##### | |
315 | + | |
316 | +band # of patchs | |
317 | +1 8824 (3) | |
318 | +2 29469 (3) | |
319 | +3 28315 (3) | |
320 | + | |
321 | +band # of nodeline | |
322 | +1 632 (4) | |
323 | +2 1524 (4) | |
324 | +3 2268 (4) | |
325 | + | |
326 | +##### Full color scale ##### | |
327 | + | |
328 | +Max. value : 22.283419 (5) | |
329 | +Min. value : -22.283419 (5) | |
330 | + </code></pre> | |
331 | + <ol> | |
332 | + <li><p>Brillouin領域の境界を表示する線の数.</p></li> | |
333 | + <li><p>それぞれのバンドにおけるエネルギーと物理量の最小値・最大値.</p></li> | |
334 | + <li><p>それぞれのバンドにおけるパッチ(Fermi面を構成する平面)の数.</p></li> | |
335 | + <li><p>それぞれのバンドにおけるnode line (後述)の本数.</p></li> | |
336 | + <li><p>物理量のFermi面における最大値と最小値. この数字がカラーバーの最大・最小に対応します. | |
337 | + 下の例では一番青いところが-22.283419, 一番赤いところが22.283419となります. | |
338 | + (2)で表示されているのはBrillouin領域全体のものです.</p></li> | |
339 | + </ol> | |
340 | + <p>次に操作方法が出力され, Fermi面が描画されます(図1).</p> | |
341 | + <p><img src="figs/start.jpg" align="middle" width="800" alt="初期画面"/> | |
342 | + 図1: Fermisurferを起動した直後の画面.</p> | |
343 | + <ul> | |
344 | + <li><p>マウスのドラッグによる回転が出来ます.</p></li> | |
345 | + <li><p>マウスのホイールを使っての拡大・縮小が出来ます.</p></li> | |
346 | + <li><p>ウィンドウの大きさを変えることもできます.</p></li> | |
347 | + <li><p>カーソルキーを使ってウィンドウ内で上下左右に図を動かせます.</p></li> | |
348 | + <li><p>ウィンドウ内でマウスの右クリックをするとメニューが表示されます.</p></li> | |
349 | + </ul> | |
350 | + <p>次から右クリックで表示されるメニューを説明します.</p> | |
351 | + | |
352 | + <hr><h2>6.3, Band</h2> | |
353 | + | |
354 | + <p>バンド毎の表示on/offを切り替えます(図2).</p> | |
355 | + <p><img src="figs/band.jpg" align="middle" width="800" alt="" /> | |
356 | + 図2: <code>Band</code>メニューで3番目のバンドの表示/非表示を切り替える.</p> | |
357 | + | |
358 | + <hr><h2>6.4, Mouse Drag</h2> | |
359 | + | |
360 | + <p>マウスの左ボタンドラッグを行った時の動作を変更します.</p> | |
361 | + <dl> | |
362 | + <dt>Rotate(デフォルト)</dt> | |
363 | + <dd><p>ドラッグをした方向に図形を回転させます.</p> | |
364 | + </dd> | |
365 | + <dt>Scale</dt> | |
366 | + <dd><p>上方にドラッグすると図形を拡大, 下方にドラッグすると図形を縮小します.</p> | |
367 | + </dd> | |
368 | + <dt>Translate</dt> | |
369 | + <dd><p>ドラッグした方向に図形を動かします.</p> | |
370 | + </dd> | |
371 | + </dl> | |
372 | + | |
373 | + <hr><h2>6.5, Shift Fermi energy</h2> | |
374 | + | |
375 | + <p>Fermiエネルギー(デフォルトでは0)を任意の値にずらします. | |
376 | + このメニューを選択すると次のようにインプット中の最小のエネルギー, | |
377 | + 最大のエネルギー, 現在のFermiエネルギーが標準出力として表示されます.</p> | |
378 | + <pre><code> | |
379 | +Min Max E_F | |
380 | +-0.428153 0.497620 0.000000 | |
381 | +Fermi energy shift : | |
382 | + </code></pre> | |
383 | + <p>次に新しいFermiエネルギーを入力すると, | |
384 | + Fermi面が再描画されます (図3).</p> | |
385 | + <p><img src="figs/shift.jpg" align="middle" width="800" alt="" /> | |
386 | + 図3: <code>Shift Fermi energy</code>メニューで | |
387 | + Fermi エネルギーを0 Ryから0.1 Ryに変える.</p> | |
388 | + | |
389 | + <hr><h2>6.6, Background color</h2> | |
390 | + | |
391 | + <p>背景色を黒または白に切り替えます. | |
392 | + Brillouin Zoneの枠線も白/黒と切り替わります (図4).</p> | |
393 | + <p><img src="figs/background.jpg" align="middle" width="800" alt="" /> | |
394 | + 図4: <code>Background color</code>メニューで背景色を白/黒に切り替える.</p> | |
395 | + | |
396 | + <hr><h2>6.7, Color scale mode</h2> | |
397 | + | |
398 | + <p>Fermi面の色表示のさせ方を変更します(図5).</p> | |
399 | + <dl> | |
400 | + <dt>Auto(デフォルト)</dt> | |
401 | + <dd><p>カラースケールの範囲をFermi面上での物理量の最小値から最大値までとします.</p> | |
402 | + </dd> | |
403 | + <dt>Manual</dt> | |
404 | + <dd><p>カラースケールの範囲を標準入力から設定します.</p> | |
405 | + </dd> | |
406 | + <dt>Unicolor</dt> | |
407 | + <dd><p>物理量に関係なく, 各バンド毎に単色でFermi面を塗ります.</p> | |
408 | + </dd> | |
409 | + <dt>Periodic</dt> | |
410 | + <dd><p>周期的な量のプロットに用います. | |
411 | + 物理量が 0 $\rightarrow$ | |
412 | + $\pi/3$ $\rightarrow$ | |
413 | + $2\pi/3$ $\rightarrow$ | |
414 | + $\pi$ $\rightarrow$ | |
415 | + $4\pi/3$ $\rightarrow$ | |
416 | + $5\pi/3$ $\rightarrow$ | |
417 | + $2\pi$ と変化するに連れて | |
418 | + 色が赤$\rightarrow$黄$\rightarrow$ | |
419 | + 緑$\rightarrow$シアン$\rightarrow$ | |
420 | + 青$\rightarrow$ マゼンタ$\rightarrow$ | |
421 | + 赤と変わります.</p> | |
422 | + </dd> | |
423 | + </dl> | |
424 | + <p><img src="figs/colorscale.jpg" align="middle" width="800" alt="" /> | |
425 | + 図5: <code>Color scale mode</code>メニュー.</p> | |
426 | + | |
427 | + <hr><h2>6.8, Brillouin zone</h2> | |
428 | + | |
429 | + <p>描画範囲をFirst Brillouin Zone/Primitive Brillouin Zoneと | |
430 | + 切り替える事が出来ます (図6).</p> | |
431 | + <dl> | |
432 | + <dt>Fisrst Brillouin Zone</dt> | |
433 | + <dd><p><span class="math">${\rm \Gamma}$</span> | |
434 | + 点から一番近いBragg面で囲まれた領域</p> | |
435 | + </dd> | |
436 | + <dt>Primitive Brillouine Zone</dt> | |
437 | + <dd><p>逆格子ベクトルを辺とする平行6面体領域</p> | |
438 | + </dd> | |
439 | + </dl> | |
440 | + <p><img src="figs/brillouinzone.jpg" align="middle" width="800" alt="" /> | |
441 | + 図6: <code>Brillouin zone</code>メニューでBrillouin領域のとり方を変更する.</p> | |
442 | + | |
443 | + <hr><h2>6.9, Node line</h2> | |
444 | + | |
445 | + <p>物理量が0となるところに引く線(node line)のOn/Offを切り替えます(図7).</p> | |
446 | + <p><img src="figs/nodeline.jpg" align="middle" width="800" alt="" /> | |
447 | + 図7: <code>Node line</code>メニューでnode lineの表示/非表示を切り替える.</p> | |
448 | + | |
449 | + <hr><h2>6.10, Color bar On/Off</h2> | |
450 | + | |
451 | + <p>カラーバーの表示/非表示を切り替えます(図8).</p> | |
452 | + <p><img src="figs/colorbar.jpg" align="middle" width="800" alt="" /> | |
453 | + 図8: <code>Color bar On/Off</code>メニューでカラーバーの表示/非表示を切り替える.</p> | |
454 | + | |
455 | + <hr><h2>6.11, Stereogram</h2> | |
456 | + | |
457 | + <p>裸眼立体視用の図の表示/非表示を切り替えます(図9).</p> | |
458 | + <dl> | |
459 | + <dt>None (デフォルト)</dt> | |
460 | + <dd><p>立体視を無効にします.</p> | |
461 | + </dd> | |
462 | + <dt>Parallel</dt> | |
463 | + <dd><p>平行法用の図を表示します.</p> | |
464 | + </dd> | |
465 | + <dt>Cross</dt> | |
466 | + <dd><p>交差法用の図を表示します.</p> | |
467 | + </dd> | |
468 | + </dl> | |
469 | + <p><img src="figs/stereogram.jpg" align="middle" width="800" alt="" /> | |
470 | + 図9: <code>Stereogram</code>メニューで立体視用画像を表示する.</p> | |
471 | + | |
472 | + <hr><h2>6.12, Tetrahedron</h2> | |
473 | + | |
474 | + <p>四面体の切り方を変えます(デフォルトは<code>tetra # 1</code>). | |
475 | + 図が綺麗になる可能性がありますが, | |
476 | + 多くの場合は逆に図がギザギザして汚くなるようです.</p> | |
477 | + | |
478 | + <hr><h2>6.13, Exit</h2> | |
479 | + | |
480 | + <p>Fermi Surferを終了します.</p> | |
481 | + | |
482 | + <hr><a name="garally"><h1>7, ギャラリー</h1></a> | |
483 | + | |
484 | + <p>IrO$_2$のHall係数に対するFermi面上の各軌道からの寄与 (図10). | |
485 | + 理化学研究所 有田グループ 佐野航氏提供).</p> | |
486 | + <p><img src="figs/iro2.jpg" align="middle" width="800" alt="" /> | |
487 | + 図10: IrO$_2$のHall係数に対するFermi面上の各軌道からの寄与.</p> | |
488 | + | |
489 | + <hr><a name="acknoledge"><h1>8, 謝辞</h1></a> | |
490 | + | |
491 | + <p>東京大学物性研究所 小西優祐氏には, | |
492 | + Mac OSXでの動作チェックおよびMakefile, | |
493 | + パッチの提供をしていただいたことに感謝する.</p> | |
494 | + | |
495 | + <hr><a name="contacts"><h1>9, 問い合わせ先</h1></a> | |
496 | + | |
497 | + <p>プログラムのバグや質問は以下のフォーラムへご投稿ください.</p> | |
498 | + <pre><code>http://sourceforge.jp/projects/fermisurfer/forums/</code></pre> | |
499 | + <p>開発に参加したい方は以下の連絡先にて受け付けております.</p> | |
500 | + <p>東京大学物性研究所</p> | |
501 | + <p>河村光晶</p> | |
502 | + <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
503 | + </body> | |
504 | +</html> |
@@ -21,91 +21,104 @@ | ||
21 | 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
22 | 22 | THE SOFTWARE. |
23 | 23 | */ |
24 | +/** | |
25 | + * \mainpage My Personal Index Page | |
26 | + * @f$\Delta_{n k}@f$ | |
27 | + * \section intro_sec Introduction | |
28 | + * | |
29 | + * This is the introduction. | |
30 | + * | |
31 | + * \section install_sec Installation | |
32 | + * | |
33 | + * \subsection step1 Step 1: Opening the box | |
34 | + * | |
35 | + * etc... | |
36 | + */ | |
24 | 37 | #include <stdlib.h> |
25 | 38 | #include <stdio.h> |
26 | 39 | #include <math.h> |
27 | 40 | #include <GL/glut.h> |
28 | 41 | #include <omp.h> |
29 | -/* | |
30 | - Input variables | |
31 | -*/ | |
32 | -int ng[3]; //!<BZ grids | |
33 | -int lshift; //!<Switch for shifted Brillouin zone | |
34 | -int nb; //!<The number of Bands | |
35 | -GLfloat bvec[3][3]; //!<Resiplocal lattice vector | |
36 | -GLfloat ****eig; //!<Eigenvalues [nb][ng[0]][ng[1]][ng[2]] | |
37 | -GLfloat ****mat; //!<Matrix element [nb][ng[0]][ng[1]][ng[2]] | |
38 | -/* | |
39 | - Switch for some modes | |
40 | -*/ | |
41 | -int blackback = 1; //!<Switch for black background | |
42 | -int fcscl = 1; //!<Switch for full color scale mode | |
43 | -int fbz = 1; //!<Switch for 1st Brillouin zone mode | |
44 | -int nodeline = 0; //!<Switch for node lines | |
45 | -int lcolorbar = 1; //!<Switch for colorbar | |
46 | -int lstereo = 1; //!<Switch for the stereogram | |
47 | -int lmouse = 1; //!<Switch for the mouse function | |
48 | -/* | |
49 | - Variables for Brillouin zone boundaries | |
50 | -*/ | |
51 | -int nbzl; //!<The number of Lines of 1st Brillouin zone | |
52 | -GLfloat ***bzl; //!<Lines of 1st BZ [nbzl][2][3] | |
53 | -GLfloat bragg[26][3]; //!<Bragg plane vectors | |
54 | -GLfloat brnrm[26]; //!<Norms of Bragg plane vectors | |
55 | -/* | |
56 | - Variables for patchs | |
57 | -*/ | |
58 | -int *ntri; //!<The number of triangle patch [nb] | |
59 | -int *draw_band; //!<Switch for drawn bands [nb] | |
60 | -GLfloat ***nmlp; //!<Normal vector of patchs [nb][ntri][3] | |
61 | -GLfloat ****kvp; //!<K-vectors of points [nb][ntri][3][3] | |
62 | -GLfloat ***matp; //!<Matrix elements of points [nb][ntri][3] | |
63 | -GLfloat ****clr; //!<Colors of points [nb][ntri][3][4] | |
64 | -int itet = 0; | |
65 | -/* | |
66 | - Variables for nodeline | |
67 | -*/ | |
68 | -int *nnl; //!<The number of nodeline | |
69 | -GLfloat ****kvnl; //!<K-vector of nodeline [nb][nnl][2][3] | |
70 | -/* | |
71 | - Variables for mouse & cursorkey | |
72 | -*/ | |
73 | -GLfloat sx; //!<Scale of mouse movement | |
74 | -GLfloat sy; //!<Scale of mouse movement | |
75 | -int cx; //!<Starting point of drug | |
76 | -int cy; //!<Starting point of drug | |
77 | -GLfloat scl = 1.0; //!<Initial scale | |
78 | -GLfloat trans[3] = {0.0, 0.0, 0.0}; //!<Translation | |
79 | -GLfloat rot[3][3] = {{1.0, 0.0, 0.0}, //!<Rotation matrix | |
42 | +/** | |
43 | + * Input variables | |
44 | + */ | |
45 | +int ng[3]; /**< BZ grids */ | |
46 | +int lshift; /**< Switch for shifted Brillouin zone */ | |
47 | +int nb; /**< The number of Bands */ | |
48 | +GLfloat bvec[3][3]; /**< Resiplocal lattice vector */ | |
49 | +GLfloat ****eig; /**< Eigenvalues [nb][ng[0]][ng[1]][ng[2]] */ | |
50 | +GLfloat ****mat; /**< Matrix element [nb][ng[0]][ng[1]][ng[2]] */ | |
51 | +/** | |
52 | + * Switch for some modes | |
53 | + */ | |
54 | +int blackback = 1; /**< Switch for black background */ | |
55 | +int fcscl = 1; /**< Switch for full color scale mode */ | |
56 | +int fbz = 1; /**< Switch for 1st Brillouin zone mode */ | |
57 | +int nodeline = 0; /**< Switch for node lines */ | |
58 | +int lcolorbar = 1; /**< Switch for colorbar */ | |
59 | +int lstereo = 1; /**< Switch for the stereogram */ | |
60 | +int lmouse = 1; /**< Switch for the mouse function */ | |
61 | +/** | |
62 | + * Variables for Brillouin zone boundaries | |
63 | + */ | |
64 | +int nbzl; /**< The number of Lines of 1st Brillouin zone */ | |
65 | +GLfloat ***bzl; /**< Lines of 1st BZ [nbzl][2][3] */ | |
66 | +GLfloat bragg[26][3]; /**< Bragg plane vectors */ | |
67 | +GLfloat brnrm[26]; /**< Norms of Bragg plane vectors */ | |
68 | +/** | |
69 | + * Variables for patchs | |
70 | + */ | |
71 | +int *ntri; /**< The number of triangle patch [nb] */ | |
72 | +int *draw_band; /**< Switch for drawn bands [nb] */ | |
73 | +GLfloat ***nmlp; /**< Normal vector of patchs [nb][ntri][3] */ | |
74 | +GLfloat ****kvp; /**< K-vectors of points [nb][ntri][3][3] */ | |
75 | +GLfloat ***matp; /**< Matrix elements of points [nb][ntri][3] */ | |
76 | +GLfloat ****clr; /**< Colors of points [nb][ntri][3][4] */ | |
77 | +int itet = 0; /**< Counter for tetrahedron */ | |
78 | +/** | |
79 | + * Variables for nodeline | |
80 | + */ | |
81 | +int *nnl; /**< The number of nodeline */ | |
82 | +GLfloat ****kvnl; /**< K-vector of nodeline [nb][nnl][2][3] */ | |
83 | +/** | |
84 | + * Variables for mouse & cursorkey | |
85 | + */ | |
86 | +GLfloat sx; /**< Scale of mouse movement */ | |
87 | +GLfloat sy; /**< Scale of mouse movement */ | |
88 | +int cx; /**< Starting point of drug */ | |
89 | +int cy; /**< Starting point of drug */ | |
90 | +GLfloat scl = 1.0; /**< Initial scale */ | |
91 | +GLfloat trans[3] = {0.0, 0.0, 0.0}; /**< Translation */ | |
92 | +GLfloat rot[3][3] = {{1.0, 0.0, 0.0}, /**< Rotation matrix */ | |
80 | 93 | {0.0, 1.0, 0.0}, |
81 | 94 | {0.0, 0.0, 1.0}}; |
82 | -/* | |
83 | - Colors | |
84 | -*/ | |
85 | -GLfloat black[] = {0.0, 0.0, 0.0, 1.0}; //!< Black color code | |
86 | -GLfloat white[] = {1.0, 1.0, 1.0, 1.0}; //!< White color code | |
87 | -GLfloat cyan[] = {0.0, 1.0, 1.0, 1.0}; //!< Cyan color code | |
88 | -GLfloat magenta[] = {1.0, 0.0, 1.0, 1.0}; //!< Magenta color code | |
89 | -GLfloat yellow[] = {1.0, 1.0, 0.0, 1.0}; //!< Yellow color code | |
90 | -GLfloat red[] = {1.0, 0.0, 0.0, 1.0}; //!< Red color code | |
91 | -GLfloat green[] = {0.0, 1.0, 0.0, 1.0}; //!< Green color code | |
92 | -GLfloat blue[] = {0.0, 0.0, 1.0, 1.0}; //!< Blue color code | |
95 | +/** | |
96 | + * Colors | |
97 | + */ | |
98 | +GLfloat black[] = {0.0, 0.0, 0.0, 1.0}; /**< Black color code */ | |
99 | +GLfloat white[] = {1.0, 1.0, 1.0, 1.0}; /**< White color code */ | |
100 | +GLfloat cyan[] = {0.0, 1.0, 1.0, 1.0}; /**< Cyan color code */ | |
101 | +GLfloat magenta[] = {1.0, 0.0, 1.0, 1.0}; /**< Magenta color code */ | |
102 | +GLfloat yellow[] = {1.0, 1.0, 0.0, 1.0}; /**< Yellow color code */ | |
103 | +GLfloat red[] = {1.0, 0.0, 0.0, 1.0}; /**< Red color code */ | |
104 | +GLfloat green[] = {0.0, 1.0, 0.0, 1.0}; /**< Green color code */ | |
105 | +GLfloat blue[] = {0.0, 0.0, 1.0, 1.0}; /**< Blue color code */ | |
93 | 106 | /* |
94 | 107 | Others |
95 | 108 | */ |
96 | -int query; //!<Query switch | |
97 | -int corner[6][4]; //!<Corners of tetrahedron | |
98 | -GLfloat def = 0.0; //!<Shift of Fermi energy | |
109 | +int query; /**< Query switch */ | |
110 | +int corner[6][4]; /**< Corners of tetrahedron */ | |
111 | +GLfloat def = 0.0; /**< Shift of Fermi energy */ | |
99 | 112 | enum |
100 | 113 | { |
101 | - MOUSE_SCROLL_UP = 3, //!<Mouse wheel up | |
102 | - MOUSE_SCROLL_DOWN = 4 //!<Mouse wheel down | |
114 | + MOUSE_SCROLL_UP = 3, /**< Mouse wheel up */ | |
115 | + MOUSE_SCROLL_DOWN = 4 /**< Mouse wheel down */ | |
103 | 116 | }; |
104 | -/*! | |
105 | - Input from Fermi surface file | |
106 | - @param[in] fname Input file name | |
107 | -*/ | |
108 | -void read_file(char *fname){ | |
117 | +/** | |
118 | + * Input from Fermi surface file | |
119 | + */ | |
120 | +void read_file(char *fname/**<[in] fname Input file name*/) | |
121 | +{ | |
109 | 122 | int ib, i, i1, i2, i3, ierr; |
110 | 123 | FILE *fp; |
111 | 124 | /* |
@@ -198,9 +211,9 @@ void read_file(char *fname){ | ||
198 | 211 | fclose(fp); |
199 | 212 | /**/ |
200 | 213 | } /* read_file */ |
201 | -/*! | |
202 | - Initialize corners of tetrahedron | |
203 | -*/ | |
214 | +/** | |
215 | + * Initialize corners of tetrahedron | |
216 | + */ | |
204 | 217 | void init_corner(){ |
205 | 218 | int i, j; |
206 | 219 | int corner1[16][6][4] = { |
@@ -356,9 +369,9 @@ void init_corner(){ | ||
356 | 369 | } |
357 | 370 | } |
358 | 371 | } |
359 | -/*! | |
360 | - Compute Bragg vetor | |
361 | -*/ | |
372 | +/** | |
373 | + * Compute Bragg vetor | |
374 | + */ | |
362 | 375 | void bragg_vector(){ |
363 | 376 | int i1, i2, i3, i, ibr; |
364 | 377 | /**/ |
@@ -385,12 +398,13 @@ void bragg_vector(){ | ||
385 | 398 | } |
386 | 399 | } |
387 | 400 | } /* bragg_vector */ |
388 | -/*! | |
389 | - Solve linear system | |
390 | - @param[in] a Matix | |
391 | - @param[inout] b Right hand side vector | |
392 | -*/ | |
393 | -GLfloat solve3(GLfloat a[3][3], GLfloat b[3]){ | |
401 | +/** | |
402 | + * Solve linear system | |
403 | + */ | |
404 | +GLfloat solve3( | |
405 | + GLfloat a[3][3] /**< [in] Matix*/, | |
406 | + GLfloat b[3] /**< [inout] Right hand side vector*/) | |
407 | +{ | |
394 | 408 | int i; |
395 | 409 | GLfloat det, c[3]; |
396 | 410 | /**/ |
@@ -414,15 +428,16 @@ GLfloat solve3(GLfloat a[3][3], GLfloat b[3]){ | ||
414 | 428 | return det; |
415 | 429 | /**/ |
416 | 430 | } |
417 | -/*! | |
418 | - Judge wheser this line is the edge of 1st BZ | |
419 | - @param[in] ibr Index of a Bragg plane | |
420 | - @param[in] jbr Index of a Bragg plane | |
421 | - @param[in] nbr | |
422 | - @param[in] vert start point of line | |
423 | - @param[in] vert2 end point of line | |
424 | -*/ | |
425 | -int bragg_vert(int ibr, int jbr, int nbr, GLfloat vert[3], GLfloat vert2[3]){ | |
431 | +/** | |
432 | + * Judge wheser this line is the edge of 1st BZ | |
433 | + */ | |
434 | +int bragg_vert( | |
435 | + int ibr /**< [in] Index of a Bragg plane*/, | |
436 | + int jbr /**< [in] Index of a Bragg plane*/, | |
437 | + int nbr /**< [in] */, | |
438 | + GLfloat vert[3] /**< [in] start point of line*/, | |
439 | + GLfloat vert2[3] /**< [in] end point of line*/) | |
440 | +{ | |
426 | 441 | int kbr, i, lbr, nbr0; |
427 | 442 | GLfloat bmat[3][3], rhs[3], prod, thr = 0.0001, det; |
428 | 443 | /**/ |
@@ -476,9 +491,9 @@ int bragg_vert(int ibr, int jbr, int nbr, GLfloat vert[3], GLfloat vert2[3]){ | ||
476 | 491 | return 0; |
477 | 492 | /**/ |
478 | 493 | }/* bragg_vert */ |
479 | -/*! | |
480 | - Compute Brillouin zone boundariy lines | |
481 | -*/ | |
494 | +/** | |
495 | + * Compute Brillouin zone boundariy lines | |
496 | + */ | |
482 | 497 | void bz_lines(){ |
483 | 498 | /**/ |
484 | 499 | int ibr, jbr, nbr, ibzl, i, j, lvert; |
@@ -523,9 +538,9 @@ void bz_lines(){ | ||
523 | 538 | } |
524 | 539 | /**/ |
525 | 540 | } /* bz_lines */ |
526 | -/*! | |
527 | - Max and Minimum in Brillouine zone | |
528 | -*/ | |
541 | +/** | |
542 | + * Max and Minimum in Brillouine zone | |
543 | + */ | |
529 | 544 | void max_and_min_bz(){ |
530 | 545 | int ib, i1, i2, i3; |
531 | 546 | GLfloat eigmin, eigmax, matmin, matmax; |
@@ -551,14 +566,15 @@ void max_and_min_bz(){ | ||
551 | 566 | } |
552 | 567 | /**/ |
553 | 568 | }/* max_and_min_bz */ |
554 | -/*! | |
555 | - Sort eigenvalues | |
556 | - @param[in] n the number of components | |
557 | - @param[inout] eig2 the orbital energy | |
558 | - @param[inout] mat2 the matrix element | |
559 | - @param[inout] kvec2 of corners | |
560 | -*/ | |
561 | -void eigsort(int n, GLfloat* eig2, GLfloat* mat2, GLfloat kvec2[][3]){ | |
569 | +/** | |
570 | + * Sort eigenvalues | |
571 | + */ | |
572 | +void eigsort( | |
573 | + int n /**< [in] the number of components*/, | |
574 | + GLfloat* eig2 /**< [inout] the orbital energy*/, | |
575 | + GLfloat* mat2 /**< [inout] the matrix element*/, | |
576 | + GLfloat kvec2[][3] /**< [inout] k-vectors of corners*/) | |
577 | +{ | |
562 | 578 | int i, j, k; |
563 | 579 | GLfloat tmp; |
564 | 580 | /**/ |
@@ -582,14 +598,15 @@ void eigsort(int n, GLfloat* eig2, GLfloat* mat2, GLfloat kvec2[][3]){ | ||
582 | 598 | } |
583 | 599 | } |
584 | 600 | } /* eigsort */ |
585 | -/*! | |
586 | - Calculate normal vector | |
587 | - @param[in] in1 Corner 1 | |
588 | - @param[in] in2 Corner 2 | |
589 | - @param[in] in3 Corner 3 | |
590 | - @param[out] out The normal vector | |
591 | -*/ | |
592 | -void normal_vec(GLfloat in1[3], GLfloat in2[3], GLfloat in3[3], GLfloat out[3]){ | |
601 | +/** | |
602 | + * Calculate normal vector | |
603 | + */ | |
604 | +void normal_vec( | |
605 | + GLfloat in1[3] /**< [in] Corner 1*/, | |
606 | + GLfloat in2[3] /**< [in] Corner 2*/, | |
607 | + GLfloat in3[3] /**< [in] Corner 3*/, | |
608 | + GLfloat out[3] /**< [out] The normal vector*/) | |
609 | +{ | |
593 | 610 | int i; |
594 | 611 | GLfloat norm; |
595 | 612 | out[0] = in1[1] * in2[2] - in1[2] * in2[1] |
@@ -604,14 +621,15 @@ void normal_vec(GLfloat in1[3], GLfloat in2[3], GLfloat in3[3], GLfloat out[3]){ | ||
604 | 621 | norm = sqrtf(out[0]*out[0] + out[1]*out[1] + out[2]*out[2]); |
605 | 622 | for(i=0;i<3;i++) out[i] = out[i] / norm; |
606 | 623 | } /* normal_vec */ |
607 | -/*! | |
608 | - Store triangle patch | |
609 | - @param[in] ib The band index | |
610 | - @param[in] nbr Bragg plane | |
611 | - @param[in] mat1 The matrix element | |
612 | - @param[in] kvec1 k vector of corners | |
613 | -*/ | |
614 | -void triangle(int ib, int nbr, GLfloat mat1[3], GLfloat kvec1[3][3]){ | |
624 | +/** | |
625 | + * Store triangle patch | |
626 | + */ | |
627 | +void triangle( | |
628 | + int ib /**<[in] The band index*/, | |
629 | + int nbr /**<[in] Bragg plane*/, | |
630 | + GLfloat mat1[3] /**<[in] The matrix element*/, | |
631 | + GLfloat kvec1[3][3] /**<[in] k-vector of corners*/) | |
632 | +{ | |
615 | 633 | /**/ |
616 | 634 | int ibr, i, j; |
617 | 635 | GLfloat prod[3], thr = 0.0000, mat2[3], kvec2[3][3]; |
@@ -688,14 +706,15 @@ void triangle(int ib, int nbr, GLfloat mat1[3], GLfloat kvec1[3][3]){ | ||
688 | 706 | } |
689 | 707 | /**/ |
690 | 708 | }/* triangle */ |
691 | -/*! | |
692 | - Tetrahedrron method | |
693 | - @param[in] ib The band index | |
694 | - @param[in] eig1 orbital energies | |
695 | - @param[in] mat1 Matrix elements | |
696 | - @param[in] kvec1 k vectors | |
697 | -*/ | |
698 | -void tetrahedron(int ib, GLfloat eig1[8], GLfloat mat1[8], GLfloat kvec1[8][3]){ | |
709 | +/** | |
710 | + * Tetrahedrron method | |
711 | + */ | |
712 | +void tetrahedron( | |
713 | + int ib /**< [in] The band index*/, | |
714 | + GLfloat eig1[8] /**< [in] Orbital energies*/, | |
715 | + GLfloat mat1[8] /**< [in] Matrix elements*/, | |
716 | + GLfloat kvec1[8][3] /**< [in] k vectors*/) | |
717 | +{ | |
699 | 718 | /**/ |
700 | 719 | int it, i, j; |
701 | 720 | GLfloat eig2[4], mat2[4], kvec2[4][3], a[4][4], kvec3[3][3], mat3[3]; |
@@ -763,9 +782,9 @@ void tetrahedron(int ib, GLfloat eig1[8], GLfloat mat1[8], GLfloat kvec1[8][3]){ | ||
763 | 782 | } |
764 | 783 | } |
765 | 784 | }/* tetrahedron */ |
766 | -/*! | |
767 | - Patches for FSs | |
768 | -*/ | |
785 | +/** | |
786 | + * Patches for FSs | |
787 | + */ | |
769 | 788 | void fermi_patch() |
770 | 789 | { |
771 | 790 | int ib, i1, i2, i3, ii1, ii2, ii3, j1, j2, j3, start[3], i, j; |
@@ -897,9 +916,9 @@ void fermi_patch() | ||
897 | 916 | } |
898 | 917 | /**/ |
899 | 918 | } /* fermi_patch */ |
900 | -/*! | |
901 | - Max. & Min. of matrix elements. | |
902 | -*/ | |
919 | +/** | |
920 | + * Max. & Min. of matrix elements. | |
921 | + */ | |
903 | 922 | void max_and_min(){ |
904 | 923 | int ib, itri, i, j, ierr; |
905 | 924 | GLfloat matmax, matmin, mat2; |
@@ -1032,9 +1051,9 @@ void max_and_min(){ | ||
1032 | 1051 | } |
1033 | 1052 | /**/ |
1034 | 1053 | } /* max_and_min */ |
1035 | -/*! | |
1036 | - Node line | |
1037 | -*/ | |
1054 | +/** | |
1055 | + * Node line | |
1056 | + */ | |
1038 | 1057 | void calc_nodeline(){ |
1039 | 1058 | int ib, itri, i, j; |
1040 | 1059 | GLfloat mprod[2]; |
@@ -1156,9 +1175,9 @@ void calc_nodeline(){ | ||
1156 | 1175 | } |
1157 | 1176 | } /* End of parallel region */ |
1158 | 1177 | } |
1159 | -/*! | |
1160 | - Draw Fermi surfaces | |
1161 | -*/ | |
1178 | +/** | |
1179 | + * Draw Fermi surfaces | |
1180 | + */ | |
1162 | 1181 | void draw_fermi(){ |
1163 | 1182 | /**/ |
1164 | 1183 | int i, j, ib, itri; |
@@ -1227,9 +1246,9 @@ void draw_fermi(){ | ||
1227 | 1246 | } |
1228 | 1247 | /**/ |
1229 | 1248 | } /* draw_ferm */ |
1230 | -/*! | |
1231 | - Draw lines of BZ boundaries | |
1232 | -*/ | |
1249 | +/** | |
1250 | + * Draw lines of BZ boundaries | |
1251 | + */ | |
1233 | 1252 | void draw_bz_lines(){ |
1234 | 1253 | /**/ |
1235 | 1254 | int ibzl, i, j; |
@@ -1296,9 +1315,9 @@ void draw_bz_lines(){ | ||
1296 | 1315 | glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, black); |
1297 | 1316 | /**/ |
1298 | 1317 | } /* draw bz_lines */ |
1299 | -/*! | |
1300 | - Draw color scale | |
1301 | -*/ | |
1318 | +/** | |
1319 | + * Draw color scale | |
1320 | + */ | |
1302 | 1321 | void draw_colorbar() |
1303 | 1322 | { |
1304 | 1323 | int i, j; |
@@ -1399,9 +1418,9 @@ void draw_colorbar() | ||
1399 | 1418 | else{ |
1400 | 1419 | } |
1401 | 1420 | } /* draw_colorbar */ |
1402 | -/*! | |
1403 | - Draw points for the stereogram | |
1404 | -*/ | |
1421 | +/** | |
1422 | + * Draw points for the stereogram | |
1423 | + */ | |
1405 | 1424 | void draw_circles(){ |
1406 | 1425 | int i; |
1407 | 1426 | GLfloat r; |
@@ -1540,12 +1559,12 @@ void display() | ||
1540 | 1559 | /**/ |
1541 | 1560 | glutSwapBuffers(); |
1542 | 1561 | } /* display */ |
1543 | -/*! | |
1544 | - Window resize | |
1545 | - @param[in] w Window width | |
1546 | - @param[in] h Window height | |
1547 | -*/ | |
1548 | -void resize(int w, int h) | |
1562 | +/** | |
1563 | + * Window resize | |
1564 | + */ | |
1565 | +void resize( | |
1566 | + int w /**<[in] Window width*/, | |
1567 | + int h /**<[in] Window height*/) | |
1549 | 1568 | { |
1550 | 1569 | /* |
1551 | 1570 | Scale of translation of mousepointer |
@@ -1562,21 +1581,21 @@ void resize(int w, int h) | ||
1562 | 1581 | /**/ |
1563 | 1582 | glMatrixMode(GL_MODELVIEW); |
1564 | 1583 | } /* end resize */ |
1565 | -/*! | |
1566 | - Idling | |
1567 | -*/ | |
1584 | +/** | |
1585 | + * Idling | |
1586 | + */ | |
1568 | 1587 | void idle(void) |
1569 | 1588 | { |
1570 | 1589 | glutPostRedisplay(); |
1571 | 1590 | } /* idle */ |
1572 | -/*! | |
1573 | - Glut mouse function | |
1574 | - @param[in] button pushed button | |
1575 | - @param[in] state down or upor ? | |
1576 | - @param[in] x position of mouse cursor | |
1577 | - @param[in] y position of mouse cursor | |
1578 | -*/ | |
1579 | -void mouse(int button, int state, int x, int y) | |
1591 | +/** | |
1592 | + * Glut mouse function | |
1593 | + */ | |
1594 | +void mouse( | |
1595 | + int button /**< [in] pushed button*/, | |
1596 | + int state /**< [in] down or up or ?*/, | |
1597 | + int x /**< [in] position of mouse cursor*/, | |
1598 | + int y /**< [in] position of mouse cursor*/) | |
1580 | 1599 | { |
1581 | 1600 | switch (button) { |
1582 | 1601 | /* |
@@ -1636,12 +1655,12 @@ void mouse(int button, int state, int x, int y) | ||
1636 | 1655 | break; |
1637 | 1656 | } |
1638 | 1657 | } /* end mouse */ |
1639 | -/*! | |
1640 | - Glut motion function | |
1641 | - @param[in] x position of cursor | |
1642 | - @param[in] y position of cursor | |
1643 | -*/ | |
1644 | -void motion(int x, int y) | |
1658 | +/** | |
1659 | + * Glut motion function | |
1660 | + */ | |
1661 | +void motion( | |
1662 | + int x /**< [in] position of cursor*/, | |
1663 | + int y /**< [in] position of cursor*/) | |
1645 | 1664 | { |
1646 | 1665 | int i, j; |
1647 | 1666 | GLfloat dx, dy, a, rot0[3][3], rot1[3][3], ax, ay; |
@@ -1699,24 +1718,24 @@ void motion(int x, int y) | ||
1699 | 1718 | cy = y; |
1700 | 1719 | /**/ |
1701 | 1720 | } /* motion */ |
1702 | -/*! | |
1703 | - Glut keyboard function | |
1704 | - @param[in] key key Typed key | |
1705 | - @param[in] x | |
1706 | - @param[in] y | |
1707 | -*/ | |
1708 | -void keyboard(unsigned char key, int x, int y) | |
1721 | +/* | |
1722 | + * Glut keyboard function | |
1723 | + */ | |
1724 | +void keyboard( | |
1725 | + unsigned char key /**< [in] Typed key*/, | |
1726 | + int x /**< [in]*/, | |
1727 | + int y /**< [in]*/) | |
1709 | 1728 | { |
1710 | 1729 | switch (key) { |
1711 | 1730 | } |
1712 | 1731 | } /* keyboard */ |
1713 | -/*! | |
1714 | - Glut special key function | |
1715 | - @param[in] key typed special key | |
1716 | - @param[in] x | |
1717 | - @param[in] y | |
1718 | -*/ | |
1719 | -void special_key(int key, int x, int y) | |
1732 | +/** | |
1733 | + * Glut special key function | |
1734 | + */ | |
1735 | +void special_key( | |
1736 | + int key /**< [in] typed special key*/, | |
1737 | + int x /**< [in]*/, | |
1738 | + int y /**< [in]*/) | |
1720 | 1739 | { |
1721 | 1740 | switch (key) { |
1722 | 1741 | case GLUT_KEY_UP: |
@@ -1741,11 +1760,10 @@ void special_key(int key, int x, int y) | ||
1741 | 1760 | /**/ |
1742 | 1761 | } |
1743 | 1762 | } /* special_key */ |
1744 | -/*! | |
1745 | - Main menu | |
1746 | - @param[in] value Selected menu | |
1747 | -*/ | |
1748 | -void main_menu(int value){ | |
1763 | +/** | |
1764 | + * Main menu | |
1765 | + */ | |
1766 | +void main_menu(int value /**< [in] Selected menu*/){ | |
1749 | 1767 | /**/ |
1750 | 1768 | int ib, i1, i2, i3, ierr; |
1751 | 1769 | GLfloat emin, emax; |
@@ -1810,11 +1828,10 @@ void main_menu(int value){ | ||
1810 | 1828 | exit(0); |
1811 | 1829 | } |
1812 | 1830 | } |
1813 | -/*! | |
1814 | - Change mouse function | |
1815 | - @param[in] value Selected menu | |
1816 | -*/ | |
1817 | -void menu_mouse(int value){ | |
1831 | +/** | |
1832 | + * Change mouse function | |
1833 | + */ | |
1834 | +void menu_mouse(int value /**< [in] Selected menu*/){ | |
1818 | 1835 | /**/ |
1819 | 1836 | if (value == 1 && lmouse != 1){ |
1820 | 1837 | printf("Mouse drag : Rotate \n\n"); |
@@ -1833,11 +1850,10 @@ void menu_mouse(int value){ | ||
1833 | 1850 | } |
1834 | 1851 | /**/ |
1835 | 1852 | } /* menu_band */ |
1836 | -/*! | |
1837 | - On / Off band | |
1838 | - @param[in] value Selected menu | |
1839 | -*/ | |
1840 | -void menu_band(int value){ | |
1853 | +/** | |
1854 | + * On / Off band | |
1855 | + */ | |
1856 | +void menu_band(int value /**< [in] Selected menu*/){ | |
1841 | 1857 | /**/ |
1842 | 1858 | if(draw_band[value] == 0){ |
1843 | 1859 | printf("band # %d : On \n", value + 1); |
@@ -1850,11 +1866,10 @@ void menu_band(int value){ | ||
1850 | 1866 | glutPostRedisplay(); |
1851 | 1867 | /**/ |
1852 | 1868 | } /* menu_band */ |
1853 | -/*! | |
1854 | - Change background color | |
1855 | - @param[in] value Selected menu | |
1869 | +/** | |
1870 | + * Change background color | |
1856 | 1871 | */ |
1857 | -void menu_bgcolor(int value){ | |
1872 | +void menu_bgcolor(int value /**<[in] Selected menu*/){ | |
1858 | 1873 | if(value == 1 && blackback != 1){ |
1859 | 1874 | printf("Background color becomes BLACK. \n"); |
1860 | 1875 | glClearColor(0.0, 0.0, 0.0, 0.0); |
@@ -1868,11 +1883,10 @@ void menu_bgcolor(int value){ | ||
1868 | 1883 | } |
1869 | 1884 | /**/ |
1870 | 1885 | }/* bgcolor change*/ |
1871 | -/*! | |
1872 | - Change color scale mode | |
1873 | - @param[in] value Selected menu | |
1874 | -*/ | |
1875 | -void menu_colorscale(int value){ | |
1886 | +/** | |
1887 | + * Change color scale mode | |
1888 | + */ | |
1889 | +void menu_colorscale(int value /**<[in] Selected menu*/){ | |
1876 | 1890 | /**/ |
1877 | 1891 | if(value == 1 && fcscl != 1){ |
1878 | 1892 | fcscl = 1; |
@@ -1900,11 +1914,10 @@ void menu_colorscale(int value){ | ||
1900 | 1914 | } |
1901 | 1915 | /**/ |
1902 | 1916 | } /* menu_colorscale */ |
1903 | -/*! | |
1904 | - Change Brillouin zone | |
1905 | - @param[in] value Selected menu | |
1906 | -*/ | |
1907 | -void menu_bzmode(int value){ | |
1917 | +/** | |
1918 | + * Change Brillouin zone | |
1919 | + */ | |
1920 | +void menu_bzmode(int value /**<[in] Selected menu*/){ | |
1908 | 1921 | if(value == 1 && fbz != 1){ |
1909 | 1922 | fbz = 1; |
1910 | 1923 | printf("##### First Brillouin zone mode ##### \n\n"); |
@@ -1944,11 +1957,10 @@ void menu_bzmode(int value){ | ||
1944 | 1957 | glutPostRedisplay(); |
1945 | 1958 | } |
1946 | 1959 | } /* menu_bzmode */ |
1947 | -/*! | |
1948 | - On/Off Node line | |
1949 | - @param[in] value Selected menu | |
1950 | -*/ | |
1951 | -void menu_nodeline(int value){ | |
1960 | +/** | |
1961 | + * On/Off Node line | |
1962 | + */ | |
1963 | +void menu_nodeline(int value /**<[in] Selected menu*/){ | |
1952 | 1964 | if(value == 1 && nodeline != 1){ |
1953 | 1965 | printf("Nodeline : on \n\n"); |
1954 | 1966 | nodeline = 1; |
@@ -1961,11 +1973,10 @@ void menu_nodeline(int value){ | ||
1961 | 1973 | } |
1962 | 1974 | /**/ |
1963 | 1975 | } /* menu_nodeline */ |
1964 | -/*! | |
1965 | - Tern stereogram | |
1966 | - @param[in] value Selected menu | |
1967 | -*/ | |
1968 | -void menu_stereo(int value){ | |
1976 | +/** | |
1977 | + * Tern stereogram | |
1978 | + */ | |
1979 | +void menu_stereo(int value /**<[in] Selected menu*/){ | |
1969 | 1980 | if(value == 1 && lstereo != 1){ |
1970 | 1981 | printf("Stereo : Off. \n\n"); |
1971 | 1982 | lstereo = 1; |
@@ -1982,11 +1993,10 @@ void menu_stereo(int value){ | ||
1982 | 1993 | glutPostRedisplay(); |
1983 | 1994 | } |
1984 | 1995 | } /* menu_stereo */ |
1985 | -/*! | |
1986 | - On/Off Colorbar | |
1987 | - @param[in] value Selected menu | |
1988 | -*/ | |
1989 | -void menu_colorbar(int value){ | |
1996 | +/** | |
1997 | + * On/Off Colorbar | |
1998 | + */ | |
1999 | +void menu_colorbar(int value /**<[in] Selected menu*/){ | |
1990 | 2000 | if(value == 1 && lcolorbar != 1){ |
1991 | 2001 | printf("Color bar : on \n\n"); |
1992 | 2002 | lcolorbar = 1; |
@@ -1998,11 +2008,10 @@ void menu_colorbar(int value){ | ||
1998 | 2008 | glutPostRedisplay(); |
1999 | 2009 | } |
2000 | 2010 | } /* menu_colorbar */ |
2001 | -/*! | |
2002 | - Change tetrahedron | |
2003 | - @param[in] value Selected menu | |
2004 | -*/ | |
2005 | -void menu_tetra(int value){ | |
2011 | +/** | |
2012 | + * Change tetrahedron | |
2013 | + */ | |
2014 | +void menu_tetra(int value) /**<[in] Selected menu*/{ | |
2006 | 2015 | /**/ |
2007 | 2016 | if(value != itet){ |
2008 | 2017 | printf("Tetra patern %d \n", value + 1); |
@@ -2022,9 +2031,9 @@ void menu_tetra(int value){ | ||
2022 | 2031 | glutPostRedisplay(); |
2023 | 2032 | } |
2024 | 2033 | } /* menu_tetra */ |
2025 | -/*! | |
2026 | - Glut init function | |
2027 | -*/ | |
2034 | +/** | |
2035 | + * Glut init function | |
2036 | + */ | |
2028 | 2037 | void init(void) |
2029 | 2038 | { |
2030 | 2039 | int ib; |
@@ -2100,10 +2109,12 @@ void init(void) | ||
2100 | 2109 | glutAddMenuEntry("Exit",9); |
2101 | 2110 | glutAttachMenu(GLUT_RIGHT_BUTTON); |
2102 | 2111 | } /* init */ |
2103 | -/*! | |
2104 | - Main routine | |
2105 | -*/ | |
2106 | -int main(int argc, char *argv[]) | |
2112 | +/** | |
2113 | + * Main routine | |
2114 | + */ | |
2115 | +int main( | |
2116 | + int argc /**< [in] */, | |
2117 | + char *argv[] /**< [in] */) | |
2107 | 2118 | { |
2108 | 2119 | /**/ |
2109 | 2120 | read_file(argv[1]); |