• R/O
  • HTTP
  • SSH
  • HTTPS

fermisurfer: Commit

fermisurfer Git


Commit MetaInfo

Revision2dd449de3502712311ba3d39f43b1c86698045e3 (tree)
Zeit2015-10-18 14:52:21
Autormitsuaki1987 <kawamitsuaki@gmai...>
Commitermitsuaki1987

Log Message

Add frame in html manuals

Ändern Zusammenfassung

Diff

--- a/doc/Doxyfile
+++ b/doc/fermisurfer.doxygen
@@ -91,7 +91,7 @@ ALLOW_UNICODE_NAMES = NO
9191 # Ukrainian and Vietnamese.
9292 # The default value is: English.
9393
94-OUTPUT_LANGUAGE = English
94+OUTPUT_LANGUAGE = Japanese
9595
9696 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
9797 # descriptions after the members that are listed in the file and class
@@ -971,19 +971,19 @@ INLINE_SOURCES = NO
971971 # Fortran comments will always remain visible.
972972 # The default value is: YES.
973973
974-STRIP_CODE_COMMENTS = YES
974+STRIP_CODE_COMMENTS = NO
975975
976976 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
977977 # function all documented functions referencing it will be listed.
978978 # The default value is: NO.
979979
980-REFERENCED_BY_RELATION = NO
980+REFERENCED_BY_RELATION = YES
981981
982982 # If the REFERENCES_RELATION tag is set to YES then for each documented function
983983 # all documented entities called/used by that function will be listed.
984984 # The default value is: NO.
985985
986-REFERENCES_RELATION = NO
986+REFERENCES_RELATION = YES
987987
988988 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
989989 # to YES then the hyperlinks from functions in REFERENCES_RELATION and
@@ -1495,7 +1495,7 @@ FORMULA_TRANSPARENT = YES
14951495 # The default value is: NO.
14961496 # This tag requires that the tag GENERATE_HTML is set to YES.
14971497
1498-USE_MATHJAX = NO
1498+USE_MATHJAX = YES
14991499
15001500 # When MathJax is enabled you can set the default output format to be used for
15011501 # the MathJax output. See the MathJax site (see:
@@ -1505,7 +1505,7 @@ USE_MATHJAX = NO
15051505 # The default value is: HTML-CSS.
15061506 # This tag requires that the tag USE_MATHJAX is set to YES.
15071507
1508-MATHJAX_FORMAT = HTML-CSS
1508+MATHJAX_FORMAT = NativeMML
15091509
15101510 # When MathJax is enabled you need to specify the location relative to the HTML
15111511 # output directory using the MATHJAX_RELPATH option. The destination directory
--- a/doc/index.html.en
+++ b/doc/index.html.en
@@ -22,8 +22,9 @@
2222 <a href="http://osdn.jp/projects/fermisurfer/">FermiSurfer</a>
2323
2424 <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.
2728 </p>
2829
2930 <table width="100%" valign="top">
--- a/doc/manual_en.html
+++ b/doc/manual_en.html
@@ -15,463 +15,10 @@
1515 <meta name="description" content="Manual for FermiSurfer">
1616
1717 </head>
18- <body bgcolor="CCFFCC">
1918
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>
2323
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&quot;.
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 &lt; 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 = &quot;sample.fs&quot;)
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(&quot;sample.fs&quot;, &quot;w&quot;);
245- ierr = fprintf(fo, &quot;%d %d %d&quot;, nk1, nk2, nk3);
246- ierr = fprintf(fo, &quot;%d, iswitch);
247- ierr = fprintf(fo, &quot;%d, nbnd);
248- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec1[0], bvec1[1], bvec1[2]);
249- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec2[0], bvec2[1], bvec2[2]);
250- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec3[0], bvec3[1], bvec3[2]);
251- for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
252- for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
253- for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
254- for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
255- ierr = fprintf(fo, &quot;%e&quot;, eig[ibnd][ik1][ik2][ik3]);
256- }
257- }
258- }
259- }
260- for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
261- for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
262- for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
263- for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
264- ierr = fprintf(fo, &quot;%e&quot;, 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>
47724 </html>
--- a/doc/manual_ja.html
+++ b/doc/manual_ja.html
@@ -15,503 +15,9 @@
1515 <meta name="description" content="FermiSurfer日本語マニュアル">
1616
1717 </head>
18- <body bgcolor="CCFFCC">
1918
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 &lt; 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, &quot;%d %d %d&quot;, nk1, nk2, nk3);
263- ierr = fprintf(fo, &quot;%d, iswitch);
264- ierr = fprintf(fo, &quot;%d, nbnd);
265- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec1[0], bvec1[1], bvec1[2]);
266- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec2[0], bvec2[1], bvec2[2]);
267- ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec3[0], bvec3[1], bvec3[2]);
268- for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
269- for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
270- for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
271- for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
272- ierr = fprintf(fo, &quot;%e&quot;, eig[ibnd][ik1][ik2][ik3]);
273- }
274- }
275- }
276- }
277- for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
278- for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
279- for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
280- for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
281- ierr = fprintf(fo, &quot;%e&quot;, 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>
51723 </html>
--- /dev/null
+++ b/doc/manual_left_en.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>
--- /dev/null
+++ b/doc/manual_left_ja.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>
--- /dev/null
+++ b/doc/manual_right_en.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&quot;.
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 &lt; 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 = &quot;sample.fs&quot;)
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(&quot;sample.fs&quot;, &quot;w&quot;);
232+ ierr = fprintf(fo, &quot;%d %d %d&quot;, nk1, nk2, nk3);
233+ ierr = fprintf(fo, &quot;%d, iswitch);
234+ ierr = fprintf(fo, &quot;%d, nbnd);
235+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec1[0], bvec1[1], bvec1[2]);
236+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec2[0], bvec2[1], bvec2[2]);
237+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec3[0], bvec3[1], bvec3[2]);
238+ for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
239+ for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
240+ for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
241+ for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
242+ ierr = fprintf(fo, &quot;%e&quot;, eig[ibnd][ik1][ik2][ik3]);
243+ }
244+ }
245+ }
246+ }
247+ for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
248+ for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
249+ for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
250+ for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
251+ ierr = fprintf(fo, &quot;%e&quot;, 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>
--- /dev/null
+++ b/doc/manual_right_ja.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 &lt; 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, &quot;%d %d %d&quot;, nk1, nk2, nk3);
250+ ierr = fprintf(fo, &quot;%d, iswitch);
251+ ierr = fprintf(fo, &quot;%d, nbnd);
252+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec1[0], bvec1[1], bvec1[2]);
253+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec2[0], bvec2[1], bvec2[2]);
254+ ierr = fprintf(fp, &quot;%e %e %e&quot;, bvec3[0], bvec3[1], bvec3[2]);
255+ for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
256+ for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
257+ for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
258+ for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
259+ ierr = fprintf(fo, &quot;%e&quot;, eig[ibnd][ik1][ik2][ik3]);
260+ }
261+ }
262+ }
263+ }
264+ for (ibnd = 0; ibnd &lt; nbnd; ++ibnd) {
265+ for (ik1 = 0; ik1 &lt; nk1; ++ik1) {
266+ for (ik2 = 0; ik2 &lt; nk2; ++ik2) {
267+ for (ik3 = 0; ik3 &lt; nk3; ++ik3) {
268+ ierr = fprintf(fo, &quot;%e&quot;, 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>
--- a/src/fermisurfer.c
+++ b/src/fermisurfer.c
@@ -21,91 +21,104 @@
2121 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222 THE SOFTWARE.
2323 */
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+ */
2437 #include <stdlib.h>
2538 #include <stdio.h>
2639 #include <math.h>
2740 #include <GL/glut.h>
2841 #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 */
8093 {0.0, 1.0, 0.0},
8194 {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 */
93106 /*
94107 Others
95108 */
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 */
99112 enum
100113 {
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 */
103116 };
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+{
109122 int ib, i, i1, i2, i3, ierr;
110123 FILE *fp;
111124 /*
@@ -198,9 +211,9 @@ void read_file(char *fname){
198211 fclose(fp);
199212 /**/
200213 } /* read_file */
201-/*!
202- Initialize corners of tetrahedron
203-*/
214+/**
215+ * Initialize corners of tetrahedron
216+ */
204217 void init_corner(){
205218 int i, j;
206219 int corner1[16][6][4] = {
@@ -356,9 +369,9 @@ void init_corner(){
356369 }
357370 }
358371 }
359-/*!
360- Compute Bragg vetor
361-*/
372+/**
373+ * Compute Bragg vetor
374+ */
362375 void bragg_vector(){
363376 int i1, i2, i3, i, ibr;
364377 /**/
@@ -385,12 +398,13 @@ void bragg_vector(){
385398 }
386399 }
387400 } /* 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+{
394408 int i;
395409 GLfloat det, c[3];
396410 /**/
@@ -414,15 +428,16 @@ GLfloat solve3(GLfloat a[3][3], GLfloat b[3]){
414428 return det;
415429 /**/
416430 }
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+{
426441 int kbr, i, lbr, nbr0;
427442 GLfloat bmat[3][3], rhs[3], prod, thr = 0.0001, det;
428443 /**/
@@ -476,9 +491,9 @@ int bragg_vert(int ibr, int jbr, int nbr, GLfloat vert[3], GLfloat vert2[3]){
476491 return 0;
477492 /**/
478493 }/* bragg_vert */
479-/*!
480- Compute Brillouin zone boundariy lines
481-*/
494+/**
495+ * Compute Brillouin zone boundariy lines
496+ */
482497 void bz_lines(){
483498 /**/
484499 int ibr, jbr, nbr, ibzl, i, j, lvert;
@@ -523,9 +538,9 @@ void bz_lines(){
523538 }
524539 /**/
525540 } /* bz_lines */
526-/*!
527- Max and Minimum in Brillouine zone
528-*/
541+/**
542+ * Max and Minimum in Brillouine zone
543+ */
529544 void max_and_min_bz(){
530545 int ib, i1, i2, i3;
531546 GLfloat eigmin, eigmax, matmin, matmax;
@@ -551,14 +566,15 @@ void max_and_min_bz(){
551566 }
552567 /**/
553568 }/* 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+{
562578 int i, j, k;
563579 GLfloat tmp;
564580 /**/
@@ -582,14 +598,15 @@ void eigsort(int n, GLfloat* eig2, GLfloat* mat2, GLfloat kvec2[][3]){
582598 }
583599 }
584600 } /* 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+{
593610 int i;
594611 GLfloat norm;
595612 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]){
604621 norm = sqrtf(out[0]*out[0] + out[1]*out[1] + out[2]*out[2]);
605622 for(i=0;i<3;i++) out[i] = out[i] / norm;
606623 } /* 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+{
615633 /**/
616634 int ibr, i, j;
617635 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]){
688706 }
689707 /**/
690708 }/* 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+{
699718 /**/
700719 int it, i, j;
701720 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]){
763782 }
764783 }
765784 }/* tetrahedron */
766-/*!
767- Patches for FSs
768-*/
785+/**
786+ * Patches for FSs
787+ */
769788 void fermi_patch()
770789 {
771790 int ib, i1, i2, i3, ii1, ii2, ii3, j1, j2, j3, start[3], i, j;
@@ -897,9 +916,9 @@ void fermi_patch()
897916 }
898917 /**/
899918 } /* fermi_patch */
900-/*!
901- Max. & Min. of matrix elements.
902-*/
919+/**
920+ * Max. & Min. of matrix elements.
921+ */
903922 void max_and_min(){
904923 int ib, itri, i, j, ierr;
905924 GLfloat matmax, matmin, mat2;
@@ -1032,9 +1051,9 @@ void max_and_min(){
10321051 }
10331052 /**/
10341053 } /* max_and_min */
1035-/*!
1036- Node line
1037-*/
1054+/**
1055+ * Node line
1056+ */
10381057 void calc_nodeline(){
10391058 int ib, itri, i, j;
10401059 GLfloat mprod[2];
@@ -1156,9 +1175,9 @@ void calc_nodeline(){
11561175 }
11571176 } /* End of parallel region */
11581177 }
1159-/*!
1160- Draw Fermi surfaces
1161-*/
1178+/**
1179+ * Draw Fermi surfaces
1180+ */
11621181 void draw_fermi(){
11631182 /**/
11641183 int i, j, ib, itri;
@@ -1227,9 +1246,9 @@ void draw_fermi(){
12271246 }
12281247 /**/
12291248 } /* draw_ferm */
1230-/*!
1231- Draw lines of BZ boundaries
1232-*/
1249+/**
1250+ * Draw lines of BZ boundaries
1251+ */
12331252 void draw_bz_lines(){
12341253 /**/
12351254 int ibzl, i, j;
@@ -1296,9 +1315,9 @@ void draw_bz_lines(){
12961315 glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, black);
12971316 /**/
12981317 } /* draw bz_lines */
1299-/*!
1300- Draw color scale
1301-*/
1318+/**
1319+ * Draw color scale
1320+ */
13021321 void draw_colorbar()
13031322 {
13041323 int i, j;
@@ -1399,9 +1418,9 @@ void draw_colorbar()
13991418 else{
14001419 }
14011420 } /* draw_colorbar */
1402-/*!
1403- Draw points for the stereogram
1404-*/
1421+/**
1422+ * Draw points for the stereogram
1423+ */
14051424 void draw_circles(){
14061425 int i;
14071426 GLfloat r;
@@ -1540,12 +1559,12 @@ void display()
15401559 /**/
15411560 glutSwapBuffers();
15421561 } /* 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*/)
15491568 {
15501569 /*
15511570 Scale of translation of mousepointer
@@ -1562,21 +1581,21 @@ void resize(int w, int h)
15621581 /**/
15631582 glMatrixMode(GL_MODELVIEW);
15641583 } /* end resize */
1565-/*!
1566- Idling
1567-*/
1584+/**
1585+ * Idling
1586+ */
15681587 void idle(void)
15691588 {
15701589 glutPostRedisplay();
15711590 } /* 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*/)
15801599 {
15811600 switch (button) {
15821601 /*
@@ -1636,12 +1655,12 @@ void mouse(int button, int state, int x, int y)
16361655 break;
16371656 }
16381657 } /* 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*/)
16451664 {
16461665 int i, j;
16471666 GLfloat dx, dy, a, rot0[3][3], rot1[3][3], ax, ay;
@@ -1699,24 +1718,24 @@ void motion(int x, int y)
16991718 cy = y;
17001719 /**/
17011720 } /* 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]*/)
17091728 {
17101729 switch (key) {
17111730 }
17121731 } /* 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]*/)
17201739 {
17211740 switch (key) {
17221741 case GLUT_KEY_UP:
@@ -1741,11 +1760,10 @@ void special_key(int key, int x, int y)
17411760 /**/
17421761 }
17431762 } /* 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*/){
17491767 /**/
17501768 int ib, i1, i2, i3, ierr;
17511769 GLfloat emin, emax;
@@ -1810,11 +1828,10 @@ void main_menu(int value){
18101828 exit(0);
18111829 }
18121830 }
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*/){
18181835 /**/
18191836 if (value == 1 && lmouse != 1){
18201837 printf("Mouse drag : Rotate \n\n");
@@ -1833,11 +1850,10 @@ void menu_mouse(int value){
18331850 }
18341851 /**/
18351852 } /* 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*/){
18411857 /**/
18421858 if(draw_band[value] == 0){
18431859 printf("band # %d : On \n", value + 1);
@@ -1850,11 +1866,10 @@ void menu_band(int value){
18501866 glutPostRedisplay();
18511867 /**/
18521868 } /* menu_band */
1853-/*!
1854- Change background color
1855- @param[in] value Selected menu
1869+/**
1870+ * Change background color
18561871 */
1857-void menu_bgcolor(int value){
1872+void menu_bgcolor(int value /**<[in] Selected menu*/){
18581873 if(value == 1 && blackback != 1){
18591874 printf("Background color becomes BLACK. \n");
18601875 glClearColor(0.0, 0.0, 0.0, 0.0);
@@ -1868,11 +1883,10 @@ void menu_bgcolor(int value){
18681883 }
18691884 /**/
18701885 }/* 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*/){
18761890 /**/
18771891 if(value == 1 && fcscl != 1){
18781892 fcscl = 1;
@@ -1900,11 +1914,10 @@ void menu_colorscale(int value){
19001914 }
19011915 /**/
19021916 } /* 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*/){
19081921 if(value == 1 && fbz != 1){
19091922 fbz = 1;
19101923 printf("##### First Brillouin zone mode ##### \n\n");
@@ -1944,11 +1957,10 @@ void menu_bzmode(int value){
19441957 glutPostRedisplay();
19451958 }
19461959 } /* 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*/){
19521964 if(value == 1 && nodeline != 1){
19531965 printf("Nodeline : on \n\n");
19541966 nodeline = 1;
@@ -1961,11 +1973,10 @@ void menu_nodeline(int value){
19611973 }
19621974 /**/
19631975 } /* 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*/){
19691980 if(value == 1 && lstereo != 1){
19701981 printf("Stereo : Off. \n\n");
19711982 lstereo = 1;
@@ -1982,11 +1993,10 @@ void menu_stereo(int value){
19821993 glutPostRedisplay();
19831994 }
19841995 } /* 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*/){
19902000 if(value == 1 && lcolorbar != 1){
19912001 printf("Color bar : on \n\n");
19922002 lcolorbar = 1;
@@ -1998,11 +2008,10 @@ void menu_colorbar(int value){
19982008 glutPostRedisplay();
19992009 }
20002010 } /* 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*/{
20062015 /**/
20072016 if(value != itet){
20082017 printf("Tetra patern %d \n", value + 1);
@@ -2022,9 +2031,9 @@ void menu_tetra(int value){
20222031 glutPostRedisplay();
20232032 }
20242033 } /* menu_tetra */
2025-/*!
2026- Glut init function
2027-*/
2034+/**
2035+ * Glut init function
2036+ */
20282037 void init(void)
20292038 {
20302039 int ib;
@@ -2100,10 +2109,12 @@ void init(void)
21002109 glutAddMenuEntry("Exit",9);
21012110 glutAttachMenu(GLUT_RIGHT_BUTTON);
21022111 } /* 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] */)
21072118 {
21082119 /**/
21092120 read_file(argv[1]);
Show on old repository browser