Commit d72cecf1 authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6976 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent c34d7f6a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ if (test $1 = 1) then
  cp fix_smd.cpp ..
  cp pair_cdeam.cpp ..
  cp pair_dipole_sf.cpp ..
  cp pair_edip.cpp ..
  cp pair_lj_sf.cpp ..

  cp angle_cosine_shift.h ..
@@ -28,6 +29,7 @@ if (test $1 = 1) then
  cp fix_smd.h ..
  cp pair_cdeam.h ..
  cp pair_dipole_sf.h ..
  cp pair_edip.h ..
  cp pair_lj_sf.h ..

elif (test $1 = 0) then
@@ -44,6 +46,7 @@ elif (test $1 = 0) then
  rm -f ../fix_smd.cpp
  rm -f ../pair_cdeam.cpp
  rm -f ../pair_dipole_sf.cpp
  rm -f ../pair_edip.cpp
  rm -f ../pair_lj_sf.cpp

  rm -f ../angle_cosine_shift.h
@@ -58,6 +61,7 @@ elif (test $1 = 0) then
  rm -f ../fix_smd.h
  rm -f ../pair_cdeam.h
  rm -f ../pair_dipole_sf.h
  rm -f ../pair_edip.h
  rm -f ../pair_lj_sf.h

fi
+4 −3
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ dihedral_style cosine/shift/exp, Carsten Svaneborg, science at zqex.dk, 8 Aug 11
fix addtorque, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
fix imd, Axel Kohlmeyer, akohlmey at gmail.com, 9 Nov 2009
fix smd, Axel Kohlmeyer, akohlmey at gmail.com, 19 May 2008
pair dipole/sf, Mario Orsi, orsimario at gmail.com, 8 Aug 11
pair eam/cd, Alexander Stukowski, stukowski at mm.tu-darmstadt.de, 
pair lj/sf, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
pair_style dipole/sf, Mario Orsi, orsimario at gmail.com, 8 Aug 11
pair_style edip, Luca Ferraro, luca.ferraro at caspur.it, 15 Sep 11
pair_style eam/cd, Alexander Stukowski, stukowski at mm.tu-darmstadt.de, 7 Nov 09
pair_style lj/sf, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
+1053 −0

File added.

Preview size limit exceeded, changes collapsed.

+119 −0
Original line number Diff line number Diff line
/* ----------------------------------------------------------------------
   LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
   http://lammps.sandia.gov, Sandia National Laboratories
   Steve Plimpton, sjplimp@sandia.gov

   Copyright (2003) Sandia Corporation.  Under the terms of Contract
   DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
   certain rights in this software.  This software is distributed under 
   the GNU General Public License.

   See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */

#ifdef PAIR_CLASS

PairStyle(edip,PairEDIP)

#else

#ifndef LMP_PAIR_EDIP_H
#define LMP_PAIR_EDIP_H

#include "pair.h"

namespace LAMMPS_NS {

class PairEDIP : public Pair {
 public:
  PairEDIP(class LAMMPS *);
  ~PairEDIP();
  void compute(int, int);
  void settings(int, char **);
  void coeff(int, char **);
  double init_one(int, int);
  void init_style();

 private:
  struct Param {
    double A, B;
    double cutoffA, cutoffC, cutsq;
    double alpha, beta;
    double eta, gamm, lambda, mu, rho, sigma, Q0;
    double u1, u2, u3, u4;
    int ielement,jelement,kelement;
  };

  double *preInvR_ij;
  double *preExp3B_ij;
  double *preExp3BDerived_ij;
  double *preExp2B_ij;
  double *preExp2BDerived_ij;
  double *prePow2B_ij;
  double *preForceCoord;
  
  // grids

  static const int GRIDDENSITY = 8000;
  static const double GRIDSTART = 0.1;

  double *cutoffFunction;
  double *cutoffFunctionDerived;
  double *pow2B;
  double *exp2B;
  double *exp3B;
  double *qFunctionGrid;
  double *expMinusBetaZeta_iZeta_iGrid;
  double *tauFunctionGrid;
  double *tauFunctionDerivedGrid;

  // this should be removed for multi species parametrizations
  // since these parameters should be addressed through indexes
  // see also the PairEDIP::setup()

  double A;
  double B;
  double rho;
  double cutoffA;
  double cutoffC;
  double sigma;
  double lambda;
  double gamm;
  double eta;
  double Q0;
  double mu;
  double beta;
  double alpha;
  double u1;
  double u2;
  double u3;
  double u4;

  double cutmax;                // max cutoff for all elements
  int nelements;                // # of unique elements
  char **elements;              // names of unique elements
  int ***elem2param;            // mapping from element triplets to parameters
  int *map;                     // mapping from atom types to elements
  int nparams;                  // # of stored parameter sets
  int maxparam;                 // max # of parameter sets
  Param *params;                // parameter set for an I-J-K interaction

  // max number of interaction per atom for f(Z) environment potential

  static const int leadDimInteractionList = 64;

  void allocate();
  void allocatePreLoops(void);
  void deallocatePreLoops(void);
  void allocateGrids(void);
  void deallocateGrids(void);
  void initGrids(void);

  void read_file(char *);
  void setup();
};

}

#endif
#endif