ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/clusters/Decahedron.hpp
Revision: 1862
Committed: Fri Apr 12 20:45:04 2013 UTC (12 years ago) by gezelter
File size: 5315 byte(s)
Log Message:
Adding nanoparticle generators, fixing a Qhull static link bug

File Contents

# Content
1 /*
2 * Copyright (c) 2013 The University of Notre Dame. All Rights Reserved.
3 *
4 * The University of Notre Dame grants you ("Licensee") a
5 * non-exclusive, royalty free, license to use, modify and
6 * redistribute this software in source and binary code form, provided
7 * that the following conditions are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
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.
16 *
17 * This software is provided "AS IS," without a warranty of any
18 * kind. All express or implied conditions, representations and
19 * warranties, including any implied warranty of merchantability,
20 * fitness for a particular purpose or non-infringement, are hereby
21 * excluded. The University of Notre Dame and its licensors shall not
22 * be liable for any damages suffered by licensee as a result of
23 * using, modifying or distributing the software or its
24 * derivatives. In no event will the University of Notre Dame or its
25 * licensors be liable for any lost revenue, profit or data, or for
26 * direct, indirect, special, consequential, incidental or punitive
27 * damages, however caused and regardless of the theory of liability,
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, 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 /*! \file Decahedron.hpp
44 \brief Decahedron cluster structure generator
45 */
46
47 /* Original copyright & license text:
48
49 Copyright (c) 2011, Dmitry
50 Copyright (c) 2009, Richard Brown
51 Copyright (c) 2011, Evgeny Pr
52 All rights reserved.
53
54 Redistribution and use in source and binary forms, with or without
55 modification, are permitted provided that the following conditions are
56 met:
57
58 * Redistributions of source code must retain the above copyright
59 notice, this list of conditions and the following disclaimer.
60 * Redistributions in binary form must reproduce the above copyright
61 notice, this list of conditions and the following disclaimer in
62 the documentation and/or other materials provided with the distribution
63
64 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
65 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
66 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
67 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
68 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
69 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
70 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
71 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
72 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
73 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
74 POSSIBILITY OF SUCH DAMAGE.
75
76 */
77
78
79 #ifndef CLUSTERS_DECAHEDRON_HPP
80 #define CLUSTERS_DECAHEDRON_HPP
81
82 #include <vector>
83 #include "math/Vector3.hpp"
84
85 using namespace std;
86 namespace OpenMD{
87
88 //! Creates the regular decahedron, Ino decahedron, or truncated
89 //! (Marks) decahedron structures (depending on the parameters).
90 /*!
91 (Heavily modified from Matlab code from:
92 Dmitry, Richard Brown, and Evgeny Pr)
93
94 */
95 class Decahedron {
96 public:
97 //! Default constructor
98 Decahedron(int columnAtoms, int shells, int twinAtoms);
99 virtual ~Decahedron();
100
101 //! Get the generated points in the cluster.
102 virtual vector<Vector3d> getPoints();
103
104 protected:
105 //! Generate the rings of the Decahedron.
106 vector<Vector3d> truncatedRing( int n, int k );
107
108 int N_; // number of atoms in the central atomic column
109 int M_; // number of {002} shells
110 int K_; // number of atomic columns along twin boundary
111
112 vector<Vector3d> Points;
113 vector<Vector3d> Basis; // Basis vectors of the Decahedron
114 };
115
116 class RegularDecahedron : public Decahedron {
117 public:
118 RegularDecahedron(int shells) : Decahedron(shells-1, shells, shells) {}
119 };
120
121 class InoDecahedron : public Decahedron {
122 public:
123 InoDecahedron(int columnAtoms, int shells) :
124 Decahedron(columnAtoms, shells, columnAtoms) {}
125 };
126
127 class CurlingStoneDecahedron : public Decahedron {
128 public:
129 CurlingStoneDecahedron(int columnAtoms, int shells, int twinAtoms, int truncatedPlanes);
130 vector<Vector3d> getPoints();
131 private:
132 int T_; // number of truncated planes snipped from top and bottom
133 };
134
135 }
136
137 #endif

Properties

Name Value
svn:eol-style native