ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/lattice/shapedLattice.cpp
(Generate patch)

Comparing:
trunk/src/lattice/shapedLattice.cpp (file contents), Revision 923 by chuckv, Wed Mar 29 19:17:20 2006 UTC vs.
branches/development/src/lattice/shapedLattice.cpp (file contents), Revision 1850 by gezelter, Wed Feb 20 15:39:39 2013 UTC

# Line 5 | Line 5
5   * redistribute this software in source and binary code form, provided
6   * that the following conditions are met:
7   *
8 < * 1. Acknowledgement of the program authors must be made in any
9 < *    publication of scientific results based in part on use of the
10 < *    program.  An acceptable form of acknowledgement is citation of
11 < *    the article in which the program was described (Matthew
12 < *    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
13 < *    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
14 < *    Parallel Simulation Engine for Molecular Dynamics,"
15 < *    J. Comput. Chem. 26, pp. 252-271 (2005))
16 < *
17 < * 2. Redistributions of source code must retain the above copyright
8 > * 1. Redistributions of source code must retain the above copyright
9   *    notice, this list of conditions and the following disclaimer.
10   *
11 < * 3. Redistributions in binary form must reproduce the above copyright
11 > * 2. Redistributions in binary form must reproduce the above copyright
12   *    notice, this list of conditions and the following disclaimer in the
13   *    documentation and/or other materials provided with the
14   *    distribution.
# Line 37 | Line 28
28   * University of Notre Dame has been advised of the possibility of
29   * such damages.
30   *
31 + * SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
32 + * research, please cite the appropriate papers when you publish your
33 + * work.  Good starting points are:
34 + *                                                                      
35 + * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
36 + * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
37 + * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
38 + * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
39 + * [4]  Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). *
40   *
41   *  sphericalLattice.cpp
42   *
43   *  Created by Charles F. Vardeman II on 17 Feb 2006.
44 + *  Edited by Kelsey M. Stocker on 23 Feb 2012.
45   *  @author  Charles F. Vardeman II
46 < *  @version $Id: shapedLattice.cpp,v 1.3 2006-03-29 19:17:20 chuckv Exp $
46 > *  @version $Id$
47   *
48   */
49  
50 <
50 > #include <cstdlib>
51   #include "lattice/shapedLattice.hpp"
52   #include "math/Vector3.hpp"
53   #include "brains/Register.hpp"
54   #include "lattice/LatticeFactory.hpp"
55  
56 < namespace oopse{
57 <        shapedLattice::shapedLattice(double latticeConstant,
56 > namespace OpenMD{
57 >  shapedLattice::shapedLattice(RealType latticeConstant,
58                                 std::string latticeType) {
59 <                latticeConstant_ = latticeConstant;
60 <                latticeType_ = latticeType;
61 <                registerLattice();
62 <                simpleLattice_ = LatticeFactory::getInstance()->createLattice(latticeType);
63 <                if (simpleLattice_ == NULL){
64 <                        std::cerr << "shapedLattice:: Error creating lattice" << std::endl;
65 <                        exit(1);
66 <                }
59 >    latticeConstant_ = latticeConstant;
60 >    latticeType_ = latticeType;
61 >    registerLattice();
62 >    simpleLattice_ = LatticeFactory::getInstance()->createLattice(latticeType);
63 >    if (simpleLattice_ == NULL){
64 >      std::cerr << "shapedLattice:: Error creating lattice" << std::endl;
65 >      exit(1);
66 >    }
67                  
68 <                //Set the lattice constant
69 <    std::vector<double> lc;
68 >    //Set the lattice constant
69 >    std::vector<RealType> lc;
70      lc.push_back(latticeConstant_);
71 <                simpleLattice_->setLatticeConstant(lc);
72 <        }
73 <        
74 <  
74 <  
71 >    simpleLattice_->setLatticeConstant(lc);
72 >    sitesComputed_ = false;
73 >  }
74 >    
75    void shapedLattice::setGridDimension(Vector3d dimension){
76      dimension_ = dimension;
77 <                // Find number of unit cells in each direction
78 <                beginNx_ = -(int) ceil(0.5*dimension_[0]/latticeConstant_) ;
79 <                beginNy_ = -(int) ceil(0.5*dimension_[1]/latticeConstant_) ;
80 <                beginNz_ = -(int) ceil(0.5*dimension_[2]/latticeConstant_) ;    
77 >    // Find     number of unit cells in each direction
78 >    beginNx_ = -(int) ceil(0.5*dimension_[0]/latticeConstant_) ;
79 >    beginNy_ = -(int) ceil(0.5*dimension_[1]/latticeConstant_) ;
80 >    beginNz_ = -(int) ceil(0.5*dimension_[2]/latticeConstant_) ;    
81      endNx_ = (int) ceil(0.5*dimension_[0]/latticeConstant_);
82 <                endNy_ = (int) ceil(0.5*dimension_[1]/latticeConstant_);
83 <                endNz_ = (int) ceil(0.5*dimension_[2]/latticeConstant_);    
82 >    endNy_ = (int) ceil(0.5*dimension_[1]/latticeConstant_);
83 >    endNz_ = (int) ceil(0.5*dimension_[2]/latticeConstant_);  
84 >    std::cerr << "begin = " << beginNx_ << " " << beginNy_ << " " << beginNz_ << "\n";
85 >    std::cerr << "end = " << endNx_ << " " << endNy_ << " " << endNz_ << "\n";
86 >    sitesComputed_ = false;  
87    }
88 +
89 +  void shapedLattice::setOrigin(Vector3d origin){
90 +    origin_ = origin;
91 +    simpleLattice_->setOrigin(origin_);
92 +    sitesComputed_ = false;  
93 +  }
94    
95 <  
96 <  
97 <    std::vector<Vector3d> shapedLattice::getPoints(){
98 <                        std::vector<Vector3d> latticePos;
99 <                        
100 <      
101 <      std::vector<Vector3d> pointsOrt =  simpleLattice_->getLatticePointsOrt();
102 <      int numMolPerCell = simpleLattice_->getNumSitesPerCell();
103 <      for(int i = beginNx_; i < endNx_; i++) {    
104 <        for(int j = beginNy_; j < endNy_; j++) {      
105 <          for(int k = beginNz_; k < endNz_; k++) {
106 <            //get the position of the cell sites
107 <            simpleLattice_->getLatticePointsPos(latticePos, i, j, k);
108 <            
109 <            for(int l = 0; l < numMolPerCell; l++) {
110 <              
111 <              
112 <              if (isInterior(latticePos[l])){
113 <                Vector3d myPoint = latticePos[l];
114 <                Vector3d myOrt = pointsOrt[l];
106 <                coords_.push_back(myPoint);
107 <                coordsOrt_.push_back(myOrt);
108 <              }
95 >  void shapedLattice::findSites(){
96 >
97 >    sites_.clear();
98 >    orientations_.clear();
99 >
100 >    std::vector<Vector3d> latticePos;                        
101 >    std::vector<Vector3d> pointsOrt =  simpleLattice_->getLatticePointsOrt();
102 >    int numMolPerCell = simpleLattice_->getNumSitesPerCell();  
103 >
104 >    for(int i = beginNx_; i < endNx_; i++) {    
105 >      for(int j = beginNy_; j < endNy_; j++) {      
106 >        for(int k = beginNz_; k < endNz_; k++) {
107 >          //get the position of the cell sites
108 >          simpleLattice_->getLatticePointsPos(latticePos, i, j, k);            
109 >          for(int l = 0; l < numMolPerCell; l++) {              
110 >            if (isInterior(latticePos[l])){
111 >              Vector3d myPoint = latticePos[l];
112 >              Vector3d myOrt = pointsOrt[l];
113 >              sites_.push_back(myPoint);
114 >              orientations_.push_back(myOrt);
115              }
116            }
117          }
118        }
119 <      
120 <      return coords_;
121 <      
122 <                }      
119 >    }
120 >    sitesComputed_ = true;
121 >  }
122 >
123 >  std::vector<Vector3d> shapedLattice::getSites() {
124 >    if (!sitesComputed_) {
125 >      findSites();
126 >    }
127 >    return sites_;
128 >  }
129 >
130 >  std::vector<Vector3d> shapedLattice::getOrientations() {
131 >    if (!sitesComputed_) {
132 >      findSites();
133 >    }
134 >    return orientations_;
135 >  }
136   }

Comparing:
trunk/src/lattice/shapedLattice.cpp (property svn:keywords), Revision 923 by chuckv, Wed Mar 29 19:17:20 2006 UTC vs.
branches/development/src/lattice/shapedLattice.cpp (property svn:keywords), Revision 1850 by gezelter, Wed Feb 20 15:39:39 2013 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines