ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/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.
Revision 1868 by gezelter, Tue Apr 30 15:56:54 2013 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   */
# Line 62 | Line 62 | namespace OpenMD {
62    class RNEMD {
63    public:
64      RNEMD(SimInfo* info);
65 <    virtual ~RNEMD();
65 >    ~RNEMD();
66      
67      void doRNEMD();
68 <    void doSwap();
69 <    void doNIVS();
70 <    void doVSS();
68 >    void doSwap(SelectionManager& smanA, SelectionManager& smanB);
69 >    void doNIVS(SelectionManager& smanA, SelectionManager& smanB);
70 >    void doVSS(SelectionManager& smanA, SelectionManager& smanB);
71 >    RealType getDividingArea();
72      void collectData();
73      void getStarted();
73    bool inSlabA(Vector3d pos);
74    bool inSlabB(Vector3d pos);
74      void parseOutputFileFormat(const std::string& format);
75      void writeOutputFile();
76      void writeReal(int index, unsigned int bin);
77      void writeVector(int index, unsigned int bin);
78 +    void writeRealStdDev(int index, unsigned int bin);
79 +    void writeVectorStdDev(int index, unsigned int bin);
80  
81    private:
82  
# Line 93 | Line 94 | namespace OpenMD {
94        rnemdPy,       // flux of momentum along y axis
95        rnemdPz,       // flux of momentum along z axis
96        rnemdPvector,  // flux of momentum vector
97 +      rnemdLx,       // flux of angular momentum along x axis
98 +      rnemdLy,       // flux of angular momentum along y axis
99 +      rnemdLz,       // flux of angular momentum along z axis
100 +      rnemdLvector,  // flux of angular momentum vector
101        rnemdKePx,     // flux of translational KE and x-momentum
102        rnemdKePy,     // flux of translational KE and y-momentum
103 <      rnemdKePvector, // full combo platter
103 >      rnemdKePvector, // full combo flying platter
104 >      rnemdKeLx,     // flux of translational KE and x-angular momentum
105 >      rnemdKeLy,     // flux of translational KE and y-angular momentum
106 >      rnemdKeLz,     // flux of translational KE and z-angular momentum
107 >      rnemdKeLvector, // full combo spinning platter
108        rnemdUnknownFluxType
109      };
110  
111      enum OutputFields {
112        BEGININDEX = 0,
113        Z = BEGININDEX,
114 +      R,
115        TEMPERATURE,
116        VELOCITY,
117 +      ANGULARVELOCITY,
118        DENSITY,
119        ENDINDEX
120      };
# Line 112 | Line 123 | namespace OpenMD {
123        string title;
124        string units;
125        string dataType;
126 <      vector<Accumulator*> accumulator;
126 >      vector<BaseAccumulator*> accumulator;
127      };
128  
129      typedef bitset<ENDINDEX-BEGININDEX> OutputBitSet;
# Line 124 | Line 135 | namespace OpenMD {
135      map<string, RNEMDFluxType> stringToFluxType_;
136      RNEMDMethod rnemdMethod_;
137      RNEMDFluxType rnemdFluxType_;
138 +
139 +    // object selection for specifying a particular species:
140      string rnemdObjectSelection_;
141      SelectionEvaluator evaluator_;
142      SelectionManager seleMan_;
143 +
144 +    // Geometric selections for the two regions for the exchange:
145 +    string selectionA_;
146 +    SelectionEvaluator evaluatorA_;
147 +    SelectionManager seleManA_;
148 +    string selectionB_;
149 +    SelectionEvaluator evaluatorB_;
150 +    SelectionManager seleManB_;
151 +    SelectionManager commonA_;
152 +    SelectionManager commonB_;
153 +    bool hasSelectionA_;
154 +    bool hasSelectionB_;                      
155 +    bool hasSphereBRadius_;
156 +
157      bool usePeriodicBoundaryConditions_;
158 <    int nBins_;
158 >    bool hasDividingArea_;
159 >    RealType dividingArea_;
160 >
161 >    int nBins_;
162 >    RealType binWidth_;
163      RealType slabWidth_;
164      RealType slabACenter_;
165      RealType slabBCenter_;
166 +    RealType sphereARadius_;
167 +    RealType sphereBRadius_;
168  
169 +    Vector3d coordinateOrigin_;
170 +
171      RealType kineticFlux_;        // target or desired *flux*
172      Vector3d momentumFluxVector_; // target or desired *flux*
173 +    Vector3d angularMomentumFluxVector_; // target or desired *flux*
174  
175      RealType kineticTarget_;     // target or desired one-time exchange energy
176      Vector3d momentumTarget_;    // target or desired one-time exchange momentum
177 +    Vector3d angularMomentumTarget_; // target or desired one-time
178 +                                     // exchange angular momentum
179  
180      RealType kineticExchange_;    // actual exchange energy (running total)
181      Vector3d momentumExchange_;   // actual exchange momentum (running total)
182 <
182 >    Vector3d angularMomentumExchange_; // actual exchange momentum
183 >                                       // (running total)
184      RealType exchangeTime_;
185  
186      RealType targetJzpz2_;
# Line 158 | Line 197 | namespace OpenMD {
197      vector<OutputData> data_;
198      OutputBitSet outputMask_;
199      OutputMapType outputMap_;
200 +    Accumulator* areaAccumulator_;
201 +    bool doRNEMD_;
202 +    bool hasData_;
203  
204    };
205   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines