minor cleanups and simplifications using fmtlib

This commit is contained in:
Axel Kohlmeyer
2021-04-21 12:08:37 -04:00
parent cd236776de
commit 1ee8de42d9
4 changed files with 34 additions and 48 deletions

View File

@ -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))

View File

@ -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

View File

@ -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);
}
}

View File

@ -59,7 +59,6 @@ namespace LAMMPS_NS {
bigint dynlen;
bigint dynlenb;
int scaleflag;
int me;
bigint gcount; // number of atoms in group
bigint *groupmap;