ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/rnemd/RNEMD.hpp
(Generate patch)

Comparing:
branches/development/src/rnemd/RNEMD.hpp (file contents), Revision 1773 by gezelter, Tue Aug 7 18:26:40 2012 UTC vs.
trunk/src/rnemd/RNEMD.hpp (file contents), Revision 2046 by gezelter, Tue Dec 2 22:11:04 2014 UTC

# Line 35 | Line 35
35   *                                                                      
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).          
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
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 /**
44 * @file RNEMD.hpp
45 * @author gezelter
46 * @date 03/13/2009
47 * @time 15:56pm
48 * @version 1.0
49 */
50
43   #ifndef INTEGRATORS_RNEMD_HPP
44   #define INTEGRATORS_RNEMD_HPP
45   #include "brains/SimInfo.hpp"
# Line 62 | Line 54 | namespace OpenMD {
54    class RNEMD {
55    public:
56      RNEMD(SimInfo* info);
57 <    virtual ~RNEMD();
57 >    ~RNEMD();
58      
59      void doRNEMD();
60 <    void doSwap();
61 <    void doNIVS();
62 <    void doVSS();
60 >    void doSwap(SelectionManager& smanA, SelectionManager& smanB);
61 >    void doNIVS(SelectionManager& smanA, SelectionManager& smanB);
62 >    void doVSS(SelectionManager& smanA, SelectionManager& smanB);
63 >    RealType getDividingArea();
64      void collectData();
65      void getStarted();
73    bool inSlabA(Vector3d pos);
74    bool inSlabB(Vector3d pos);
66      void parseOutputFileFormat(const std::string& format);
67      void writeOutputFile();
68      void writeReal(int index, unsigned int bin);
69      void writeVector(int index, unsigned int bin);
70 +    void writeRealErrorBars(int index, unsigned int bin);
71 +    void writeVectorErrorBars(int index, unsigned int bin);
72  
73    private:
74  
# Line 93 | Line 86 | namespace OpenMD {
86        rnemdPy,       // flux of momentum along y axis
87        rnemdPz,       // flux of momentum along z axis
88        rnemdPvector,  // flux of momentum vector
89 +      rnemdLx,       // flux of angular momentum along x axis
90 +      rnemdLy,       // flux of angular momentum along y axis
91 +      rnemdLz,       // flux of angular momentum along z axis
92 +      rnemdLvector,  // flux of angular momentum vector
93        rnemdKePx,     // flux of translational KE and x-momentum
94        rnemdKePy,     // flux of translational KE and y-momentum
95 <      rnemdKePvector, // full combo platter
95 >      rnemdKePvector, // full combo flying platter
96 >      rnemdKeLx,     // flux of translational KE and x-angular momentum
97 >      rnemdKeLy,     // flux of translational KE and y-angular momentum
98 >      rnemdKeLz,     // flux of translational KE and z-angular momentum
99 >      rnemdKeLvector, // full combo spinning platter
100        rnemdUnknownFluxType
101      };
102  
103      enum OutputFields {
104        BEGININDEX = 0,
105        Z = BEGININDEX,
106 +      R,
107        TEMPERATURE,
108        VELOCITY,
109 +      ANGULARVELOCITY,
110        DENSITY,
111        ENDINDEX
112      };
# Line 112 | Line 115 | namespace OpenMD {
115        string title;
116        string units;
117        string dataType;
118 <      vector<Accumulator*> accumulator;
118 >      vector<BaseAccumulator*> accumulator;
119      };
120  
121      typedef bitset<ENDINDEX-BEGININDEX> OutputBitSet;
# Line 124 | Line 127 | namespace OpenMD {
127      map<string, RNEMDFluxType> stringToFluxType_;
128      RNEMDMethod rnemdMethod_;
129      RNEMDFluxType rnemdFluxType_;
130 +
131 +    // object selection for specifying a particular species:
132      string rnemdObjectSelection_;
133      SelectionEvaluator evaluator_;
134      SelectionManager seleMan_;
135 +
136 +    // Geometric selections for the two regions for the exchange:
137 +    string selectionA_;
138 +    SelectionEvaluator evaluatorA_;
139 +    SelectionManager seleManA_;
140 +    string selectionB_;
141 +    SelectionEvaluator evaluatorB_;
142 +    SelectionManager seleManB_;
143 +    SelectionManager commonA_;
144 +    SelectionManager commonB_;
145 +    bool hasSelectionA_;
146 +    bool hasSelectionB_;                      
147 +    bool hasSphereBRadius_;
148 +
149      bool usePeriodicBoundaryConditions_;
150 <    int nBins_;
150 >    bool hasDividingArea_;
151 >    RealType dividingArea_;
152 >
153 >    int nBins_;
154 >    RealType binWidth_;
155      RealType slabWidth_;
156      RealType slabACenter_;
157      RealType slabBCenter_;
158 +    RealType sphereARadius_;
159 +    RealType sphereBRadius_;
160 +    RealType areaA_;
161 +    bool AisHull_;
162 +    RealType areaB_;
163 +    bool BisHull_;
164  
165 +    Vector3d coordinateOrigin_;
166 +
167      RealType kineticFlux_;        // target or desired *flux*
168      Vector3d momentumFluxVector_; // target or desired *flux*
169 +    Vector3d angularMomentumFluxVector_; // target or desired *flux*
170  
171      RealType kineticTarget_;     // target or desired one-time exchange energy
172      Vector3d momentumTarget_;    // target or desired one-time exchange momentum
173 +    Vector3d angularMomentumTarget_; // target or desired one-time
174 +                                     // exchange angular momentum
175  
176      RealType kineticExchange_;    // actual exchange energy (running total)
177      Vector3d momentumExchange_;   // actual exchange momentum (running total)
178 <
178 >    Vector3d angularMomentumExchange_; // actual exchange momentum
179 >                                       // (running total)
180      RealType exchangeTime_;
181  
182      RealType targetJzpz2_;
# Line 158 | Line 193 | namespace OpenMD {
193      vector<OutputData> data_;
194      OutputBitSet outputMask_;
195      OutputMapType outputMap_;
196 +    Accumulator* areaAccumulator_;
197 +    bool doRNEMD_;
198 +    bool hasData_;
199  
200    };
201   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines