ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/hydrodynamics/CompositeShape.cpp
(Generate patch)

Comparing trunk/src/applications/hydrodynamics/CompositeShape.cpp (file contents):
Revision 921 by tim, Wed Mar 29 18:09:26 2006 UTC vs.
Revision 1390 by gezelter, Wed Nov 25 20:02:06 2009 UTC

# Line 6 | Line 6
6   * redistribute this software in source and binary code form, provided
7   * that the following conditions are met:
8   *
9 < * 1. Acknowledgement of the program authors must be made in any
10 < *    publication of scientific results based in part on use of the
11 < *    program.  An acceptable form of acknowledgement is citation of
12 < *    the article in which the program was described (Matthew
13 < *    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 < *    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 < *    Parallel Simulation Engine for Molecular Dynamics,"
16 < *    J. Comput. Chem. 26, pp. 252-271 (2005))
17 < *
18 < * 2. Redistributions of source code must retain the above copyright
9 > * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   *
12 < * 3. Redistributions in binary form must reproduce the above copyright
12 > * 2. Redistributions in binary form must reproduce the above copyright
13   *    notice, this list of conditions and the following disclaimer in the
14   *    documentation and/or other materials provided with the
15   *    distribution.
# Line 37 | Line 28
28   * arising out of the use of or inability to use software, even if the
29   * University of Notre Dame has been advised of the possibility of
30   * such damages.
31 + *
32 + * SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
33 + * research, please cite the appropriate papers when you publish your
34 + * work.  Good starting points are:
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).          
39 + * [4]  Vardeman & Gezelter, in progress (2009).                        
40   */
41  
42   #include "applications/hydrodynamics/CompositeShape.hpp"
43   #include "utils/MemoryUtils.hpp"
44   #include "applications/hydrodynamics/HydrodynamicsModel.hpp"
45 < namespace oopse {
46 <
47 < CompositeShape::~CompositeShape() {
45 > namespace OpenMD {
46 >  
47 >  CompositeShape::~CompositeShape() {
48      MemoryUtils::deletePointers(shapes_);
49 < }
50 < bool CompositeShape::isInterior(Vector3d pos) {
49 >  }
50 >  bool CompositeShape::isInterior(Vector3d pos) {
51      bool result = false;
52      std::vector<Shape*>::iterator iter;
53      for (iter = shapes_.begin(); iter != shapes_.end(); ++ iter) {
54 <        if ((*iter)->isInterior(pos)) {
55 <            result = true;
56 <            break;
57 <        }
54 >      if ((*iter)->isInterior(pos)) {
55 >        result = true;
56 >        break;
57 >      }
58      }
59 <
59 >    
60      return result;
61 < }
62 <
63 < template<class Cont, class Predict>
64 < void swap_if(Cont& b1, Cont& b2, Predict predict) {
61 >  }
62 >  
63 >  template<class Cont, class Predict>
64 >  void swap_if(Cont& b1, Cont& b2, Predict predict) {
65      unsigned int size = b1.size();
66      assert(size == b2.size());
67      for (unsigned int i = 0 ; i < size; ++i) {
68 <        if (predict(b1[i], b2[i]))
69 <            std::swap(b1[i], b2[i]);
68 >      if (predict(b1[i], b2[i]))
69 >        std::swap(b1[i], b2[i]);
70      }
71 <
72 < }
73 <
74 < std::pair<Vector3d, Vector3d> CompositeShape::getBox() {
71 >    
72 >  }
73 >  
74 >  std::pair<Vector3d, Vector3d> CompositeShape::getBoundingBox() {
75      std::vector<Shape*>::iterator iter = shapes_.begin();
76 <    std::pair<Vector3d, Vector3d>  boundary = (*iter)->getBox();
76 >    std::pair<Vector3d, Vector3d>  boundary = (*iter)->getBoundingBox();
77      for (++iter; iter != shapes_.end(); ++iter) {
78 <        std::pair<Vector3d, Vector3d> currBoundary = (*iter)->getBox();
79 <            swap_if(boundary.first, currBoundary.first, std::greater<double>());
80 <            swap_if(boundary.second, currBoundary.second, std::less<double>());        
78 >      std::pair<Vector3d, Vector3d> currBoundary = (*iter)->getBoundingBox();
79 >      swap_if(boundary.first, currBoundary.first, std::greater<RealType>());
80 >      swap_if(boundary.second, currBoundary.second, std::less<RealType>());        
81      }
82 <
82 >    
83      return boundary;
84 +  }
85 +  
86 +  HydroProp* CompositeShape::getHydroProp(RealType viscosity, RealType temperature) {
87 +    HydroProp* props = new HydroProp();
88 +    props->setCOR(V3Zero);
89 +    sprintf( painCave.errMsg,
90 +             "CompositeShape was asked to return an analytic HydroProps.\n");
91 +    painCave.severity = OPENMD_ERROR;
92 +    painCave.isFatal = 1;
93 +    simError();          
94 +    return props;
95 +  }  
96   }
85
86 bool CompositeShape::calcHydroProps(HydrodynamicsModel* model, double viscosity, double temperature) {
87    return model->calcHydroProps(this, viscosity, temperature);
88 }
89
90 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines