ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/nonbonded/Electrostatic.hpp
(Generate patch)

Comparing branches/development/src/nonbonded/Electrostatic.hpp (file contents):
Revision 1502 by gezelter, Sat Oct 2 19:53:32 2010 UTC vs.
Revision 1725 by gezelter, Sat May 26 18:13:43 2012 UTC

# Line 36 | Line 36
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38   * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   #ifndef NONBONDED_ELECTROSTATIC_HPP
# Line 44 | Line 45
45  
46   #include "nonbonded/NonBondedInteraction.hpp"
47   #include "types/AtomType.hpp"
48 < #include "UseTheForce/ForceField.hpp"
48 > #include "brains/ForceField.hpp"
49   #include "math/SquareMatrix3.hpp"
50   #include "math/CubicSpline.hpp"
51 + #include "brains/SimInfo.hpp"
52  
53   namespace OpenMD {
54  
# Line 55 | Line 57 | namespace OpenMD {
57      bool is_Dipole;
58      bool is_SplitDipole;
59      bool is_Quadrupole;
60 <    RealType charge;
60 >    bool is_Fluctuating;
61 >    RealType fixedCharge;
62 >    RealType hardness;
63 >    RealType electronegativity;
64 >    RealType slaterN;
65 >    RealType slaterZeta;
66      RealType dipole_moment;
67      RealType split_dipole_distance;
68      Vector3d quadrupole_moments;
69    };
70 <  
70 >      
71    enum ElectrostaticSummationMethod{
72 <    NONE,
73 <    SWITCHING_FUNCTION,
74 <    SHIFTED_POTENTIAL,
75 <    SHIFTED_FORCE,
76 <    REACTION_FIELD,
77 <    EWALD_FULL,  /**< Ewald methods aren't supported yet */
78 <    EWALD_PME,   /**< Ewald methods aren't supported yet */
79 <    EWALD_SPME   /**< Ewald methods aren't supported yet */
72 >    esm_HARD,
73 >    esm_SWITCHING_FUNCTION,
74 >    esm_SHIFTED_POTENTIAL,
75 >    esm_SHIFTED_FORCE,
76 >    esm_REACTION_FIELD,
77 >    esm_EWALD_FULL,  /**< Ewald methods aren't supported yet */
78 >    esm_EWALD_PME,   /**< Ewald methods aren't supported yet */
79 >    esm_EWALD_SPME   /**< Ewald methods aren't supported yet */
80    };
81  
82    enum ElectrostaticScreeningMethod{
# Line 82 | Line 89 | namespace OpenMD {
89    public:    
90      Electrostatic();
91      void setForceField(ForceField *ff) {forceField_ = ff;};
92 +    void setSimInfo(SimInfo* info) {info_ = info;};
93      void addType(AtomType* atomType);
94 <    void calcForce(InteractionData idat);
95 <    void calcSkipCorrection(SkipCorrectionData skdat);
88 <    void calcSelfCorrection(SelfCorrectionData scdat);
94 >    virtual void calcForce(InteractionData &idat);
95 >    virtual void calcSelfCorrection(SelfData &sdat);
96      virtual string getName() {return name_;}
97 <
98 <    void setElectrostaticCutoffRadius( RealType theECR, RealType theRSW );
97 >    virtual RealType getSuggestedCutoffRadius(pair<AtomType*, AtomType*> atypes);
98 >    void setCutoffRadius( RealType rCut );
99 >    void setSwitchingRadius( RealType rSwitch );
100      void setElectrostaticSummationMethod( ElectrostaticSummationMethod esm );
101      void setElectrostaticScreeningMethod( ElectrostaticScreeningMethod sm );
102      void setDampingAlpha( RealType alpha );
# Line 98 | Line 106 | namespace OpenMD {
106      void initialize();
107      string name_;
108      bool initialized_;
109 <    bool haveDefaultCutoff_;
109 >    bool haveCutoffRadius_;
110      bool haveDampingAlpha_;
111      bool haveDielectric_;
112      bool haveElectroSpline_;
113      std::map<int, AtomType*> ElectrostaticList;
114      std::map<AtomType*, ElectrostaticAtomData> ElectrostaticMap;
115 +    map<pair<AtomType*, AtomType*>, CubicSpline*> Jij;  /** coulomb integral */
116 +    SimInfo* info_;
117      ForceField* forceField_;
118 <    RealType defaultCutoff_;
119 <    RealType defaultCutoff2_;
118 >    RealType cutoffRadius_;
119 >    RealType cutoffRadius2_;
120      RealType pre11_;
121      RealType pre12_;
122      RealType pre22_;
# Line 117 | Line 127 | namespace OpenMD {
127      int np_;
128      ElectrostaticSummationMethod summationMethod_;    
129      ElectrostaticScreeningMethod screeningMethod_;
130 +    map<string, ElectrostaticSummationMethod> summationMap_;
131 +    map<string, ElectrostaticScreeningMethod> screeningMap_;
132      RealType dampingAlpha_;
133      RealType alpha2_;
134      RealType alpha4_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines