Unverified Commit 6707e64d authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

change class name and add write_data support with pair style lennard/mdf

parent d3b5e50d
Loading
Loading
Loading
Loading
+36 −13
Original line number Diff line number Diff line
@@ -32,11 +32,11 @@ using namespace LAMMPS_NS;

/* ---------------------------------------------------------------------- */

PairLJ_AB_MDF::PairLJ_AB_MDF(LAMMPS *lmp) : Pair(lmp) {}
PairLennardMDF::PairLennardMDF(LAMMPS *lmp) : Pair(lmp) {}

/* ---------------------------------------------------------------------- */

PairLJ_AB_MDF::~PairLJ_AB_MDF()
PairLennardMDF::~PairLennardMDF()
{
  if (allocated) {
    memory->destroy(setflag);
@@ -56,7 +56,7 @@ PairLJ_AB_MDF::~PairLJ_AB_MDF()

/* ---------------------------------------------------------------------- */

void PairLJ_AB_MDF::compute(int eflag, int vflag)
void PairLennardMDF::compute(int eflag, int vflag)
{
  int i,j,ii,jj,inum,jnum,itype,jtype;
  double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
@@ -153,7 +153,7 @@ void PairLJ_AB_MDF::compute(int eflag, int vflag)
   allocate all arrays
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::allocate()
void PairLennardMDF::allocate()
{
  allocated = 1;
  int n = atom->ntypes;
@@ -180,7 +180,7 @@ void PairLJ_AB_MDF::allocate()
   global settings
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::settings(int narg, char **arg)
void PairLennardMDF::settings(int narg, char **arg)
{
  if (narg != 2) error->all(FLERR,"Illegal pair_style command");

@@ -207,7 +207,7 @@ void PairLJ_AB_MDF::settings(int narg, char **arg)
   set coeffs for one or more type pairs
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::coeff(int narg, char **arg)
void PairLennardMDF::coeff(int narg, char **arg)
{
  if (narg != 4 && narg != 6)
    error->all(FLERR,"Incorrect args for pair coefficients");
@@ -248,7 +248,7 @@ void PairLJ_AB_MDF::coeff(int narg, char **arg)
   init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */

double PairLJ_AB_MDF::init_one(int i, int j)
double PairLennardMDF::init_one(int i, int j)
{
  if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set");

@@ -274,7 +274,7 @@ double PairLJ_AB_MDF::init_one(int i, int j)
  proc 0 writes to restart file
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::write_restart(FILE *fp)
void PairLennardMDF::write_restart(FILE *fp)
{
  write_restart_settings(fp);

@@ -295,7 +295,7 @@ void PairLJ_AB_MDF::write_restart(FILE *fp)
  proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::read_restart(FILE *fp)
void PairLennardMDF::read_restart(FILE *fp)
{
  read_restart_settings(fp);
  allocate();
@@ -325,7 +325,7 @@ void PairLJ_AB_MDF::read_restart(FILE *fp)
  proc 0 writes to restart file
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::write_restart_settings(FILE *fp)
void PairLennardMDF::write_restart_settings(FILE *fp)
{
  fwrite(&mix_flag,sizeof(int),1,fp);
}
@@ -334,7 +334,7 @@ void PairLJ_AB_MDF::write_restart_settings(FILE *fp)
  proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */

void PairLJ_AB_MDF::read_restart_settings(FILE *fp)
void PairLennardMDF::read_restart_settings(FILE *fp)
{
  int me = comm->me;
  if (me == 0) {
@@ -343,9 +343,32 @@ void PairLJ_AB_MDF::read_restart_settings(FILE *fp)
  MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}

/* ----------------------------------------------------------------------
   proc 0 writes to data file
------------------------------------------------------------------------- */

void PairLennardMDF::write_data(FILE *fp)
{
  for (int i = 1; i <= atom->ntypes; i++)
    fprintf(fp,"%d %g %g\n",i,aparm[i][i],bparm[i][i]);
}

/* ----------------------------------------------------------------------
   proc 0 writes all pairs to data file
------------------------------------------------------------------------- */

void PairLennardMDF::write_data_all(FILE *fp)
{
  for (int i = 1; i <= atom->ntypes; i++)
    for (int j = i; j <= atom->ntypes; j++)
      fprintf(fp,"%d %d %g %g %g %g\n",
              i,j,aparm[i][j],bparm[i][j],
              cut_inner[i][j],cut[i][j]);
}

/* ---------------------------------------------------------------------- */

double PairLJ_AB_MDF::single(int /*i*/, int /*j*/, int itype, int jtype,
double PairLennardMDF::single(int /*i*/, int /*j*/, int itype, int jtype,
                             double rsq,
                             double /*factor_coul*/, double factor_lj,
                             double &fforce)
@@ -379,7 +402,7 @@ double PairLJ_AB_MDF::single(int /*i*/, int /*j*/, int itype, int jtype,

/* ---------------------------------------------------------------------- */

void *PairLJ_AB_MDF::extract(const char *str, int &dim)
void *PairLennardMDF::extract(const char *str, int &dim)
{
  dim = 2;
  if (strcmp(str,"a") == 0) return (void *) aparm;
+8 −6
Original line number Diff line number Diff line
@@ -13,21 +13,21 @@

#ifdef PAIR_CLASS

PairStyle(lennard/mdf,PairLJ_AB_MDF)
PairStyle(lennard/mdf,PairLennardMDF)

#else

#ifndef LMP_PAIR_LJ_AB_MDF_H
#define LMP_PAIR_LJ_AB_MDF_H
#ifndef LMP_PAIR_LENNARD_MDF_H
#define LMP_PAIR_LENNARD_MDF_H

#include "pair.h"

namespace LAMMPS_NS {

class PairLJ_AB_MDF : public Pair {
class PairLennardMDF : public Pair {
 public:
  PairLJ_AB_MDF(class LAMMPS *);
  virtual ~PairLJ_AB_MDF();
  PairLennardMDF(class LAMMPS *);
  virtual ~PairLennardMDF();

  virtual void compute(int, int);
  void settings(int, char **);
@@ -37,6 +37,8 @@ class PairLJ_AB_MDF : public Pair {
  void read_restart(FILE *);
  void write_restart_settings(FILE *);
  void read_restart_settings(FILE *);
  void write_data(FILE *);
  void write_data_all(FILE *);
  double single(int, int, int, int, double, double, double, double &);
  void *extract(const char *, int &);