<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB11%3A%E7%95%8C%E9%9D%A2%E5%BC%B5%E5%8A%9B%E8%A8%88%E7%AE%97</id>
	<title>チュートリアル11:界面張力計算 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB11%3A%E7%95%8C%E9%9D%A2%E5%BC%B5%E5%8A%9B%E8%A8%88%E7%AE%97"/>
	<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB11:%E7%95%8C%E9%9D%A2%E5%BC%B5%E5%8A%9B%E8%A8%88%E7%AE%97&amp;action=history"/>
	<updated>2026-07-14T03:02:31Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB11:%E7%95%8C%E9%9D%A2%E5%BC%B5%E5%8A%9B%E8%A8%88%E7%AE%97&amp;diff=1059&amp;oldid=prev</id>
		<title>Hirano: ページの作成:「界面張力の計算を行う時、平衡化については他の方法と同様である。従ってここでは、サンプリング(インプットとしてどの変…」</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB11:%E7%95%8C%E9%9D%A2%E5%BC%B5%E5%8A%9B%E8%A8%88%E7%AE%97&amp;diff=1059&amp;oldid=prev"/>
		<updated>2026-05-26T02:37:48Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「界面張力の計算を行う時、平衡化については他の方法と同様である。従ってここでは、サンプリング(インプットとしてどの変…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;界面張力の計算を行う時、平衡化については他の方法と同様である。従ってここでは、サンプリング(インプットとしてどの変数を指定するか)と、それによって得られたアウトプットファイルへの処理について述べることとする。&lt;br /&gt;
&lt;br /&gt;
== サンプリング ==&lt;br /&gt;
ここでは、平衡化によって80トラジェクトリ―のファイルが得られたとき、そこからどのように界面張力を計算していくのかを水の気液界面を例にとって述べることとする。&lt;br /&gt;
また、この計算におけるセルサイズなどは以下のようになっている。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Water_set.png|500px]]&lt;br /&gt;
&lt;br /&gt;
計算を行う際は、tutorial11内部にあるファイルを一旦FreeFlex外部にコピーしてから行うこと。&lt;br /&gt;
&lt;br /&gt;
今回の計算では、80個の系を計算し、それぞれを平均して圧力を求める。以下にサブミットファイルの例を示す。&lt;br /&gt;
&lt;br /&gt;
なお、新たに気液界面の系を作成する場合は、平衡化時に壁を置くなどinputファイルを変更する必要がある。（[[チュートリアル10:溶液界面のグランドカノニカルMD|Tutorial10]]を参照）&lt;br /&gt;
 === sub_fep.sh ================================================================================&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 #PBS -N tutorial_11                                                                                             &lt;br /&gt;
 #PBS -l select=1:ncpus=16:mpiprocs=16:ompthreads=1&lt;br /&gt;
 #PBS -l walltime=80:00:00&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 &lt;br /&gt;
 ###### ユーザー指定の変数の default 以外を設定する。###########################&lt;br /&gt;
 RNODE=****00&lt;br /&gt;
 RDIR=&lt;br /&gt;
 RFILE=&lt;br /&gt;
 WDIR=/work/(USER)/$$&lt;br /&gt;
 SAVE=&lt;br /&gt;
 &lt;br /&gt;
     echo -n 'START: '; date&lt;br /&gt;
     ###### initialization #####################################################&lt;br /&gt;
     ######  [1] mpd  ######&lt;br /&gt;
     touch /tmp/node_$$&lt;br /&gt;
     trap 'rm /tmp/node_$$' 1 2 3 15&lt;br /&gt;
     uniq $PBS_NODEFILE &amp;gt; /tmp/node_$$&lt;br /&gt;
     NPROCS=`cat $PBS_NODEFILE | wc -l`&lt;br /&gt;
     NHOSTS=`cat /tmp/node_$$ | wc -l`&lt;br /&gt;
     for i in `cat /tmp/node_$$`&lt;br /&gt;
     do  &lt;br /&gt;
         rsh $i mpdcleanup &amp;gt;/dev/null&lt;br /&gt;
     done&lt;br /&gt;
     mpdboot -f /tmp/node_$$ -n $NHOSTS -r rsh &lt;br /&gt;
 &lt;br /&gt;
     ###### [2] files  ######&lt;br /&gt;
     echo 'RNODE: '${RNODE:='fep'}          # default は、'fep'になる。&lt;br /&gt;
     echo 'RDIR:  '${RDIR:=$PBS_O_WORKDIR}  # defalut は、サブミットした場所。&lt;br /&gt;
     echo 'RFILE: '${RFILE:=&amp;quot;*&amp;quot;}            # default は、すべて。&lt;br /&gt;
     echo 'WDIR:  '${WDIR:=$HOME/$$}        # default は、$HOME/$$&lt;br /&gt;
     echo 'SAVE:  '${SAVE:=0}               # default は、0&lt;br /&gt;
     echo 'PBS_NODE: '`cat /tmp/node_$$`&lt;br /&gt;
 &lt;br /&gt;
     test -e $WDIR || mkdir -p $WDIR        # WDIR をつくる。&lt;br /&gt;
     cd $WDIR&lt;br /&gt;
     touch touch_$$&lt;br /&gt;
     if [ &amp;quot;`rsh $RNODE ls $RDIR/touch_$$ 2&amp;gt;/dev/null`&amp;quot; == &amp;quot;$RDIR/touch_$$&amp;quot; ]; then&lt;br /&gt;
        IDENTICAL=0     # RDIR と WDIR が同一のとき、何もしない。&lt;br /&gt;
     else&lt;br /&gt;
         IDENTICAL=1     # RDIR と WDIR が別ディレクトリのとき、RNODE の入力ファイルを WDIR にコピー。&lt;br /&gt;
         rsh $RNODE &amp;quot;cd $RDIR; tar czf - $RFILE&amp;quot; | tar xzf -&lt;br /&gt;
     fi  &lt;br /&gt;
     rm touch_$$&lt;br /&gt;
  &lt;br /&gt;
 #######  execution  ###########################################################&lt;br /&gt;
 mpiexec -machinefile $PBS_NODEFILE -n $NPROCS /home/(USER)/FreeFlex/FreeFlex.exe input_sam.nml&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 ...&lt;br /&gt;
 ===============================================================================================&lt;br /&gt;
&lt;br /&gt;
こういったサブミットファイルを作業ディレクトリ上で&lt;br /&gt;
 &amp;gt; qsub sub_fep.sh&lt;br /&gt;
とすれば、計算が行われる。&lt;br /&gt;
&lt;br /&gt;
この計算は計算機にもよるが大体３日ほどかかるので、必要に応じてompthreadを変更するとよい。&lt;br /&gt;
&lt;br /&gt;
サンプリングの際のnmlファイル(input_sam.nml)を以下に示す。&lt;br /&gt;
 === input_sam.nml =============================================================================&lt;br /&gt;
 &amp;amp;FreeFlex&lt;br /&gt;
   （略）&lt;br /&gt;
      calculate_press = .true.&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;MONITOR&lt;br /&gt;
   interval = 1&lt;br /&gt;
   file=&amp;quot;press_sam.output&amp;quot;&lt;br /&gt;
   condition = &amp;quot;PRESS&amp;quot;&lt;br /&gt;
   overwrite = .false.&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;MONITOR&lt;br /&gt;
   interval = 1&lt;br /&gt;
   file=&amp;quot;pressCON_sam.output&amp;quot;&lt;br /&gt;
   condition = &amp;quot;PRESSCON&amp;quot;&lt;br /&gt;
   overwrite = .false.&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;MONITOR&lt;br /&gt;
   interval = 1&lt;br /&gt;
   file=&amp;quot;press_z_sam.output&amp;quot;&lt;br /&gt;
   condition = &amp;quot;PRESS_z&amp;quot;&lt;br /&gt;
   overwrite = .true.&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;MONITOR&lt;br /&gt;
   interval = 1&lt;br /&gt;
   file=&amp;quot;pressCON_z_sam.output&amp;quot;&lt;br /&gt;
   condition = &amp;quot;PRESSCON_z&amp;quot;&lt;br /&gt;
   overwrite = .true.&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;constraint&lt;br /&gt;
   tolerance = 1.0d-18&lt;br /&gt;
 /&lt;br /&gt;
 ===============================================================================================&lt;br /&gt;
ここで、FreeFlexのネームリストとして、calculate_press = .true.とすることで圧力テンソルの計算を行う。&lt;br /&gt;
&lt;br /&gt;
圧力テンソルの計算結果を出力する変数としては、PRESSS、PRESSCON、PRESS_ｚ、PRESSCON_ｚがあり、これらを指定する必要がある。この内PRESS_z、PRESSCON_zについては、overwrite=.true.としないと毎ステップ各ビンの圧力テンソルが出力されるので、これを.true.とすることでステップについて平均の値を出力することを推奨する。またこれらの変数の説明についてはネームリストのページを見てほしい。([[Monitor System|&amp;amp;MONITOR]]を参照）&lt;br /&gt;
&lt;br /&gt;
また、圧力テンソルの計算においては拘束力計算の収束判定条件をデフォルトの1.0d-6 angstromsではなく、1.0d-8 angstromにしなければならない。&lt;br /&gt;
&lt;br /&gt;
== サンプリング結果 ==&lt;br /&gt;
MONITOR変数の指定によって界面に対して垂直な方向に沿った圧力テンソルの出力として、以下のようなファイルが得られる。&lt;br /&gt;
 ========press_z_sam.output========================================================================================================================================================&lt;br /&gt;
 z, P_K[xx,yy,zz], P_U [xx, yy, zz, xy, yz, zx]&lt;br /&gt;
  -0.4950000000E-08    0.2805166548E+05    0.4418980353E+05    0.5998336912E+05   -0.6615222747E+04   -0.9190008810E+04    0.7859812530E+04    0.1358711871E+04   -0.9372980979E+03   -0.1105971529E+04&lt;br /&gt;
  -0.4850000000E-08    0.3284841367E+05    0.4179705637E+05    0.5919083945E+05    0.3812638440E+04    0.5554852780E+04   -0.1714722034E+04   -0.1484721547E+04    0.1834053745E+04    0.8854751769E+03&lt;br /&gt;
                                                               ・・・・・・・・・・・・・・・・・(略)&lt;br /&gt;
 ==================================================================================================================================================================================&lt;br /&gt;
&lt;br /&gt;
 ========pressCON_z_sam.output==============================================================================================================&lt;br /&gt;
 z, P_CON [xx, yy, zz, xy, yz, zx]&lt;br /&gt;
 　-0.4950000000E-08   -0.2283145371E+05   -0.5107960470E+05   -0.4567547172E+05   -0.1930124471E+05    0.9124466958E+04   -0.1273752864E+05&lt;br /&gt;
   -0.4850000000E-08   -0.2719560202E+05   -0.4385404221E+05   -0.4487171913E+05   -0.1161909582E+05    0.1979643347E+04   -0.1472059856E+05&lt;br /&gt;
                                                 ・・・・・・・・・・・・・・・・・(略)&lt;br /&gt;
 ===========================================================================================================================================&lt;br /&gt;
トラジェクトリを80個並列で流した場合、このようなファイルも80個分出力される。これら80個のデータを平均化するには、以下のようなファイルを作り実行すればよい。&lt;br /&gt;
 ========ave_z.f90==============================================================================================================&lt;br /&gt;
 program main&lt;br /&gt;
 integer,parameter :: nfile=80&lt;br /&gt;
 integer,parameter :: nline=100&lt;br /&gt;
 character(len=4) :: cfile&lt;br /&gt;
 real*8 :: z(1:nline), p(1:15,1:nline)&lt;br /&gt;
 real*8 :: p_data(1:6,1:nline,1:nfile), p_ave(1:6,1:nline), p_diff(1:6,1:nline,1:nfile), error(1:6,1:nline)&lt;br /&gt;
 real*8 :: z_, p_(1:15)&lt;br /&gt;
 integer :: ifile,i&lt;br /&gt;
 &lt;br /&gt;
 z = 0.d0&lt;br /&gt;
 p = 0.d0&lt;br /&gt;
 do ifile=0,nfile-1&lt;br /&gt;
   write(cfile,'(i4.4)') ifile&lt;br /&gt;
   write(*,*) cfile&lt;br /&gt;
 &lt;br /&gt;
   open(90,file='../'//cfile//'/press_z_sam.output')&lt;br /&gt;
   read(90,*)&lt;br /&gt;
   do iline=1,nline&lt;br /&gt;
     read(90,*) z_, p_(1:9)&lt;br /&gt;
     z(iline) = z(iline) + z_&lt;br /&gt;
     p(1:9,iline) = p(1:9,iline) + p_(1:9)&lt;br /&gt;
     p_data(1:3,iline,ifile) =  p_data(1:3,iline,ifile) + p_(1:3) +p_(4:6)&lt;br /&gt;
     p_data(4:6,iline,ifile) =  p_data(4:6,iline,ifile) + p_(7:9)&lt;br /&gt;
   end do&lt;br /&gt;
   close(90)&lt;br /&gt;
 &lt;br /&gt;
   open(80,file='../'//cfile//'/pressCON_z_sam.output')&lt;br /&gt;
   read(80,*)&lt;br /&gt;
   do iline=1,nline&lt;br /&gt;
     read(80,*) z_, p_(10:15)&lt;br /&gt;
     p(10:15,iline) = p(10:15,iline) + p_(10:15)&lt;br /&gt;
     p_data(1:6,iline,ifile) =  p_data(1:6,iline,ifile) + p_(10:15)&lt;br /&gt;
   end do&lt;br /&gt;
   close(80)&lt;br /&gt;
 &lt;br /&gt;
 end do&lt;br /&gt;
 z = z/dble(nfile)&lt;br /&gt;
 p = p/dble(nfile)&lt;br /&gt;
 &lt;br /&gt;
 !!!error計算&lt;br /&gt;
 p_ave(1:3,1:nline) = p(1:3,1:nline) + p(4:6,1:nline) +p(10:12,1:nline)&lt;br /&gt;
 p_ave(4:6,1:nline) = p(7:9,1:nline) + p(13:15,1:nline)&lt;br /&gt;
 do i = 1,nfile&lt;br /&gt;
   p_diff(1:6,1:nline,i) = p_data(1:6,1:nline,i) - p_ave(1:6,1:nline)&lt;br /&gt;
 end do&lt;br /&gt;
 error(1:6,1:nline) = sqrt(sum(p_diff(1:6,1:nline,1:nfile)**2,3)/dble(nfile))&lt;br /&gt;
 &lt;br /&gt;
 open(100,file='press_z_sam.dat')&lt;br /&gt;
 do iline= 1,nline&lt;br /&gt;
 ===============================================================================================================================&lt;br /&gt;
これによって得られたpress_z_sam.datを以下のpz.pltとgnuplotを用いてプロットすれば良い。&lt;br /&gt;
 ========pz.plt=====================================================================================&lt;br /&gt;
 reset&lt;br /&gt;
 &lt;br /&gt;
 set encoding iso&lt;br /&gt;
 set terminal png font &amp;quot;Times&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 set out 'pol3_pressz.png'&lt;br /&gt;
 &lt;br /&gt;
 set key font &amp;quot;,13&amp;quot;&lt;br /&gt;
 set tics font &amp;quot;,13&amp;quot;&lt;br /&gt;
 set xlabel font &amp;quot;,17&amp;quot;&lt;br /&gt;
 set ylabel font &amp;quot;,17&amp;quot;&lt;br /&gt;
 set grid&lt;br /&gt;
 &lt;br /&gt;
 set xlabel &amp;quot;{/:Italic z} (\305)&amp;quot; offset 0.0,0.2 &lt;br /&gt;
 &lt;br /&gt;
 set ylabel &amp;quot;{/:Italic P} (MPa)&amp;quot; offset 0.0,0.0&lt;br /&gt;
 set key top outside&lt;br /&gt;
 &lt;br /&gt;
 a=10e-6&lt;br /&gt;
 angs=1.e+10&lt;br /&gt;
 dLz=9.91*10e-11&lt;br /&gt;
 &lt;br /&gt;
 #P_K(運動エネルギー由来の圧力テンソル)&lt;br /&gt;
 #plot 'press_z_sam.dat' u ($1*angs):($2*a) w l lw 2 lc rgb &amp;quot;dark-orange&amp;quot; title &amp;quot;xx&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($3*a) w l lw 2 lc rgb &amp;quot;orange&amp;quot; title &amp;quot;yy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($4*a) w l lw 2 lc rgb &amp;quot;red&amp;quot; title &amp;quot;zz&amp;quot;,\  &lt;br /&gt;
 &lt;br /&gt;
 #P_U(相互作用由来の圧力テンソル)&lt;br /&gt;
 #plot 'press_z_sam.dat' u ($1*angs):($5*a) w l lw 2 lc rgb &amp;quot;dark-orange&amp;quot; title &amp;quot;xx&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($6*a) w l lw 2 lc rgb &amp;quot;orange&amp;quot; title &amp;quot;yy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($7*a) w l lw 2 lc rgb &amp;quot;red&amp;quot; title &amp;quot;zz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($8*a) w l lw 2 lc rgb &amp;quot;dark-blue&amp;quot; title &amp;quot;xy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($9*a) w l lw 2 lc rgb &amp;quot;blue&amp;quot; title &amp;quot;yz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($10*a) w l lw 2 lc rgb &amp;quot;skyblue&amp;quot; title &amp;quot;zx&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #P_CON(拘束力由来の圧力テンソル)&lt;br /&gt;
 #plot 'press_z_sam.dat' u ($1*angs):($11*a) w l lw 2 lc rgb &amp;quot;dark-orange&amp;quot; title &amp;quot;xx&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($12*a) w l lw 2 lc rgb &amp;quot;orange&amp;quot; title &amp;quot;yy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($13*a) w l lw 2 lc rgb &amp;quot;red&amp;quot; title &amp;quot;zz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($14*a) w l lw 2 lc rgb &amp;quot;dark-blue&amp;quot; title &amp;quot;xy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($15*a) w l lw 2 lc rgb &amp;quot;blue&amp;quot; title &amp;quot;yz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($16*a) w l lw 2 lc rgb &amp;quot;skyblue&amp;quot; title &amp;quot;zx&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #P(圧力テンソル)&lt;br /&gt;
 plot 'press_z_sam.dat' u ($1*angs):($2*a+$5*a+$11*a) w l lw 2 lc rgb &amp;quot;dark-orange&amp;quot; title &amp;quot;xx&amp;quot;,\&lt;br /&gt;
     'press_z_sam.dat' u ($1*angs):($3*a+$6*a+$12*a) w l lw 2 lc rgb &amp;quot;orange&amp;quot; title &amp;quot;yy&amp;quot;,\&lt;br /&gt;
     'press_z_sam.dat' u ($1*angs):($4*a+$7*a+$13*a) w l lw 2 lc rgb &amp;quot;red&amp;quot; title &amp;quot;zz&amp;quot;,\&lt;br /&gt;
     'press_z_sam.dat' u ($1*angs):($8*a+$14*a) w l lw 2 lc rgb &amp;quot;dark-blue&amp;quot; title &amp;quot;xy&amp;quot;,\&lt;br /&gt;
     'press_z_sam.dat' u ($1*angs):($9*a+$15*a) w l lw 2 lc rgb &amp;quot;blue&amp;quot; title &amp;quot;yz&amp;quot;,\&lt;br /&gt;
     'press_z_sam.dat' u ($1*angs):($10*a+$16*a) w l lw 2 lc rgb &amp;quot;skyblue&amp;quot; title &amp;quot;zx&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ##errorの表示&lt;br /&gt;
 #plot 'press_z_sam.dat' u ($1*angs):($2*a+$5*a+$11*a):($17*a) with errorbars  lc rgb &amp;quot;dark-orange&amp;quot; title &lt;br /&gt;
 &amp;quot;xx&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($3*a+$6*a+$12*a):($18*a) with errorbars  lc rgb &amp;quot;orange&amp;quot; title &lt;br /&gt;
 &amp;quot;yy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($4*a+$7*a+$13*a):($19*a) with errorbars  lc rgb &amp;quot;red&amp;quot; title &amp;quot;zz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($8*a+$14*a):($20*a) with errorbars lc rgb &amp;quot;dark-blue&amp;quot; title &amp;quot;xy&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($9*a+$15*a):($21*a) with errorbars lc rgb &amp;quot;blue&amp;quot; title &amp;quot;yz&amp;quot;,\&lt;br /&gt;
 #     'press_z_sam.dat' u ($1*angs):($10*a+$16*a):($22*a) with errorbars lc rgb &amp;quot;skyblue&amp;quot; title &amp;quot;zx&amp;quot;&lt;br /&gt;
 ===================================================================================================&lt;br /&gt;
&lt;br /&gt;
これを&lt;br /&gt;
 &amp;gt;gnuplot pz.plt&lt;br /&gt;
と実行すると、以下のようなプロフィールを得る。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:pressz.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ここで、プロットした結果において非対角成分(xy,xz,xz)が0に近くならない場合、何かしら異常があると思われる。&lt;br /&gt;
&lt;br /&gt;
（例として、平衡化、サンプリング時間不足、初期構造が悪いなど）&lt;br /&gt;
&lt;br /&gt;
また、この圧力テンソルのプロフィールについて&lt;br /&gt;
&lt;br /&gt;
法線方向と接線方向の差の積分値を計算する以下のプログラムを実行すれば界面張力を得る。&lt;br /&gt;
 ===ave_g.f90===================================================================================================================&lt;br /&gt;
 program main&lt;br /&gt;
  implicit none&lt;br /&gt;
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
  integer,parameter :: nfile=80&lt;br /&gt;
  integer,parameter :: nbin=100&lt;br /&gt;
  integer,parameter :: skip = 1&lt;br /&gt;
  character(len=4) :: cfile&lt;br /&gt;
  real*8 ::  z, P_K(1:3), P_U(1:6), P_CON(1:6), P(1:6)&lt;br /&gt;
  real*8 ::  G, total_G(1:nfile), total_G2(1:16)&lt;br /&gt;
  real*8 ::  gamma, gamma2, Var_gamma&lt;br /&gt;
  integer :: ibin,ifile,i,ifile_&lt;br /&gt;
  real*8,parameter :: Lz = 100.0d-10 !!!z方向のセル長&lt;br /&gt;
  real*8,parameter :: dz = 100.0d-12 !!!一つのビンの長さ(=Lz/nbin)&lt;br /&gt;
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
 &lt;br /&gt;
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
  total_G =0.0d0&lt;br /&gt;
  total_G2 = 0.0d0&lt;br /&gt;
  do ifile=0,nfile-1&lt;br /&gt;
    write(cfile,'(i4.4)') ifile&lt;br /&gt;
    write(*,*) cfile&lt;br /&gt;
    ifile_ = ifile + 1&lt;br /&gt;
 &lt;br /&gt;
    P = 0.0d0&lt;br /&gt;
    G = 0.0d0&lt;br /&gt;
    open(90,file='../'//cfile//'/press_z_sam.output',status='old')&lt;br /&gt;
      !!!読み飛ばす&lt;br /&gt;
      do i = 1,skip&lt;br /&gt;
        read(90,*)&lt;br /&gt;
      end do&lt;br /&gt;
 &lt;br /&gt;
    open(80,file='../'//cfile//'/pressCON_z_sam.output',status='old')&lt;br /&gt;
       !!!読み飛ばす&lt;br /&gt;
       do i = 1,skip&lt;br /&gt;
         read(80,*)&lt;br /&gt;
       end do&lt;br /&gt;
 &lt;br /&gt;
      do ibin=1,nbin&lt;br /&gt;
        read(90,*) z,P_K(1:3),P_U(1:6)&lt;br /&gt;
        read(80,*) z,P_CON(1:6)&lt;br /&gt;
        P(1:3) = P_K(1:3)+P_U(1:3)+P_CON(1:3)&lt;br /&gt;
        P(4:6) = P_U(4:6)+P_CON(4:6)&lt;br /&gt;
        G = (P(3)-0.5d0*(P(1)+P(2)))*dz/2.0d0 !１つのセルにつき二つの界面で計算しているので2で割る。&lt;br /&gt;
        total_G(ifile_) = total_G(ifile_) + G&lt;br /&gt;
      end do&lt;br /&gt;
    close(90)&lt;br /&gt;
    close(80)&lt;br /&gt;
 &lt;br /&gt;
  end do&lt;br /&gt;
 &lt;br /&gt;
  write(*,*) 'total_G'&lt;br /&gt;
  write(*,'(10e15.7)') total_G(1:nfile)&lt;br /&gt;
 &lt;br /&gt;
  gamma = sum(total_G)/dble(nfile)&lt;br /&gt;
  total_G(1:nfile) = total_G(1:nfile) - gamma&lt;br /&gt;
  Var_gamma = sum(total_G(1:nfile)**2)/dble(nfile)&lt;br /&gt;
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
 &lt;br /&gt;
  write(*,*) 'surface tension (N/m)'&lt;br /&gt;
  write(*,'(10e15.7)') gamma&lt;br /&gt;
  write(*,*) 'deviation'&lt;br /&gt;
  write(*,'(10e15.7)') sqrt(Var_gamma)&lt;br /&gt;
  &lt;br /&gt;
 end program main&lt;br /&gt;
 ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
これを実行した結果は以下のようになった。&lt;br /&gt;
 ===================================================================================&lt;br /&gt;
  total_G&lt;br /&gt;
   0.4822124E-01  0.5462081E-01  0.5266729E-01  0.5506123E-01  0.5436713E-01  0.4681410E-01  0.5064201E-01  &lt;br /&gt;
  0.4967185E-01  0.4962646E-01  0.5293858E-01&lt;br /&gt;
   0.4761314E-01  0.5303573E-01  0.5199197E-01  0.5304727E-01  0.5058411E-01  0.4977264E-01  0.4680782E-01  &lt;br /&gt;
  0.5084134E-01  0.5217295E-01  0.5207262E-01&lt;br /&gt;
   0.5490097E-01  0.5208478E-01  0.4912948E-01  0.5185132E-01  0.5437104E-01  0.5169138E-01  0.5084999E-01  &lt;br /&gt;
  0.4665278E-01  0.4949034E-01  0.5567725E-01&lt;br /&gt;
   0.5376276E-01  0.5171501E-01  0.5185965E-01  0.5044360E-01  0.5070019E-01  0.5199373E-01  0.5094507E-01  &lt;br /&gt;
  0.4988094E-01  0.4810289E-01  0.5059433E-01&lt;br /&gt;
   0.5363357E-01  0.4834083E-01  0.5496372E-01  0.5069184E-01  0.5198555E-01  0.5078426E-01  0.5087554E-01  &lt;br /&gt;
  0.4956766E-01  0.5099645E-01  0.5549398E-01&lt;br /&gt;
   0.5000711E-01  0.5323785E-01  0.5171341E-01  0.5418007E-01  0.4855018E-01  0.5104953E-01  0.5220878E-01  &lt;br /&gt;
  0.5099397E-01  0.5179496E-01  0.5348767E-01&lt;br /&gt;
   0.5072900E-01  0.5494645E-01  0.4968401E-01  0.5129792E-01  0.5289388E-01  0.5010409E-01  0.4777386E-01  &lt;br /&gt;
  0.5578830E-01  0.5246478E-01  0.5441176E-01&lt;br /&gt;
   0.5195844E-01  0.5194620E-01  0.4918779E-01  0.5375268E-01  0.5264301E-01  0.4842055E-01  0.5304154E-01  &lt;br /&gt;
  0.5348141E-01  0.5046393E-01  0.5474954E-01&lt;br /&gt;
  surface tension (N/m)&lt;br /&gt;
   0.5154455E-01&lt;br /&gt;
  derivation&lt;br /&gt;
   0.2209831E-02&lt;br /&gt;
 &lt;br /&gt;
 ===================================================================================&lt;br /&gt;
&lt;br /&gt;
ここでdeviationは80個のデータにおける標準偏差であり、標準誤差はこれの約√80分の一である。&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
</feed>