Files

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);
}