#include "dump2analysis.h" /* DOCUMENT */ /* -m cube_radius */ /* lammpstrjから指定した原子を有限のサイズを考慮してグリッドデータ(cubeファイル)を作成する。 */ /* cubeファイルは、VESTAやVMDでisosurfaceやvolumes urfaceで可視化できる。 */ /* cubeファイル中での指定以外の原子座標は、全ステップの平均値とする */ /* 基本的に1種類の原子によるグリッドデータのみを想定している */ void ErrorCube_Radius(){ printf("Required arguments atoms A\n"); printf("(-a, -x, -s) atom A\n"); printf("------------------------------------------------------------\n"); printf("Optional arguments for cube analysis:\n"); printf("--nx numebr boxcel on X [100]\n"); printf("--ny numebr boxcel on X [100]\n"); printf("--nz numebr boxcel on X [100]\n"); printf("--radius atomic radius [0.7]\n"); printf("------------------------------------------------------------\n"); printf("Example:\n"); printf("dump2analysis -m cube_radius -x Li --radius 0.7 -i hoge.lammpstrj -o hoge.cube\n"); exit(0); } void EstimateCube_Radius(PARAM *param){ int i, j, k; int ix, iy, iz; FILE *f; HEAD head; ATOMS a; double ***rho; double da, db, dc; double r, x, y, z, xp, yp, zp; double dx, dy, dz; /* メモリ確保 */ rho = malloc(sizeof(double**) * NZ); for (i=0; iatoms); /* ファイルオープン */ f = fopen(param->infile, "r"); /* ステップ毎にデータを取得する */ da = 1.0/(double)NX; db = 1.0/(double)NY; dc = 1.0/(double)NZ; for (i=0; isteps; i++){ GetData(f, param, &head, &a, NULL, NULL); for (j=0; j