63 lines
1.8 KiB
C
63 lines
1.8 KiB
C
#include "dump2analysis.h"
|
|
/* -m template */
|
|
/* lammpstrjから3原子の角度分布を計算する */
|
|
/* A原子(-a, -x, -s)とB原子(-c, -z, -u)で端の原子を指定する。 */
|
|
/* B原子(-b, -y, -t)で中心原子を指定する。 */
|
|
/* --rcut_abは角度を計算するA-B原子距離のカッとオフ。 default:2.3 */
|
|
/* --rcut_bcは角度を計算するB-C原子距離のカッとオフ。 default:2.3 */
|
|
|
|
void ErrorTemplate(){
|
|
printf("Required arguments atoms A, atoms B, and atom C\n");
|
|
printf("(-a, -x, -s) atom A\n");
|
|
printf("(-b, -y, -t) atom B\n");
|
|
printf("(-c, -z, -u) atom B\n");
|
|
printf("------------------------------------------------------------\n");
|
|
printf("Optional arguments for Gr analysis:\n");
|
|
printf("--rcut_ab cut-off for A-B bonds [2.3]\n");
|
|
printf("--rcut_bc cut-off for B-C bonds [2.3]\n");
|
|
printf("------------------------------------------------------------\n");
|
|
printf("Example:\n");
|
|
printf("dump2analysis -m angle -x Si -y O -z Si -i hoge.lammpstrj -o hoge.angle\n");
|
|
exit(0);
|
|
}
|
|
|
|
|
|
void OutputTemplate(PARAM *p){
|
|
FILE *fp;
|
|
|
|
fp = fopen(p->outfile, "w");
|
|
fclose(fp);
|
|
|
|
}
|
|
|
|
void EstimateTemplate(PARAM *param){
|
|
FILE *f;
|
|
HEAD head;
|
|
ATOMS a, b, c; /* bが中心元素 */
|
|
int i, j, k;
|
|
int s;
|
|
|
|
if (ArgCheckInputOutput(param) != 0) ErrorTemplate();
|
|
SetAtomsSteps(param);
|
|
if (CheckArgAtomSelect(param) != 7) ErrorTemplate();
|
|
|
|
Allocate(&a, param->atoms);
|
|
Allocate(&b, param->atoms);
|
|
Allocate(&c, param->atoms);
|
|
f = fopen(param->infile, "r");
|
|
|
|
/* 距離の計算 */
|
|
for (s=0; s<param->steps; s++){
|
|
if (s%10 == 0) printf("Calculating angle step: %d...\n", s);
|
|
/* 原子の選択 */
|
|
GetData(f, param, &head, &a, &b, &c);
|
|
for(i=0; i<b.atoms; i++){
|
|
for(j=0; j<a.atoms; j++){
|
|
for(k=0; k<c.atoms; k++){
|
|
}
|
|
}
|
|
}
|
|
}
|
|
OutputTemplate(param);
|
|
}
|