Voro++: voro::unitcell Class Reference

Voro++

- Main Page
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Member Functions | Data Fields | Protected Attributes
voro::unitcell Class Reference

Class for computation of the unit Voronoi cell associated with a 3D non-rectangular periodic domain.

`#include <unitcell.hh>`

Inheritance diagram for voro::unitcell:

## Public Member Functions
| unitcell (double bx_, double bxy_, double by_, double bxz_, double byz_, double bz_)
void | draw_domain_gnuplot (const char *filename)
void | draw_domain_gnuplot (FILE *fp=stdout)
void | draw_domain_pov (const char *filename)
void | draw_domain_pov (FILE *fp=stdout)
bool | intersects_image (double dx, double dy, double dz, double &vol)
void | images (std::vector< int > &vi, std::vector< double > &vd)

## Data Fields
const double | bx
const double | bxy
const double | by
const double | bxz
const double | byz
const double | bz
voronoicell | unit_voro

## Protected Attributes
double | max_uv_y
double | max_uv_z

## Detailed Description

Definition at line 22 of file unitcell.hh.

## Constructor & Destructor Documentation

voro::unitcell::unitcell | ( | double | bx_,
|  | double | bxy_,
|  | double | by_,
|  | double | bxz_,
|  | double | byz_,
|  | double | bz_
| ) |  |

Initializes the unit cell class for a particular non-orthogonal periodic geometry, corresponding to a parallelepiped with sides given by three vectors. The class constructs the unit Voronoi cell corresponding to this geometry.

Parameters

  [in] | (bx_) | The x coordinate of the first unit vector.
  [in] | (bxy_,by_) | The x and y coordinates of the second unit vector.
  [in] | (bxz_,byz_,bz_) | The x, y, and z coordinates of the third unit vector.

Definition at line 26 of file unitcell.cc.

## Member Function Documentation

void voro::unitcell::draw_domain_gnuplot | ( | const char * | filename | ) |
| inline

Draws an outline of the domain in Gnuplot format.

Parameters

  [in] | filename | the filename to write to.

Definition at line 48 of file unitcell.hh.

void voro::unitcell::draw_domain_gnuplot | ( | FILE * | fp = `stdout` | ) |

Draws the periodic domain in gnuplot format.

Parameters

  [in] | fp | the file handle to write to.

Definition at line 203 of file unitcell.cc.

void voro::unitcell::draw_domain_pov | ( | const char * | filename | ) |
| inline

Draws an outline of the domain in Gnuplot format.

Parameters

  [in] | filename | the filename to write to.

Definition at line 56 of file unitcell.hh.

void voro::unitcell::draw_domain_pov | ( | FILE * | fp = `stdout` | ) |

Draws the periodic domain in POV-Ray format.

Parameters

  [in] | fp | the file handle to write to.

Definition at line 212 of file unitcell.cc.

void voro::unitcell::images | ( | std::vector< int > & | vi,
|  | std::vector< double > & | vd
| ) |  |

Computes a list of periodic domain images that intersect the unit Voronoi cell.

Parameters

  [out] | vi | a vector containing triplets (i,j,k) corresponding to domain images that intersect the unit Voronoi cell, when it is centered in the middle of the primary domain.
  [out] | vd | a vector containing the fraction of the Voronoi cell volume within each corresponding image listed in vi.

Definition at line 122 of file unitcell.cc.

bool voro::unitcell::intersects_image | ( | double | dx,
|  | double | dy,
|  | double | dz,
|  | double & | vol
| ) |  |

Calculates whether the unit Voronoi cell intersects a given periodic image of the domain.

Parameters

  [in] | (dx,dy,dz) | the displacement of the periodic image.
  [out] | vol | the proportion of the unit cell volume within this image, only computed in the case that the two intersect.

Returns
  True if they intersect, false otherwise.

Definition at line 101 of file unitcell.cc.

## Field Documentation

const double voro::unitcell::bx

The x coordinate of the first vector defining the periodic domain.

Definition at line 26 of file unitcell.hh.

const double voro::unitcell::bxy

The x coordinate of the second vector defining the periodic domain.

Definition at line 29 of file unitcell.hh.

const double voro::unitcell::bxz

The x coordinate of the third vector defining the periodic domain.

Definition at line 35 of file unitcell.hh.

const double voro::unitcell::by

The y coordinate of the second vector defining the periodic domain.

Definition at line 32 of file unitcell.hh.

const double voro::unitcell::byz

The y coordinate of the third vector defining the periodic domain.

Definition at line 38 of file unitcell.hh.

const double voro::unitcell::bz

The z coordinate of the third vector defining the periodic domain.

Definition at line 41 of file unitcell.hh.

double voro::unitcell::max_uv_y
| protected

The maximum y-coordinate that could possibly cut the computed unit Voronoi cell.

Definition at line 67 of file unitcell.hh.

double voro::unitcell::max_uv_z
| protected

The maximum z-coordinate that could possibly cut the computed unit Voronoi cell.

Definition at line 70 of file unitcell.hh.

voronoicell voro::unitcell::unit_voro

The computed unit Voronoi cell corresponding the given 3D non-rectangular periodic domain geometry.

Definition at line 44 of file unitcell.hh.

The documentation for this class was generated from the following files:

- unitcell.hh
- unitcell.cc