ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/poly_occ/voro++-0.4.6/src/config.hh
Revision: 979
Committed: Thu Oct 18 23:40:32 2018 UTC (6 years, 7 months ago) by francois
File size: 5164 byte(s)
Log Message:
creation de polycristaux avec OCC

File Contents

# User Rev Content
1 francois 979 // Voro++, a 3D cell-based Voronoi library
2     //
3     // Author : Chris H. Rycroft (LBL / UC Berkeley)
4     // Email : chr@alum.mit.edu
5     // Date : August 30th 2011
6    
7     /** \file config.hh
8     * \brief Master configuration file for setting various compile-time options. */
9    
10     #ifndef VOROPP_CONFIG_HH
11     #define VOROPP_CONFIG_HH
12    
13     namespace voro {
14    
15     // These constants set the initial memory allocation for the Voronoi cell
16     /** The initial memory allocation for the number of vertices. */
17     const int init_vertices=256;
18     /** The initial memory allocation for the maximum vertex order. */
19     const int init_vertex_order=64;
20     /** The initial memory allocation for the number of regular vertices of order
21     * 3. */
22     const int init_3_vertices=256;
23     /** The initial memory allocation for the number of vertices of higher order.
24     */
25     const int init_n_vertices=8;
26     /** The initial buffer size for marginal cases used by the suretest class. */
27     const int init_marginal=64;
28     /** The initial size for the delete stack. */
29     const int init_delete_size=256;
30     /** The initial size for the auxiliary delete stack. */
31     const int init_delete2_size=256;
32     /** The initial size for the wall pointer array. */
33     const int init_wall_size=32;
34     /** The default initial size for the ordering class. */
35     const int init_ordering_size=4096;
36     /** The initial size of the pre_container chunk index. */
37     const int init_chunk_size=256;
38    
39     // If the initial memory is too small, the program dynamically allocates more.
40     // However, if the limits below are reached, then the program bails out.
41     /** The maximum memory allocation for the number of vertices. */
42     const int max_vertices=16777216;
43     /** The maximum memory allocation for the maximum vertex order. */
44     const int max_vertex_order=2048;
45     /** The maximum memory allocation for the any particular order of vertex. */
46     const int max_n_vertices=16777216;
47     /** The maximum buffer size for marginal cases used by the suretest class. */
48     const int max_marginal=16777216;
49     /** The maximum size for the delete stack. */
50     const int max_delete_size=16777216;
51     /** The maximum size for the auxiliary delete stack. */
52     const int max_delete2_size=16777216;
53     /** The maximum amount of particle memory allocated for a single region. */
54     const int max_particle_memory=16777216;
55     /** The maximum size for the wall pointer array. */
56     const int max_wall_size=2048;
57     /** The maximum size for the ordering class. */
58     const int max_ordering_size=67108864;
59     /** The maximum size for the pre_container chunk index. */
60     const int max_chunk_size=65536;
61    
62     /** The chunk size in the pre_container classes. */
63     const int pre_container_chunk_size=1024;
64    
65     #ifndef VOROPP_VERBOSE
66     /** Voro++ can print a number of different status and debugging messages to
67     * notify the user of special behavior, and this macro sets the amount which
68     * are displayed. At level 0, no messages are printed. At level 1, messages
69     * about unusual cases during cell construction are printed, such as when the
70     * plane routine bails out due to floating point problems. At level 2, general
71     * messages about memory expansion are printed. At level 3, technical details
72     * about memory management are printed. */
73     #define VOROPP_VERBOSE 0
74     #endif
75    
76     /** If a point is within this distance of a cutting plane, then the code
77     * assumes that point exactly lies on the plane. */
78     const double tolerance=1e-11;
79    
80     /** If a point is within this distance of a cutting plane, then the code stores
81     * whether this point is inside, outside, or exactly on the cutting plane in
82     * the marginal cases buffer, to prevent the test giving a different result on
83     * a subsequent evaluation due to floating point rounding errors. */
84     const double tolerance2=2e-11;
85    
86     /** The square of the tolerance, used when deciding whether some squared
87     * quantities are large enough to be used. */
88     const double tolerance_sq=tolerance*tolerance;
89    
90     /** A large number that is used in the computation. */
91     const double large_number=1e30;
92    
93     /** A radius to use as a placeholder when no other information is available. */
94     const double default_radius=0.5;
95    
96     /** The maximum number of shells of periodic images to test over. */
97     const int max_unit_voro_shells=10;
98    
99     /** A guess for the optimal number of particles per block, used to set up the
100     * container grid. */
101     const double optimal_particles=5.6;
102    
103     /** If this is set to 1, then the code reports any instances of particles being
104     * put outside of the container geometry. */
105     #define VOROPP_REPORT_OUT_OF_BOUNDS 0
106    
107     /** Voro++ returns this status code if there is a file-related error, such as
108     * not being able to open file. */
109     #define VOROPP_FILE_ERROR 1
110    
111     /** Voro++ returns this status code if there is a memory allocation error, if
112     * one of the safe memory limits is exceeded. */
113     #define VOROPP_MEMORY_ERROR 2
114    
115     /** Voro++ returns this status code if there is any type of internal error, if
116     * it detects that representation of the Voronoi cell is inconsistent. This
117     * status code will generally indicate a bug, and the developer should be
118     * contacted. */
119     #define VOROPP_INTERNAL_ERROR 3
120    
121     /** Voro++ returns this status code if it could not interpret the command line
122     * arguments passed to the command line utility. */
123     #define VOROPP_CMD_LINE_ERROR 4
124    
125     }
126    
127     #endif