From 2b5425cec766ffc852dafd9687a3dabec2c4d2ff Mon Sep 17 00:00:00 2001 From: sjplimp Date: Sat, 9 Feb 2013 19:31:37 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9429 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/USER-MISC/bond_harmonic_shift.cpp | 4 +++- src/USER-MISC/bond_harmonic_shift.h | 4 ++-- src/USER-MISC/bond_harmonic_shift_cut.cpp | 8 ++++++-- src/USER-MISC/bond_harmonic_shift_cut.h | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/USER-MISC/bond_harmonic_shift.cpp b/src/USER-MISC/bond_harmonic_shift.cpp index 3c2a060831..c717f5c098 100644 --- a/src/USER-MISC/bond_harmonic_shift.cpp +++ b/src/USER-MISC/bond_harmonic_shift.cpp @@ -189,11 +189,13 @@ void BondHarmonicShift::read_restart(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondHarmonicShift::single(int type, double rsq, int i, int j) +double BondHarmonicShift::single(int type, double rsq, int i, int j, + double &fforce) { double r = sqrt(rsq); double dr = r - r0[type]; double dr2=r0[type]-r1[type]; + fforce = -2.0*k[type]*dr/r; return k[type]*(dr*dr - dr2*dr2); } diff --git a/src/USER-MISC/bond_harmonic_shift.h b/src/USER-MISC/bond_harmonic_shift.h index 74909a0bec..0a5751cb0f 100644 --- a/src/USER-MISC/bond_harmonic_shift.h +++ b/src/USER-MISC/bond_harmonic_shift.h @@ -1,4 +1,4 @@ -/* ---------------------------------------------------------------------- +/* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov @@ -34,7 +34,7 @@ class BondHarmonicShift : public Bond { double equilibrium_distance(int); void write_restart(FILE *); void read_restart(FILE *); - double single(int, double, int, int); + double single(int, double, int, int, double &); protected: double *k,*r0,*r1; diff --git a/src/USER-MISC/bond_harmonic_shift_cut.cpp b/src/USER-MISC/bond_harmonic_shift_cut.cpp index bcaac0990f..26a4033be1 100644 --- a/src/USER-MISC/bond_harmonic_shift_cut.cpp +++ b/src/USER-MISC/bond_harmonic_shift_cut.cpp @@ -190,13 +190,17 @@ void BondHarmonicShiftCut::read_restart(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondHarmonicShiftCut::single(int type, double rsq, int i, int j) +double BondHarmonicShiftCut::single(int type, double rsq, int i, int j, + double &fforce) { + fforce = 0.0; double r = sqrt(rsq); - if (r>r1[type]) return 0; + if (r>r1[type]) return 0.0; double dr = r - r0[type]; double dr2=r0[type]-r1[type]; + + fforce = -2.0*k[type]*dr/r; return k[type]*(dr*dr - dr2*dr2); } diff --git a/src/USER-MISC/bond_harmonic_shift_cut.h b/src/USER-MISC/bond_harmonic_shift_cut.h index 9767f11580..5059b75ea8 100644 --- a/src/USER-MISC/bond_harmonic_shift_cut.h +++ b/src/USER-MISC/bond_harmonic_shift_cut.h @@ -1,4 +1,4 @@ -/* ---------------------------------------------------------------------- +/* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov @@ -34,7 +34,7 @@ class BondHarmonicShiftCut : public Bond { double equilibrium_distance(int); void write_restart(FILE *); void read_restart(FILE *); - double single(int, double, int, int); + double single(int, double, int, int, double &); protected: double *k,*r0,*r1;