| 40 |
|
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 42 |
|
|
| 43 |
– |
#include <cstdlib> |
| 44 |
– |
#include <cstdio> |
| 45 |
– |
#include <cstring> |
| 46 |
– |
#include <cmath> |
| 47 |
– |
#include <iostream> |
| 48 |
– |
#include <string> |
| 49 |
– |
#include <map> |
| 50 |
– |
#include <fstream> |
| 51 |
– |
#include <algorithm> |
| 52 |
– |
|
| 43 |
|
#include "config.h" |
| 44 |
|
#include "icosahedralBuilderCmd.h" |
| 45 |
|
#include "utils/MoLocator.hpp" |
| 46 |
|
#include "utils/Tuple.hpp" |
| 57 |
– |
#include "brains/Register.hpp" |
| 47 |
|
#include "brains/SimInfo.hpp" |
| 48 |
|
#include "brains/SimCreator.hpp" |
| 49 |
|
#include "io/DumpWriter.hpp" |
| 61 |
– |
#include "math/Vector3.hpp" |
| 50 |
|
#include "math/SquareMatrix3.hpp" |
| 63 |
– |
#include "utils/StringUtils.hpp" |
| 51 |
|
|
| 52 |
|
using namespace OpenMD; |
| 53 |
|
using namespace std; |
| 59 |
|
// |
| 60 |
|
|
| 61 |
|
vector<Vector3d> Points; |
| 62 |
< |
vector<std::pair<int, int> > Edges; |
| 62 |
> |
vector<pair<int, int> > Edges; |
| 63 |
|
vector<tuple3<int, int, int> > Facets; |
| 64 |
|
vector<Vector3d> Basis; // Basis vectors of the edges |
| 65 |
|
|
| 99 |
|
// |
| 100 |
|
// Initialize Basis vectors. |
| 101 |
|
// |
| 102 |
< |
const RealType HT = ( sqrt(5.0) + 1.0 ) / 4.0; // half Tau |
| 102 |
> |
const RealType HGR = ( sqrt(5.0) + 1.0 ) / 4.0; // half of the golden ratio |
| 103 |
|
|
| 104 |
< |
Basis.push_back( Vector3d( HT, 0.0, 0.5 )); |
| 105 |
< |
Basis.push_back( Vector3d( HT, 0.0, -0.5 )); |
| 106 |
< |
Basis.push_back( Vector3d( 0.5, HT, 0.0 )); |
| 107 |
< |
Basis.push_back( Vector3d( -0.5, HT, 0.0 )); |
| 108 |
< |
Basis.push_back( Vector3d( 0.0, 0.5, HT )); |
| 109 |
< |
Basis.push_back( Vector3d( 0.0, -0.5, HT )); |
| 110 |
< |
Basis.push_back( Vector3d( 0.5, -HT, 0.0 )); |
| 111 |
< |
Basis.push_back( Vector3d( 0.0, 0.5, -HT )); |
| 112 |
< |
Basis.push_back( Vector3d( -HT, 0.0, 0.5 )); |
| 113 |
< |
Basis.push_back( Vector3d( 0.0, -0.5, -HT )); |
| 114 |
< |
Basis.push_back( Vector3d( -HT, 0.0, -0.5 )); |
| 115 |
< |
Basis.push_back( Vector3d( -0.5, -HT, 0.0 )); |
| 104 |
> |
Basis.push_back( Vector3d( HGR, 0.0, 0.5 )); |
| 105 |
> |
Basis.push_back( Vector3d( HGR, 0.0, -0.5 )); |
| 106 |
> |
Basis.push_back( Vector3d( 0.5, HGR, 0.0 )); |
| 107 |
> |
Basis.push_back( Vector3d( -0.5, HGR, 0.0 )); |
| 108 |
> |
Basis.push_back( Vector3d( 0.0, 0.5, HGR )); |
| 109 |
> |
Basis.push_back( Vector3d( 0.0, -0.5, HGR )); |
| 110 |
> |
Basis.push_back( Vector3d( 0.5, -HGR, 0.0 )); |
| 111 |
> |
Basis.push_back( Vector3d( 0.0, 0.5, -HGR )); |
| 112 |
> |
Basis.push_back( Vector3d( -HGR, 0.0, 0.5 )); |
| 113 |
> |
Basis.push_back( Vector3d( 0.0, -0.5, -HGR )); |
| 114 |
> |
Basis.push_back( Vector3d( -HGR, 0.0, -0.5 )); |
| 115 |
> |
Basis.push_back( Vector3d( -0.5, -HGR, 0.0 )); |
| 116 |
|
|
| 117 |
|
// |
| 118 |
|
// Initialize 30 edges |
| 344 |
|
"\tgiven. Total number of atoms in a Mackay Icosahedron with\n" |
| 345 |
|
"\t%d shells is %d.", nShells, count); |
| 346 |
|
painCave.isFatal = 1; |
| 347 |
+ |
painCave.severity = OPENMD_INFO; |
| 348 |
|
cmdline_parser_print_help(); |
| 349 |
|
simError(); |
| 350 |
|
} |