Commit 333c561d authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4646 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent b6ce16ee
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ OBJ = $(SRC:.cpp=.o)
PACKAGE = asphere class2 colloid dipole dsmc gpu granular \
	  kspace manybody meam molecule opt peri poems prd reax shock xtc

PACKUSER = user-ackland user-atc user-cd-eam user-cg-cmm \
PACKUSER = user-ackland user-atc user-cd-eam user-cg-cmm user-eff \
	   user-ewaldn user-imd user-smd

PACKALL = $(PACKAGE) $(PACKUSER)
+73 −0
Original line number Diff line number Diff line
# Install/unInstall package files in LAMMPS

if (test $1 = 1) then

  cp -p atom_vec_electron.cpp ..
  cp -p pair_eff_cut.cpp ..
  cp -p compute_ke_eff.cpp ..
  cp -p compute_ke_atom_eff.cpp ..
  cp -p compute_temp_deform_eff.cpp ..
  cp -p compute_temp_eff.cpp ..
  cp -p compute_temp_region_eff.cpp ..
  cp -p fix_langevin_eff.cpp ..
  cp -p fix_nh_eff.cpp ..
  cp -p fix_nve_eff.cpp ..
  cp -p fix_nvt_eff.cpp ..
  cp -p fix_nvt_sllod_eff.cpp ..
  cp -p fix_npt_eff.cpp ..
  cp -p fix_nph_eff.cpp ..
  cp -p fix_temp_rescale_eff.cpp ..

  cp -p atom_vec_electron.h ..
  cp -p pair_eff_cut.h ..
  cp -p pair_eff_inline.h ..
  cp -p compute_ke_eff.h ..
  cp -p compute_ke_atom_eff.h ..
  cp -p compute_temp_deform_eff.h ..
  cp -p compute_temp_eff.h ..
  cp -p compute_temp_region_eff.h ..
  cp -p fix_langevin_eff.h ..
  cp -p fix_nh_eff.h ..
  cp -p fix_nve_eff.h ..
  cp -p fix_nvt_eff.h ..
  cp -p fix_nvt_sllod_eff.h ..
  cp -p fix_npt_eff.h ..
  cp -p fix_nph_eff.h ..
  cp -p fix_temp_rescale_eff.h ..

elif (test $1 = 0) then

  rm ../atom_vec_electron.cpp
  rm ../pair_eff_cut.cpp
  rm ../compute_ke_eff.cpp
  rm ../compute_ke_atom_eff.cpp
  rm ../compute_temp_deform_eff.cpp
  rm ../compute_temp_eff.cpp
  rm ../compute_temp_region_eff.cpp
  rm ../fix_langevin_eff.cpp ..
  rm ../fix_nh_eff.cpp
  rm ../fix_nve_eff.cpp
  rm ../fix_nvt_eff.cpp
  rm ../fix_nvt_sllod_eff.cpp
  rm ../fix_npt_eff.cpp
  rm ../fix_nph_eff.cpp
  rm ../fix_temp_rescale_eff.cpp

  rm ../atom_vec_electron.h
  rm ../pair_eff_cut.h
  rm ../pair_eff_inline.h
  rm ../compute_ke_eff.h
  rm ../compute_ke_atom_eff.h
  rm ../compute_temp_deform_eff.h
  rm ../compute_temp_eff.h
  rm ../compute_temp_region_eff.h
  rm ../fix_langevin_eff.h ..
  rm ../fix_nh_eff.h
  rm ../fix_nve_eff.h
  rm ../fix_nvt_eff.h
  rm ../fix_nvt_sllod_eff.h
  rm ../fix_npt_eff.h
  rm ../fix_nph_eff.h
  rm ../fix_temp_rescale_eff.h

fi

src/USER-EFF/README

0 → 100644
+59 −0
Original line number Diff line number Diff line
The files in this directory are a user-contributed package for LAMMPS.

The person who created these files is Andres Jaramillo-Botero at
CalTech (ajaramil@wag.caltech.edu).  Contact him directly if you have
questions.

--------------------------------------

Andres Jaramillo-Botero
California Institute of Technology (Caltech)
Chemistry and Chemical Engineering, 139-74
1200 E. California Blvd., Pasadena, CA 91125
Phone: (626) 395-3591
e-mail: ajaramil@wag.caltech.edu

Co-Authors: 
Julius Su (jsu@wag.caltech.edu)
William A. Goddard III (wag@wag.caltech.edu)

PACKAGE DESCRIPTION:

Contains a LAMMPS implementation of the electron Force Field (eFF)
currently under development at Caltech, as described in
A. Jaramillo-Botero, J. Su, Q. An, and W.A. Goddard III, JCC,
2010. The eFF potential was first introduced by Su and Goddard, in
2007.

eFF can be viewed as an approximation to QM wave packet dynamics and
Fermionic molecular dynamics, combining the ability of electronic
structure methods to describe atomic structure, bonding, and chemistry
in materials, and of plasma methods to describe nonequilibrium
dynamics of large systems with a large number of highly excited
electrons. We classify it as a mixed QM-classical approach rather than
a conventional force field method, which introduces QM-based terms (a
spin-dependent repulsion term to account for the Pauli exclusion
principle and the electron wavefunction kinetic energy associated with
the Heisenberg principle) that reduce, along with classical
electrostatic terms between nuclei and electrons, to the sum of a set
of effective pairwise potentials.  This makes eFF uniquely suited to
simulate materials over a wide range of temperatures and pressures
where electronically excited and ionized states of matter can occur
and coexist.

The necessary customizations to the LAMMPS core are in place to
enable the correct handling of explicit electron properties during
minimization and dynamics.

INSTALLATION:

via a normal LAMMPS package installation: make yes-user-eff

OTHERS FILES INCLUDED:

User examples are under examples/USER/eff
eFF tools are under tools/eff

Thanks to Steve Plimpton and Aidan Thompson for their input on the
LAMMPS architecture and for their help in customizing some of the
required LAMMPS core modules.
+798 −0

File added.

Preview size limit exceeded, changes collapsed.

+74 −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 ATOM_CLASS

AtomStyle(electron,AtomVecElectron)

#else

#ifndef LMP_ATOM_VEC_ELECTRON_H
#define LMP_ATOM_VEC_ELECTRON_H

#include "atom_vec.h"

namespace LAMMPS_NS {
  
class AtomVecElectron : public AtomVec {
 public:
  AtomVecElectron(class LAMMPS *, int, char **);
  ~AtomVecElectron() {}
  void grow(int);
  void grow_reset();
  void copy(int, int);
  int pack_comm(int, int *, double *, int, int *);
  int pack_comm_vel(int, int *, double *, int, int *);
  int pack_comm_one(int, double *);
  void unpack_comm(int, int, double *);
  void unpack_comm_vel(int, int, double *);
  int unpack_comm_one(int, double *);
  int pack_reverse(int, int, double *);
  int pack_reverse_one(int, double *);
  void unpack_reverse(int, int *, double *);
  int unpack_reverse_one(int, double *);
  int pack_border(int, int *, double *, int, int *);
  int pack_border_vel(int, int *, double *, int, int *);
  int pack_border_one(int, double *);
  void unpack_border(int, int, double *);
  void unpack_border_vel(int, int, double *);
  int unpack_border_one(int, double *);
  int pack_exchange(int, double *);
  int unpack_exchange(double *);
  int size_restart();
  int pack_restart(int, double *);
  int unpack_restart(double *);
  void create_atom(int, double *);
  void data_atom(double *, int, char **);
  int data_atom_hybrid(int, char **);
  void data_vel(int, char **);
  int data_vel_hybrid(int, char **);
  double memory_usage();
  
 private:
  double PI;
  int *tag,*type,*mask,*image;
  double **x,**v,**f;
  int *spin;
  double *q,*eradius,*ervel,*erforce;	
};
 
}

#endif
#endif
Loading