git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11701 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -547,7 +547,7 @@ void PairADP::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fp = open_potential(filename);
|
fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open ADP potential file %s",filename);
|
sprintf(str,"Cannot open ADP potential file %s",filename);
|
||||||
|
|||||||
@ -3327,7 +3327,7 @@ void PairAIREBO::read_file(char *filename)
|
|||||||
// read file on proc 0
|
// read file on proc 0
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open AIREBO potential file %s",filename);
|
sprintf(str,"Cannot open AIREBO potential file %s",filename);
|
||||||
|
|||||||
@ -8204,7 +8204,7 @@ void PairBOP::read_file(char *filename)
|
|||||||
rcore=0.1;
|
rcore=0.1;
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open BOP potential file %s",filename);
|
sprintf(str,"Cannot open BOP potential file %s",filename);
|
||||||
@ -8264,7 +8264,7 @@ void PairBOP::read_file(char *filename)
|
|||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
words = new char*[bop_types];
|
words = new char*[bop_types];
|
||||||
for(i=0;i<bop_types;i++) words[i]=NULL;
|
for(i=0;i<bop_types;i++) words[i]=NULL;
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open BOP potential file %s",filename);
|
sprintf(str,"Cannot open BOP potential file %s",filename);
|
||||||
@ -8428,7 +8428,7 @@ void PairBOP::read_table(char *filename)
|
|||||||
MPI_Comm_rank(world,&me);
|
MPI_Comm_rank(world,&me);
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open BOP potential file %s",filename);
|
sprintf(str,"Cannot open BOP potential file %s",filename);
|
||||||
@ -8477,7 +8477,7 @@ void PairBOP::read_table(char *filename)
|
|||||||
allocate();
|
allocate();
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open BOP potential file %s",filename);
|
sprintf(str,"Cannot open BOP potential file %s",filename);
|
||||||
|
|||||||
@ -592,7 +592,7 @@ void PairComb::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open COMB potential file %s",file);
|
sprintf(str,"Cannot open COMB potential file %s",file);
|
||||||
|
|||||||
@ -318,9 +318,9 @@ void PairComb3::read_lib()
|
|||||||
MPI_Comm_rank(world,&comm->me);
|
MPI_Comm_rank(world,&comm->me);
|
||||||
|
|
||||||
// open libraray file on proc 0
|
// open libraray file on proc 0
|
||||||
|
|
||||||
if(comm->me == 0) {
|
if(comm->me == 0) {
|
||||||
FILE *fp = open_potential("lib.comb3");
|
FILE *fp = force->open_potential("lib.comb3");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open COMB3 C library file \n");
|
sprintf(str,"Cannot open COMB3 C library file \n");
|
||||||
|
|||||||
@ -439,7 +439,7 @@ void PairEAM::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s",filename);
|
sprintf(str,"Cannot open EAM potential file %s",filename);
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "pair_eam_alloy.h"
|
#include "pair_eam_alloy.h"
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
|
#include "force.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -122,7 +123,7 @@ void PairEAMAlloy::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s",filename);
|
sprintf(str,"Cannot open EAM potential file %s",filename);
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "pair_eam_fs.h"
|
#include "pair_eam_fs.h"
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
|
#include "force.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -122,7 +123,7 @@ void PairEAMFS::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s",filename);
|
sprintf(str,"Cannot open EAM potential file %s",filename);
|
||||||
|
|||||||
@ -457,7 +457,7 @@ void PairEIM::read_file(char *filename)
|
|||||||
FILE *fptr;
|
FILE *fptr;
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EIM potential file %s",filename);
|
sprintf(str,"Cannot open EIM potential file %s",filename);
|
||||||
|
|||||||
@ -975,7 +975,7 @@ void PairLCBOP::read_file(char *filename)
|
|||||||
// read file on proc 0
|
// read file on proc 0
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open LCBOP potential file %s",filename);
|
sprintf(str,"Cannot open LCBOP potential file %s",filename);
|
||||||
|
|||||||
@ -327,7 +327,7 @@ void PairNb3bHarmonic::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open nb3b/harmonic potential file %s",file);
|
sprintf(str,"Cannot open nb3b/harmonic potential file %s",file);
|
||||||
|
|||||||
@ -337,7 +337,7 @@ void PairSW::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open Stillinger-Weber potential file %s",file);
|
sprintf(str,"Cannot open Stillinger-Weber potential file %s",file);
|
||||||
|
|||||||
@ -377,7 +377,7 @@ void PairTersoff::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
||||||
|
|||||||
@ -57,7 +57,7 @@ void PairTersoffMOD::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
||||||
|
|||||||
@ -74,7 +74,7 @@ void PairTersoffZBL::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
||||||
|
|||||||
@ -460,7 +460,7 @@ void PairMEAM::read_files(char *globalfile, char *userfile)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(globalfile);
|
fp = force->open_potential(globalfile);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open MEAM potential file %s",globalfile);
|
sprintf(str,"Cannot open MEAM potential file %s",globalfile);
|
||||||
@ -641,7 +641,7 @@ void PairMEAM::read_files(char *globalfile, char *userfile)
|
|||||||
// open user param file on proc 0
|
// open user param file on proc 0
|
||||||
|
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(userfile);
|
fp = force->open_potential(userfile);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open MEAM potential file %s",userfile);
|
sprintf(str,"Cannot open MEAM potential file %s",userfile);
|
||||||
|
|||||||
@ -366,7 +366,7 @@ void AngleTable::read_table(Table *tb, char *file, char *keyword)
|
|||||||
|
|
||||||
// open file
|
// open file
|
||||||
|
|
||||||
FILE *fp = fopen(file,"r");
|
FILE *fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open file %s",file);
|
sprintf(str,"Cannot open file %s",file);
|
||||||
|
|||||||
@ -292,7 +292,7 @@ void BondTable::read_table(Table *tb, char *file, char *keyword)
|
|||||||
|
|
||||||
// open file
|
// open file
|
||||||
|
|
||||||
FILE *fp = fopen(file,"r");
|
FILE *fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open file %s",file);
|
sprintf(str,"Cannot open file %s",file);
|
||||||
|
|||||||
@ -1011,7 +1011,7 @@ void DihedralTable::read_table(Table *tb, char *file, char *keyword)
|
|||||||
|
|
||||||
// open file
|
// open file
|
||||||
|
|
||||||
FILE *fp = fopen(file,"r");
|
FILE *fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
string err_msg = string("Cannot open file ") + string(file);
|
string err_msg = string("Cannot open file ") + string(file);
|
||||||
error->one(FLERR,err_msg.c_str());
|
error->one(FLERR,err_msg.c_str());
|
||||||
|
|||||||
@ -461,7 +461,7 @@ void PairCDEAM::read_h_coeff(char *filename)
|
|||||||
FILE *fp;
|
FILE *fp;
|
||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
char nextline[MAXLINE];
|
char nextline[MAXLINE];
|
||||||
fp = open_potential(filename);
|
fp = force->open_potential(filename);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s", filename);
|
sprintf(str,"Cannot open EAM potential file %s", filename);
|
||||||
|
|||||||
@ -877,7 +877,7 @@ void PairEDIP::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EDIP potential file %s",file);
|
sprintf(str,"Cannot open EDIP potential file %s",file);
|
||||||
|
|||||||
@ -218,7 +218,7 @@ void PairList::settings(int narg, char **arg)
|
|||||||
if (strcmp(arg[2],"check") == 0) check_flag = 1;
|
if (strcmp(arg[2],"check") == 0) check_flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE *fp = open_potential(arg[0]);
|
FILE *fp = force->open_potential(arg[0]);
|
||||||
char line[1024];
|
char line[1024];
|
||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
error->all(FLERR,"Cannot open pair list file");
|
error->all(FLERR,"Cannot open pair list file");
|
||||||
|
|||||||
@ -434,7 +434,7 @@ void PairMEAMSpline::coeff(int narg, char **arg)
|
|||||||
void PairMEAMSpline::read_file(const char* filename)
|
void PairMEAMSpline::read_file(const char* filename)
|
||||||
{
|
{
|
||||||
if(comm->me == 0) {
|
if(comm->me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if(fp == NULL) {
|
if(fp == NULL) {
|
||||||
char str[1024];
|
char str[1024];
|
||||||
sprintf(str,"Cannot open spline MEAM potential file %s", filename);
|
sprintf(str,"Cannot open spline MEAM potential file %s", filename);
|
||||||
|
|||||||
@ -463,7 +463,7 @@ void PairMEAMSWSpline::coeff(int narg, char **arg)
|
|||||||
void PairMEAMSWSpline::read_file(const char* filename)
|
void PairMEAMSWSpline::read_file(const char* filename)
|
||||||
{
|
{
|
||||||
if(comm->me == 0) {
|
if(comm->me == 0) {
|
||||||
FILE *fp = open_potential(filename);
|
FILE *fp = force->open_potential(filename);
|
||||||
if(fp == NULL) {
|
if(fp == NULL) {
|
||||||
char str[1024];
|
char str[1024];
|
||||||
sprintf(str,"Cannot open spline MEAM potential file %s", filename);
|
sprintf(str,"Cannot open spline MEAM potential file %s", filename);
|
||||||
|
|||||||
@ -851,7 +851,7 @@ void PairTersoffTable::read_file(char *file)
|
|||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
fp = open_potential(file);
|
fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
sprintf(str,"Cannot open Tersoff potential file %s",file);
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "pair_eam_alloy_omp.h"
|
#include "pair_eam_alloy_omp.h"
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
|
#include "force.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -121,7 +122,7 @@ void PairEAMAlloyOMP::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s",filename);
|
sprintf(str,"Cannot open EAM potential file %s",filename);
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "pair_eam_fs_omp.h"
|
#include "pair_eam_fs_omp.h"
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
|
#include "force.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
@ -121,7 +122,7 @@ void PairEAMFSOMP::read_file(char *filename)
|
|||||||
char line[MAXLINE];
|
char line[MAXLINE];
|
||||||
|
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
fptr = open_potential(filename);
|
fptr = force->open_potential(filename);
|
||||||
if (fptr == NULL) {
|
if (fptr == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open EAM potential file %s",filename);
|
sprintf(str,"Cannot open EAM potential file %s",filename);
|
||||||
|
|||||||
@ -780,6 +780,77 @@ bigint Force::bnumeric(const char *file, int line, char *str)
|
|||||||
return ATOLL(str);
|
return ATOLL(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
open a potential file as specified by name; failing that,
|
||||||
|
search in dir specified by env variable LAMMPS_POTENTIALS
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
FILE *Force::open_potential(const char *name)
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
|
||||||
|
if (name == NULL) return NULL;
|
||||||
|
|
||||||
|
// attempt to open file directly
|
||||||
|
// if successful, return ptr
|
||||||
|
|
||||||
|
fp = fopen(name,"r");
|
||||||
|
if (fp) return fp;
|
||||||
|
|
||||||
|
// try the environment variable directory
|
||||||
|
|
||||||
|
const char *path = getenv("LAMMPS_POTENTIALS");
|
||||||
|
if (path == NULL) return NULL;
|
||||||
|
|
||||||
|
const char *pot = potname(name);
|
||||||
|
if (pot == NULL) return NULL;
|
||||||
|
|
||||||
|
size_t len1 = strlen(path);
|
||||||
|
size_t len2 = strlen(pot);
|
||||||
|
char *newpath = new char[len1+len2+2];
|
||||||
|
|
||||||
|
strcpy(newpath,path);
|
||||||
|
#if defined(_WIN32)
|
||||||
|
newpath[len1] = '\\';
|
||||||
|
newpath[len1+1] = 0;
|
||||||
|
#else
|
||||||
|
newpath[len1] = '/';
|
||||||
|
newpath[len1+1] = 0;
|
||||||
|
#endif
|
||||||
|
strcat(newpath,pot);
|
||||||
|
|
||||||
|
fp = fopen(newpath,"r");
|
||||||
|
delete[] newpath;
|
||||||
|
return fp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
strip off leading part of path, return just the filename
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
const char *Force::potname(const char *path)
|
||||||
|
{
|
||||||
|
const char *pot;
|
||||||
|
|
||||||
|
if (path == NULL) return NULL;
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
// skip over the disk drive part of windows pathnames
|
||||||
|
if (isalpha(path[0]) && path[1] == ':')
|
||||||
|
path += 2;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (pot = path; *path != '\0'; ++path) {
|
||||||
|
#if defined(_WIN32)
|
||||||
|
if ((*path == '\\') || (*path == '/')) pot = path + 1;
|
||||||
|
#else
|
||||||
|
if (*path == '/') pot = path + 1;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return pot;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
memory usage of force classes
|
memory usage of force classes
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -104,6 +104,10 @@ class Force : protected Pointers {
|
|||||||
double numeric(const char *, int, char *);
|
double numeric(const char *, int, char *);
|
||||||
int inumeric(const char *, int, char *);
|
int inumeric(const char *, int, char *);
|
||||||
bigint bnumeric(const char *, int, char *);
|
bigint bnumeric(const char *, int, char *);
|
||||||
|
|
||||||
|
FILE *open_potential(const char *);
|
||||||
|
const char *potname(const char *);
|
||||||
|
|
||||||
bigint memory_usage();
|
bigint memory_usage();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
71
src/pair.cpp
71
src/pair.cpp
@ -1624,77 +1624,6 @@ void Pair::init_bitmap(double inner, double outer, int ntablebits,
|
|||||||
masklo = rsq_lookup.i & ~(nmask);
|
masklo = rsq_lookup.i & ~(nmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
|
||||||
open a potential file as specified by name
|
|
||||||
failing that, search in dir specified by env variable LAMMPS_POTENTIALS
|
|
||||||
------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
FILE *Pair::open_potential(const char *name)
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
|
|
||||||
if (name == NULL) return NULL;
|
|
||||||
|
|
||||||
// attempt to open file directly
|
|
||||||
// if successful, return ptr
|
|
||||||
|
|
||||||
fp = fopen(name,"r");
|
|
||||||
if (fp) return fp;
|
|
||||||
|
|
||||||
// try the environment variable directory
|
|
||||||
|
|
||||||
const char *path = getenv("LAMMPS_POTENTIALS");
|
|
||||||
if (path == NULL) return NULL;
|
|
||||||
|
|
||||||
const char *pot = potname(name);
|
|
||||||
if (pot == NULL) return NULL;
|
|
||||||
|
|
||||||
size_t len1 = strlen(path);
|
|
||||||
size_t len2 = strlen(pot);
|
|
||||||
char *newpath = new char[len1+len2+2];
|
|
||||||
|
|
||||||
strcpy(newpath,path);
|
|
||||||
#if defined(_WIN32)
|
|
||||||
newpath[len1] = '\\';
|
|
||||||
newpath[len1+1] = 0;
|
|
||||||
#else
|
|
||||||
newpath[len1] = '/';
|
|
||||||
newpath[len1+1] = 0;
|
|
||||||
#endif
|
|
||||||
strcat(newpath,pot);
|
|
||||||
|
|
||||||
fp = fopen(newpath,"r");
|
|
||||||
delete[] newpath;
|
|
||||||
return fp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
|
||||||
strip off leading part of path, return just the filename
|
|
||||||
------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
const char *Pair::potname(const char *path)
|
|
||||||
{
|
|
||||||
const char *pot;
|
|
||||||
|
|
||||||
if (path == NULL) return NULL;
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
// skip over the disk drive part of windows pathnames
|
|
||||||
if (isalpha(path[0]) && path[1] == ':')
|
|
||||||
path += 2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (pot = path; *path != '\0'; ++path) {
|
|
||||||
#if defined(_WIN32)
|
|
||||||
if ((*path == '\\') || (*path == '/')) pot = path + 1;
|
|
||||||
#else
|
|
||||||
if (*path == '/') pot = path + 1;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return pot;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
double Pair::memory_usage()
|
double Pair::memory_usage()
|
||||||
|
|||||||
@ -213,9 +213,6 @@ class Pair : protected Pointers {
|
|||||||
double, double, double, double, double, double);
|
double, double, double, double, double, double);
|
||||||
void virial_fdotr_compute();
|
void virial_fdotr_compute();
|
||||||
|
|
||||||
FILE *open_potential(const char *);
|
|
||||||
const char *potname(const char *);
|
|
||||||
|
|
||||||
inline int sbmask(int j) {
|
inline int sbmask(int j) {
|
||||||
return j >> SBBITS & 3;
|
return j >> SBBITS & 3;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -343,7 +343,7 @@ void PairTable::read_table(Table *tb, char *file, char *keyword)
|
|||||||
|
|
||||||
// open file
|
// open file
|
||||||
|
|
||||||
FILE *fp = open_potential(file);
|
FILE *fp = force->open_potential(file);
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str,"Cannot open file %s",file);
|
sprintf(str,"Cannot open file %s",file);
|
||||||
|
|||||||
Reference in New Issue
Block a user