A class representing the whole simulation region. More...
#include <container.hh>
Public Member Functions | |
container_base (fpoint xa, fpoint xb, fpoint ya, fpoint yb, fpoint za, fpoint zb, int xn, int yn, int zn, bool xper, bool yper, bool zper, int memi) | |
~container_base () | |
void | draw_particles (const char *filename) |
void | draw_particles () |
void | draw_particles (ostream &os) |
void | draw_particles_pov (const char *filename) |
void | draw_particles_pov () |
void | draw_particles_pov (ostream &os) |
void | import (istream &is) |
void | import () |
void | import (const char *filename) |
void | region_count () |
void | clear () |
void | draw_cells_gnuplot (const char *filename, fpoint xmin, fpoint xmax, fpoint ymin, fpoint ymax, fpoint zmin, fpoint zmax) |
void | draw_cells_gnuplot (const char *filename) |
void | draw_cells_pov (const char *filename, fpoint xmin, fpoint xmax, fpoint ymin, fpoint ymax, fpoint zmin, fpoint zmax) |
void | draw_cells_pov (const char *filename) |
void | store_cell_volumes (fpoint *bb) |
fpoint | packing_fraction (fpoint *bb, fpoint cx, fpoint cy, fpoint cz, fpoint r) |
fpoint | packing_fraction (fpoint *bb, fpoint xmin, fpoint xmax, fpoint ymin, fpoint ymax, fpoint zmin, fpoint zmax) |
fpoint | sum_cell_volumes () |
void | compute_all_cells () |
void | print_all (ostream &os) |
void | print_all () |
void | print_all (const char *filename) |
void | print_all_neighbor (ostream &os) |
void | print_all_neighbor () |
void | print_all_neighbor (const char *filename) |
void | print_all_custom (const char *format, ostream &os) |
void | print_all_custom (const char *format) |
void | print_all_custom (const char *format, const char *filename) |
template<class n_option > | |
bool | compute_cell_sphere (voronoicell_base< n_option > &c, int i, int j, int k, int ijk, int s) |
template<class n_option > | |
bool | compute_cell_sphere (voronoicell_base< n_option > &c, int i, int j, int k, int ijk, int s, fpoint x, fpoint y, fpoint z) |
template<class n_option > | |
bool | compute_cell (voronoicell_base< n_option > &c, int i, int j, int k, int ijk, int s) |
template<class n_option > | |
bool | compute_cell (voronoicell_base< n_option > &c, int i, int j, int k, int ijk, int s, fpoint x, fpoint y, fpoint z) |
void | put (int n, fpoint x, fpoint y, fpoint z) |
void | put (int n, fpoint x, fpoint y, fpoint z, fpoint r) |
void | add_wall (wall &w) |
bool | point_inside (fpoint x, fpoint y, fpoint z) |
bool | point_inside_walls (fpoint x, fpoint y, fpoint z) |
Protected Member Functions | |
template<class n_option > | |
void | print_all_internal (voronoicell_base< n_option > &c, ostream &os) |
template<class n_option > | |
void | print_all_custom_internal (voronoicell_base< n_option > &c, const char *format, ostream &os) |
template<class n_option > | |
bool | initialize_voronoicell (voronoicell_base< n_option > &c, fpoint x, fpoint y, fpoint z) |
void | add_particle_memory (int i) |
void | add_list_memory () |
Protected Attributes | |
const fpoint | ax |
const fpoint | bx |
const fpoint | ay |
const fpoint | by |
const fpoint | az |
const fpoint | bz |
const fpoint | xsp |
const fpoint | ysp |
const fpoint | zsp |
const int | nx |
const int | ny |
const int | nz |
const int | nxy |
const int | nxyz |
const int | hx |
const int | hy |
const int | hz |
const int | hxy |
const int | hxyz |
const bool | xperiodic |
const bool | yperiodic |
const bool | zperiodic |
unsigned int | mv |
int | wall_number |
int | current_wall_size |
r_option | radius |
int | sz |
int | s_start |
int | s_end |
int | s_size |
int * | co |
int * | mem |
unsigned int * | mask |
int * | sl |
fpoint * | mrad |
wall ** | walls |
int ** | id |
fpoint ** | p |
Friends | |
class | voropp_loop |
class | radius_poly |
A class representing the whole simulation region.
The container class represents the whole simulation region. The container constructor sets up the geometry and periodicity, and divides the geometry into rectangular grid of blocks, each of which handles the particles in a particular area. Routines exist for putting in particles, importing particles from standard input, and carrying out Voronoi calculations.
Definition at line 33 of file container.hh.
container_base< r_option >::container_base | ( | fpoint | xa, | |
fpoint | xb, | |||
fpoint | ya, | |||
fpoint | yb, | |||
fpoint | za, | |||
fpoint | zb, | |||
int | xn, | |||
int | yn, | |||
int | zn, | |||
bool | xper, | |||
bool | yper, | |||
bool | zper, | |||
int | memi | |||
) | [inline] |
The class constructor sets up the geometry of container, initializing the minimum and maximum coordinates in each direction, and setting whether each direction is periodic or not. It divides the container into a rectangular grid of blocks, and allocates memory for each of these for storing particle positions and IDs.
[in] | (xa,xb) | the minimum and maximum x coordinates. |
[in] | (ya,yb) | the minimum and maximum y coordinates. |
[in] | (za,zb) | the minimum and maximum z coordinates. |
[in] | (xn,yn,zn) | the number of grid blocks in each of the three coordinate directions. |
[in] | (xper,yper,zper) | flags setting whether the container is periodic in each coordinate direction. |
[in] | memi | the initial memory allocation for each block. |
Definition at line 28 of file container.cc.
container_base< r_option >::~container_base | ( | ) | [inline] |
The container destructor frees the dynamically allocated memory.
Definition at line 54 of file container.cc.
void container_base< r_option >::add_list_memory | ( | ) | [inline, protected] |
Add list memory.
Definition at line 189 of file container.cc.
void container_base< r_option >::add_particle_memory | ( | int | i | ) | [inline, protected] |
Increase memory for a particular region.
[in] | i | the index of the region to reallocate. |
Definition at line 170 of file container.cc.
void container_base< r_option >::add_wall | ( | wall & | w | ) | [inline] |
Adds a wall to the container.
[in] | w | a wall object to be added. |
Definition at line 1478 of file container.cc.
void container_base< r_option >::clear | ( | ) | [inline] |
Clears a container of particles.
Definition at line 242 of file container.cc.
void container_base< r_option >::compute_all_cells | ( | ) | [inline] |
Computes all of the Voronoi cells in the container, but does nothing with the output. It is useful for measuring the pure computation time of the Voronoi algorithm, without any additional calculations such as volume evaluation or cell output.
Definition at line 323 of file container.cc.
bool container_base< r_option >::compute_cell | ( | voronoicell_base< n_option > & | c, | |
int | i, | |||
int | j, | |||
int | k, | |||
int | ijk, | |||
int | s, | |||
fpoint | x, | |||
fpoint | y, | |||
fpoint | z | |||
) | [inline] |
This routine computes a Voronoi cell for a single particle in the container. It can be called by the user, but is also forms the core part of several of the main functions, such as store_cell_volumes(), print_all(), and the drawing routines. The algorithm constructs the cell by testing over the neighbors of the particle, working outwards until it reaches those particles which could not possibly intersect the cell. For maximum efficiency, this algorithm is divided into three parts. In the first section, the algorithm tests over the blocks which are in the immediate vicinity of the particle, by making use of one of the precomputed worklists. The code then continues to test blocks on the worklist, but also begins to construct a list of neighboring blocks outside the worklist which may need to be test. In the third section, the routine starts testing these neighboring blocks, evaluating whether or not a particle in them could possibly intersect the cell. For blocks that intersect the cell, it tests the particles in that block, and then adds the block neighbors to the list of potential places to consider.
[in,out] | c | a reference to a voronoicell object. |
[in] | (i,j,k) | the coordinates of the block that the test particle is in. |
[in] | ijk | the index of the block that the test particle is in, set to i+nx*(j+ny*k). |
[in] | s | the index of the particle within the test block. |
[in] | (x,y,z) | the coordinates of the particle. |
Definition at line 790 of file container.cc.
bool container_base< r_option >::compute_cell | ( | voronoicell_base< n_option > & | c, | |
int | i, | |||
int | j, | |||
int | k, | |||
int | ijk, | |||
int | s | |||
) | [inline] |
A overloaded version of compute_cell, that sets up the x, y, and z variables. It can be run by the user, and it is also called multiple times by the functions print_all(), store_cell_volumes(), and the output routines.
[in,out] | c | a reference to a voronoicell object. |
[in] | (i,j,k) | the coordinates of the block that the test particle is in. |
[in] | ijk | the index of the block that the test particle is in, set to i+nx*(j+ny*k). |
[in] | s | the index of the particle within the test block. |
Definition at line 758 of file container.cc.
bool container_base< r_option >::compute_cell_sphere | ( | voronoicell_base< n_option > & | c, | |
int | i, | |||
int | j, | |||
int | k, | |||
int | ijk, | |||
int | s, | |||
fpoint | x, | |||
fpoint | y, | |||
fpoint | z | |||
) | [inline] |
This routine is a simpler alternative to compute_cell(), that constructs the cell by testing over successively larger spherical shells of particles. For a container that is homogeneously filled with particles, this routine runs as fast as compute_cell(). However, it rapidly becomes inefficient for cases when the particles are not homogeneously distributed, or where parts of the container might not be filled. In that case, the spheres may grow very large before being cut off, leading to poor efficiency.
[in,out] | c | a reference to a voronoicell object. |
[in] | (i,j,k) | the coordinates of the block that the test particle is in. |
[in] | ijk | the index of the block that the test particle is in, set to i+nx*(j+ny*k). |
[in] | s | the index of the particle within the test block. |
[in] | (x,y,z) | the coordinates of the particle. |
Definition at line 697 of file container.cc.
bool container_base< r_option >::compute_cell_sphere | ( | voronoicell_base< n_option > & | c, | |
int | i, | |||
int | j, | |||
int | k, | |||
int | ijk, | |||
int | s | |||
) | [inline] |
A overloaded version of compute_cell_sphere(), that sets up the x, y, and z variables.
[in,out] | c | a reference to a voronoicell object. |
[in] | (i,j,k) | the coordinates of the block that the test particle is in. |
[in] | ijk | the index of the block that the test particle is in, set to i+nx*(j+ny*k). |
[in] | s | the index of the particle within the test block. |
Definition at line 740 of file container.cc.
void container_base< r_option >::draw_cells_gnuplot | ( | const char * | filename | ) | [inline] |
An overloaded version of draw_cells_gnuplot() that computes the Voronoi cells for the entire simulation region and saves the output in gnuplot format.
[in] | filename | the name of the file to write to. |
Definition at line 278 of file container.cc.
void container_base< r_option >::draw_cells_gnuplot | ( | const char * | filename, | |
fpoint | xmin, | |||
fpoint | xmax, | |||
fpoint | ymin, | |||
fpoint | ymax, | |||
fpoint | zmin, | |||
fpoint | zmax | |||
) | [inline] |
Computes the Voronoi cells for all particles within a rectangular box, and saves the output in gnuplot format.
[in] | filename | the name of the file to write to. |
[in] | (xmin,xmax) | the minimum and maximum x coordinates of the box. |
[in] | (ymin,ymax) | the minimum and maximum y coordinates of the box. |
[in] | (zmin,zmax) | the minimum and maximum z coordinates of the box. |
Definition at line 254 of file container.cc.
void container_base< r_option >::draw_cells_pov | ( | const char * | filename | ) | [inline] |
An overloaded version of draw_cells_pov() that computes the Voronoi cells for the entire simulation region and saves the output in POV-Ray format.
[in] | filename | the name of the file to write to. |
Definition at line 314 of file container.cc.
void container_base< r_option >::draw_cells_pov | ( | const char * | filename, | |
fpoint | xmin, | |||
fpoint | xmax, | |||
fpoint | ymin, | |||
fpoint | ymax, | |||
fpoint | zmin, | |||
fpoint | zmax | |||
) | [inline] |
Computes the Voronoi cells for all particles within a rectangular box, and saves the output in POV-Ray format.
[in] | filename | the name of the file to write to. |
[in] | (xmin,xmax) | the minimum and maximum x coordinates of the box. |
[in] | (ymin,ymax) | the minimum and maximum y coordinates of the box. |
[in] | (zmin,zmax) | the minimum and maximum z coordinates of the box. |
Definition at line 289 of file container.cc.
void container_base< r_option >::draw_particles | ( | ostream & | os | ) | [inline] |
Dumps all the particle positions and identifies to a file.
[in] | os | an output stream to write to. |
Definition at line 71 of file container.cc.
void container_base< r_option >::draw_particles | ( | ) | [inline] |
An overloaded version of the draw_particles() routine, that just prints to standard output.
Definition at line 83 of file container.cc.
void container_base< r_option >::draw_particles | ( | const char * | filename | ) | [inline] |
An overloaded version of the draw_particles() routine, that outputs the particle positions to a file.
[in] | filename | the file to write to. |
Definition at line 91 of file container.cc.
void container_base< r_option >::draw_particles_pov | ( | ostream & | os | ) | [inline] |
Dumps all the particle positions in POV-Ray format.
[in] | os | an output stream to write to. |
Definition at line 101 of file container.cc.
void container_base< r_option >::draw_particles_pov | ( | ) | [inline] |
An overloaded version of the draw_particles_pov() routine, that just prints to standard output.
Definition at line 115 of file container.cc.
void container_base< r_option >::draw_particles_pov | ( | const char * | filename | ) | [inline] |
An overloaded version of the draw_particles_pov() routine, that outputs the particle positions to a file.
[in] | filename | the file to write to. |
Definition at line 123 of file container.cc.
void container_base< r_option >::import | ( | const char * | filename | ) | [inline] |
An overloaded version of the import routine, that reads in particles from a particular file.
[in] | filename | the name of the file to read from. |
Definition at line 224 of file container.cc.
void container_base< r_option >::import | ( | ) | [inline] |
An overloaded version of the import routine, that reads the standard input.
Definition at line 216 of file container.cc.
void container_base< r_option >::import | ( | istream & | is | ) | [inline] |
Import a list of particles from standard input.
[in] | is | a standard input stream to read from. |
Definition at line 209 of file container.cc.
bool container_base< r_option >::initialize_voronoicell | ( | voronoicell_base< n_option > & | c, | |
fpoint | x, | |||
fpoint | y, | |||
fpoint | z | |||
) | [inline, protected] |
Initialize the Voronoi cell to be the entire container. For non-periodic coordinates, this is set by the position of the walls. For periodic coordinates, the space is equally divided in either direction from the particle's initial position. That makes sense since those boundaries would be made by the neighboring periodic images of this particle. It also applies plane cuts made by any walls that have been added to the container.
[in,out] | c | a reference to a voronoicell object. |
[in] | (x,y,z) | the position of the particle. |
Definition at line 646 of file container.cc.
fpoint container_base< r_option >::packing_fraction | ( | fpoint * | bb, | |
fpoint | xmin, | |||
fpoint | xmax, | |||
fpoint | ymin, | |||
fpoint | ymax, | |||
fpoint | zmin, | |||
fpoint | zmax | |||
) | [inline] |
Computes the local packing fraction at a point, by summing the volumes of all particles within test box, and dividing by the sum of their Voronoi volumes that were previous computed using the store_cell_volumes() function.
[in] | bb | an array holding the Voronoi volumes of the particles. |
[in] | (xmin,xmax) | the minimum and maximum x coordinates of the box. |
[in] | (ymin,ymax) | the minimum and maximum y coordinates of the box. |
[in] | (zmin,zmax) | the minimum and maximum z coordinates of the box. |
Definition at line 383 of file container.cc.
fpoint container_base< r_option >::packing_fraction | ( | fpoint * | bb, | |
fpoint | cx, | |||
fpoint | cy, | |||
fpoint | cz, | |||
fpoint | r | |||
) | [inline] |
Computes the local packing fraction at a point, by summing the volumes of all particles within a test sphere, and dividing by the sum of their Voronoi volumes that were previously computed using the store_cell_volumes() function.
[in] | bb | a pointer to an array holding the Voronoi volumes of the particles. |
[in] | (cx,cy,cz) | the center of the test sphere. |
[in] | r | the radius of the test sphere. |
Definition at line 356 of file container.cc.
bool container_base< r_option >::point_inside | ( | fpoint | x, | |
fpoint | y, | |||
fpoint | z | |||
) | [inline] |
This function tests to see if a given vector lies within the container bounds and any walls.
[in] | (x,y,z) | the position vector to be tested. |
Definition at line 662 of file container.cc.
bool container_base< r_option >::point_inside_walls | ( | fpoint | x, | |
fpoint | y, | |||
fpoint | z | |||
) | [inline] |
This function tests to see if a give vector lies within the walls that have been added to the container, but does not specifically check whether the vector lies within the container bounds.
[in] | (x,y,z) | the position vector to be tested. |
Definition at line 674 of file container.cc.
void container_base< r_option >::print_all | ( | const char * | filename | ) | [inline] |
An overloaded version of print_all(), which outputs the result to a particular file.
[in] | filename | the name of the file to write to. |
Definition at line 597 of file container.cc.
void container_base< r_option >::print_all | ( | ) | [inline] |
An overloaded version of print_all(), which just prints to standard output.
Definition at line 588 of file container.cc.
void container_base< r_option >::print_all | ( | ostream & | os | ) | [inline] |
Prints a list of all particle labels, positions, and Voronoi volumes to the standard output.
[in] | os | the output stream to print to. |
Definition at line 581 of file container.cc.
void container_base< r_option >::print_all_custom | ( | const char * | format, | |
const char * | filename | |||
) | [inline] |
An overloaded version of print_all_custom(), which outputs the result to a particular file.
[in] | format | the format of the output lines, using control sequences to denote the different cell statistics. |
[in] | filename | the name of the file to write to. |
Definition at line 466 of file container.cc.
void container_base< r_option >::print_all_custom | ( | const char * | format | ) | [inline] |
An overloaded version of print_all_custom() that prints to standard output.
[in] | format | the format of the output lines, using control sequences to denote the different cell statistics. |
Definition at line 456 of file container.cc.
void container_base< r_option >::print_all_custom | ( | const char * | format, | |
ostream & | os | |||
) | [inline] |
Computes the Voronoi cells for all particles in the container, and for each cell, outputs a line containing custom information about the cell structure. The output format is specified using an input string with control sequences similar to the standard C printf() routine. Full information about the control sequences is available at http://math.lbl.gov/voro++/doc/custom.html
[in] | format | the format of the output lines, using control sequences to denote the different cell statistics. |
[in] | os | an open output stream to write to. |
Definition at line 425 of file container.cc.
void container_base< r_option >::print_all_custom_internal | ( | voronoicell_base< n_option > & | c, | |
const char * | format, | |||
ostream & | os | |||
) | [inline, protected] |
The internal part of the print_all_custom() routine, that can be called with either a voronoicell class (if no neighbor computations are needed) or with a voronoicell_neighbor class (if neighbor computations are needed).
[in,out] | c | a Voronoi cell object to use for the computation. |
[in] | format | the format of the output lines, using control sequences to denote the different cell statistics. |
[in] | os | an open output stream to write to. |
Definition at line 482 of file container.cc.
void container_base< r_option >::print_all_internal | ( | voronoicell_base< n_option > & | c, | |
ostream & | os | |||
) | [inline, protected] |
The internal part of the print_all() and print_all_neighbor() routines, that computes all of the Voronoi cells, and then outputs simple information about them. The routine can be called with either a voronoicell class (if no neighbor computations are needed) or with a voronoicell_neighbor class (if neighbor computations are needed).
[in,out] | c | a Voronoi cell object to use for the computation. |
[in] | os | an open output stream to write to. |
Definition at line 560 of file container.cc.
void container_base< r_option >::print_all_neighbor | ( | const char * | filename | ) | [inline] |
An overloaded version of print_all_neighbor(), which outputs the results to a particular file.
[in] | filename | the name of the file to write to. |
Definition at line 626 of file container.cc.
void container_base< r_option >::print_all_neighbor | ( | ) | [inline] |
An overloaded version of print_all_neighbor(), which just prints to standard output.
Definition at line 617 of file container.cc.
void container_base< r_option >::print_all_neighbor | ( | ostream & | os | ) | [inline] |
Prints a list of all particle labels, positions, Voronoi volumes, and a list of neighboring particles to an output stream.
[in] | os | the output stream to print to. |
Definition at line 609 of file container.cc.
void container_base< r_option >::put | ( | int | n, | |
fpoint | x, | |||
fpoint | y, | |||
fpoint | z, | |||
fpoint | r | |||
) | [inline] |
Put a particle into the correct region of the container.
[in] | n | the numerical ID of the inserted particle. |
[in] | (x,y,z) | the position vector of the inserted particle. |
[in] | r | the radius of the particle. |
Definition at line 153 of file container.cc.
void container_base< r_option >::put | ( | int | n, | |
fpoint | x, | |||
fpoint | y, | |||
fpoint | z | |||
) | [inline] |
Put a particle into the correct region of the container.
[in] | n | the numerical ID of the inserted particle. |
[in] | (x,y,z) | the position vector of the inserted particle. |
Definition at line 134 of file container.cc.
void container_base< r_option >::region_count | ( | ) | [inline] |
Outputs the number of particles within each region.
Definition at line 234 of file container.cc.
void container_base< r_option >::store_cell_volumes | ( | fpoint * | bb | ) | [inline] |
Computes the Voronoi volumes for all the particles, and stores the results according to the particle ID numbers in a floating point array that the user has supplied. No bounds checking on the array is performed, so it is up to the user to ensure that the array is large enough to store the computed numbers.
[in] | bb | a pointer to an array to store the volumes. The volume of the particle with ID number n will be stored at bb[n]. |
Definition at line 339 of file container.cc.
fpoint container_base< r_option >::sum_cell_volumes | ( | ) | [inline] |
Calculates all of the Voronoi cells and sums their volumes. In most cases without walls, the sum of the Voronoi cell volumes should equal the volume of the container to numerical precision.
Definition at line 407 of file container.cc.
const fpoint container_base< r_option >::ax [protected] |
The minimum x coordinate of the container.
Definition at line 81 of file container.hh.
const fpoint container_base< r_option >::ay [protected] |
The minimum y coordinate of the container.
Definition at line 85 of file container.hh.
const fpoint container_base< r_option >::az [protected] |
The minimum z coordinate of the container.
Definition at line 89 of file container.hh.
const fpoint container_base< r_option >::bx [protected] |
The maximum x coordinate of the container.
Definition at line 83 of file container.hh.
const fpoint container_base< r_option >::by [protected] |
The maximum y coordinate of the container.
Definition at line 87 of file container.hh.
const fpoint container_base< r_option >::bz [protected] |
The maximum z coordinate of the container.
Definition at line 91 of file container.hh.
int* container_base< r_option >::co [protected] |
This array holds the number of particles within each computational box of the container.
Definition at line 170 of file container.hh.
int container_base< r_option >::current_wall_size [protected] |
The current amount of memory allocated for walls.
Definition at line 142 of file container.hh.
const int container_base< r_option >::hx [protected] |
The number of boxes in the x direction for the searching mask.
Definition at line 115 of file container.hh.
const int container_base< r_option >::hxy [protected] |
A constant, set to the value of hx multiplied by hy, which is used in the routines which step through mask boxes in sequence.
Definition at line 123 of file container.hh.
const int container_base< r_option >::hxyz [protected] |
A constant, set to the value of hx*hy*hz, which is used in the routines which step through mask boxes in sequence.
Definition at line 126 of file container.hh.
const int container_base< r_option >::hy [protected] |
The number of boxes in the y direction for the searching mask.
Definition at line 117 of file container.hh.
const int container_base< r_option >::hz [protected] |
The number of boxes in the z direction for the searching mask.
Definition at line 119 of file container.hh.
int** container_base< r_option >::id [protected] |
This array holds the numerical IDs of each particle in each computational box.
Definition at line 192 of file container.hh.
unsigned int* container_base< r_option >::mask [protected] |
This array is used during the cell computation to determine which blocks have been considered.
Definition at line 179 of file container.hh.
int* container_base< r_option >::mem [protected] |
This array holds the maximum amount of particle memory for each computational box of the container. If the number of particles in a particular box ever approaches this limit, more is allocated using the add_particle_memory() function.
Definition at line 176 of file container.hh.
fpoint* container_base< r_option >::mrad [protected] |
An array to hold the minimum distances associated with the worklists. This array is initialized during container construction, by the initialize_radii() routine.
Definition at line 186 of file container.hh.
unsigned int container_base< r_option >::mv [protected] |
This sets the current value being used to mark tested blocks in the mask.
Definition at line 138 of file container.hh.
const int container_base< r_option >::nx [protected] |
The number of boxes in the x direction.
Definition at line 102 of file container.hh.
const int container_base< r_option >::nxy [protected] |
A constant, set to the value of nx multiplied by ny, which is used in the routines which step through boxes in sequence.
Definition at line 110 of file container.hh.
const int container_base< r_option >::nxyz [protected] |
A constant, set to the value of nx*ny*nz, which is used in the routines which step through boxes in sequence.
Definition at line 113 of file container.hh.
const int container_base< r_option >::ny [protected] |
The number of boxes in the y direction.
Definition at line 104 of file container.hh.
const int container_base< r_option >::nz [protected] |
The number of boxes in the z direction.
Definition at line 106 of file container.hh.
fpoint** container_base< r_option >::p [protected] |
A two dimensional array holding particle positions. For the derived container_poly class, this also holds particle radii.
Definition at line 196 of file container.hh.
r_option container_base< r_option >::radius [protected] |
This object contains all the functions for handling how the particle radii should be treated. If the template is instantiated with the radius_mono class, then this object contains mostly blank routines that do nothing to the cell computation, to compute the basic Voronoi diagram. If the template is instantiated with the radius_poly calls, then this object provides routines for modifying the Voronoi cell computation in order to create the radical Voronoi tessellation.
Definition at line 152 of file container.hh.
int container_base< r_option >::s_end [protected] |
The position of the last element on the search list to be considered.
Definition at line 165 of file container.hh.
int container_base< r_option >::s_size [protected] |
The current size of the search list.
Definition at line 167 of file container.hh.
int container_base< r_option >::s_start [protected] |
The position of the first element on the search list to be considered.
Definition at line 162 of file container.hh.
int* container_base< r_option >::sl [protected] |
This array is used to store the list of blocks to test during the Voronoi cell computation.
Definition at line 182 of file container.hh.
int container_base< r_option >::sz [protected] |
The amount of memory in the array structure for each particle. This is set to 3 when the basic class is initialized, so that the array holds (x,y,z) positions. If the container class is initialized as part of the derived class container_poly, then this is set to 4, to also hold the particle radii.
Definition at line 159 of file container.hh.
int container_base< r_option >::wall_number [protected] |
The current number of wall objects, initially set to zero.
Definition at line 140 of file container.hh.
wall** container_base< r_option >::walls [protected] |
This array holds pointers to any wall objects that have been added to the container.
Definition at line 189 of file container.hh.
const bool container_base< r_option >::xperiodic [protected] |
A boolean value that determines if the x coordinate in periodic or not.
Definition at line 129 of file container.hh.
const fpoint container_base< r_option >::xsp [protected] |
The inverse box length in the x direction, set to nx/(bx-ax).
Definition at line 94 of file container.hh.
const bool container_base< r_option >::yperiodic [protected] |
A boolean value that determines if the y coordinate in periodic or not.
Definition at line 132 of file container.hh.
const fpoint container_base< r_option >::ysp [protected] |
The inverse box length in the y direction, set to ny/(by-ay).
Definition at line 97 of file container.hh.
const bool container_base< r_option >::zperiodic [protected] |
A boolean value that determines if the z coordinate in periodic or not.
Definition at line 135 of file container.hh.
const fpoint container_base< r_option >::zsp [protected] |
The inverse box length in the z direction, set to nz/(bz-az).
Definition at line 100 of file container.hh.