add support for using utils::sfgets() to pair style adp

This commit is contained in:
Axel Kohlmeyer
2019-02-05 17:04:54 +01:00
parent c42b269803
commit 0eef5ebaa3
2 changed files with 15 additions and 14 deletions

View File

@ -28,6 +28,7 @@
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
#include "utils.h"
using namespace LAMMPS_NS;
@ -561,10 +562,10 @@ void PairADP::read_file(char *filename)
int n;
if (me == 0) {
fgets(line,MAXLINE,fp);
fgets(line,MAXLINE,fp);
fgets(line,MAXLINE,fp);
fgets(line,MAXLINE,fp);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
n = strlen(line) + 1;
}
MPI_Bcast(&n,1,MPI_INT,0,world);
@ -589,7 +590,7 @@ void PairADP::read_file(char *filename)
delete [] words;
if (me == 0) {
fgets(line,MAXLINE,fp);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
sscanf(line,"%d %lg %d %lg %lg",
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
}
@ -613,32 +614,32 @@ void PairADP::read_file(char *filename)
int i,j,tmp;
for (i = 0; i < file->nelements; i++) {
if (me == 0) {
fgets(line,MAXLINE,fp);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
sscanf(line,"%d %lg",&tmp,&file->mass[i]);
}
MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
if (me == 0) grab(fp,file->nrho,&file->frho[i][1]);
if (me == 0) grab(fp,filename,file->nrho,&file->frho[i][1]);
MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
if (me == 0) grab(fp,file->nr,&file->rhor[i][1]);
if (me == 0) grab(fp,filename,file->nr,&file->rhor[i][1]);
MPI_Bcast(&file->rhor[i][1],file->nr,MPI_DOUBLE,0,world);
}
for (i = 0; i < file->nelements; i++)
for (j = 0; j <= i; j++) {
if (me == 0) grab(fp,file->nr,&file->z2r[i][j][1]);
if (me == 0) grab(fp,filename,file->nr,&file->z2r[i][j][1]);
MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
}
for (i = 0; i < file->nelements; i++)
for (j = 0; j <= i; j++) {
if (me == 0) grab(fp,file->nr,&file->u2r[i][j][1]);
if (me == 0) grab(fp,filename,file->nr,&file->u2r[i][j][1]);
MPI_Bcast(&file->u2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
}
for (i = 0; i < file->nelements; i++)
for (j = 0; j <= i; j++) {
if (me == 0) grab(fp,file->nr,&file->w2r[i][j][1]);
if (me == 0) grab(fp,filename,file->nr,&file->w2r[i][j][1]);
MPI_Bcast(&file->w2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
}
@ -918,14 +919,14 @@ void PairADP::interpolate(int n, double delta, double *f, double **spline)
only called by proc 0
------------------------------------------------------------------------- */
void PairADP::grab(FILE *fp, int n, double *list)
void PairADP::grab(FILE *fp, char *filename, int n, double *list)
{
char *ptr;
char line[MAXLINE];
int i = 0;
while (i < n) {
fgets(line,MAXLINE,fp);
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
ptr = strtok(line," \t\n\r\f");
list[i++] = atof(ptr);
while ((ptr = strtok(NULL," \t\n\r\f"))) list[i++] = atof(ptr);

View File

@ -82,7 +82,7 @@ class PairADP : public Pair {
void allocate();
void array2spline();
void interpolate(int, double, double *, double **);
void grab(FILE *, int, double *);
void grab(FILE *, char *, int, double *);
void read_file(char *);
void file2array();