code improvement, less pointer params

This commit is contained in:
Sebastian Hütter
2017-06-20 19:24:42 +02:00
parent 72a1364d85
commit c79dc53c6a
4 changed files with 27 additions and 59 deletions

View File

@ -141,8 +141,8 @@ public:
void interpolate_meam(int);
double compute_phi(double, int, int);
public:
void meam_setup_global(int*, int*, double*, int*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, int*);
void meam_setup_param(int*, double*, int*, int*, int*);
void meam_setup_global(int, lattice_t*, double*, int*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, int*);
void meam_setup_param(int, double, int, int*, int*);
void meam_setup_done(double*);
void meam_dens_setup(int, int, int);
void meam_dens_init(int* i, int* ntype, int* type, int* fmap, double** x,

View File

@ -18,7 +18,7 @@ using namespace LAMMPS_NS;
//
void
MEAM::meam_setup_global(int* nelt, int* lat, double* z, int* ielement, double* atwt,
MEAM::meam_setup_global(int nelt, lattice_t* lat, double* z, int* ielement, double* atwt,
double* alpha, double* b0, double* b1, double* b2,
double* b3, double* alat, double* esub, double* asub,
double* t0, double* t1, double* t2, double* t3,
@ -28,22 +28,10 @@ MEAM::meam_setup_global(int* nelt, int* lat, double* z, int* ielement, double* a
int i;
double tmplat[maxelt];
this->neltypes = *nelt;
this->neltypes = nelt;
for (i = 1; i <= *nelt; i++) {
if (arr1v(lat, i) == 0)
this->lattce_meam[i][i] = FCC;
else if (arr1v(lat, i) == 1)
this->lattce_meam[i][i] = BCC;
else if (arr1v(lat, i) == 2)
this->lattce_meam[i][i] = HCP;
else if (arr1v(lat, i) == 3)
this->lattce_meam[i][i] = DIM;
else if (arr1v(lat, i) == 4)
this->lattce_meam[i][i] = DIA;
else {
// unknown
}
for (i = 1; i <= nelt; i++) {
this->lattce_meam[i][i] = arr1v(lat, i);
this->Z_meam[i] = arr1v(z, i);
this->ielt_meam[i] = arr1v(ielement, i);

View File

@ -59,20 +59,17 @@ MEAM::meam_checkindex(int num, int lim, int nidx, int* idx /*idx(3)*/, int* ierr
// 20 = bkgd_dyn
void
MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
int* index /*index(3)*/, int* errorflag)
MEAM::meam_setup_param(int which, double value, int nindex, int* index /*index(3)*/, int* errorflag)
{
//: index[0..2]
int i1, i2, val;
int i1, i2;
lattice_t vlat;
*errorflag = 0;
int which = *which_p;
double value = *value_p;
int nindex = *nindex_p;
switch (which) {
// 0 = Ec_meam
case 0:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->Ec_meam[index[0]][index[1]] = value;
@ -80,7 +77,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 1 = alpha_meam
case 1:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->alpha_meam[index[0]][index[1]] = value;
@ -88,7 +85,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 2 = rho0_meam
case 2:
meam_checkindex(1, maxelt, nindex, index, errorflag);
meam_checkindex(1, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->rho0_meam[index[0]] = value;
@ -96,7 +93,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 3 = delta_meam
case 3:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->delta_meam[index[0]][index[1]] = value;
@ -104,34 +101,17 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 4 = lattce_meam
case 4:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
val = (int)value;
vlat = (lattice_t)value;
if (val == 0)
this->lattce_meam[index[0]][index[1]] = FCC;
else if (val == 1)
this->lattce_meam[index[0]][index[1]] = BCC;
else if (val == 2)
this->lattce_meam[index[0]][index[1]] = HCP;
else if (val == 3)
this->lattce_meam[index[0]][index[1]] = DIM;
else if (val == 4)
this->lattce_meam[index[0]][index[1]] = DIA;
else if (val == 5)
this->lattce_meam[index[0]][index[1]] = B1;
else if (val == 6)
this->lattce_meam[index[0]][index[1]] = C11;
else if (val == 7)
this->lattce_meam[index[0]][index[1]] = L12;
else if (val == 8)
this->lattce_meam[index[0]][index[1]] = B2;
this->lattce_meam[index[0]][index[1]] = vlat;
break;
// 5 = attrac_meam
case 5:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->attrac_meam[index[0]][index[1]] = value;
@ -139,7 +119,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 6 = repuls_meam
case 6:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->repuls_meam[index[0]][index[1]] = value;
@ -147,7 +127,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 7 = nn2_meam
case 7:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
i1 = std::min(index[0], index[1]);
@ -157,7 +137,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 8 = Cmin_meam
case 8:
meam_checkindex(3, maxelt, nindex, index, errorflag);
meam_checkindex(3, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->Cmin_meam[index[0]][index[1]][index[2]] = value;
@ -165,7 +145,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 9 = Cmax_meam
case 9:
meam_checkindex(3, maxelt, nindex, index, errorflag);
meam_checkindex(3, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->Cmax_meam[index[0]][index[1]][index[2]] = value;
@ -193,7 +173,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 14 = re_meam
case 14:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
this->re_meam[index[0]][index[1]] = value;
@ -216,7 +196,7 @@ MEAM::meam_setup_param(int* which_p, double* value_p, int* nindex_p,
// 18 = zbl_meam
case 18:
meam_checkindex(2, maxelt, nindex, index, errorflag);
meam_checkindex(2, neltypes, nindex, index, errorflag);
if (*errorflag != 0)
return;
i1 = std::min(index[0], index[1]);

View File

@ -371,7 +371,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile)
int params_per_line = 19;
int *lat = new int[nelements];
lattice_t *lat = new lattice_t[nelements];
int *ielement = new int[nelements];
int *ibar = new int[nelements];
double *z = new double[nelements];
@ -502,7 +502,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile)
// pass element parameters to MEAM package
meam_inst->meam_setup_global(&nelements,lat,z,ielement,atwt,alpha,b0,b1,b2,b3,
meam_inst->meam_setup_global(nelements,lat,z,ielement,atwt,alpha,b0,b1,b2,b3,
alat,esub,asub,t0,t1,t2,t3,rozero,ibar);
// set element masses
@ -601,7 +601,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile)
// map lattce_meam value to an integer
if (which == 4) {
if (which == 4) {
if (strcmp(params[nparams-1],"fcc") == 0) value = FCC;
else if (strcmp(params[nparams-1],"bcc") == 0) value = BCC;
else if (strcmp(params[nparams-1],"hcp") == 0) value = HCP;
@ -618,7 +618,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile)
// pass single setting to MEAM package
int errorflag = 0;
meam_inst->meam_setup_param(&which,&value,&nindex,index,&errorflag);
meam_inst->meam_setup_param(which,value,nindex,index,&errorflag);
if (errorflag) {
char str[128];
sprintf(str,"MEAM library error %d",errorflag);