minor cleanups and simplifications using fmtlib
This commit is contained in:
@ -21,9 +21,8 @@
|
||||
#include "neighbor.h"
|
||||
#include "pair.h"
|
||||
#include "timer.h"
|
||||
#include "utils.h"
|
||||
#include "fmt/format.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
|
||||
@ -41,7 +40,7 @@ DynamicalMatrix::DynamicalMatrix(LAMMPS *lmp) : Command(lmp), fp(nullptr)
|
||||
|
||||
DynamicalMatrix::~DynamicalMatrix()
|
||||
{
|
||||
if (fp && me == 0) fclose(fp);
|
||||
if (fp && comm->me == 0) fclose(fp);
|
||||
memory->destroy(groupmap);
|
||||
fp = nullptr;
|
||||
}
|
||||
@ -90,8 +89,6 @@ void DynamicalMatrix::setup()
|
||||
|
||||
void DynamicalMatrix::command(int narg, char **arg)
|
||||
{
|
||||
MPI_Comm_rank(world,&me);
|
||||
|
||||
if (domain->box_exist == 0)
|
||||
error->all(FLERR,"Dynamical_matrix command before simulation box is defined");
|
||||
if (narg < 2) error->all(FLERR,"Illegal dynamical_matrix command");
|
||||
@ -120,7 +117,7 @@ void DynamicalMatrix::command(int narg, char **arg)
|
||||
int style = -1;
|
||||
if (strcmp(arg[1],"regular") == 0) style = REGULAR;
|
||||
else if (strcmp(arg[1],"eskm") == 0) style = ESKM;
|
||||
else error->all(FLERR,"Illegal Dynamical Matrix command");
|
||||
else error->all(FLERR,"Illegal dynamical_matrix command");
|
||||
del = utils::numeric(FLERR, arg[2],false,lmp);
|
||||
|
||||
// set option defaults
|
||||
@ -136,13 +133,13 @@ void DynamicalMatrix::command(int narg, char **arg)
|
||||
// read options from end of input line
|
||||
if (style == REGULAR) options(narg-3,&arg[3]); //COME BACK
|
||||
else if (style == ESKM) options(narg-3,&arg[3]); //COME BACK
|
||||
else if (comm->me == 0 && screen) fprintf(screen,"Illegal Dynamical Matrix command\n");
|
||||
else error->all(FLERR,"Illegal dynamical_matrix command");
|
||||
|
||||
if (!folded) dynlenb = dynlen;
|
||||
else dynlenb = (atom->natoms)*3;
|
||||
|
||||
if (atom->map_style == Atom::MAP_NONE)
|
||||
error->all(FLERR,"Dynamical_matrix command requires an atom map, see atom_modify");
|
||||
error->all(FLERR,"Dynamical_matrix command requires an atom map");
|
||||
|
||||
// move atoms by 3-vector or specified variable(s)
|
||||
|
||||
@ -219,7 +216,6 @@ void DynamicalMatrix::options(int narg, char **arg)
|
||||
void DynamicalMatrix::openfile(const char* filename)
|
||||
{
|
||||
// if file already opened, return
|
||||
//if (me!=0) return;
|
||||
if (file_opened) return;
|
||||
|
||||
if (compressed) {
|
||||
@ -276,7 +272,7 @@ void DynamicalMatrix::calculateMatrix()
|
||||
utils::logmesg(lmp,fmt::format("Calculating Dynamical Matrix ...\n"));
|
||||
utils::logmesg(lmp,fmt::format(" Total # of atoms = {}\n", natoms));
|
||||
utils::logmesg(lmp,fmt::format(" Atoms in group = {}\n", gcount));
|
||||
utils::logmesg(lmp,fmt::format(" Total dynamical matrix elements = {}\n", (dynlenb*dynlen) ));
|
||||
utils::logmesg(lmp,fmt::format(" Total dynamical matrix elements = {}\n", (dynlenb*dynlen)));
|
||||
}
|
||||
|
||||
// emit dynlen rows of dimalpha*dynlen*dimbeta elements
|
||||
@ -336,7 +332,7 @@ void DynamicalMatrix::calculateMatrix()
|
||||
}
|
||||
for (int k=0; k<3; k++)
|
||||
MPI_Reduce(dynmat[k],fdynmat[k],dynlenb,MPI_DOUBLE,MPI_SUM,0,world);
|
||||
if (me == 0)
|
||||
if (comm->me == 0)
|
||||
writeMatrix(fdynmat);
|
||||
dynmat_clear(dynmat);
|
||||
if (comm->me == 0 && screen) {
|
||||
@ -358,7 +354,7 @@ void DynamicalMatrix::calculateMatrix()
|
||||
delete [] fdynmat[i];
|
||||
delete [] fdynmat;
|
||||
|
||||
if (screen && me ==0 ) fprintf(screen,"Finished Calculating Dynamical Matrix\n");
|
||||
if (screen && comm->me ==0) fprintf(screen,"Finished Calculating Dynamical Matrix\n");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -367,7 +363,7 @@ void DynamicalMatrix::calculateMatrix()
|
||||
|
||||
void DynamicalMatrix::writeMatrix(double **dynmat)
|
||||
{
|
||||
if (me != 0 || !fp)
|
||||
if (comm->me != 0 || !fp)
|
||||
return;
|
||||
|
||||
clearerr(fp);
|
||||
@ -379,8 +375,9 @@ void DynamicalMatrix::writeMatrix(double **dynmat)
|
||||
} else {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (bigint j = 0; j < dynlenb; j++) {
|
||||
if ((j+1)%3==0) fprintf(fp, "%4.8f\n", dynmat[i][j]);
|
||||
else fprintf(fp, "%4.8f ",dynmat[i][j]);
|
||||
fmt::print(fp, "{:.8f}", dynmat[i][j]);
|
||||
if ((j+1)%3==0) fputs("\n",fp);
|
||||
else fputs(" ",fp);
|
||||
}
|
||||
}
|
||||
if (ferror(fp))
|
||||
|
||||
@ -58,7 +58,6 @@ class DynamicalMatrix : public Command {
|
||||
bigint dynlen; // rank of dynamical matrix
|
||||
bigint dynlenb; // new dynlen if folded
|
||||
int scaleflag;
|
||||
int me;
|
||||
bigint *groupmap;
|
||||
|
||||
int compressed; // 1 if dump file is written compressed, 0 no
|
||||
|
||||
@ -18,17 +18,14 @@
|
||||
#include "kspace.h"
|
||||
#include "math_special.h"
|
||||
#include "memory.h"
|
||||
#include "neighbor.h"
|
||||
#include "modify.h"
|
||||
#include "neigh_list.h"
|
||||
#include "neigh_request.h"
|
||||
#include "modify.h"
|
||||
#include "neighbor.h"
|
||||
#include "pair.h"
|
||||
#include "timer.h"
|
||||
#include "finish.h"
|
||||
#include "math_special.h"
|
||||
#include "utils.h"
|
||||
#include "fmt/format.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
|
||||
@ -47,7 +44,7 @@ ThirdOrder::ThirdOrder(LAMMPS *lmp) : Command(lmp), fp(nullptr)
|
||||
|
||||
ThirdOrder::~ThirdOrder()
|
||||
{
|
||||
if (fp && me == 0) fclose(fp);
|
||||
if (fp && comm->me == 0) fclose(fp);
|
||||
fp = nullptr;
|
||||
memory->destroy(groupmap);
|
||||
// memory->destroy(ijnum);
|
||||
@ -101,8 +98,6 @@ void ThirdOrder::setup()
|
||||
|
||||
void ThirdOrder::command(int narg, char **arg)
|
||||
{
|
||||
MPI_Comm_rank(world,&me);
|
||||
|
||||
if (domain->box_exist == 0)
|
||||
error->all(FLERR,"third_order command before simulation box is defined");
|
||||
if (narg < 2) error->all(FLERR,"Illegal third_order command");
|
||||
@ -161,14 +156,14 @@ void ThirdOrder::command(int narg, char **arg)
|
||||
// read options from end of input line
|
||||
if (style == REGULAR) options(narg-3,&arg[3]); //COME BACK
|
||||
else if (style == ESKM) options(narg-3,&arg[3]); //COME BACK
|
||||
else if (comm->me == 0 && screen) fprintf(screen,"Illegal Dynamical Matrix command\n");
|
||||
else error->all(FLERR,"Illegal third_order command");
|
||||
del = utils::numeric(FLERR, arg[2],false,lmp);
|
||||
|
||||
if (!folded) dynlenb = dynlen;
|
||||
else dynlenb = (atom->natoms)*3;
|
||||
|
||||
if (atom->map_style == Atom::MAP_NONE)
|
||||
error->all(FLERR,"third_order command requires an atom map, see atom_modify");
|
||||
error->all(FLERR,"third_order command requires an atom map");
|
||||
|
||||
// move atoms by 3-vector or specified variable(s)
|
||||
|
||||
@ -230,7 +225,7 @@ void ThirdOrder::options(int narg, char **arg)
|
||||
iarg += 2;
|
||||
} else error->all(FLERR,"Illegal third_order command");
|
||||
}
|
||||
if (file_flag == 1 and me == 0) {
|
||||
if (file_flag == 1 && comm->me == 0) {
|
||||
openfile(filename);
|
||||
}
|
||||
}
|
||||
@ -297,7 +292,7 @@ void ThirdOrder::calculateMatrix()
|
||||
utils::logmesg(lmp, fmt::format("Calculating Third Order ...\n"));
|
||||
utils::logmesg(lmp, fmt::format(" Total # of atoms = {}\n", natoms));
|
||||
utils::logmesg(lmp, fmt::format(" Atoms in group = {}\n", gcount));
|
||||
utils::logmesg(lmp, fmt::format(" Total third order elements = {}\n", (dynlen*dynlenb*dynlenb) ));
|
||||
utils::logmesg(lmp, fmt::format(" Total third order elements = {}\n", (dynlen*dynlenb*dynlenb)));
|
||||
}
|
||||
|
||||
update->nsteps = 0;
|
||||
@ -387,7 +382,7 @@ void ThirdOrder::calculateMatrix()
|
||||
displace_atom(local_jdx, beta, 1);
|
||||
displace_atom(local_idx, alpha, 1);
|
||||
MPI_Reduce(dynmat,fdynmat,dynlenb,MPI_DOUBLE,MPI_SUM,0,world);
|
||||
if (me == 0){
|
||||
if (comm->me == 0){
|
||||
if (folded) {
|
||||
writeMatrix(fdynmat, gm[i-1], alpha, j, beta);
|
||||
} else {
|
||||
@ -411,7 +406,7 @@ void ThirdOrder::calculateMatrix()
|
||||
delete [] dynmat;
|
||||
delete [] fdynmat;
|
||||
|
||||
if (screen && me ==0 )
|
||||
if (screen && comm->me ==0)
|
||||
fprintf(screen,"Finished Calculating Third Order Tensor\n");
|
||||
}
|
||||
|
||||
@ -421,7 +416,7 @@ void ThirdOrder::calculateMatrix()
|
||||
|
||||
void ThirdOrder::writeMatrix(double *dynmat, bigint i, int a, bigint j, int b)
|
||||
{
|
||||
if (me != 0)
|
||||
if (comm->me != 0)
|
||||
return;
|
||||
|
||||
double norm;
|
||||
@ -433,13 +428,11 @@ void ThirdOrder::writeMatrix(double *dynmat, bigint i, int a, bigint j, int b)
|
||||
square(dynmat[k*3+1])+
|
||||
square(dynmat[k*3+2]);
|
||||
if (norm > 1.0e-16)
|
||||
fprintf(fp,
|
||||
BIGINT_FORMAT " %d " BIGINT_FORMAT
|
||||
" %d %d %7.8f %7.8f %7.8f\n",
|
||||
i+1, a + 1, j+1, b + 1, k+1,
|
||||
dynmat[k*3] * conversion,
|
||||
dynmat[k*3+1] * conversion,
|
||||
dynmat[k*3+2] * conversion);
|
||||
fmt::print(fp,"{} {} {} {} {} {:.8f} {.8f} {.8f}\n",
|
||||
i+1, a + 1, j+1, b + 1, k+1,
|
||||
dynmat[k*3] * conversion,
|
||||
dynmat[k*3+1] * conversion,
|
||||
dynmat[k*3+2] * conversion);
|
||||
}
|
||||
} else {
|
||||
for (int k = 0; k < gcount; k++){
|
||||
@ -447,13 +440,11 @@ void ThirdOrder::writeMatrix(double *dynmat, bigint i, int a, bigint j, int b)
|
||||
square(dynmat[k*3+1])+
|
||||
square(dynmat[k*3+2]);
|
||||
if (norm > 1.0e-16)
|
||||
fprintf(fp,
|
||||
BIGINT_FORMAT " %d " BIGINT_FORMAT " %d "
|
||||
BIGINT_FORMAT " %7.8f %7.8f %7.8f\n",
|
||||
i+1, a + 1, j+1, b + 1, groupmap[k]+1,
|
||||
dynmat[k*3] * conversion,
|
||||
dynmat[k*3+1] * conversion,
|
||||
dynmat[k*3+2] * conversion);
|
||||
fmt::print(fp, "{} {} {} {} {} {:.8f} {.8f} {.8f}\n",
|
||||
i+1, a + 1, j+1, b + 1, groupmap[k]+1,
|
||||
dynmat[k*3] * conversion,
|
||||
dynmat[k*3+1] * conversion,
|
||||
dynmat[k*3+2] * conversion);
|
||||
}
|
||||
}
|
||||
} else if (binaryflag && fp) {
|
||||
@ -809,4 +800,4 @@ void ThirdOrder::getNeighbortags() {
|
||||
free (firsttags);
|
||||
free (ijnumproc);
|
||||
free (temptags);
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,7 +59,6 @@ namespace LAMMPS_NS {
|
||||
bigint dynlen;
|
||||
bigint dynlenb;
|
||||
int scaleflag;
|
||||
int me;
|
||||
bigint gcount; // number of atoms in group
|
||||
bigint *groupmap;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user