mathjax-yard 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,49 @@
1
+ ! 導入の経緯
2
+ !!概要
3
+ mathjaxとmark downの周辺状況から,なぜmathjax-yardが必要になったかをまとめておきます.
4
+
5
+ !!状況
6
+ 数値計算や物理シミュレーションにおいては,解説に数式が不可欠です.
7
+ 記法としては$LaTeX$形式がありますが,これをhtmlで表示するには工夫が必要です.
8
+ gemなどを作るとき,yardでdocumentationを自動化することが可能です.
9
+ しかし,そこに数式を組み込んでも,うまく表示されません.
10
+
11
+ !!!MathML or mathjax
12
+ ||MathML||mathjax
13
+ ||firefoxのみ||なんでも
14
+
15
+ !!mark down with mathjax extension
16
+ * Githubのwikiはmark down 記法を取っているが,math拡張が切られた.
17
+ * Qiitaなどは独自拡張しているが,ない.
18
+ * yard
19
+ **mathjaxの拡張ができる
20
+ **optionsに,組み込まれてはいない.
21
+ * atom
22
+ **mathjax-wrapper とmarkdown_preview_plusでlive変換・表示できる.
23
+ **htmlへの変換はあるが,あまりきれいでない.
24
+ * pandoc
25
+ ** mathjaxを組み込んでhtmlに変換できる
26
+ ** cssなどに汎用性がなく,体裁をいじるのは難しい.
27
+
28
+ !!つまり
29
+ 個別にmathjaxの入ったmd文書をhtmlに変換することができたとしても,
30
+ yardで自動生成される体裁の整った文書としては得ることが難しいというのが現状です.
31
+
32
+ !!解決法
33
+ そこで,yardのpre, postコマンドとして動作するmathjax-yardを開発しました.
34
+ * yardで変換される,*/*.md中の数式をMATHJAXタグに付け替え.
35
+ * yardでmd->html変換
36
+ * できたdoc/file.*.htmlのMATHJAXタグを数式に戻す
37
+ という操作をしています.
38
+
39
+ !!やり残し
40
+ * default動作以外のyard変換への対応
41
+ ** 特に*.rbへの対応
42
+ * hikiへの対応
43
+ * yardへのpull request
44
+ * $を記述しようとしてもだめ.
45
+ ** \$で逃げている(16/6/23対応断念).
46
+ * 最小一致を使った記述の単純化(16/6/23対応).
47
+ * Rakefileでのコマンド一発での変換
48
+ ** 一つ所に書くと,systemコマンドなどがmultitaskで走ってしまう.
49
+ ** taskを分割してそれぞれを終了させた(16/6/23対応).
data/docs/atom.hiki ADDED
@@ -0,0 +1,30 @@
1
+ # 概要
2
+ # EAM
3
+ EAM\(Embedded atom method\)は1980年代に盛んに使われるようになった経験的原子間ポテンシャルである.
4
+
5
+ ## エネルギー表記
6
+ EAMは原子$i$のエネルギーを
7
+ $$
8
+ E_i = \sum _ j\phi \left( r_j \right) + f(\rho)
9
+ $$
10
+ と表記する.右辺第1項は単なる2体間の相互作用を表わす.
11
+ 右辺第2項が多体項と呼ばれるEAMに特徴的な項である.
12
+ $r_j$はこの場合原子$j$との距離を意味しており,
13
+ $E_i$は原子$i$の周りの原子との和によって求まる.
14
+ 多体項は,一般的に
15
+ $$
16
+ f(\rho) =\sqrt{\rho}=\sqrt {\sum_j h^2 \left( r_j \right) }
17
+ $$
18
+ によって求められる.$\rho$は強結合(tight binding)の2次モーメント近似から,
19
+ 電子密度を表わすとされている.
20
+ これによって原子空孔を初め多くの金属物性を
21
+ うまく表現することが可能となった.詳しくは西谷・赤本参照.
22
+
23
+ ## 具体例
24
+ EAM potentialにおいて単原子空孔の生成エネルギEvは
25
+
26
+ $$
27
+ E_v = -\frac{E_c}{2}\frac{2-poq}{1-poq}
28
+ $$
29
+
30
+ の関係がある.したがって,
@@ -0,0 +1,10 @@
1
+ # lj_0
2
+
3
+ 神藤らが用いているLennard-Jonesポテンシャルの表式
4
+
5
+ $$
6
+ \begin{align*}
7
+ dedr=-\frac{ n m d_0 \left(rh^{n}- rh^{m}\right) }{ \left(n-m \right) rr } \\
8
+ E=\frac{ d_0 \left( r_0/rr^{n}m- r_0/rr^{m} n \right) }{ -n + m }
9
+ \end{align*}
10
+ $$
data/lib/mathjax-yard.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "mathjax-yard/version"
2
2
  require "mathjax-yard/script"
3
+ require "mathjax-yard/init"
3
4
  require 'optparse'
4
5
  require 'yaml'
5
6
  require 'fileutils'
@@ -15,7 +16,6 @@ module MathJaxYard
15
16
  @argv = argv
16
17
  @eq_data=Hash.new
17
18
  @eq_number =0
18
- @revert = false
19
19
  end
20
20
 
21
21
  def execute
@@ -26,54 +26,37 @@ module MathJaxYard
26
26
  exit
27
27
  }
28
28
  opt.on('-r', '--revert','revert mjx file to orig file.') {
29
- directory = @argv[0]==nil ? 'lib/../*/*.md.back' : @argv[0]
29
+ directory = @argv[0]==nil ? 'lib/../*' : @argv[0]
30
30
  revert(directory)
31
31
  exit
32
32
  }
33
- opt.on('-p', '--post','post operation.') {
33
+ opt.on('-p', '--pre','pre operation.') {
34
+ directory = @argv[0]==nil ? 'lib/../*' : @argv[0]
35
+ convert(directory)
36
+ exit
37
+ }
38
+ opt.on('--post','post operation.') {
34
39
  post_operation
35
- directory = @argv[0]==nil ? 'lib/../*/*.md.back' : @argv[0]
40
+ directory = @argv[0]==nil ? 'lib/../*' : @argv[0]
36
41
  revert(directory)
37
42
  exit
38
43
  }
39
- opt.on('-i', '--init','initiation for mathjax extension on yard layout.') {
44
+ opt.on('-i', '--init','init for mathjax on yard layout.') {
40
45
  init_yard()
41
46
  exit
42
47
  }
43
48
  end
44
- command_parser.banner = "Usage: yardmath [options] [DIRECTORY]"
49
+ command_parser.banner = <<EOF
50
+ Usage: mathjax-yard [options] [DIRECTORY]
51
+ with no extention: mathjax-yard -p lib/../*/*.md
52
+
53
+ EOF
45
54
  command_parser.parse!(@argv)
46
- directory = @argv[0]==nil ? 'lib/../*/*.md' : @argv[0]
55
+ directory = @argv[0]==nil ? 'lib/../*' : @argv[0]
47
56
  convert(directory)
48
57
  exit
49
58
  end
50
59
 
51
- def init_yard()
52
- target_dir=get_yard_layout_dir()
53
- FileUtils.cd(target_dir){
54
- tmp_dir='mathjax' # 'math2'
55
- FileUtils.cp_r('default',tmp_dir)
56
- modify_layout("#{tmp_dir}/layout/html/layout.erb")
57
- modify_layout("#{tmp_dir}/onefile/html/layout.erb")
58
- }
59
- end
60
-
61
- def get_yard_layout_dir()
62
- status, stdout, stderr = systemu('gem env | grep INSTALLATION ')
63
- p inst_dir= stdout.split("\n")[0].split(': ')[1]
64
- status, stdout, stderr = systemu('yard -v')
65
- p yard_num= stdout.split(' ')[0]+'-'+stdout.split(' ')[1]
66
- p target_dir = File.join(inst_dir,'gems',yard_num,"templates")
67
- return target_dir
68
- end
69
-
70
- def modify_layout(file_name)
71
- p file_name
72
- src=Ffile.read(file_name)
73
- src.gsub!(ORIGINAL,MATH_SCRIPT+ORIGINAL)
74
- File.write(file_name,src)
75
- end
76
-
77
60
  def post_operation
78
61
  src = File.read("./mathjax.yml")
79
62
  p data = YAML.load(src)
@@ -83,41 +66,46 @@ module MathJaxYard
83
66
  target = "./doc/file.#{basename}.html"
84
67
  src = File.read(target)
85
68
  tags.each_pair{|tag,eq|
86
- src.gsub!(tag,eq)
69
+ src.gsub!(tag){eq} # fail (tag,eq) at '/////n'
87
70
  }
88
71
  File.write(target,src)
89
72
  }
90
73
  end
91
74
 
75
+ MJX_FILE_EXT ='*.mjx.md'
92
76
  def revert(directory)
93
- files = Dir.glob(directory)
94
- files.each{|file|
95
- p b_file = file
96
- file.scan(/(.+).back$/)
97
- p t_file = $1
98
- FileUtils.mv(b_file,t_file)
77
+ files = Dir.glob(File.join(directory,MJX_FILE_EXT))
78
+ files.each{|m_file|
79
+ FileUtils.rm(m_file)
99
80
  }
100
81
  end
101
82
 
102
83
  def convert(directory)
103
- files = Dir.glob(directory)
104
- files.each{|file|
105
- @eq_data[file] = Hash.new
106
- lines = File.readlines(file)
107
- output = mk_tags(lines,file)
108
- if @eq_data[file].size ==0
109
- @eq_data.delete(file)
84
+ files = Dir.glob(File.join(directory,'*.md'))
85
+ files.each{|base_file|
86
+ m_file = mk_mjx_file_name(base_file)
87
+ @eq_data[m_file] = Hash.new
88
+ lines = File.readlines(base_file)
89
+ output = mk_tags(lines,m_file)
90
+ if @eq_data[m_file].size ==0
91
+ @eq_data.delete(m_file)
110
92
  else
111
- write_output_on_target(file,output)
93
+ write_output_on_target(base_file,output)
112
94
  end
113
95
  }
114
96
  File.write("mathjax.yml",YAML.dump(@eq_data))
115
97
  end
116
98
 
99
+ def mk_mjx_file_name(file)
100
+ dir=File.dirname(file)
101
+ File.basename(file).scan(/(.*).md/)
102
+ basename=$1
103
+ return File.join(dir,"#{basename}.mjx.md")
104
+ end
105
+
117
106
  def write_output_on_target(file,output)
118
- b_file = file+'.back'
119
- FileUtils.mv(file,b_file)
120
- File.write(file,output)
107
+ m_file = mk_mjx_file_name(file)
108
+ File.write(m_file,output)
121
109
  end
122
110
 
123
111
  def mk_tags(lines,file_name)
@@ -136,8 +124,10 @@ module MathJaxYard
136
124
  else #outside eq block
137
125
  case line
138
126
  when /\\\$(.*?)\\\$/
127
+ p line
139
128
  output << line # tryed to change $$ but failed.
140
129
  when /\$(.+?)\$/
130
+ p line
141
131
  line.gsub!(/\$(.+?)\$/){|equation|
142
132
  store_eq_data(equation,file_name)
143
133
  }
@@ -0,0 +1,34 @@
1
+ module MathJaxYard
2
+ class Command
3
+ def init_yard()
4
+ target_dir=get_yard_layout_dir()
5
+ FileUtils.cd(target_dir){
6
+ tmp_dir='mathjax' # 'math2'
7
+ full_path="#{target_dir}/#{tmp_dir}/layout/html/layout.erb"
8
+ if File.exist?("#{tmp_dir}/layout/html/layout.erb")
9
+ print("file #{full_path} exists.\nDelete them first.\n")
10
+ exit
11
+ end
12
+ FileUtils.cp_r('default',tmp_dir)
13
+ modify_layout("#{tmp_dir}/layout/html/layout.erb")
14
+ modify_layout("#{tmp_dir}/onefile/html/layout.erb")
15
+ }
16
+ end
17
+
18
+ def get_yard_layout_dir()
19
+ status, stdout, stderr = systemu('gem env | grep INSTALLATION ')
20
+ p inst_dir= stdout.split("\n")[0].split(': ')[1]
21
+ status, stdout, stderr = systemu('yard -v')
22
+ p yard_num= stdout.split(' ')[0]+'-'+stdout.split(' ')[1]
23
+ p target_dir = File.join(inst_dir,'gems',yard_num,"templates")
24
+ return target_dir
25
+ end
26
+
27
+ def modify_layout(file_name)
28
+ p file_name
29
+ src=File.read(file_name)
30
+ src.gsub!(ORIGINAL,MATH_SCRIPT+ORIGINAL)
31
+ File.write(file_name,src)
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module MathJaxYard
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
data/mathjax.yml CHANGED
@@ -1,30 +1,26 @@
1
1
  ---
2
- lib/../mathjax-yard.wiki/atom.md:
2
+ lib/../mathjax-yard.wiki/atom.mjx.md:
3
3
  "$MATHJAX1$": "$i$"
4
4
  "$MATHJAX2$": |-
5
- $$E_i = \sum_j\phi \left( r_j \right) + f(\rho)
5
+ $$E_i = \sum _ j\phi \left( r_j \right) + f(\rho)
6
6
  $$
7
7
  "$MATHJAX3$": "$r_j$"
8
8
  "$MATHJAX4$": "$j$"
9
9
  "$MATHJAX5$": "$E_i$"
10
10
  "$MATHJAX6$": "$i$"
11
11
  "$MATHJAX7$": |-
12
- $$f(\rho) =\sqrt{\rho}=\sqrt{\sum_j h^2 \left( r_j \right) }
12
+ $$f(\rho) =\sqrt{\rho}=\sqrt {\sum_j h^2 \left( r_j \right) }
13
13
  $$
14
14
  "$MATHJAX8$": "$\\rho$"
15
- "$MATHJAX9$": "$NPT$"
16
- "$MATHJAX10$": "$E-V$"
17
- "$MATHJAX11$": "$T=0.1$"
18
- "$MATHJAX12$": "$E_v$"
19
- "$MATHJAX13$": |-
20
- $$E_v = -\frac{E_c}{2} \frac{2-poq}{1-poq}
15
+ "$MATHJAX9$": |-
16
+ $$E_v = -\frac{E_c}{2}\frac{2-poq}{1-poq}
21
17
  $$
22
- "$MATHJAX14$": "$q$"
23
- lib/../mathjax-yard.wiki/potential2.md:
24
- "$MATHJAX15$": "$$ F(s)=\\int_{0}^{\\infty}f(t)e^{-st}dt $"
25
- "$MATHJAX16$": |-
26
- $$
27
- r_1=r/r_0
28
-
29
- \frac{ d_0 \left( r_1^{-n}m- r_1^{-m} n \right) }{ -n + m }
18
+ lib/../mathjax-yard.wiki/potential.mjx.md:
19
+ "$MATHJAX10$": |-
20
+ $$\begin{align*}
21
+ dedr=-\frac{ n m d_0 \left(rh^{n}- rh^{m}\right) }{ \left(n-m \right) rr } \\
22
+ E=\frac{ d_0 \left( r_0/rr^{n}m- r_0/rr^{m} n \right) }{ -n + m }
23
+ \end{align*}
30
24
  $$
25
+ lib/../mathjax-yard.wiki/Why_mathjax-yard.mjx.md:
26
+ "$MATHJAX11$": "$LaTeX$"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mathjax-yard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shigeto R. Nishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-23 00:00:00.000000000 Z
11
+ date: 2016-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,8 +109,12 @@ files:
109
109
  - doc/file.Home.html
110
110
  - doc/file.README.html
111
111
  - doc/file.README_ja.html
112
+ - doc/file.Why_mathjax-yard.html
113
+ - doc/file.Why_mathjax-yard.mjx.html
112
114
  - doc/file.atom.html
113
- - doc/file.potential2.html
115
+ - doc/file.atom.mjx.html
116
+ - doc/file.potential.html
117
+ - doc/file.potential.mjx.html
114
118
  - doc/file_list.html
115
119
  - doc/frames.html
116
120
  - doc/index.html
@@ -119,8 +123,13 @@ files:
119
123
  - doc/js/jquery.js
120
124
  - doc/method_list.html
121
125
  - doc/top-level-namespace.html
126
+ - docs/README_ja.hiki
127
+ - docs/Why_mathjax-yard.hiki
128
+ - docs/atom.hiki
129
+ - docs/potential.hiki
122
130
  - exe/mathjax-yard
123
131
  - lib/mathjax-yard.rb
132
+ - lib/mathjax-yard/init.rb
124
133
  - lib/mathjax-yard/script.rb
125
134
  - lib/mathjax-yard/version.rb
126
135
  - mathjax-yard.gemspec
@@ -1,196 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <script type="text/x-mathjax-config">
6
- MathJax.Hub.Config({
7
- tex2jax:{
8
- inlineMath: [ ['$','$'], ["\(","\)"] ],
9
- displayMath: [ ['$$','$$'], ["\[","\]"] ]
10
- }
11
- });
12
- </script>
13
- <script type="text/javascript"
14
- src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
15
- </script>
16
- <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" />
17
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
18
- <title>
19
- File: potential2
20
-
21
- &mdash; Documentation by YARD 0.8.7.6
22
-
23
- </title>
24
-
25
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
26
-
27
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
28
-
29
- <script type="text/javascript" charset="utf-8">
30
- hasFrames = window.top.frames.main ? true : false;
31
- relpath = '';
32
- framesUrl = "frames.html#!file.potential2.html";
33
- </script>
34
-
35
-
36
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
37
-
38
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
39
-
40
-
41
- </head>
42
- <body>
43
- <div id="header">
44
- <div id="menu">
45
-
46
- <a href="_index.html">Index</a> &raquo;
47
- <span class="title">File: potential2</span>
48
-
49
-
50
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
51
- </div>
52
-
53
- <div id="search">
54
-
55
- <a class="full_list_link" id="class_list_link"
56
- href="class_list.html">
57
- Class List
58
- </a>
59
-
60
- <a class="full_list_link" id="method_list_link"
61
- href="method_list.html">
62
- Method List
63
- </a>
64
-
65
- <a class="full_list_link" id="file_list_link"
66
- href="file_list.html">
67
- File List
68
- </a>
69
-
70
- </div>
71
- <div class="clear"></div>
72
- </div>
73
-
74
- <iframe id="search_frame"></iframe>
75
-
76
- <div id="content"><div id='filecontents'><h1>lj0</h1>
77
-
78
- <p>標準的なLennard-Jonesポテンシャルの表式</p>
79
-
80
- <p>$$ F(s)=\int_{0}^{\infty}f(t)e^{-st}dt $$</p>
81
-
82
- <pre class="code ruby"><code class="ruby">bob% cat POTCAR
83
- ---
84
- :type: lj0
85
- :element: Al
86
- :a0: 1.587401051*0.7071067812/2.857701314;
87
- :e0: -1*4.0/12.0;
88
- :a: 18.19007708
89
- :b: 89.22765864
90
- :p: 3.0
91
- :q: 5.0
92
- :cut_off: 4.0*0.8
93
- :energy: -a*(1/r**p)+b*(1/r**q)
94
- :dedr: (p*a/r**(p+1.0))-(q*b/r**(q+1.0))
95
- </code></pre>
96
-
97
- <h1>lj_jindo</h1>
98
-
99
- <p>神藤先生あるいはVu Van Huangが使っていたLennard-Jonesポテンシャルの表式.</p>
100
-
101
- <pre class="code ruby"><code class="ruby">bob% cat POTCAR_jindo_Cu
102
- ---
103
- :type: lj_jindo
104
- :element: Cu
105
- :d0: 4125.70
106
- :n: 9.00
107
- :m: 5.50
108
- :r0: 2.5487e-8
109
- :alat: 3.6153e-8
110
- :atom_mass: 63.5460/6.023e23
111
- :energy: d0*((r/r0)^(-n)*m-(r/r0)^(-m)*n)/(m-n)
112
- :dedr: d0*m*n*((r/r0)^(-m)-(r/r0)^(-n))/(r*(m-n))
113
- </code></pre>
114
-
115
- <pre class="code ruby"><code class="ruby">Cu
116
- d0 := 4125.70;
117
- vn := 9.00;
118
- vm := 5.50;
119
- r0 := 2.5487e-8;
120
- rh:=r0/rr;
121
- dedr:=unapply(-d0*vm*vn / ((vn-vm)*rr) * (rh**vn - rh**vm),rr);
122
- eq1:=int(dedr(r),r);
123
- func:=unapply(eq1,rr);
124
- r1:=2.5487*10^(-8)*0.8;
125
- r2:=2.5487*10^(-8)*1.5;
126
- plot(8.617385e-05*func(r),r=r1..r2);
127
- </code></pre>
128
-
129
- <pre class="code ruby"><code class="ruby"> dedr:=unapply(-d0*vm*vn / ((vn-vm)*rr) * (rh**vn - rh**vm),rr);
130
- eq1:=int(dedr(r),r);
131
- -{ 1.821482757\times 10^{-38}} r{-5.5}+
132
- { 2.942122564\times 10^{-65}} r^{-9}
133
- </code></pre>
134
-
135
- <pre class="code ruby"><code class="ruby">rh:=r0/rr;
136
- dedr:=normal(expand(d0*vm*vn / ((vn-vm)*rr) * (rh**vn - rh**vm)));
137
- eq1:=simplify(int(dedr,rr));
138
- </code></pre>
139
-
140
- <p>$$
141
- r_1=r/r_0
142
-
143
- \frac{ d_0 \left( r_1^{-n}m- r_1^{-m} n \right) }{ -n + m }
144
- $$</p>
145
-
146
- <h1>ポテンシャル選択機構</h1>
147
-
148
- <p>module LJに記述</p>
149
-
150
- <pre class="code ruby"><code class="ruby"> <span class='kw'>def</span> <span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>POTCAR</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
151
- <span class='comment'># p src = YAML.load_file(ARGV[0])
152
- </span> <span class='id identifier rubyid_p'>p</span> <span class='id identifier rubyid_src'>src</span> <span class='op'>=</span> <span class='const'>YAML</span><span class='period'>.</span><span class='id identifier rubyid_load_file'>load_file</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
153
- <span class='cvar'>@@potential</span><span class='op'>=</span><span class='kw'>case</span> <span class='id identifier rubyid_src'>src</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span>
154
- <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>lj0</span><span class='tstring_end'>&#39;</span></span>
155
- <span class='const'>LJ0</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_src'>src</span><span class='rparen'>)</span>
156
- <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>lj_jindo</span><span class='tstring_end'>&#39;</span></span>
157
- <span class='const'>LJ_Jindo</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_src'>src</span><span class='rparen'>)</span>
158
- <span class='kw'>end</span>
159
- <span class='kw'>end</span>
160
- </code></pre>
161
-
162
- <ul>
163
- <li>委譲による選択
164
-
165
- <ul>
166
- <li>pseudovasp.rbにLJ.select(&#39;POTCAR&#39;)がある.</li>
167
- <li>LJ0あるいはLJ_Jindoをclassとして用意.</li>
168
- </ul></li>
169
- <li>POTCARへのYAMLでの記述</li>
170
- <li>クラス変数によるクラス共通の変数定義</li>
171
- </ul>
172
-
173
- <p>EAMとの統一を考えたが,energy, forceのmethodの選択を
174
- どっかでしないとダメで,その綺麗なやり方が思いつかず,
175
- そのままにした.</p>
176
-
177
- <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>EAMAtom</span> <span class='op'>&lt;</span> <span class='const'>Atom</span>
178
- <span class='id identifier rubyid_include'>include</span> <span class='const'>EAM</span>
179
- <span class='kw'>end</span>
180
-
181
- <span class='kw'>class</span> <span class='const'>LJAtom</span> <span class='op'>&lt;</span> <span class='const'>Atom</span>
182
- <span class='id identifier rubyid_include'>include</span> <span class='const'>LJ</span>
183
- <span class='kw'>end</span>
184
- </code></pre>
185
-
186
- <p>となっており,ほぼ元どおり.</p>
187
- </div></div>
188
-
189
- <div id="footer">
190
- Generated on Thu Jun 23 14:03:52 2016 by
191
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
192
- 0.8.7.6 (ruby-2.2.2).
193
- </div>
194
-
195
- </body>
196
- </html>