init
@@ -0,0 +1,39 @@
|
||||
Voro++ Copyright (c) 2008, The Regents of the University of California, through
|
||||
Lawrence Berkeley National Laboratory (subject to receipt of any required
|
||||
approvals from the U.S. Dept. of Energy). All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
(1) Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
(2) Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
(3) Neither the name of the University of California, Lawrence Berkeley
|
||||
National Laboratory, U.S. Dept. of Energy nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
You are under no obligation whatsoever to provide any bug fixes, patches, or
|
||||
upgrades to the features, functionality or performance of the source code
|
||||
("Enhancements") to anyone; however, if you choose to make your Enhancements
|
||||
available either publicly, or directly to Lawrence Berkeley National
|
||||
Laboratory, without imposing a separate written license agreement for such
|
||||
Enhancements, then you hereby grant the following license: a non-exclusive,
|
||||
royalty-free perpetual license to install, use, modify, prepare derivative
|
||||
works, incorporate into other computer software, distribute, and sublicense
|
||||
such enhancements or derivative works thereof, in binary and source code form.
|
||||
@@ -0,0 +1,72 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Tell make that these are phony targets
|
||||
.PHONY: all help clean install uninstall
|
||||
|
||||
include config.mk
|
||||
|
||||
# Build all of the executable files
|
||||
all:
|
||||
$(MAKE) -C src
|
||||
$(MAKE) -C examples
|
||||
|
||||
# Build the help files (with Doxygen)
|
||||
help:
|
||||
$(MAKE) -C src help
|
||||
|
||||
# Clean up the executable files
|
||||
clean:
|
||||
$(MAKE) -C src clean
|
||||
$(MAKE) -C examples clean
|
||||
|
||||
# Install the executable, man page, and shared library
|
||||
install:
|
||||
$(MAKE) -C src
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/bin
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/lib
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/man
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/man/man1
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/include
|
||||
$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS_EXEC) src/voro++ $(PREFIX)/bin
|
||||
$(INSTALL) $(IFLAGS) man/voro++.1 $(PREFIX)/man/man1
|
||||
$(INSTALL) $(IFLAGS) src/libvoro++.a $(PREFIX)/lib
|
||||
$(INSTALL) $(IFLAGS) src/voro++.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/c_loops.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/cell.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/common.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/config.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/container.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/container_prd.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/rad_option.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/pre_container.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/unitcell.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/v_base.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/v_compute.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/wall.hh $(PREFIX)/include/voro++
|
||||
$(INSTALL) $(IFLAGS) src/worklist.hh $(PREFIX)/include/voro++
|
||||
|
||||
# Uninstall the executable, man page, and shared library
|
||||
uninstall:
|
||||
rm -f $(PREFIX)/bin/voro++
|
||||
rm -f $(PREFIX)/man/man1/voro++.1
|
||||
rm -f $(PREFIX)/lib/libvoro++.a
|
||||
rm -f $(PREFIX)/include/voro++/voro++.hh
|
||||
rm -f $(PREFIX)/include/voro++/c_loops.hh
|
||||
rm -f $(PREFIX)/include/voro++/cell.hh
|
||||
rm -f $(PREFIX)/include/voro++/common.hh
|
||||
rm -f $(PREFIX)/include/voro++/config.hh
|
||||
rm -f $(PREFIX)/include/voro++/container.hh
|
||||
rm -f $(PREFIX)/include/voro++/container_prd.hh
|
||||
rm -f $(PREFIX)/include/voro++/pre_container.hh
|
||||
rm -f $(PREFIX)/include/voro++/rad_option.hh
|
||||
rm -f $(PREFIX)/include/voro++/unitcell.hh
|
||||
rm -f $(PREFIX)/include/voro++/v_base.hh
|
||||
rm -f $(PREFIX)/include/voro++/v_compute.hh
|
||||
rm -f $(PREFIX)/include/voro++/wall.hh
|
||||
rm -f $(PREFIX)/include/voro++/worklist.hh
|
||||
rmdir $(PREFIX)/include/voro++
|
||||
@@ -0,0 +1,341 @@
|
||||
Version 0.4.6 (October 17th 2013)
|
||||
=================================
|
||||
* Fixed an issue with template instantiation in wall.cc that was causing
|
||||
compilation problems with new versions of Apple Xcode. Thanks to Barend
|
||||
Thijsse (Delft University of Technology) and Juan Pablo Cruz Pérez (Instituto
|
||||
de Física y Matemáticas) for pointing this out.
|
||||
* Added routines to the container classes to compute a ghost Voronoi cell at
|
||||
any given location, as though an extra particle was inserted at that
|
||||
location
|
||||
* Removed unused private variable in c_loops.hh
|
||||
* Updated Doxyfile to 1.8.5
|
||||
|
||||
Version 0.4.5 (July 27th 2012)
|
||||
==============================
|
||||
* Removed "using namespace std" from the header files and added extra "std::"
|
||||
qualifiers on STL vectors and queues. This is to prevent naming conflicts
|
||||
with other libraries. Thanks to Florian Hoffmann (University of Luxembourg)
|
||||
for pointing this out.
|
||||
* Fixed an error in the check_facets diagnostic routine. Thanks to Tristan
|
||||
Carrier-Baudouin (Université catholique de Louvain) for pointing this out.
|
||||
* Fixed a memory leak in the new container_periodic class. Thanks to Massimo
|
||||
Marchi (Commissariat á l'Energie Atomique) for pointing this out.
|
||||
* Removed some duplicate or unnecessary #include statements of the standard C++
|
||||
header files
|
||||
* Fix small naming mismatch between cell.cc and cell.hh in plane_intersects
|
||||
and nplane routines, which would give a warning with Doxygen
|
||||
* More changes for older MS Visual C++ compatability
|
||||
* Updated Doxyfile to 1.8.1.1
|
||||
|
||||
Version 0.4.4 (January 17th 2012)
|
||||
=================================
|
||||
* Fixed an error in pointer arithmetic that was introduced in version 0.4,
|
||||
which would occur in cases where the delete stack was extended when a large
|
||||
number of vertices were being removed. Thanks to Jeff Johnson (Lawrence
|
||||
Berkeley Laboratory) and Matt Freeman (Texas A&M University) for pointing
|
||||
this out.
|
||||
|
||||
Version 0.4.3 (November 12th 2011)
|
||||
==================================
|
||||
* Removed spurious Gnuplot output line from torus.cc example
|
||||
* More changes for better Visual C++ compatibility
|
||||
* Fixed indexing error in worklist generation routine. This had no effect
|
||||
on the generated worklists, but would become apparent in other situations.
|
||||
* Added rad_option.hh to the list of files included by voro++.hh for
|
||||
completeness
|
||||
* Fix errors in Gnuplot commands in the basic examples README file. Thanks to
|
||||
William-Fernando Oquendo (National University of Colombia) for pointing this
|
||||
out.
|
||||
* Fixed memory allocation issue in face_freq_table routine - thanks to Lingti
|
||||
Kong for pointing this out
|
||||
* Minor cleanups and optimizations to wall classes
|
||||
|
||||
Version 0.4.2 (September 23rd 2011)
|
||||
===================================
|
||||
* Fixed a bug in the put_remap routine where a z periodic boolean was
|
||||
switched to an x periodic boolean. This would only be noticed when using
|
||||
mixed periodic boundary conditions and importing particles that need to be
|
||||
remapped.
|
||||
* The pid function in the c_loop_base class was mistakenly labeled as double
|
||||
instead of int - this is now fixed. Thanks to William-Fernando Oquendo
|
||||
(National University of Colombia) for pointing this out.
|
||||
* Fixed an extremely subtle bounds checking issue that would only materialize
|
||||
for the radical Voronoi tessellation with large particle radii. Thanks to
|
||||
Richard Martin and Maciej Haranczyk (Lawrence Berkeley Laboratory) for
|
||||
pointing out the original problem.
|
||||
* Fixed other problems with the radical tessellation. Originally, the
|
||||
algorithms were concieved for with hard spheres in mind, where the particles
|
||||
would not overlap, and an assumption was used in the cutoff procedure that
|
||||
made use of this, but would not be true in general.
|
||||
* Removed more bracket initializations like "double a(3);" for better
|
||||
consistency, and more compatibility with older versions of MS Visual C++.
|
||||
Thanks to Martin Brehm for help with this.
|
||||
* Factored out the regular/radical inline routines into separate classes, so
|
||||
that they don't have to be duplicated in the container_periodic classes
|
||||
* Fixed problems with the container_periodic classes referencing the wrong
|
||||
loop classes. Thanks to Wang Chuncheng (Nanyang Technological University) for
|
||||
pointing this out.
|
||||
* Added c_loop_order_periodic class for doing ordered loops with the periodic
|
||||
container classes
|
||||
* Updated the README file in the src directory. The detailed description of
|
||||
each file has been removed since this is difficult to maintain and this
|
||||
information is already present in the class reference manual.
|
||||
* Fixed an error in the pre_container selection of the optimal computational
|
||||
grid size
|
||||
* Code comment cleanups, particularly in wall.hh
|
||||
* Minor man page reformatting
|
||||
* Updated Doxyfile to version 1.7.5.1
|
||||
|
||||
Version 0.4.1 (September 7th 2011)
|
||||
==================================
|
||||
* Fixed bug in command-line utility that would give incorrect results when
|
||||
using the "-c" option for custom output. Thanks to Prof. Aldo Romero
|
||||
(CINVESTAV-Unidad Queretaro) for pointing this out.
|
||||
* Added some additional documentation about neighbor information
|
||||
|
||||
Version 0.4 (August 30th 2011)
|
||||
==============================
|
||||
* New classes called container_periodic and container_periodic_poly that carry
|
||||
out Voronoi computations in 3D periodic parallelepiped unit cells have been
|
||||
added. This adds significant complexity to the computation, and the memory
|
||||
organization of these classes is different, requiring allocation for ghost
|
||||
regions. Currently these classes cannot be accessed by the command-line
|
||||
utility, but will be integrated further in future releases. These classes are
|
||||
currently mainly exploited by a sister software project Zeo++ for chemical
|
||||
informatics (Maciej Haranczyk, Chris Rycroft, Thomas Willems, Richard Martin)
|
||||
to be released in late 2011.
|
||||
* As part of the new container_periodic classes, a new class called unitcell
|
||||
has been added, which will compute the Voronoi cell for a single particle in
|
||||
a 3D periodic parallelepiped class. The Voronoi cell is formed by the
|
||||
influences of the periodic images of itself only. This turns out to be an
|
||||
important component of the calculations done by the container_periodic
|
||||
classes but can also be used independently.
|
||||
* The container classes now have a routine called find_voronoi_cell that will
|
||||
take a given position vector and return the Voronoi cell which is contained
|
||||
within. For the regular Voronoi tessellation, this is just the Voronoi cell
|
||||
corresponding to the closest particle (by definition). For the radical
|
||||
Voronoi tessellation, this is weighted by the particle radii.
|
||||
* The library is now enclosed within the "voro" namespace. This requires
|
||||
specifying "using namespace voro;" in the preamble of codes or prepending
|
||||
"voro::" to access functions. This greatly minimizes the possiblity of naming
|
||||
conflicts when using multiple libraries, particularly since many of the
|
||||
classes iin the library have fairly generic names (eg. "container"). Thanks to
|
||||
Allan Johns (Dr. D Studios) for suggesting this.
|
||||
* Voro++ can now be built as a static library that can be installed and linked
|
||||
to. As part of this, the .cc and .hh files have been significantly revised
|
||||
with some small inline functions and template code being written into the
|
||||
header files.
|
||||
* Previously, all of the voronoicell output routines sent data to an output
|
||||
stream. However, input and output are now carried out using the STL vector
|
||||
class, allowing for programs to directly link to and use Voro++ output. The
|
||||
STL vector class has been chosen since it the simplest and most standard
|
||||
mechanism for returning a variable amount of data. Several new examples are
|
||||
provided to demonstrate this functionality, for both the voronoicell class
|
||||
and the container class.
|
||||
* A common issue has been that the order of particles in the output file does
|
||||
not match the input file, since Voro++ internally sorts particles according
|
||||
to their position. A new class called voro_order has been provided, which can
|
||||
link to particles as they are stored, allowing for the Voronoi computation to
|
||||
be carried out in the same order as the input file. The core computation
|
||||
routines can be run with a variety of different loops, and a new example
|
||||
"loops.cc" is provided to demonstrate this.
|
||||
* The order of parameters to certain functions have been changed to take
|
||||
advantage of the C++ default parameter mechanism wherever possible
|
||||
* The container and container_poly classes are now derived from a base class,
|
||||
rather than being different instances of a template. This simplifies the code
|
||||
and stops common routines from being duplicated. The core Voronoi computation
|
||||
routine is now held within a voro_compute class, which can be instantiated on
|
||||
any container with the correct access functions.
|
||||
* The voronoicell and voronoicell_neighbor classes are now derived from a
|
||||
common base class, rather than being different instances of a template. This
|
||||
simplifies the code and stops common routines from being duplicated. The core
|
||||
nplane routine is now a function template that can be instantiated on the
|
||||
parent class itself.
|
||||
* All output routines have been switched from using C++ iostreams to using the C
|
||||
cstdio library. This has been done for increased performance. In general the
|
||||
cstdio routines run significantly faster than the comparable iostream
|
||||
routines: for one file import test, using fscanf from cstdio was five times
|
||||
as fast as the comparable << operator from iostream. As another example,
|
||||
the program "cylinder.cc", which uses both file import and export, runs
|
||||
approximately twice as fast before. Since many people use Voro++ to batch
|
||||
process large numbers of input files, this increase in input/output speed
|
||||
seemed desirable.
|
||||
* The Gnuplot output routines now merge individual lines into contiguous paths
|
||||
wherever possible, resulting in a ~15% reduction in their file size and a
|
||||
noticeable improvement in rendering speed
|
||||
* Previously, the POV-Ray output routines could create cylinders where the start
|
||||
and end points matched. This was a benign problem, due to the fact the vertex
|
||||
positions within Voro++ were held to higher precision than the POV-Ray output
|
||||
file, meaning that distinct vertices could appear to be at the same position;
|
||||
a perl script was provided to post-process and remove these. However, Voro++
|
||||
now scans each cylinder before saving to file to automatically remove these
|
||||
cases from consideration.
|
||||
* Pointer arithmetic is now used within a number of critical cell computation
|
||||
routines, and gives a speedup of 10%-20% in many cases. On some typical
|
||||
problems on typical machines, Voro++ currently computes around 50,000
|
||||
cells/second. New machines can achieve upwards of 70,000 cells/second.
|
||||
* A new pre-container mechanism is provided, which can read in a file of
|
||||
unknown length, and then make a guess at the correct computational grid size
|
||||
to use. This removes the need for specifying a length scale with the
|
||||
command-line utility. However, a length scale or grid decomposition can still
|
||||
be manually specified.
|
||||
* Removed the option to compile in single-precision. This was a highly
|
||||
specialized feature, and it appears better to allow users who wish to do this
|
||||
to make their own modifications. This option also conflicted with building
|
||||
Voro++ as a standard static library.
|
||||
* Fixed a benign bug in the block computation list that would cause it to get
|
||||
extended prematurely
|
||||
* Numerous small improvements to memory allocation routines
|
||||
* Added routines to copy a Voronoi cell
|
||||
* Created a new wall_list class to handle a list of walls. This simplifies the
|
||||
command-line utility code.
|
||||
* Labels in the worklist that are used in the transition from the radius search
|
||||
to the block search have been optimized
|
||||
* The command-line utility can now produce POV-Ray output. Also, the main loop
|
||||
in the utility has been combined so that the Voronoi tessellation is only
|
||||
carried out once, even if POV-Ray and Gnuplot output is also required.
|
||||
* The command-line utility does range checking on the filename to prevent
|
||||
buffer overruns
|
||||
* The routines that put particles into a container now do so more reliably for
|
||||
periodic cases, remapping them into the primary domain if necessary
|
||||
* A number of the POV-Ray header files have been altered to directly make use
|
||||
of a right-handed coordinate system in which the z axis points upwards. This
|
||||
matches the Gnuplot style, and the style used in many scientific simulations.
|
||||
It avoids the need for a rotation or matrix transformation when rendering
|
||||
many of the particle packings. Some of the test particle packings have been
|
||||
transformed to ensure consistency with previous renderings.
|
||||
* Some POV-Ray files have been cleaned up and there are additional comments
|
||||
* Fixed a bug in the print_all_custom() routine, affecting "%P" output. Thanks
|
||||
to David Waroquiers (Université Catholique de Louvain, Belgium) for pointing
|
||||
this out.
|
||||
* Fixed a bug that caused the neighbor list not to be outputted in the same
|
||||
order as the other plane diagnostic routines. Thanks to Olufemi Olorode
|
||||
(Texas A&M University) for pointing this out.
|
||||
* Removed the add_vertex() and init_test() routines, which were mainly used for
|
||||
debugging
|
||||
* Updated Doxyfile to version 1.7.4
|
||||
|
||||
Version 0.3.1 (September 29, 2009)
|
||||
==================================
|
||||
* Carried out a major overhaul of the source code comments that are used by
|
||||
Doxygen. Several errors in the documentation were fixed.
|
||||
* Additional comments in the Makefiles, and added the "phony target" keyword
|
||||
* Many code cleanups and standardizations. Some double and triple loops
|
||||
were concatenated into one to reduce the amount of indentation.
|
||||
* Fixed the import.cc example program
|
||||
* Updated Doxyfile to version 1.6.1
|
||||
|
||||
Version 0.3 (August 17, 2009)
|
||||
=============================
|
||||
* In response to feedback from several people, the routines for computing
|
||||
statistics about computed Voronoi cells have been significantly revised,
|
||||
extended, and put within a common framework. The voronoicell class now has a
|
||||
large number of routines of the form output_...() that will print cell
|
||||
information to an output stream. There are also a number of new, simple
|
||||
routines for computing basic statistics such as the number of edges and faces
|
||||
of each cell. All of these routines can now be used during the container
|
||||
analysis, by making use of the new print_custom() routine, which can output
|
||||
according to a given format string, that uses control sequences similar to
|
||||
the standard C printf() routine.
|
||||
* Renamed the "radical" example directory to "custom", and added two
|
||||
new programs called "cell_statistics.cc" and "custom_output.cc" for
|
||||
demonstrating the new output routines for the voronoicell and container
|
||||
classes respectively
|
||||
* Added a routine for computing the centroid of a Voronoi cell
|
||||
* Added new routines for computing neighbor normals, in response to a
|
||||
request from Dave Greenwood
|
||||
* Removed unnecessary trailing tabs and spaces in the source code
|
||||
* Fixed a few text justification problems, and altered some of the comments
|
||||
in the example programs
|
||||
* Improved the command-line utility, allowing it to specify custom information
|
||||
in the output. Implemented better error checking on command-line arguments.
|
||||
* Removed the facets() routine, since this has been superseded by the new
|
||||
output_...() routines. This also rendered some functions in the neighbor_none
|
||||
and neighbor_track classes obsolete, and they have also been removed.
|
||||
* Some reorganization of the cell.hh and container.hh header files to group
|
||||
similar functions together
|
||||
* Added torus.cc example that shows how to write custom walls as derived
|
||||
classes
|
||||
* Updated Doxyfile to version 1.5.9
|
||||
|
||||
Version 0.2.7 (March 25, 2009)
|
||||
==============================
|
||||
* Added some missing cstdlib and cstring header files that cause compilation
|
||||
errors on some systems
|
||||
* Some text cleanups in the main README file and cmd_line.cc
|
||||
* The worklist_gen.pl script was in DOS format. It has been switched to Unix
|
||||
format to match the rest of the code.
|
||||
* Fixed some incorrect inequalities in degenerate2.cc
|
||||
* Improved some error messages in container.cc
|
||||
|
||||
Version 0.2.6 (March 23, 2009)
|
||||
==============================
|
||||
* Significantly improved the error messages generated by the code. It now
|
||||
makes use of the exit() routine rather than throwing errors, and it returns
|
||||
various status codes (defined in config.hh) for different types of abnormal
|
||||
behavior.
|
||||
* Changed two occurences of "cin" to "cout" in the draw_particles routines
|
||||
* Corrected error in comment in the tetrahedron example
|
||||
* Minor comment cleanups of the worklist_gen.pl script
|
||||
* Updated Doxyfile to version 1.5.8
|
||||
* Added a routine print_facet_information() in response to a problem
|
||||
from Hengxing Lan
|
||||
* Many of the cell based statistics routines (like number_of_faces() and
|
||||
facets()) internally track their progress by temporarily flipping the edge
|
||||
table entries to negative values, so that they know where they have already
|
||||
been. The common code that was used at the end of each of these functions for
|
||||
resetting the edges back to positive has now been made into a private inline
|
||||
function called reset_edges().
|
||||
* Fixed a missing initialization of max_radius to zero in the radius_poly
|
||||
class. This should not have ever caused any errors, as max_radius would
|
||||
always have been big enough. However if max_radius was initially set to a
|
||||
large value, it could have potentially made the code run slower.
|
||||
* Fixed the code layout in the suretest class header
|
||||
* Added some additional checks in the command-line utility to screen out
|
||||
invalid command-line arguments. Switched the test on the number of
|
||||
computational blocks to use floating point arithmetic, because integers
|
||||
could potentially overflow and become negative.
|
||||
* Included several more of the POV-Ray header files that were used to create
|
||||
the example images on the website
|
||||
* Removed a "cout" statement in the wall_cone class
|
||||
* Cleanup of the README files for the basic examples and the wall examples
|
||||
|
||||
Version 0.2.5 (January 1, 2009)
|
||||
===============================
|
||||
* Added the DOE acknowledgements to the code overview document
|
||||
|
||||
Version 0.2.4 (December 14, 2008)
|
||||
=================================
|
||||
* Added the code overview PDF document to the package, in the docs directory
|
||||
* Fixed some spelling errors in the comments
|
||||
* Many more documentation updates
|
||||
|
||||
Version 0.2.3 (December 9, 2008)
|
||||
================================
|
||||
* Removed an unused variable that was reported by the Portland C compiler
|
||||
* Documentation updates
|
||||
* Added the import.pov script
|
||||
* Added some simple functions to solve the problem from Stefan Eibl of counting
|
||||
faces
|
||||
* Renamed the facets_loop to voropp_loop
|
||||
|
||||
Version 0.2.2 (November 19, 2008)
|
||||
=================================
|
||||
* Main README file updated
|
||||
|
||||
Version 0.2.1 (November 3, 2008)
|
||||
================================
|
||||
* Much more documentation
|
||||
* Brief Doxygen class comments
|
||||
* Updated Doxyfile to version 1.5.7
|
||||
|
||||
Version 0.2 (October 31, 2008)
|
||||
==============================
|
||||
* Updated some occurrences of char* with const char* for compatability with
|
||||
version 4.2 of the GNU C++ compiler
|
||||
* Making use of default parameters in the wall classes
|
||||
* The command-line utility can now add walls
|
||||
|
||||
Version 0.1 (August 22, 2008)
|
||||
=============================
|
||||
* Initial version uploaded to the web
|
||||
@@ -0,0 +1,153 @@
|
||||
Voro++, a 3D cell-based Voronoi library (http://math.lbl.gov/voro++/)
|
||||
By Chris H. Rycroft (UC Berkeley / Lawrence Berkeley Laboratory)
|
||||
================================================================
|
||||
Voro++ is a software library for carrying out three-dimensional computations
|
||||
of the Voronoi tessellation. A distinguishing feature of the Voro++ library
|
||||
is that it carries out cell-based calculations, computing the Voronoi cell
|
||||
for each particle individually, rather than computing the Voronoi
|
||||
tessellation as a global network of vertices and edges. It is particularly
|
||||
well-suited for applications that rely on cell-based statistics, where
|
||||
features of Voronoi cells (eg. volume, centroid, number of faces) can be
|
||||
used to analyze a system of particles
|
||||
|
||||
Voro++ comprises of several C++ classes that can be built as a static library
|
||||
and linked to. A command-line utility is also provided that can analyze text
|
||||
files of particle configurations and use most of the features of the code.
|
||||
Numerous examples are provided to demonstrate the library's features and all of
|
||||
these are discussed in detail on the library website.
|
||||
|
||||
|
||||
Compilation - Linux / Mac OS / Windows with Cygwin
|
||||
==================================================
|
||||
The code is written in ANSI C++, and compiles on many system architectures. The
|
||||
package contains the C++ source code, example files, miscellaneous utilities
|
||||
and documentation. On Linux, Mac OS, and Windows (using Cygwin), the
|
||||
compilation and installed can be carried out using GNU Make.
|
||||
|
||||
To begin, the user should review the file "config.mk" in the top level
|
||||
directory, to make sure that the compilation and installation settings are
|
||||
appropriate for their system. Typing "make" will then compile the static
|
||||
library, command-line utility, and examples. The command-line utility and
|
||||
library will appear within the "src" directory.
|
||||
|
||||
Following successful compilation, the library, command-line utility, and
|
||||
documentation can be installed by typing "sudo make install". By default, the
|
||||
program files are installed into /usr/local, and it may be necessary to modify
|
||||
your environment variables in order to access the installed files:
|
||||
|
||||
- to use the command-line utility, the variable PATH should contain
|
||||
/usr/local/bin.
|
||||
- to access the Voro++ man page, the variable MANPATH should contain
|
||||
/usr/local/man.
|
||||
- to access the Voro++ header files, code compilation should include
|
||||
the flag '-I/usr/local/include/voro++'.
|
||||
- to link to the static library, code compilation should include the
|
||||
flags '-L/usr/local/lib' to tell the linker where to look, and then
|
||||
'-lvoro++' to link to the library.
|
||||
|
||||
The library website contains additional notes on setting environment variables,
|
||||
and many guides are available on the Internet.
|
||||
|
||||
The code can later be uninstalled with "sudo make uninstall". It is also
|
||||
possible to use the library and command-line utility without installation by
|
||||
calling the files directly once they have been compiled. On systems where the
|
||||
user does not have root privileges to install into /usr/local, the "config.mk"
|
||||
file can be modified to install into the user's home directory by setting
|
||||
PREFIX=$(HOME). Voro++ supports parallel compilation by using the "make -j <n>"
|
||||
command where n is the number of threads.
|
||||
|
||||
|
||||
Compilation - Windows without Cygwin
|
||||
====================================
|
||||
On a Windows machine without a terminal environment like Cygwin, it is possible
|
||||
to import and compile the library in many standard C++ development
|
||||
environments. Users have reported success in building the library with
|
||||
Microsoft Visual C++ Express and Code::Blocks.
|
||||
|
||||
|
||||
Related programs
|
||||
================
|
||||
No external dependencies are required to compile and run the code, but several
|
||||
programs may be useful for analyzing the output:
|
||||
|
||||
- The freeware plotting program Gnuplot (available at www.gnuplot.info) can be
|
||||
used for rapid 2D and 3D visualization of the program output.
|
||||
|
||||
- The freeware raytracer POV-Ray (available at www.povray.org) can be used for
|
||||
high-quality renderings of the program output.
|
||||
|
||||
- The reference manual is generated from comments in the source code using
|
||||
Doxygen (available at www.doxygen.org). This package is only required if the
|
||||
library files are being developed and the reference manuals need to be
|
||||
regenerated. The complete reference manual to the current code is available
|
||||
online at http://math.lbl.gov/voro++/doc/refman/
|
||||
|
||||
|
||||
Contents
|
||||
========
|
||||
examples - many documented examples making use of the library
|
||||
html - an HTML-based reference manual (generated by Doxygen)
|
||||
man - contains the man page that is installed with the program
|
||||
scripts - miscellaneous helper scripts
|
||||
src - source code files
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
Voro++ is released as free software through the Lawrence Berkeley National
|
||||
Laboratory - a detailed copyright notice is provided below, and the complete
|
||||
terms of the license can be found in the LICENSE file.
|
||||
|
||||
I am very interested to hear from users of the software, so if you find this
|
||||
useful, please email me at chr@alum.mit.edu. Also, if you plan to publish an
|
||||
academic paper using this software, please consider citing one of the following
|
||||
publications:
|
||||
|
||||
- Chris H. Rycroft, "Voro++: A three-dimensional Voronoi cell library in C++",
|
||||
Chaos 19, 041111 (2009).
|
||||
|
||||
- Chris H. Rycroft, Gary S. Grest, James W. Landry, and Martin Z. Bazant,
|
||||
"Analysis of Granular Flow in a Pebble-Bed Nuclear Reactor",
|
||||
Phys. Rev. E 74, 021306 (2006).
|
||||
|
||||
- Chris H. Rycroft, "Multiscale Modeling in Granular Flow", PhD thesis
|
||||
submitted to the Massachusetts Institute of Technology, September 2007.
|
||||
(http://math.berkeley.edu/~chr/publish/phd.html)
|
||||
|
||||
The first reference contains a one-page overview of the library. The second
|
||||
reference contains some of the initial images that were made using a very early
|
||||
version of this code, to track small changes in packing fraction in a large
|
||||
particle simulation. The third reference discusses the use of 3D Voronoi cells,
|
||||
and describes the algorithms that were employed in the early version of this
|
||||
code. Since the publication of the above references, the algorithms in Voro++
|
||||
have been significantly improved, and a paper specifically devoted to the
|
||||
current code architecture will be published during 2012.
|
||||
|
||||
|
||||
Copyright Notice
|
||||
================
|
||||
Voro++ Copyright (c) 2008, The Regents of the University of California, through
|
||||
Lawrence Berkeley National Laboratory (subject to receipt of any required
|
||||
approvals from the U.S. Dept. of Energy). All rights reserved.
|
||||
|
||||
If you have questions about your rights to use or distribute this software,
|
||||
please contact Berkeley Lab's Technology Transfer Department at TTD@lbl.gov.
|
||||
|
||||
NOTICE. This software was developed under partial funding from the U.S.
|
||||
Department of Energy. As such, the U.S. Government has been granted for itself
|
||||
and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide
|
||||
license in the Software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. Beginning five (5) years after the date
|
||||
permission to assert copyright is obtained from the U.S. Department of Energy,
|
||||
and subject to any subsequent five (5) year renewals, the U.S. Government is
|
||||
granted for itself and others acting on its behalf a paid-up, nonexclusive,
|
||||
irrevocable, worldwide license in the Software to reproduce, prepare derivative
|
||||
works, distribute copies to the public, perform publicly and display publicly,
|
||||
and to permit others to do so.
|
||||
|
||||
|
||||
Acknowledgments
|
||||
===============
|
||||
This work was supported by the Director, Office of Science, Computational and
|
||||
Technology Research, U.S. Department of Energy under Contract No.
|
||||
DE-AC02-05CH11231.
|
||||
@@ -0,0 +1,30 @@
|
||||
# Voro++, a 3D cell-based Voronoi library
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 28th 2011
|
||||
|
||||
# This a common configuration file that includes definitions used by all
|
||||
# the Makefiles.
|
||||
|
||||
# C++ compiler
|
||||
CXX=g++
|
||||
|
||||
# Flags for the C++ compiler
|
||||
CFLAGS=-Wall -ansi -pedantic -O3
|
||||
|
||||
# Relative include and library paths for compilation of the examples
|
||||
E_INC=-I../../src
|
||||
E_LIB=-L../../src
|
||||
|
||||
# Installation directory
|
||||
PREFIX=/usr/local
|
||||
|
||||
# Install command
|
||||
INSTALL=install
|
||||
|
||||
# Flags for install command for executable
|
||||
IFLAGS_EXEC=-m 0755
|
||||
|
||||
# Flags for install command for non-executable files
|
||||
IFLAGS=-m 0644
|
||||
@@ -0,0 +1,36 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Makefile rules
|
||||
all: ex_basic ex_walls ex_custom ex_extra ex_degenerate ex_interface
|
||||
|
||||
ex_basic:
|
||||
$(MAKE) -C basic
|
||||
|
||||
ex_walls:
|
||||
$(MAKE) -C walls
|
||||
|
||||
ex_custom:
|
||||
$(MAKE) -C custom
|
||||
|
||||
ex_extra:
|
||||
$(MAKE) -C extra
|
||||
|
||||
ex_degenerate:
|
||||
$(MAKE) -C degenerate
|
||||
|
||||
ex_interface:
|
||||
$(MAKE) -C interface
|
||||
|
||||
clean:
|
||||
$(MAKE) -C basic clean
|
||||
$(MAKE) -C walls clean
|
||||
$(MAKE) -C custom clean
|
||||
$(MAKE) -C extra clean
|
||||
$(MAKE) -C degenerate clean
|
||||
$(MAKE) -C interface clean
|
||||
|
||||
.PHONY: all ex_basic ex_walls ex_custom ex_extra ex_degenerate clean
|
||||
@@ -0,0 +1,29 @@
|
||||
Voro++ example directory
|
||||
========================
|
||||
These directories contain example programs that make use of the Voro++ code,
|
||||
and they are divided into six sections:
|
||||
|
||||
basic - this contains several simple scripts that introduce this basic classes
|
||||
and carry out simple operations, such as constructing a single cell, or making
|
||||
a Voronoi tessellation for a small number of a random particles in a box.
|
||||
|
||||
walls - these programs demonstrate the use of wall objects, to calculate the
|
||||
Voronoi cells in non-standard geometries.
|
||||
|
||||
custom - these programs demonstrate how to customize the output of the library
|
||||
to contain a variety of different statistics about the computed Voronoi cells.
|
||||
The radical tessellation for a polydisperse packing of particles is also
|
||||
demonstrated.
|
||||
|
||||
interface - these programs demonstrate features of the library's C++ interface.
|
||||
|
||||
extra - this contains miscellaneous additional applications of the library for
|
||||
non-standard usage. It also includes an example of using a wall object to
|
||||
approximately deal with a case of an irregular boundary.
|
||||
|
||||
degenerate - these codes demonstrate cases when "degenerate" vertices of order
|
||||
bigger than 3 are created, when the cutting planes are aligned to existing
|
||||
vertices within the numerical tolerance.
|
||||
|
||||
timing - these programs and scripts can be used to test the performance of the
|
||||
code under different configurations.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=single_cell platonic random_points import
|
||||
|
||||
# Makefile rules
|
||||
all: $(EXECUTABLES)
|
||||
|
||||
single_cell: single_cell.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o single_cell single_cell.cc -lvoro++
|
||||
|
||||
platonic: platonic.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o platonic platonic.cc -lvoro++
|
||||
|
||||
random_points: random_points.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o random_points random_points.cc -lvoro++
|
||||
|
||||
import: import.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o import import.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,44 @@
|
||||
Voro++ basic example codes
|
||||
==========================
|
||||
These programs demonstrate some basic usage of the Voro++ library.
|
||||
|
||||
1. single_cell.cc introduces the basic voronoicell class. It creates a simple
|
||||
cell by cutting it with a number of random planes. It outputs the cell to a file
|
||||
called single_cell.gnu, which can be visualized in gnuplot using the following
|
||||
commands:
|
||||
|
||||
set style data lines
|
||||
splot 'single_cell.gnu'
|
||||
|
||||
2. platonic.cc uses the voronoicell class to make the five Platonic solids,
|
||||
which are output to files that can be visualized in gnuplot.
|
||||
|
||||
3. random_points.cc introduces the container class, for holding particle
|
||||
positions in a box. After creating a container, it adds a small number of
|
||||
random points to the box. It then calculates the sum of the volumes of the
|
||||
Voronoi cells, and compares it to the container volume - since the cells should
|
||||
perfectly partition the container, these two should be identical to within
|
||||
numerical accuracy. The code then saves the particle positions to
|
||||
"random_points_p.gnu" and the Voronoi cells to "random_points_v.gnu". These can
|
||||
be visualized in gnuplot using the command:
|
||||
|
||||
splot 'random_points_p.gnu' u 2:3:4 with points, 'random_points_v.gnu' with lines
|
||||
|
||||
4. import.cc demonstrates the ability of the code to import a list of particles
|
||||
from a text file. The code imports a text file called 'pack_ten_cube' which
|
||||
contains a thousand particles in a cube of side length 10. Each line of this
|
||||
file has the form:
|
||||
|
||||
<Numerical ID> <x coordinate> <y coordinate> <z coordinate>
|
||||
|
||||
The code imports the particles into the container, and then saves the particles
|
||||
and Voronoi cells in gnuplot and POV-Ray formats. To visualize the particles in
|
||||
gnuplot, use the command:
|
||||
|
||||
splot 'pack_ten_cube' u 2:3:4 with points, 'pack_ten_cube.gnu' with lines
|
||||
|
||||
To create a POV-Ray rendering of the particles, the scene header file
|
||||
import.pov must be used, which includes the output from the program. To render
|
||||
an 800x600 image with antialiasing, use the command:
|
||||
|
||||
povray +W800 +H600 +A0.01 +Oimport.png import.pov
|
||||
@@ -0,0 +1,36 @@
|
||||
// File import example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-5,x_max=5;
|
||||
const double y_min=-5,y_max=5;
|
||||
const double z_min=0,z_max=10;
|
||||
|
||||
// Set up the number of blocks that the container is divided into
|
||||
const int n_x=6,n_y=6,n_z=6;
|
||||
|
||||
int main() {
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
//Randomly add particles into the container
|
||||
con.import("pack_ten_cube");
|
||||
|
||||
// Save the Voronoi network of all the particles to text files
|
||||
// in gnuplot and POV-Ray formats
|
||||
con.draw_cells_gnuplot("pack_ten_cube.gnu");
|
||||
con.draw_cells_pov("pack_ten_cube_v.pov");
|
||||
|
||||
// Output the particles in POV-Ray format
|
||||
con.draw_particles_pov("pack_ten_cube_p.pov");
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#version 3.6;
|
||||
|
||||
// Right-handed coordinate system in which the z-axis points upwards
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
right -0.24*x*image_width/image_height
|
||||
up 0.24*z
|
||||
look_at <0,0,4.5>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.38,0.40,0.40>}
|
||||
|
||||
// Radius of the Voronoi cell network
|
||||
#declare r=0.08;
|
||||
|
||||
// Radius of the particles
|
||||
#declare s=0.5;
|
||||
|
||||
// Particles
|
||||
union{
|
||||
#include "pack_ten_cube_p.pov"
|
||||
pigment{rgb 0.95} finish{reflection 0.1 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
// Voronoi cells
|
||||
union{
|
||||
#include "pack_ten_cube_v.pov"
|
||||
pigment{rgb <1,0.4,0.45>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
// Platonic solids example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Golden ratio constants
|
||||
const double Phi=0.5*(1+sqrt(5.0));
|
||||
const double phi=0.5*(1-sqrt(5.0));
|
||||
|
||||
int main() {
|
||||
voronoicell v;
|
||||
|
||||
// Create a tetrahedron
|
||||
v.init(-2,2,-2,2,-2,2);
|
||||
v.plane(1,1,1);
|
||||
v.plane(1,-1,-1);
|
||||
v.plane(-1,1,-1);
|
||||
v.plane(-1,-1,1);
|
||||
|
||||
v.draw_gnuplot(0,0,0,"tetrahedron.gnu");
|
||||
|
||||
// Create a cube. Since this is the default shape
|
||||
// we don't need to do any plane cutting.
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
v.draw_gnuplot(0,0,0,"cube.gnu");
|
||||
|
||||
// Create an octahedron
|
||||
v.init(-2,2,-2,2,-2,2);
|
||||
v.plane(1,1,1);
|
||||
v.plane(-1,1,1);
|
||||
v.plane(1,-1,1);
|
||||
v.plane(-1,-1,1);
|
||||
v.plane(1,1,-1);
|
||||
v.plane(-1,1,-1);
|
||||
v.plane(1,-1,-1);
|
||||
v.plane(-1,-1,-1);
|
||||
|
||||
v.draw_gnuplot(0,0,0,"octahedron.gnu");
|
||||
|
||||
// Create a dodecahedron
|
||||
v.init(-2,2,-2,2,-2,2);
|
||||
v.plane(0,Phi,1);
|
||||
v.plane(0,-Phi,1);
|
||||
v.plane(0,Phi,-1);
|
||||
v.plane(0,-Phi,-1);
|
||||
v.plane(1,0,Phi);
|
||||
v.plane(-1,0,Phi);
|
||||
v.plane(1,0,-Phi);
|
||||
v.plane(-1,0,-Phi);
|
||||
v.plane(Phi,1,0);
|
||||
v.plane(-Phi,1,0);
|
||||
v.plane(Phi,-1,0);
|
||||
v.plane(-Phi,-1,0);
|
||||
|
||||
v.draw_gnuplot(0,0,0,"dodecahedron.gnu");
|
||||
|
||||
// Create an icosahedron
|
||||
v.init(-2,2,-2,2,-2,2);
|
||||
v.plane(1,1,1);
|
||||
v.plane(-1,1,1);
|
||||
v.plane(1,-1,1);
|
||||
v.plane(-1,-1,1);
|
||||
v.plane(1,1,-1);
|
||||
v.plane(-1,1,-1);
|
||||
v.plane(1,-1,-1);
|
||||
v.plane(-1,-1,-1);
|
||||
v.plane(0,phi,Phi);
|
||||
v.plane(0,phi,-Phi);
|
||||
v.plane(0,-phi,Phi);
|
||||
v.plane(0,-phi,-Phi);
|
||||
v.plane(Phi,0,phi);
|
||||
v.plane(Phi,0,-phi);
|
||||
v.plane(-Phi,0,phi);
|
||||
v.plane(-Phi,0,-phi);
|
||||
v.plane(phi,Phi,0);
|
||||
v.plane(phi,-Phi,0);
|
||||
v.plane(-phi,Phi,0);
|
||||
v.plane(-phi,-Phi,0);
|
||||
|
||||
v.draw_gnuplot(0,0,0,"icosahedron.gnu");
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
// Voronoi calculation example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-1,x_max=1;
|
||||
const double y_min=-1,y_max=1;
|
||||
const double z_min=-1,z_max=1;
|
||||
const double cvol=(x_max-x_min)*(y_max-y_min)*(x_max-x_min);
|
||||
|
||||
// Set up the number of blocks that the container is divided into
|
||||
const int n_x=6,n_y=6,n_z=6;
|
||||
|
||||
// Set the number of particles that are going to be randomly introduced
|
||||
const int particles=20;
|
||||
|
||||
// This function returns a random double between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
int i;
|
||||
double x,y,z;
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Randomly add particles into the container
|
||||
for(i=0;i<particles;i++) {
|
||||
x=x_min+rnd()*(x_max-x_min);
|
||||
y=y_min+rnd()*(y_max-y_min);
|
||||
z=z_min+rnd()*(z_max-z_min);
|
||||
con.put(i,x,y,z);
|
||||
}
|
||||
|
||||
// Sum up the volumes, and check that this matches the container volume
|
||||
double vvol=con.sum_cell_volumes();
|
||||
printf("Container volume : %g\n"
|
||||
"Voronoi volume : %g\n"
|
||||
"Difference : %g\n",cvol,vvol,vvol-cvol);
|
||||
|
||||
// Output the particle positions in gnuplot format
|
||||
con.draw_particles("random_points_p.gnu");
|
||||
|
||||
// Output the Voronoi cells in gnuplot format
|
||||
con.draw_cells_gnuplot("random_points_v.gnu");
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
// Single Voronoi cell example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// This function returns a random floating point number between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
double x,y,z,rsq,r;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered
|
||||
// on the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Cut the cell by 250 random planes which are all a distance 1 away
|
||||
// from the origin, to make an approximation to a sphere
|
||||
for(int i=0;i<250;i++) {
|
||||
x=2*rnd()-1;
|
||||
y=2*rnd()-1;
|
||||
z=2*rnd()-1;
|
||||
rsq=x*x+y*y+z*z;
|
||||
if(rsq>0.01&&rsq<1) {
|
||||
r=1/sqrt(rsq);x*=r;y*=r;z*=r;
|
||||
v.plane(x,y,z,1);
|
||||
}
|
||||
}
|
||||
|
||||
// Output the Voronoi cell to a file, in the gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"single_cell.gnu");
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=cell_statistics custom_output radical
|
||||
|
||||
# Makefile rules
|
||||
all: $(EXECUTABLES)
|
||||
|
||||
cell_statistics: cell_statistics.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o cell_statistics cell_statistics.cc -lvoro++
|
||||
|
||||
custom_output: custom_output.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o custom_output custom_output.cc -lvoro++
|
||||
|
||||
radical: radical.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o radical radical.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,27 @@
|
||||
Customized output examples
|
||||
==========================
|
||||
The output of Voro++ can be customized to contain a variety of statistics about
|
||||
the Voronoi cells. Voro++ can also calculated the radical Voronoi tessellation
|
||||
for polydisperse packings where the cutting plane positions are displaced
|
||||
according to the particle radii.
|
||||
|
||||
1. cell_statistics.cc constructs a simple Voronoi cell, and then demonstrates
|
||||
the large number of routines in the voronoicell class that will compute
|
||||
different statistics about the cell.
|
||||
|
||||
2. custom_output.cc loads in a small monodisperse packing in a cube of side
|
||||
length six from the file pack_six_cube. It then uses the basic output routine
|
||||
print_all() to save the particle positions and Voronoi volumes to the file
|
||||
packing.standard. The routine print_all_neighbor() is also demonstrated, saving
|
||||
the particle positions, Voronoi volumes and neighbors to the file
|
||||
packing.neighbor. Three customized outputs are then created using the
|
||||
print_all_custom() routine.
|
||||
|
||||
3. radical.cc loads in a small monodisperse packing from the file
|
||||
pack_six_cube, and saves the Voronoi tessellation to pack_six_cube.gnu. It then
|
||||
loads in a polydisperse packing in the same geometry from the file
|
||||
pack_six_cube_poly, and it saves the radical Voronoi tessellation to
|
||||
pack_six_cube_poly.gnu. These can be overlaid in gnuplot using the commands:
|
||||
|
||||
set style data lines
|
||||
splot 'pack_six_cube.gnu', 'pack_six_cube_poly.gnu'
|
||||
@@ -0,0 +1,52 @@
|
||||
// Simple cell statistics demonstration code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// This function returns a random floating point number between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
double x,y,z;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered
|
||||
// on the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Remove one edge of the cell with a single plane cut
|
||||
v.plane(1,1,0,2);
|
||||
|
||||
// Output the Voronoi cell to a file in gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"simple_cell.gnu");
|
||||
|
||||
// Output vertex-based statistics
|
||||
printf("Total vertices : %d\n",v.p);
|
||||
printf("Vertex positions : ");v.output_vertices();puts("");
|
||||
printf("Vertex orders : ");v.output_vertex_orders();puts("");
|
||||
printf("Max rad. sq. vertex : %g\n\n",0.25*v.max_radius_squared());
|
||||
|
||||
// Output edge-based statistics
|
||||
printf("Total edges : %d\n",v.number_of_edges());
|
||||
printf("Total edge distance : %g\n",v.total_edge_distance());
|
||||
printf("Face perimeters : ");v.output_face_perimeters();puts("\n");
|
||||
|
||||
// Output face-based statistics
|
||||
printf("Total faces : %d\n",v.number_of_faces());
|
||||
printf("Surface area : %g\n",v.surface_area());
|
||||
printf("Face freq. table : ");v.output_face_freq_table();puts("");
|
||||
printf("Face orders : ");v.output_face_orders();puts("");
|
||||
printf("Face areas : ");v.output_face_areas();puts("");
|
||||
printf("Face normals : ");v.output_normals();puts("");
|
||||
printf("Face vertices : ");v.output_face_vertices();puts("\n");
|
||||
|
||||
// Output volume-based statistics
|
||||
v.centroid(x,y,z);
|
||||
printf("Volume : %g\n"
|
||||
"Centroid vector : (%g,%g,%g)\n",v.volume(),x,y,z);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
// Custom output example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-3,x_max=3;
|
||||
const double y_min=-3,y_max=3;
|
||||
const double z_min=0,z_max=6;
|
||||
|
||||
// Set up the number of blocks that the container is divided
|
||||
// into.
|
||||
const int n_x=3,n_y=3,n_z=3;
|
||||
|
||||
int main() {
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Import the monodisperse test packing and output the Voronoi
|
||||
// tessellation in gnuplot and POV-Ray formats.
|
||||
con.import("pack_six_cube");
|
||||
|
||||
// Do a custom output routine to store the number of vertices, edges,
|
||||
// and faces of each Voronoi cell
|
||||
con.print_custom(
|
||||
"ID=%i, pos=(%x,%y,%z), vertices=%w, edges=%g, faces=%s",
|
||||
"packing.custom1");
|
||||
|
||||
// Do a custom output routine to store a variety of face-based
|
||||
// statistics. Store the particle ID and position, the number of faces
|
||||
// the total face area, the order of each face, the areas of each face,
|
||||
// the vertices making up each face, and the neighboring particle (or
|
||||
// wall) corresponding to each face.
|
||||
con.print_custom("%i %q %s %F %a %f %t %l %n","packing.custom2");
|
||||
|
||||
// Do a custom output routine that outputs the particle IDs and
|
||||
// positions, plus the volume and the centroid position relative to the
|
||||
// particle center
|
||||
con.print_custom("%i %q %v %c","packing.custom3");
|
||||
|
||||
// Also create POV-Ray output of the Voronoi cells for use in the
|
||||
// rendering
|
||||
con.draw_cells_pov("pack_six_cube_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# Open the custom output from the custom_output.cc program
|
||||
open A,"packing.custom1" or die "Can't open file \"packing.custom1\"\n";
|
||||
|
||||
# Open the POV-Ray file
|
||||
open B,">custom_output_p.pov" or die "Can't open output file\n";
|
||||
|
||||
# Loop over all lines in the packing.custom1 file
|
||||
while(<A>) {
|
||||
|
||||
# Use a regular expression to get the particle position and the number
|
||||
# of faces of the Voronoi cell. These will be stored in the variables
|
||||
# $1 and $2.
|
||||
m/pos=\((.*)\).*faces=(\d*)/;
|
||||
|
||||
# Print a sphere to the POV-Ray file, giving it a different texture
|
||||
# depending on the number of faces of the Voronoi cell
|
||||
print B "sphere{<$1>,0.5 texture{t$2}}\n";
|
||||
}
|
||||
|
||||
# Close the two files
|
||||
close A;
|
||||
close B;
|
||||
@@ -0,0 +1,56 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
// Increase tracing level for more accurate reflections
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
// Right-handed coordinate system where the z-axis points upwards
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
right -0.15*x*image_width/image_height
|
||||
up 0.15*z
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
// The radius of the cylinders to be used when drawing the Voronoi cells
|
||||
#declare r=0.06;
|
||||
|
||||
// The radius of the particles
|
||||
#declare s=0.5;
|
||||
|
||||
// Different colors for the particles
|
||||
#declare f1=finish{reflection 0.17 specular 0.3 ambient 0.42}
|
||||
#declare t8=texture{pigment{rgb <0.6,0.6,0.6>} finish{f1}}
|
||||
#declare t9=texture{pigment{rgb <0.7,0.3,1>} finish{f1}}
|
||||
#declare t10=texture{pigment{rgb <0.3,0.7,1>} finish{f1}}
|
||||
#declare t11=texture{pigment{rgb <0.2,0.9,0.9>} finish{f1}}
|
||||
#declare t12=texture{pigment{rgb <0.3,1,0.7>} finish{f1}}
|
||||
#declare t13=texture{pigment{rgb <0.7,1,0.3>} finish{f1}}
|
||||
#declare t14=texture{pigment{rgb <0.9,0.9,0.2>} finish{f1}}
|
||||
#declare t15=texture{pigment{rgb <1,0.7,0.3>} finish{f1}}
|
||||
#declare t16=texture{pigment{rgb <1,0.3,0.7>} finish{f1}}
|
||||
#declare t17=texture{pigment{rgb <0.9,0.2,0.9>} finish{f1}}
|
||||
#declare t18=texture{pigment{rgb <1,1,1>} finish{f1}}
|
||||
|
||||
// The particle packing
|
||||
union{
|
||||
#include "custom_output_p.pov"
|
||||
}
|
||||
|
||||
// The computed Voronoi cells
|
||||
union{
|
||||
#include "pack_six_cube_v.pov"
|
||||
texture{T_Silver_4B}
|
||||
}
|
||||
@@ -0,0 +1,216 @@
|
||||
1 -1.633531566 1.0081779456 0.4997643894
|
||||
2 -2.3175495108 2.50004343396 0.4998098766
|
||||
3 -0.0883292022000002 2.49998487024 0.49997382
|
||||
4 -0.5905249392 2.1141400272 1.2739520638
|
||||
5 -1.6354550196 0.00777687119999992 0.4998135702
|
||||
6 2.50024371 1.7052004254 1.1066620646
|
||||
7 1.6163377164 0.378218796 0.4996352686
|
||||
8 0.6450816684 1.8136706778 0.4991881638
|
||||
9 1.3723354464 2.50001343222 0.4998503506
|
||||
10 -2.49477600042 -2.4994533834 0.49997382
|
||||
11 0.1591747386 -0.8623052892 0.4997612252
|
||||
12 0.6018432558 2.50085393652 1.2236191762
|
||||
13 2.4993970962 2.50004979816 0.499958425
|
||||
14 2.5002306354 -0.5891871372 1.3656871624
|
||||
15 2.4996763188 0.910593138 0.4998442324
|
||||
16 0.1555379868 -2.1140856714 0.499808302
|
||||
17 1.7917374258 -2.5001865732 1.2081198644
|
||||
18 -2.1690769116 -1.9332698928 1.3393934932
|
||||
19 1.7064470976 1.5487702458 0.49997382
|
||||
20 -0.7669637874 -2.5000096794 0.4999680968
|
||||
21 2.5000711542 -1.0890633102 0.4997243732
|
||||
22 -1.630300629 -1.9954333962 0.4995576534
|
||||
23 1.7914606536 -1.7945441268 0.4997721152
|
||||
24 -2.50023339174 -0.4939926774 0.4998565634
|
||||
25 -2.5002228639 0.5096527854 0.4998286406
|
||||
26 -2.49973398858 1.5167884392 0.4998730372
|
||||
27 -1.09231806 2.50004601528 0.4999122966
|
||||
28 -0.7664081604 1.506191607 0.4998754028
|
||||
29 -2.49994466028 -1.4976897942 0.49997382
|
||||
30 -1.6351530756 -0.9955213908 0.4999588934
|
||||
31 2.5000470594 -2.5000639944 0.4999611072
|
||||
32 1.0827185856 -2.500004454 0.4999501042
|
||||
33 0.121049223 0.962177124 0.4998840514
|
||||
34 -0.731239728 -1.4928565722 0.499907191
|
||||
35 2.5000148538 -1.7942863308 1.208330482
|
||||
36 1.4293900734 -0.60411936 0.4998811682
|
||||
37 1.693914078 -1.1739451596 1.2777368674
|
||||
38 -0.7702945434 -0.4936272762 0.4995237402
|
||||
39 2.5001273412 0.4105916904 1.3657870828
|
||||
40 -0.2151642102 -0.4489046268 1.3296380976
|
||||
41 -0.7687151904 0.5062139106 0.4999055828
|
||||
42 2.500152618 -0.0892589747999999 0.4997650116
|
||||
43 1.0009049868 1.008280419 0.972585352
|
||||
44 -1.5086934072 0.9974863356 1.4916875348
|
||||
45 -0.1906878174 -2.5001610756 1.3546498898
|
||||
46 1.9350760212 2.50015141518 1.3263206044
|
||||
47 0.7680680142 -0.613803066 1.2529781652
|
||||
48 -0.520322322 0.9840571992 1.3423839878
|
||||
49 -1.7049937512 1.8781106406 0.987517195
|
||||
50 0.2890163712 1.5679785972 1.4005698552
|
||||
51 -2.5001055165 -0.9902666664 1.3677983936
|
||||
52 0.6718107054 0.0485346384000001 0.4998990378
|
||||
53 0.8828891958 -1.4903279178 0.7856231914
|
||||
54 1.6971075462 -1.8794484798 1.986236625
|
||||
55 0.7785745614 -1.5429397554 1.778749626
|
||||
56 2.498355582 -2.5002474342 1.9162502768
|
||||
57 1.8163510674 1.118761185 1.5402656292
|
||||
58 -2.49028043208 0.00966293040000021 1.3657617934
|
||||
59 -1.0465593666 -1.9851376494 1.3111443026
|
||||
60 1.6230277242 -0.109344417 1.3725323044
|
||||
61 0.803677725 -2.4904980648 1.4601558584
|
||||
62 2.500174548 -1.291019802 2.077806292
|
||||
63 -0.4406783868 -1.0295588292 2.111380354
|
||||
64 -1.0593921888 -0.9853736058 1.3206667652
|
||||
65 -1.0862456712 0.0421811507999998 1.334589922
|
||||
66 -0.0664300529999999 -1.4875173498 1.246881552
|
||||
67 0.2975538384 0.4089966312 1.3541999206
|
||||
68 -2.0563739124 1.7171792856 1.9181011058
|
||||
69 -1.5021759366 -2.5002090786 2.037012458
|
||||
70 1.2004706514 1.8826223166 1.7322744688
|
||||
71 -2.50018854048 1.0131918204 1.3636933196
|
||||
72 -0.6610079004 -1.996969944 2.233624626
|
||||
73 0.3572570658 -0.4242221946 2.149145084
|
||||
74 -2.50015722168 2.5001806872 1.4828326074
|
||||
75 -1.7654338962 -0.4966383762 1.832939586
|
||||
76 2.5001148054 1.8908456178 2.089239758
|
||||
77 -1.5156057486 -1.498156245 2.047882108
|
||||
78 -0.0249709901999999 2.50011927126 2.002554182
|
||||
79 2.500335852 0.901840926 2.23670456
|
||||
80 -2.50033055412 -2.5002094542 2.093220108
|
||||
81 -2.50007568966 -1.5087105342 2.222856128
|
||||
82 0.2019219258 -2.5001781654 2.2742338
|
||||
83 2.500074618 -0.1030437882 2.239501644
|
||||
84 1.306372176 -0.7329475686 2.087233828
|
||||
85 -0.9572314386 1.6112582586 2.05661196
|
||||
86 0.8603279154 0.9694525734 1.9616903498
|
||||
87 -1.4114044692 2.50004378976 1.713374457
|
||||
88 -2.5000006182 2.49931211886 2.482805848
|
||||
89 -1.020675462 -0.3572734878 2.57123686
|
||||
90 -0.4044797454 0.2263507242 2.042403434
|
||||
91 -2.50015066302 -0.0762997092000002 2.3660063
|
||||
92 2.5000666632 -0.6377540202 3.084536714
|
||||
93 1.635820743 0.3998132112 2.232930018
|
||||
94 0.787044012 2.3196010806 2.557182368
|
||||
95 1.7880996756 -1.270196802 2.779504834
|
||||
96 -2.5000149498 0.9308964468 2.36020607
|
||||
97 2.50006086 1.4990173908 3.038728388
|
||||
98 2.5000002036 -2.0009185842 2.782437742
|
||||
99 2.4973597854 0.4018063872 3.102688092
|
||||
100 -0.0847238868 1.1548315362 2.230957046
|
||||
101 -1.6189831278 0.38758413 2.276164892
|
||||
102 -1.3109302698 -1.529630028 3.0261821
|
||||
103 -0.8621444616 2.50007941956 2.548976818
|
||||
104 -2.5003575921 -2.1906193686 3.043995226
|
||||
105 1.737794406 2.50023188418 2.306502354
|
||||
106 1.1607421194 -2.5001894034 2.557490476
|
||||
107 -0.5515943472 -2.5000711818 3.090821674
|
||||
108 0.7581635106 0.305805486 2.70258895
|
||||
109 -0.129270348 -0.0804334734000003 2.953362524
|
||||
110 1.5702057348 -0.2965035672 2.947395472
|
||||
111 -1.5907955166 0.297198915 3.271622288
|
||||
112 -1.6352174376 1.2855549804 2.715570616
|
||||
113 0.2365862016 -1.5621519012 2.618913636
|
||||
114 2.5001485044 -1.4752385472 3.632918874
|
||||
115 -2.50003414566 0.7085497368 3.335106492
|
||||
116 0.693198909 -0.7706072304 3.02499245
|
||||
117 -1.977290892 -0.837825789 2.748661152
|
||||
118 -0.0904186877999997 1.9400047344 2.850126046
|
||||
119 0.7424979096 1.3708776012 2.869705454
|
||||
120 2.5001771184 2.49786273384 2.953357364
|
||||
121 -0.460913031 -1.0102788876 3.1107298
|
||||
122 -1.5499088826 -2.5003303314 3.035766602
|
||||
123 1.0563693948 -1.7172623304 3.2938531
|
||||
124 0.4360463934 -2.5001018958 3.246364772
|
||||
125 0.0342889535999999 0.8326700802 3.326329174
|
||||
126 1.8144590976 -2.498344152 3.31403944
|
||||
127 1.4937454758 0.7565635794 3.208225078
|
||||
128 1.6727590014 1.420657209 2.482601878
|
||||
129 0.9063634374 -0.0106950330000002 3.63948294
|
||||
130 1.6212776142 2.0992148076 3.215117466
|
||||
131 -0.8136720582 0.7230042144 2.807794018
|
||||
132 -1.315108014 -0.6402926916 3.483977248
|
||||
133 -2.50004255652 -0.2892251556 3.401060322
|
||||
134 0.1195260084 -1.6342581966 3.633549956
|
||||
135 0.9584037636 1.636359729 3.809100648
|
||||
136 -1.7019079596 2.2670358852 3.038768934
|
||||
137 0.4485449298 2.50002773754 3.480648292
|
||||
138 -0.5629460556 2.50007656902 3.530567852
|
||||
139 -2.068160793 -2.5000301934 3.890959658
|
||||
140 1.8860334708 0.0716001041999998 3.821883252
|
||||
141 -2.50019618556 1.6650778878 3.043689132
|
||||
142 -2.50008791622 -1.2873252654 3.47288578
|
||||
143 0.1086245172 -0.5872844136 3.815345888
|
||||
144 1.6639765482 -0.932813649 3.712928374
|
||||
145 -0.1833273246 -2.5000925064 4.03160142
|
||||
146 -0.8962851474 1.5809637768 3.320864614
|
||||
147 -0.7169574816 0.1400516334 3.731676664
|
||||
148 2.500011852 2.0721063306 3.85816837
|
||||
149 2.5001365008 -0.6344300454 4.174079146
|
||||
150 -1.7707348866 1.2864253152 3.70626387
|
||||
151 1.2513762864 0.7556992416 4.181294142
|
||||
152 1.089643938 -2.5001485434 4.002974924
|
||||
153 2.50008954 -2.499974847 4.041819504
|
||||
154 -1.0940190246 -2.1313022424 3.845642176
|
||||
155 2.1776722896 1.0541972718 3.87428099
|
||||
156 -0.0395331882000001 1.6972500684 3.823106582
|
||||
157 2.5000338774 0.3867181632 4.54549633
|
||||
158 2.5001497122 1.3073891742 4.960181558
|
||||
159 1.3717521018 2.50027781286 4.096333292
|
||||
160 -1.6955078352 -1.3622797578 4.061873346
|
||||
161 1.6724483508 1.6405378734 4.508968746
|
||||
162 -1.5883062366 2.50004191788 4.004525984
|
||||
163 -2.50011644388 0.2717493792 4.23459531
|
||||
164 -0.7107997986 -1.1884793388 4.062312162
|
||||
165 0.8285435406 -1.2029877876 4.191307692
|
||||
166 -1.55143851 -0.0437593109999996 4.25096113
|
||||
167 -2.50013461182 2.50003897878 3.594022786
|
||||
168 0.0734856906000001 2.50008308844 4.408358144
|
||||
169 -0.914548509 1.0255301358 4.152194222
|
||||
170 -1.6341264246 -2.500034877 4.79181139
|
||||
171 1.4748712236 -0.4511699232 4.568599668
|
||||
172 0.1489712184 0.3411368382 4.189539116
|
||||
173 1.406735919 0.986367417 5.217013654
|
||||
174 0.4877848422 -0.430742853 4.727390504
|
||||
175 -2.5000717353 1.7276144418 4.229072872
|
||||
176 -1.7937201336 0.8688761202 4.61458745
|
||||
177 -2.50005687384 -1.8015027882 4.461473774
|
||||
178 -0.8057804424 2.0077339104 4.385534408
|
||||
179 -2.5000002933 -0.726109998 4.300541254
|
||||
180 -2.2475473872 -1.145362248 5.172585892
|
||||
181 -0.5008551234 -0.354949131 4.573265494
|
||||
182 0.8966084802 2.50000754118 4.976206068
|
||||
183 1.7559791976 -1.7879098968 4.223069524
|
||||
184 -0.0969458190000001 -1.2325570164 4.850439668
|
||||
185 2.5000228332 -2.5000156716 5.04177638
|
||||
186 -0.0943493447999999 1.8364560702 5.137311674
|
||||
187 2.500007484 -0.422753251200001 5.151382112
|
||||
188 0.4431724908 1.22235765 4.55945736
|
||||
189 -0.955181808 1.3287034494 5.104253614
|
||||
190 -0.9722254404 -1.7524120296 4.845562498
|
||||
191 0.4668761538 -2.0274797958 4.626421886
|
||||
192 0.5609288028 0.4537067568 5.188170966
|
||||
193 1.5196347156 0.0203280810000002 5.449296672
|
||||
194 1.2386247156 -1.5352518792 5.04064475
|
||||
195 -1.057892532 0.3365646498 5.033092932
|
||||
196 -1.3577205258 -0.8297695788 4.837965486
|
||||
197 2.3955945402 0.4951880454 5.534080218
|
||||
198 2.1694818594 2.50002353358 4.699335376
|
||||
199 -1.7074444422 1.9173469206 4.808416404
|
||||
200 2.5000456284 -1.4262992286 4.784752276
|
||||
201 0.7982982492 1.698849276 5.566507768
|
||||
202 1.5086419476 -2.500001286 4.91091146
|
||||
203 -0.5057618832 -2.5000529898 5.318127822
|
||||
204 -1.6643472924 -1.859715171 5.559303806
|
||||
205 1.7791669638 -0.9293853702 5.624343356
|
||||
206 0.4425652998 -1.510152669 5.645313296
|
||||
207 0.7376718042 -0.5556371952 5.687557738
|
||||
208 -0.3174564174 0.724506156 5.58195597
|
||||
209 0.476099514 -2.5000387746 5.50763995
|
||||
210 1.7492949126 1.983260724 5.445238122
|
||||
211 -0.2060036316 -0.2676090414 5.524777266
|
||||
212 2.3083762086 -1.7742526776 5.702449874
|
||||
213 1.3510895334 -2.1388098024 5.829978542
|
||||
214 -2.1305990952 -0.1588704822 5.057989534
|
||||
215 -2.50001512608 1.3339185534 5.148295084
|
||||
216 -1.0131713934 2.5000168179 5.230870194
|
||||
@@ -0,0 +1,35 @@
|
||||
#version 3.6;
|
||||
|
||||
// Right-handed coordinate system where the z-axis points upwards
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
right -0.15*x*image_width/image_height
|
||||
up 0.15*z
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
// The radius of the cylinders to be used when drawing the Voronoi cells
|
||||
#declare r=0.08;
|
||||
|
||||
// The radius of the particles
|
||||
#declare s=0.5;
|
||||
|
||||
// The particle packing
|
||||
union{
|
||||
#include "pack_six_cube_p.pov"
|
||||
pigment{rgb <0.92,0.65,1>} finish{reflection 0.17 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
// The computed Voronoi cells
|
||||
union{
|
||||
#include "pack_six_cube_v.pov"
|
||||
pigment{rgb <0.7,0.95,1>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
1 2.2943224014 -1.0464559164 0.705670375 0.7060563124
|
||||
2 -2.2131251616 -0.2534282466 0.4179088816 0.4179333901
|
||||
3 0.4986979062 -2.2939091778 0.7059446546 0.7062197784
|
||||
4 -1.1363949942 2.51662017456 0.4833167708 0.4835316314
|
||||
5 2.5828525206 -2.5704232026 0.4170765074 0.4171853937
|
||||
6 2.5312613994 0.0813363383999999 0.4686585474 0.4687482872
|
||||
7 0.5270681202 0.1822394328 0.4566503184 0.4566702648
|
||||
8 -1.8090864528 -2.4784758522 0.5213700014 0.5215540739
|
||||
9 1.5172336578 -2.5995934452 0.400239651 0.4004180139
|
||||
10 -2.73541260294 -0.665141415 0.264585664 0.2646419567
|
||||
11 2.3288409102 1.3275844698 0.6712796186 0.671305465
|
||||
12 -2.3449237668 -1.3998745674 0.653114676 0.6537050365
|
||||
13 -0.273720192 0.98136621 0.5832515002 0.5835425632
|
||||
14 -2.2730510436 0.8475503082 0.7267395712 0.7271867217
|
||||
15 -1.085860644 -2.713778256 0.2766961708 0.2767006077
|
||||
16 1.3479684156 2.42613314088 0.5737740954 0.5739094414
|
||||
17 0.8679249744 1.362694794 0.5918476524 0.5923292094
|
||||
18 2.4884923332 2.48855293056 0.5114622224 0.5115241628
|
||||
19 -1.2926150898 -0.6855962928 0.6186114574 0.6186510622
|
||||
20 -0.0560958545999997 2.1992913546 0.6555111342 0.6559432277
|
||||
21 -0.3722640066 -1.390832787 0.5430032632 0.5434405502
|
||||
22 1.5403470072 -0.3978432918 0.3501305128 0.3504226441
|
||||
23 -1.4918790522 0.2174364522 0.3453688136 0.345726593
|
||||
24 -1.6062643146 1.5734729928 0.3338806088 0.3339006782
|
||||
25 -2.287521294 2.2873168098 0.7127836958 0.7128691615
|
||||
26 -1.20882963 0.9761847042 0.3286489024 0.3286563375
|
||||
27 -2.65328715 -2.3745858984 0.3469818514 0.3469938136
|
||||
28 2.4560289282 2.47977454422 1.540497065 0.518089035
|
||||
29 1.5203646228 0.459011676 0.5245273472 0.524557466
|
||||
30 -2.2683050202 -2.2685845308 1.7291921848 0.7317004607
|
||||
31 -2.2389258816 -0.3545632704 1.5777711886 0.7463444395
|
||||
32 1.3274025204 0.870454446 1.3818432376 0.4457722249
|
||||
33 -0.8200048704 1.682402946 0.3146065552 0.3146130774
|
||||
34 2.037405963 -2.734891422 0.7927691996 0.2653537674
|
||||
35 0.7446510036 -0.9449665488 0.665534172 0.6657401609
|
||||
36 0.252108156 1.4342595378 1.6692793032 0.6510015351
|
||||
37 -0.232995339 -0.3789234516 0.4790476876 0.4790707157
|
||||
38 -1.182695493 0.3412997304 1.1881339314 0.5607946756
|
||||
39 0.7342458606 2.48273619588 1.4745929916 0.5176415568
|
||||
40 1.4495150124 -1.7657545758 0.4065028532 0.4065169232
|
||||
41 2.4072350574 -2.1788555046 1.331500264 0.5929448755
|
||||
42 1.9710933996 2.74890964128 1.0075394556 0.25109367
|
||||
43 2.3634119148 0.3264172704 1.4397791162 0.5468590664
|
||||
44 -0.7944022698 -2.3604619842 1.0731014692 0.6398110513
|
||||
45 -2.61750025026 1.5823487454 1.4837685658 0.3828216219
|
||||
46 -1.3934448894 -1.4557962264 1.4245323334 0.5007351387
|
||||
47 2.0516104722 -0.5976729528 1.8291002472 0.5032897309
|
||||
48 -1.1662107612 1.580801847 1.2476943158 0.68038851
|
||||
49 -2.62275320286 2.62274544918 1.6943357446 0.3772760844
|
||||
50 1.427421291 1.7820856302 1.393223335 0.4714230179
|
||||
51 1.511602665 -0.286772143799999 1.1251421486 0.4330516084
|
||||
52 -0.00495156840000011 0.1458958272 1.4742242634 0.6673832361
|
||||
53 1.4580859176 -1.3409557974 1.518765968 0.4972881764
|
||||
54 2.6241844452 -1.3095172254 1.7018651874 0.3759083213
|
||||
55 -0.118992429 -1.2628323378 1.7735270244 0.7194916347
|
||||
56 1.5647497962 2.46394055646 2.121833662 0.5359769328
|
||||
57 -1.5032832552 2.59377415992 1.4501380794 0.4063930172
|
||||
58 -0.5839557306 1.0057908114 2.610664932 0.6791948278
|
||||
59 1.3074553278 -2.4040604262 1.7243671778 0.5964918599
|
||||
60 0.8814832356 -0.5611616082 1.7601448296 0.5026682898
|
||||
61 -2.48310263682 0.8266609542 1.9533304434 0.5170110188
|
||||
62 2.297113395 1.3967461578 2.081742634 0.7030393739
|
||||
63 -1.0195599864 -0.4111505676 1.9681311576 0.5352429558
|
||||
64 -0.5175275088 2.4823593312 1.69677395 0.5176595874
|
||||
65 -1.5489189312 0.4950305808 2.168855308 0.4975790562
|
||||
66 0.333337215 -0.0583095054 2.827392692 0.7423505541
|
||||
67 0.0674296854000001 -2.4833591418 1.8344001122 0.5167676635
|
||||
68 0.2775952626 2.3842496988 2.507242568 0.6160387592
|
||||
69 2.4017613972 -2.4018615012 2.501486212 0.5984231387
|
||||
70 -1.9955052906 1.9651018854 2.311247106 0.7211789759
|
||||
71 -2.53302155544 -1.2633035634 2.325987884 0.4670032313
|
||||
72 1.0254797076 -1.3689550506 2.699984766 0.7453434186
|
||||
73 2.7366543312 -0.255166959 1.8627578132 0.2633667332
|
||||
74 -1.5932869332 -1.161104781 2.33654568 0.4783428461
|
||||
75 -1.009793352 -2.3145221832 2.379841524 0.6857252069
|
||||
76 0.693340893 -2.7334615248 2.233459154 0.2665414081
|
||||
77 1.4664561702 0.2494399638 2.198538934 0.5896736187
|
||||
78 1.0609126104 1.346259048 2.764337228 0.7100030833
|
||||
79 2.5104461586 0.288508614 2.469325808 0.4902809103
|
||||
80 2.2333125396 -1.3321437648 2.468530976 0.4850812043
|
||||
81 -2.53682629722 -2.0202472632 2.866756044 0.4632815554
|
||||
82 1.39206234 -2.5243049766 2.847264012 0.4759385864
|
||||
83 -2.2724829138 -0.1098747342 3.030753202 0.7278689558
|
||||
84 2.017225557 -0.4654244676 3.2605051 0.7088141325
|
||||
85 -0.8802476718 2.2941084036 3.138807084 0.706319733
|
||||
86 -0.628079403 -1.2303917862 3.026510666 0.6333826584
|
||||
87 -2.3580815088 1.2015017298 3.469933122 0.6423476731
|
||||
88 2.4394649826 2.43914405052 2.782663268 0.5611360678
|
||||
89 0.0625357709999999 1.567985091 3.457187126 0.5253053479
|
||||
90 -1.539161295 0.7417340322 3.027584724 0.3961963631
|
||||
99 -2.72525501652 2.7252550677 2.33003352 0.2747456695
|
||||
92 0.0712955964000002 -2.1279171366 2.760670462 0.4755996786
|
||||
93 -1.6729430694 -2.2970374674 3.599943258 0.703232669
|
||||
94 2.3386638444 1.4752735164 3.527299472 0.6613443566
|
||||
95 -1.434656622 1.4247232644 3.255650254 0.3315953156
|
||||
96 1.4645618112 2.40960447342 3.394721712 0.5906045429
|
||||
97 1.3760703144 0.6001459458 3.91326855 0.6957628841
|
||||
98 -0.9462140538 -0.0427487088 3.336492874 0.6348952769
|
||||
100 0.1827398208 2.53982076702 3.56794066 0.4602070182
|
||||
101 -0.457002639 -2.4730137114 3.539548678 0.5270570418
|
||||
102 -0.931419198 1.310320869 4.181737976 0.7285273468
|
||||
103 -2.0616432114 -1.381992453 2.96886929 0.338965935
|
||||
104 0.3262376142 -1.1104806558 3.891426076 0.6602407423
|
||||
105 2.603218266 0.4692112902 3.333852194 0.3969569889
|
||||
106 0.621550263600001 -2.5866908208 3.286851976 0.4133731777
|
||||
107 -1.6503699132 -0.9780887094 3.900764794 0.6499567157
|
||||
108 2.5553042898 0.5974451142 4.164302548 0.4447202462
|
||||
109 1.093439955 -1.9843021254 3.772229138 0.4928106182
|
||||
110 2.2235607966 -1.7856976272 3.593621548 0.6684564056
|
||||
111 -1.8611431338 0.263821821 4.322428632 0.6784407082
|
||||
112 -0.714751794 -1.7696935824 4.568625748 0.7458394563
|
||||
113 0.0386044164000001 0.2095397208 4.263319014 0.7410307389
|
||||
114 2.6686634316 -0.9488247192 3.911576604 0.3313563455
|
||||
115 2.2284709422 2.44392245922 4.203874322 0.52275482
|
||||
116 1.6157859984 1.0711117986 4.785981628 0.324507904
|
||||
117 2.6962586916 2.69148775836 3.569067278 0.3038361345
|
||||
118 2.3010754314 -2.3010362742 4.857805072 0.6990378129
|
||||
119 1.5263534148 -1.0151841486 4.39882278 0.646307023
|
||||
120 2.5098680544 -0.286387857 4.293648972 0.4497013899
|
||||
121 -2.299556475 -1.9016876682 4.792048206 0.7005884521
|
||||
122 0.9244959174 1.6753165404 3.841476996 0.4245743159
|
||||
123 -2.195684046 2.3733634644 3.92901905 0.627024797
|
||||
124 2.029463979 0.3068333046 4.912229852 0.5146686515
|
||||
125 2.413782231 1.5097724478 4.772127442 0.5862580388
|
||||
126 -0.9412554102 -0.4929830346 4.75320165 0.5604422166
|
||||
127 0.3372408174 -2.552452671 4.098775276 0.4476288123
|
||||
128 1.595908398 1.800843726 3.997430578 0.2760586876
|
||||
129 -1.1690519448 2.54118940104 4.240150194 0.4588777615
|
||||
130 0.9204879588 2.5114852107 4.32092078 0.4885296669
|
||||
131 0.659912373 1.3331246274 4.845102632 0.6684164081
|
||||
132 2.671829979 2.67183193236 4.893475244 0.3281755811
|
||||
133 -2.2910456076 1.4532497628 4.8927943 0.7089778106
|
||||
134 -1.076059968 0.5908148568 5.408126698 0.7007406601
|
||||
135 -2.3840496972 -0.6255172758 5.10418547 0.6160086477
|
||||
136 1.0821373314 -0.0702869808000002 4.884508576 0.5053602451
|
||||
137 -0.1570730478 2.3498492814 4.651425962 0.6502238281
|
||||
138 0.2317918764 0.4511463576 5.732392164 0.6539508916
|
||||
139 -1.3545203652 -2.270521377 5.800060516 0.7295653254
|
||||
140 -0.9624893322 -2.7356211324 4.088993036 0.2643819056
|
||||
141 -1.5216895236 -0.3565353498 5.43671559 0.3466350961
|
||||
142 -1.2907235904 2.2917439416 5.332687914 0.6684343677
|
||||
143 0.8866195422 -2.0804987466 5.0460502 0.7449337414
|
||||
144 1.6203390714 2.41392403836 5.130579106 0.5861366337
|
||||
145 1.296612102 0.664002732 5.135460666 0.2998035487
|
||||
146 -2.53747613442 0.4097391504 5.36465084 0.4625465899
|
||||
147 0.1716290718 -0.8312932698 5.267659842 0.7114849333
|
||||
148 1.654186005 1.321091574 5.765267432 0.6781646288
|
||||
149 2.378105925 -0.7080846654 5.286799656 0.6219566767
|
||||
150 1.7460546672 -1.5505974858 5.104615992 0.2664296597
|
||||
151 -2.5832557326 -1.4049308712 5.751830462 0.4167636988
|
||||
152 1.5354658446 -0.00829035900000008 5.96063277 0.6640629242
|
||||
153 -1.7109245526 -1.0595021664 5.944676482 0.5411024747
|
||||
154 2.6796552096 2.1823488846 5.31882093 0.3203466498
|
||||
155 -0.3250549086 1.5328440306 5.45032619 0.5047825301
|
||||
156 -1.026100956 1.520969247 6.202284836 0.5233534934
|
||||
157 1.2170797572 -0.7873677756 5.30232077 0.3354648203
|
||||
158 0.5536985856 2.295029025 5.731413028 0.6438728258
|
||||
159 2.5065769272 0.6006610446 6.121709486 0.4934687094
|
||||
160 -2.0501973498 -0.0777889722000005 6.039149584 0.501875366
|
||||
@@ -0,0 +1,33 @@
|
||||
#version 3.6;
|
||||
|
||||
// Right-handed coordinate system where the z-axis points upwards
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
right -0.15*x*image_width/image_height
|
||||
up 0.15*z
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
// The radius of the cylinders to be used when drawing the Voronoi cells
|
||||
#declare r=0.08;
|
||||
|
||||
// The polydisperse particle packing
|
||||
union{
|
||||
#include "pack_six_cube_poly_p.pov"
|
||||
pigment{rgb <0.92,0.65,1>} finish{reflection 0.17 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
// The Voronoi cells for the packing, computed using the radical Voronoi
|
||||
// tessellation
|
||||
union{
|
||||
#include "pack_six_cube_poly_v.pov"
|
||||
pigment{rgb <0.7,0.95,1>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// Radical Voronoi tessellation example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-3,x_max=3;
|
||||
const double y_min=-3,y_max=3;
|
||||
const double z_min=0,z_max=6;
|
||||
|
||||
// Set up the number of blocks that the container is divided
|
||||
// into.
|
||||
const int n_x=3,n_y=3,n_z=3;
|
||||
|
||||
int main() {
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block. Import
|
||||
// the monodisperse test packing and output the Voronoi
|
||||
// tessellation in gnuplot and POV-Ray formats.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
con.import("pack_six_cube");
|
||||
con.draw_cells_gnuplot("pack_six_cube.gnu");
|
||||
con.draw_cells_pov("pack_six_cube_v.pov");
|
||||
con.draw_particles_pov("pack_six_cube_p.pov");
|
||||
|
||||
// Create a container for polydisperse particles using the same
|
||||
// geometry as above. Import the polydisperse test packing and
|
||||
// output the Voronoi radical tessellation in gnuplot and POV-Ray
|
||||
// formats.
|
||||
container_poly conp(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
conp.import("pack_six_cube_poly");
|
||||
conp.draw_cells_gnuplot("pack_six_cube_poly.gnu");
|
||||
conp.draw_cells_pov("pack_six_cube_poly_v.pov");
|
||||
conp.draw_particles_pov("pack_six_cube_poly_p.pov");
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=degenerate degenerate2
|
||||
|
||||
# Makefile rules
|
||||
all: degenerate degenerate2
|
||||
|
||||
degenerate: $(SOURCE) degenerate.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o degenerate degenerate.cc -lvoro++
|
||||
|
||||
degenerate2: $(SOURCE) degenerate2.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o degenerate2 degenerate2.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,21 @@
|
||||
Examples of degenerate vertex support
|
||||
=====================================
|
||||
Voronoi cells are irregular polyhedra whose faces are made by random plane cuts
|
||||
due to neighboring particles, and typically all the vertices of these polyhedra
|
||||
have order 3, since creating higher order vertices can only occur if a plane
|
||||
cut intersects an existing vertex.
|
||||
|
||||
In order to make the code robust for handling very large systems, Voro++
|
||||
correctly handles these cases, by taking the approach that if a plane is within
|
||||
a particular numerical tolerance of an existing vertex, it treats the plane as
|
||||
perfectly intersecting that vertex, and it recomputes the cell topology
|
||||
accordingly, allowing it to have perfect representations of objects such as an
|
||||
octahedron. These example codes demonstrate this support:
|
||||
|
||||
1. higher_test.cc - this code creates an object by cutting with planes aligned
|
||||
in a conical arragement along the positive and negative axes in the x, y, and z
|
||||
directions. This results in six very high order vertices, and often many order
|
||||
four vertices.
|
||||
|
||||
2. higher_test2.cc - this code creates an approximation to a sphere, by cutting
|
||||
with many different planes aligned in locally random conical arrangements.
|
||||
@@ -0,0 +1,48 @@
|
||||
// Degenerate Voronoi cell example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
const double pi=3.1415926535897932384626433832795;
|
||||
|
||||
// The number of planes to be cut around each coordinate axis
|
||||
const int n=32;
|
||||
const double step=2*pi/n;
|
||||
|
||||
// The angle (in radians) of the cutting planes from horizontal
|
||||
const double theta=pi/4-0.25;
|
||||
|
||||
int main() {
|
||||
double x,y,z,phi;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered
|
||||
// on the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Plane cutting
|
||||
for(phi=0;phi<2*pi-0.5*step;phi+=step) {
|
||||
x=cos(theta);y=cos(phi)*sin(theta);z=sin(phi)*sin(theta);
|
||||
v.plane(x,y,z,1);
|
||||
v.plane(-x,y,z,1);
|
||||
v.plane(y,x,z,1);
|
||||
v.plane(y,-x,z,1);
|
||||
v.plane(y,z,x,1);
|
||||
v.plane(y,z,-x,1);
|
||||
}
|
||||
|
||||
// Check that the relation table is correct, and that there are no
|
||||
// duplicate edges
|
||||
v.check_relations();
|
||||
v.check_duplicates();
|
||||
|
||||
// Output the Voronoi cell to a file in Gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"degenerate.gnu");
|
||||
|
||||
// Output the Voronoi cell to a file in POV-Ray format
|
||||
v.draw_pov(0,0,0,"degenerate_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
#version 3.6;
|
||||
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <15,10,-30>
|
||||
right 0.04*x*image_width/image_height
|
||||
up 0.04*y
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-4,35,-20> color rgb <0.72,0.7,0.7>}
|
||||
light_source{<20,5,-10> color rgb <0.4,0.42,0.42>}
|
||||
|
||||
#declare r=0.01;
|
||||
|
||||
union{
|
||||
#include "degenerate_v.pov"
|
||||
texture{T_Gold_3C}
|
||||
}
|
||||
|
||||
sphere{<0,0,0>,0.5-r
|
||||
pigment{rgb <0.1,0.15,0.4>}
|
||||
finish{reflection 0.25 specular 0.4 ambient 0.6}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Degenerate vertex example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
const double pi=3.1415926535897932384626433832795;
|
||||
|
||||
// The total number of points to create as degenerate vertices
|
||||
const int points=100;
|
||||
|
||||
// The number of planes that will be cut around each point
|
||||
const int n=64;
|
||||
const double step=2*pi/n;
|
||||
|
||||
// The angle (in radians) of the cutting planes from horizontal
|
||||
const double theta=0.04;
|
||||
|
||||
// This function returns a random floating point number between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
double x,y,z,rsq,r,phi;
|
||||
voronoicell v;
|
||||
int n=0;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered on
|
||||
// the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Plane cutting
|
||||
while(n<points) {
|
||||
|
||||
// Choose a random point
|
||||
x=2*rnd()-1;
|
||||
y=2*rnd()-1;
|
||||
z=2*rnd()-1;
|
||||
|
||||
// Skip it if it's outside the unit sphere or too close to the
|
||||
// origin
|
||||
rsq=x*x+y*y+z*z;
|
||||
if(rsq<0.01||rsq>1) continue;
|
||||
|
||||
// Rescale the point so that it has modulus 1, and then apply
|
||||
// plane cuts around this point
|
||||
r=1/sqrt(rsq);x*=r;y*=r;z*=r;
|
||||
rsq=sqrt(x*x+y*y);r=z/rsq;
|
||||
for(phi=rnd()*step;phi<2*pi;phi+=step)
|
||||
v.plane(x*cos(theta)+sin(theta)*(-y*cos(phi)/rsq-x*r*sin(phi)),
|
||||
y*cos(theta)+sin(theta)*(x*cos(phi)/rsq-y*r*sin(phi)),
|
||||
z*cos(theta)+sin(theta)*rsq*sin(phi),1);
|
||||
n++;
|
||||
}
|
||||
|
||||
// Output the Voronoi cell to a file in Gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"degenerate2.gnu");
|
||||
|
||||
// Optional POV-Ray output
|
||||
v.draw_pov(0,0,0,"degenerate2_v.pov");
|
||||
v.draw_pov_mesh(0,0,0,"degenerate2_m.pov");
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <1,2.5,-5>
|
||||
right 0.2*x*image_width/image_height
|
||||
up 0.2*y
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-0.8,3,-2> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<2.5,1.2,-1.2> color rgb <0.38,0.40,0.40>}
|
||||
|
||||
#declare r=0.002;
|
||||
|
||||
union{
|
||||
#include "degenerate2_m.pov"
|
||||
pigment{rgb <1,0.2,0.25>} finish{specular 0.2 ambient 0.42}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "degenerate2_v.pov"
|
||||
texture{T_Gold_3C}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=box_cut cut_region superellipsoid irregular
|
||||
|
||||
# Makefile rules
|
||||
all: $(EXECUTABLES)
|
||||
|
||||
box_cut: box_cut.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o box_cut box_cut.cc -lvoro++
|
||||
|
||||
cut_region: cut_region.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o cut_region cut_region.cc -lvoro++
|
||||
|
||||
superellipsoid: superellipsoid.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o superellipsoid superellipsoid.cc -lvoro++
|
||||
|
||||
irregular: irregular.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o irregular irregular.cc -lvoro++
|
||||
|
||||
finite_sys: finite_sys.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o finite_sys finite_sys.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,27 @@
|
||||
Extra examples
|
||||
==============
|
||||
This directory contains miscellaneous extra examples of the code.
|
||||
|
||||
box_cut.cc - this creates a large Voronoi cell, and then cuts the cell by a
|
||||
group of points within a small box, to demonstrate space that particles within
|
||||
a block can possibly affect. Different topologies are visible depending on
|
||||
whether a face, edge, or corner of the box is aligned with the cell.
|
||||
|
||||
cut_region.cc - this program demonstrates the plane_intersects() routine for
|
||||
determining whether a plane has any intersection with a Voronoi cell. The
|
||||
program creates a test Voronoi cell, saves it to "cell.gnu", and then maps out
|
||||
the region of space which can possibly influence it and saves an outline of it
|
||||
to "cell_cut_region.gnu". These can be visualized in gnuplot using:
|
||||
|
||||
splot 'cell.gnu' with lines, 'cell_cut_region.gnu' with dots
|
||||
|
||||
superellipsoid.cc - this creates a cell in the shape of a superellipsoid
|
||||
(satisfying the equation x^4+y^4+z^4=1) and outputs the results in gnuplot
|
||||
format to "superellipsoid.gnu".
|
||||
|
||||
irregular.cc - this code makes use of a wall class as a method of handling a
|
||||
Voronoi tessellation for an irregular group of particles. Each Voronoi cell is
|
||||
initialized to be a dodecahedron surronding the particle, which is then cut.
|
||||
This stops Voronoi cells from extending a long way out to the computational
|
||||
boundaries. The output can be visualized using the POV-Ray header file
|
||||
irregular.pov.
|
||||
@@ -0,0 +1,32 @@
|
||||
// Box cutting example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Parameters controlling the center of the test box
|
||||
const double cx=1.5,cy=1.5,cz=1.5;
|
||||
|
||||
int main() {
|
||||
double x,y,z;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 16, centered
|
||||
// on the origin
|
||||
v.init(-8,8,-8,8,-8,8);
|
||||
|
||||
// Cut by a grid of points in a box of width one, centered on
|
||||
// (cx,cy,cz)
|
||||
for(x=cx-0.5;x<cx+0.55;x+=0.1) for(y=cy-0.5;y<cy+0.55;y+=0.1)
|
||||
for(z=cz-0.5;z<cz+0.55;z+=0.1) v.plane(x,y,z);
|
||||
|
||||
// Output the Voronoi cell in gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"box_cut.gnu");
|
||||
|
||||
// Now make a small file that contains the test box
|
||||
v.init(cx-0.5,cx+0.5,cy-0.5,cy+0.5,cz-0.5,cz+0.5);
|
||||
v.draw_gnuplot(0,0,0,"box_cut.points");
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
// Cell cutting region example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
const double pi=3.1415926535897932384626433832795;
|
||||
|
||||
// This constant sets the tolerance in the bisection search algorithm
|
||||
const double tolwidth=1e-7;
|
||||
|
||||
// This constant determines the density of points to test
|
||||
const double theta_step=pi/200;
|
||||
|
||||
int main() {
|
||||
double x,y,z,r,rmin,rmax;
|
||||
double theta,phi,phi_step;
|
||||
voronoicell v;
|
||||
FILE *fp=safe_fopen("cell_cut_region.gnu","w");
|
||||
|
||||
// Initialize the Voronoi cell to be an octahedron and make a single
|
||||
// plane cut to add some variation
|
||||
v.init_octahedron(1);
|
||||
v.plane(0.4,0.3,1,0.1);
|
||||
|
||||
// Output the cell in gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"cell.gnu");
|
||||
|
||||
// Now test over direction vectors from the center of the sphere. For
|
||||
// each vector, carry out a search to find the maximum distance along
|
||||
// that vector that a plane will intersect with cell, and save it to
|
||||
// the output file.
|
||||
for(theta=theta_step*0.5;theta<pi;theta+=theta_step) {
|
||||
phi_step=2*pi/(int(2*pi*sin(theta)/theta_step)+1);
|
||||
for(phi=phi_step*0.5;phi<2*pi;phi+=phi_step) {
|
||||
|
||||
// Calculate a direction to look along
|
||||
x=sin(theta)*cos(phi);
|
||||
y=sin(theta)*sin(phi);
|
||||
z=cos(theta);
|
||||
|
||||
// Now carry out a bisection search. Here, we initialize
|
||||
// a minimum and a maximum guess for the distance
|
||||
// along this vector. Keep multiplying rmax by two until
|
||||
// the plane no longer makes a cut.
|
||||
rmin=0;rmax=1;
|
||||
while (v.plane_intersects(x,y,z,rmax)) rmax*=2;
|
||||
|
||||
// We now know that the distance is somewhere between
|
||||
// rmin and rmax. Test the point halfway in-between
|
||||
// these two. If it intersects, then move rmin to this
|
||||
// point; otherwise, move rmax there. At each stage the
|
||||
// bounding interval is divided by two. Exit when the
|
||||
// width of the interval is smaller than the tolerance.
|
||||
while (rmax-rmin>tolwidth) {
|
||||
r=(rmax+rmin)*0.5;
|
||||
if (v.plane_intersects(x,y,z,r)) rmin=r;
|
||||
else rmax=r;
|
||||
}
|
||||
|
||||
// Output this point to file
|
||||
r=(rmax+rmin)*0.5;
|
||||
x*=r;y*=r;z*=r;
|
||||
fprintf(fp,"%g %g %g\n",x,y,z);
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
// Irregular packing example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-6,x_max=6;
|
||||
const double y_min=-6,y_max=6;
|
||||
const double z_min=-3,z_max=9;
|
||||
|
||||
// Golden ratio constants
|
||||
const double Phi=0.5*(1+sqrt(5.0));
|
||||
const double phi=0.5*(1-sqrt(5.0));
|
||||
|
||||
// Set up the number of blocks that the container is divided
|
||||
// into.
|
||||
const int n_x=5,n_y=5,n_z=5;
|
||||
|
||||
// Create a wall class that, whenever called, will replace the Voronoi cell
|
||||
// with a prescribed shape, in this case a dodecahedron
|
||||
class wall_initial_shape : public wall {
|
||||
public:
|
||||
wall_initial_shape() {
|
||||
|
||||
// Create a dodecahedron
|
||||
v.init(-2,2,-2,2,-2,2);
|
||||
v.plane(0,Phi,1);v.plane(0,-Phi,1);v.plane(0,Phi,-1);
|
||||
v.plane(0,-Phi,-1);v.plane(1,0,Phi);v.plane(-1,0,Phi);
|
||||
v.plane(1,0,-Phi);v.plane(-1,0,-Phi);v.plane(Phi,1,0);
|
||||
v.plane(-Phi,1,0);v.plane(Phi,-1,0);v.plane(-Phi,-1,0);
|
||||
};
|
||||
bool point_inside(double x,double y,double z) {return true;}
|
||||
bool cut_cell(voronoicell &c,double x,double y,double z) {
|
||||
|
||||
// Set the cell to be equal to the dodecahedron
|
||||
c=v;
|
||||
return true;
|
||||
}
|
||||
bool cut_cell(voronoicell_neighbor &c,double x,double y,double z) {
|
||||
|
||||
// Set the cell to be equal to the dodecahedron
|
||||
c=v;
|
||||
return true;
|
||||
}
|
||||
private:
|
||||
voronoicell v;
|
||||
};
|
||||
|
||||
int main() {
|
||||
|
||||
// Create a container with the geometry given above. This is bigger
|
||||
// than the particle packing itself.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Create the "initial shape" wall class and add it to the container
|
||||
wall_initial_shape(wis);
|
||||
con.add_wall(wis);
|
||||
|
||||
// Import the irregular particle packing
|
||||
con.import("pack_irregular");
|
||||
|
||||
// Save the particles and Voronoi cells in POV-Ray format
|
||||
con.draw_particles_pov("irregular_p.pov");
|
||||
con.draw_cells_pov("irregular_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
camera {
|
||||
location <0,-50,15>
|
||||
sky z
|
||||
right -0.25*x*image_width/image_height
|
||||
up 0.25*y
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-16,-30,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-16,8> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
#declare r=0.05;
|
||||
#declare s=0.5;
|
||||
|
||||
#declare particles=union {
|
||||
#include "irregular_p.pov"
|
||||
pigment{rgb 0.9} finish{reflection 0.2 specular 0.25 ambient 0.28 metallic}
|
||||
}
|
||||
|
||||
union{particles translate <-4,0,0>}
|
||||
union{particles translate <4,0,0>}
|
||||
|
||||
union{
|
||||
#include "irregular_v.pov"
|
||||
translate <4,0,0>
|
||||
pigment{rgb <0.7,0.3,0.9>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
72 -0.147483 -0.558693 -3.18934
|
||||
9 -2.41157 -1.29774 -1.06982
|
||||
80 -1.47859 -1.8335 -1.36336
|
||||
65 -0.711941 -2.41131 -1.64334
|
||||
64 -0.4797 -1.21197 -2.50408
|
||||
20 -1.42529 -0.939487 -1.80822
|
||||
40 -1.23958 0.407091 -1.66298
|
||||
79 -2.15132 0.907402 -1.59593
|
||||
66 -1.53942 -0.324634 -1.02788
|
||||
0 -0.413499 0.327672 -2.81041
|
||||
7 0.539113 0.879889 -1.70334
|
||||
10 -0.531341 -0.241038 -1.12169
|
||||
22 -0.697165 -0.321415 -2.10456
|
||||
59 0.392636 -0.224244 -2.07623
|
||||
67 0.763622 0.563918 -2.62516
|
||||
36 -0.30969 0.754975 -1.08361
|
||||
45 1.579 0.889521 -1.4745
|
||||
47 1.4156 -0.647419 -1.48749
|
||||
84 2.28022 0.210077 -1.69046
|
||||
15 0.77776 1.81164 -1.68825
|
||||
42 -0.18009 1.616 -1.8986
|
||||
54 0.560998 2.64828 -1.1852
|
||||
23 -1.87416 -2.33337 0.0595857
|
||||
41 -1.44546 -1.42998 0.0496244
|
||||
3 0.648987 -2.47874 -0.114855
|
||||
5 -0.539766 -1.84268 0.146595
|
||||
52 0.0605186 -2.7285 0.762346
|
||||
87 0.506043 -1.30521 0.122018
|
||||
56 0.125353 -1.8152 -0.649339
|
||||
27 1.23838 -1.98443 0.524113
|
||||
11 -1.7844 -0.395658 0.171453
|
||||
13 -1.56182 0.417102 0.228077
|
||||
53 -1.05622 0.840323 0.989743
|
||||
21 -1.73028 0.613184 -0.737932
|
||||
24 -2.70227 0.360208 -0.694108
|
||||
43 -2.26163 0.0972097 0.905263
|
||||
2 -0.846054 0.37304 -0.320826
|
||||
8 0.881191 0.180836 -0.691522
|
||||
83 0.220646 -0.586568 -0.560328
|
||||
32 -0.929809 -0.630924 -0.2915
|
||||
57 -0.740037 -0.0210996 0.59228
|
||||
50 0.224453 -0.1255 0.328453
|
||||
49 -0.337601 -0.932723 0.508691
|
||||
74 2.15102 -0.586216 -0.812645
|
||||
85 2.74671 0.216964 -0.805714
|
||||
82 1.07437 0.400501 0.359586
|
||||
55 -1.95062 2.07317 0.607831
|
||||
86 -1.52454 1.40705 -0.00434567
|
||||
69 -2.21193 1.06183 0.646364
|
||||
89 -0.387785 2.20094 -0.16407
|
||||
61 -0.849347 1.52048 -0.733213
|
||||
68 -0.635487 1.68349 0.655008
|
||||
70 0.495467 2.5636 0.133158
|
||||
18 0.305068 1.94276 0.946142
|
||||
76 0.987675 1.2686 -0.403397
|
||||
14 1.59053 2.0932 0.386613
|
||||
26 1.08147 2.78732 0.911973
|
||||
44 1.96939 1.24919 -0.592929
|
||||
46 2.94129 1.02209 0.994683
|
||||
19 1.18461 2.24248 -0.516429
|
||||
88 2.2082 1.30683 0.376432
|
||||
39 -1.12068 -1.89589 2.01622
|
||||
37 -1.35954 -1.23596 1.02763
|
||||
17 -0.390062 -2.44346 1.60836
|
||||
78 0.309306 -1.49032 2.25291
|
||||
71 0.465111 -1.82342 1.13741
|
||||
60 -2.51128 -0.741988 1.52195
|
||||
62 -2.26236 0.132924 1.93737
|
||||
77 -1.58329 0.16374 2.79988
|
||||
16 -1.40954 -0.246268 1.30018
|
||||
34 -1.34135 -0.920726 2.03534
|
||||
28 0.465115 0.780311 1.96134
|
||||
31 -0.530333 0.808298 2.08415
|
||||
35 -0.443838 -0.132428 2.41211
|
||||
51 0.76714 0.0380576 2.56075
|
||||
63 0.424234 -0.520687 1.23131
|
||||
73 -0.487922 -0.869208 1.49529
|
||||
29 -0.0885648 0.57667 1.05946
|
||||
1 1.53919 -0.840006 2.01191
|
||||
12 1.61355 -0.981671 1.0564
|
||||
75 1.46049 0.694938 1.91717
|
||||
58 -1.67927 1.51233 1.39003
|
||||
33 -1.05848 1.00787 2.90952
|
||||
4 -0.110568 1.67679 1.82049
|
||||
6 -0.822763 1.82494 1.80562
|
||||
81 0.694696 2.26858 2.02688
|
||||
25 0.235788 1.78411 2.77166
|
||||
30 0.783889 1.06523 1.04789
|
||||
38 2.09077 1.30555 1.4377
|
||||
48 1.28628 1.88704 1.31663
|
||||
@@ -0,0 +1,41 @@
|
||||
// Superellipsoid example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// This function returns a random floating point number between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
double x,y,z,rsq,r;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered
|
||||
// on the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Cut the cell by 5000 random planes that are scaled to create a
|
||||
// superellipsoid
|
||||
for(int i=0;i<5000;i++) {
|
||||
x=2*rnd()-1;
|
||||
y=2*rnd()-1;
|
||||
z=2*rnd()-1;
|
||||
rsq=x*x*x*x+y*y*y*y+z*z*z*z;
|
||||
if(rsq>0.01&&rsq<1) {
|
||||
r=1/sqrt(sqrt(rsq));
|
||||
x*=r;y*=r;z*=r;
|
||||
v.plane(x*x*x,y*y*y,z*z*z,x*x*x*x+y*y*y*y+z*z*z*z);
|
||||
}
|
||||
}
|
||||
|
||||
// Output the Voronoi cell to a file, in the gnuplot format
|
||||
v.draw_gnuplot(0,0,0,"superellipsoid.gnu");
|
||||
|
||||
// Output the Voronoi cell to a file in POV-Ray formats
|
||||
v.draw_pov(0,0,0,"superellipsoid_v.pov");
|
||||
v.draw_pov_mesh(0,0,0,"superellipsoid_m.pov");
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <1,2.5,-5>
|
||||
right 0.23*x*image_width/image_height
|
||||
up 0.23*y
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-0.8,3,-2> color rgb <0.77,0.75,0.65>}
|
||||
light_source{<2.5,1.2,-1.2> color rgb <0.38,0.30,0.40>}
|
||||
|
||||
#declare r=0.006;
|
||||
|
||||
union{
|
||||
#include "superellipsoid_m.pov"
|
||||
texture{T_Gold_3C}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "superellipsoid_v.pov"
|
||||
texture{T_Silver_3C}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=loops polygons odd_even find_voro_cell
|
||||
|
||||
# Makefile rules
|
||||
all: $(EXECUTABLES)
|
||||
|
||||
loops: loops.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o loops loops.cc -lvoro++
|
||||
|
||||
polygons: polygons.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o polygons polygons.cc -lvoro++
|
||||
|
||||
odd_even: odd_even.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o odd_even odd_even.cc -lvoro++
|
||||
|
||||
find_voro_cell: find_voro_cell.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o find_voro_cell find_voro_cell.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,52 @@
|
||||
C++ interface output examples
|
||||
=============================
|
||||
Since version 0.4, Voro++ has contained many routines that allow for programs
|
||||
to directly analyze features of a single Voronoi cell, and Voronoi cells in a
|
||||
particle packing. These example codes demonstrate this functionality.
|
||||
|
||||
1. odd_even.cc constructs a single Voronoi cell using random planes, in the
|
||||
same manner as the basic single_cell.cc example. It then calls several routines
|
||||
to gain information about the computed cell's faces. Using this information it
|
||||
constructs a POV-Ray scene in which the faces are colored white or black
|
||||
depending on whether the have an odd or even number of sides. The POV-Ray
|
||||
header file odd_even.pov can be used to visualize the result.
|
||||
|
||||
2. loops.cc demonstrates the loop classes, that can be used to iterate over a
|
||||
certain subset of particles within a container. It demonstrates the
|
||||
c_loop_order class, which can loop over a specific pre-computed list of
|
||||
particles. It also demonstrates the c_loop_subset class, which can loop over
|
||||
particles in a certain region of the container. These classes are used to
|
||||
compute Voronoi cells in two interlocking tori. The POV-Ray header file
|
||||
loops.pov can be used to visualize the result.
|
||||
|
||||
3. polygons.cc demonstrates how routines can be used to find all faces in a
|
||||
Voronoi tessellation that have a specific number of sides. The routine also
|
||||
demonstrates the pre_container class, that can aid in correctly configuring the
|
||||
underlying grid that the code uses, in cases whether the amount of input data
|
||||
is not known a priori. When run, the code generates POV-Ray scenes of all
|
||||
quadrilateral, pentagonal, and hexagonal faces in a Voronoi tessellation. The
|
||||
can be visualized using the POV-Ray header files polygons4.pov, polygons5.pov,
|
||||
and polygons6.pov.
|
||||
|
||||
4. find_voro_cell.cc demonstrates the find_voronoi_cell routine. For a given
|
||||
position vector, this routine will return the Voronoi cell that the vector is
|
||||
within. The code creates a unit cube and randomly adds twenty particles to it.
|
||||
It carries out a number of find_voronoi_cell calls for a slice through the
|
||||
cube, creating a file with vectors from each sample point to the particle whose
|
||||
Voronoi cell contains the point. The results can be visualized in Gnuplot with
|
||||
|
||||
splot 'find_voro_cell_v.gnu' w l t 'Voronoi cells', 'find_voro_cell.vec' w vec t 'Voronoi cell vectors', 'find_voro_cell_p.gnu' w p u 2:3:4 t 'Particles'
|
||||
|
||||
The example also uses the find_voronoi_cell routine to estimate the size of
|
||||
each Voronoi cell. It scans a grid covering the entire container, making
|
||||
find_voronoi_cell calls at each location. The number of times each Voronoi cell
|
||||
is returned gives an estimate of its volume. These sampled volumes, as well as
|
||||
the exact calculated voulmes are saved to 'find_voro_cell.vol'. A graph
|
||||
comparing the two can be plotted in Gnuplot with
|
||||
|
||||
set xlabel 'Calculated volume'
|
||||
set ylabel 'Sampled volume'
|
||||
plot [0:0.1] [0:0.1] 'find_voro_cell.vol' u 5:6
|
||||
|
||||
Altering the size of scanning grid alters who accurate the sampled volumes will
|
||||
match the calculated results.
|
||||
@@ -0,0 +1,89 @@
|
||||
// Example code demonstrating find_voronoi_cell function
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// The sampling distance for the grids of find_voronoi_cell calls
|
||||
const double h=0.05;
|
||||
|
||||
// The cube of the sampling distance, corresponding the amount of volume
|
||||
// associated with a sample point
|
||||
const double hcube=h*h*h;
|
||||
|
||||
// Set the number of particles that are going to be randomly introduced
|
||||
const int particles=20;
|
||||
|
||||
// This function returns a random double between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
int i;
|
||||
double x,y,z,r,rx,ry,rz;
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block
|
||||
container con(0,1,0,1,0,1,5,5,5,false,false,false,8);
|
||||
|
||||
// Randomly add particles into the container
|
||||
for(i=0;i<particles;i++) {
|
||||
x=rnd();
|
||||
y=rnd();
|
||||
z=rnd();
|
||||
con.put(i,x,y,z);
|
||||
}
|
||||
|
||||
// Output the particle positions in gnuplot format
|
||||
con.draw_particles("find_voro_cell_p.gnu");
|
||||
|
||||
// Scan a 2D slice in the container, and for each point in the slice,
|
||||
// find the Voronoi cell that the point is in. Store a vector
|
||||
FILE *f1=safe_fopen("find_voro_cell.vec","w");
|
||||
for(x=0.5*h;x<1;x+=h) for(y=0.5*h;y<1;y+=h) {
|
||||
if(con.find_voronoi_cell(x,y,0.5,rx,ry,rz,i))
|
||||
fprintf(f1,"%g %g %g %g %g %g %g\n",x,y,0.5,rx-x,ry-y,rz-0.5,
|
||||
sqrt((rx-x)*(rx-x)+(ry-y)*(ry-y)+(rz-0.5)*(rz-0.5)));
|
||||
else fprintf(stderr,"# find_voronoi_cell error for %g %g 0.5\n",x,y);
|
||||
}
|
||||
fclose(f1);
|
||||
|
||||
// Create a blank array for storing the sampled Voronoi volumes
|
||||
int samp_v[particles];
|
||||
for(i=0;i<particles;i++) samp_v[i]=0;
|
||||
|
||||
// Scan over a grid covering the entire container, finding which
|
||||
// Voronoi cell each point is in, and tallying the result as a method
|
||||
// of sampling the volume of each Voronoi cell
|
||||
for(z=0.5*h;z<1;z+=h) for(y=0.5*h;y<1;y+=h) for(x=0.5*h;x<1;x+=h) {
|
||||
if(con.find_voronoi_cell(x,y,z,rx,ry,rz,i)) samp_v[i]++;
|
||||
else fprintf(stderr,"# find_voronoi_cell error for %g %g %g\n",x,y,z);
|
||||
}
|
||||
|
||||
// Output the Voronoi cells in gnuplot format and a file with the
|
||||
// comparisons between the Voronoi cell volumes and the sampled volumes
|
||||
f1=safe_fopen("find_voro_cell.vol","w");
|
||||
FILE *f2=safe_fopen("find_voro_cell_v.gnu","w");
|
||||
c_loop_all cla(con);
|
||||
voronoicell c;
|
||||
if(cla.start()) do if (con.compute_cell(c,cla)) {
|
||||
|
||||
// Get the position and ID information for the particle
|
||||
// currently being considered by the loop. Ignore the radius
|
||||
// information.
|
||||
cla.pos(i,x,y,z,r);
|
||||
|
||||
// Save and entry to the .vol file, storing both the computed
|
||||
// Voronoi cell volume, and the sampled volume based on the
|
||||
// number of grid points that were inside the cell
|
||||
fprintf(f1,"%d %g %g %g %g %g\n",i,x,y,z,c.volume(),samp_v[i]*hcube);
|
||||
|
||||
// Draw the Voronoi cell
|
||||
c.draw_gnuplot(x,y,z,f2);
|
||||
} while (cla.inc());
|
||||
fclose(f1);
|
||||
fclose(f2);
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
// Example code demonstrating the loop classes
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Constants determining the configuration of the tori
|
||||
const double dis=1.25,mjrad=2.5,mirad=0.95,trad=mjrad+mirad;
|
||||
|
||||
// Set the number of particles that are going to be randomly introduced
|
||||
const int particles=100000;
|
||||
|
||||
// This function returns a random double between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
int i;
|
||||
double x,y,z,r;
|
||||
voronoicell c;
|
||||
|
||||
// Create a container as a non-periodic 10 by 10 by 10 box
|
||||
container con(-5,5,-5,5,-5,5,26,26,26,false,false,false,8);
|
||||
particle_order po;
|
||||
|
||||
// Randomly add particles into the container
|
||||
for(i=0;i<particles;i++) {
|
||||
x=10*rnd()-5;
|
||||
y=10*rnd()-5;
|
||||
z=10*rnd()-5;
|
||||
|
||||
// If the particle lies within the first torus, store it in the
|
||||
// ordering class when adding to the container
|
||||
r=sqrt((x-dis)*(x-dis)+y*y);
|
||||
if((r-mjrad)*(r-mjrad)+z*z<mirad) con.put(po,i,x,y,z);
|
||||
else con.put(i,x,y,z);
|
||||
}
|
||||
|
||||
// Compute Voronoi cells for the first torus. Here, the points
|
||||
// previously stored in the ordering class are looped over.
|
||||
FILE *f1=safe_fopen("loops1_m.pov","w");
|
||||
FILE *f2=safe_fopen("loops1_v.pov","w");
|
||||
c_loop_order clo(con,po);
|
||||
if(clo.start()) do if(con.compute_cell(c,clo)) {
|
||||
|
||||
// Get the position of the current particle under consideration
|
||||
clo.pos(x,y,z);
|
||||
|
||||
// Save a POV-Ray mesh to one file and a cylinder/sphere
|
||||
// representation to the other file
|
||||
c.draw_pov_mesh(x,y,z,f1);
|
||||
c.draw_pov(x,y,z,f2);
|
||||
} while (clo.inc());
|
||||
fclose(f1);
|
||||
fclose(f2);
|
||||
|
||||
// Compute Voronoi cells for the second torus. Here, the subset loop is
|
||||
// used to search over the blocks overlapping the torus, and then each
|
||||
// particle is individually tested.
|
||||
f1=safe_fopen("loops2_m.pov","w");
|
||||
f2=safe_fopen("loops2_v.pov","w");
|
||||
c_loop_subset cls(con);
|
||||
cls.setup_box(-dis-trad,-dis+trad,-mirad,mirad,-trad,trad,false);
|
||||
if(cls.start()) do {
|
||||
|
||||
// Get the position of the current particle under consideration
|
||||
cls.pos(x,y,z);
|
||||
|
||||
// Test whether this point is within the torus, and if so,
|
||||
// compute and save the Voronoi cell
|
||||
r=sqrt((x+dis)*(x+dis)+z*z);
|
||||
if((r-mjrad)*(r-mjrad)+y*y<mirad&&con.compute_cell(c,cls)) {
|
||||
c.draw_pov_mesh(x,y,z,f1);
|
||||
c.draw_pov(x,y,z,f2);
|
||||
}
|
||||
} while (cls.inc());
|
||||
fclose(f1);
|
||||
fclose(f2);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <2,-40,30>
|
||||
sky z
|
||||
right -0.155*x*image_width/image_height
|
||||
up 0.155*z
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-8,-20,30> color rgb <0.79,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.36,0.40,0.40>}
|
||||
|
||||
#declare r=0.02;
|
||||
#declare s=0.2;
|
||||
|
||||
union{
|
||||
#include "loops1_m.pov"
|
||||
pigment{rgb <0.9,0.6,0.3>} finish{reflection 0.185 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "loops1_v.pov"
|
||||
pigment{rgb <0.9,0.4,0.45>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "loops2_m.pov"
|
||||
pigment{rgb <0.5,0.65,0.75>} finish{reflection 0.185 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "loops2_v.pov"
|
||||
pigment{rgb <0.42,0.42,0.75>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
// Odd/even face coloring code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// This function returns a random floating point number between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
unsigned int i;
|
||||
double x,y,z,rsq,r;
|
||||
voronoicell v;
|
||||
|
||||
// Initialize the Voronoi cell to be a cube of side length 2, centered
|
||||
// on the origin
|
||||
v.init(-1,1,-1,1,-1,1);
|
||||
|
||||
// Cut the cell by 250 random planes which are all a distance 1 away
|
||||
// from the origin, to make an approximation to a sphere
|
||||
for(i=0;i<250;i++) {
|
||||
x=2*rnd()-1;
|
||||
y=2*rnd()-1;
|
||||
z=2*rnd()-1;
|
||||
rsq=x*x+y*y+z*z;
|
||||
if(rsq>0.01&&rsq<1) {
|
||||
r=1/sqrt(rsq);x*=r;y*=r;z*=r;
|
||||
v.plane(x,y,z,1);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate the orders of the faces and the normal vectors
|
||||
vector<int> f_vert;
|
||||
vector<double> nor;
|
||||
v.face_orders(f_vert);
|
||||
v.normals(nor);
|
||||
|
||||
// Output POV-Ray planes with textures based on whether a face is
|
||||
// composed of an odd or even number of edges
|
||||
const char* parity[2]={"even","odd"};
|
||||
FILE *fp=safe_fopen("odd_even_pl.pov","w");
|
||||
for(i=0;i<f_vert.size();i++)
|
||||
fprintf(fp,"plane{<%g,%g,%g>,0.5 texture{t_%s}}\n"
|
||||
,nor[3*i],nor[3*i+1],nor[3*i+2]
|
||||
,parity[f_vert[i]&1]);
|
||||
fclose(fp);
|
||||
|
||||
// Save the Voronoi cell as a spheres and cylinders
|
||||
v.draw_pov(0,0,0,"odd_even_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#version 3.6;
|
||||
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <15,-30,10>
|
||||
sky z
|
||||
right -0.033*x*image_width/image_height
|
||||
up 0.033*y
|
||||
look_at <0,0,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-4,-20,35> color rgb <0.72,0.7,0.7>}
|
||||
light_source{<20,-10,5> color rgb <0.4,0.42,0.42>}
|
||||
|
||||
#declare r=0.01;
|
||||
|
||||
#declare f1=finish{reflection 0.17 specular 0.3 ambient 0.42}
|
||||
#declare t_odd=texture{pigment{rgb <0.8,0.8,0.8>} finish{f1}}
|
||||
#declare t_even=texture{pigment{rgb <0.2,0.2,0.2>} finish{f1}}
|
||||
|
||||
intersection{
|
||||
#include "odd_even_pl.pov"
|
||||
}
|
||||
|
||||
union{
|
||||
#include "odd_even_v.pov"
|
||||
pigment{rgb <0.9,0.1,0.15>}
|
||||
finish{reflection 0.25 specular 0.4 ambient 0.3}
|
||||
}
|
||||
@@ -0,0 +1,216 @@
|
||||
1 -1.633531566 1.0081779456 0.4997643894
|
||||
2 -2.3175495108 2.50004343396 0.4998098766
|
||||
3 -0.0883292022000002 2.49998487024 0.49997382
|
||||
4 -0.5905249392 2.1141400272 1.2739520638
|
||||
5 -1.6354550196 0.00777687119999992 0.4998135702
|
||||
6 2.50024371 1.7052004254 1.1066620646
|
||||
7 1.6163377164 0.378218796 0.4996352686
|
||||
8 0.6450816684 1.8136706778 0.4991881638
|
||||
9 1.3723354464 2.50001343222 0.4998503506
|
||||
10 -2.49477600042 -2.4994533834 0.49997382
|
||||
11 0.1591747386 -0.8623052892 0.4997612252
|
||||
12 0.6018432558 2.50085393652 1.2236191762
|
||||
13 2.4993970962 2.50004979816 0.499958425
|
||||
14 2.5002306354 -0.5891871372 1.3656871624
|
||||
15 2.4996763188 0.910593138 0.4998442324
|
||||
16 0.1555379868 -2.1140856714 0.499808302
|
||||
17 1.7917374258 -2.5001865732 1.2081198644
|
||||
18 -2.1690769116 -1.9332698928 1.3393934932
|
||||
19 1.7064470976 1.5487702458 0.49997382
|
||||
20 -0.7669637874 -2.5000096794 0.4999680968
|
||||
21 2.5000711542 -1.0890633102 0.4997243732
|
||||
22 -1.630300629 -1.9954333962 0.4995576534
|
||||
23 1.7914606536 -1.7945441268 0.4997721152
|
||||
24 -2.50023339174 -0.4939926774 0.4998565634
|
||||
25 -2.5002228639 0.5096527854 0.4998286406
|
||||
26 -2.49973398858 1.5167884392 0.4998730372
|
||||
27 -1.09231806 2.50004601528 0.4999122966
|
||||
28 -0.7664081604 1.506191607 0.4998754028
|
||||
29 -2.49994466028 -1.4976897942 0.49997382
|
||||
30 -1.6351530756 -0.9955213908 0.4999588934
|
||||
31 2.5000470594 -2.5000639944 0.4999611072
|
||||
32 1.0827185856 -2.500004454 0.4999501042
|
||||
33 0.121049223 0.962177124 0.4998840514
|
||||
34 -0.731239728 -1.4928565722 0.499907191
|
||||
35 2.5000148538 -1.7942863308 1.208330482
|
||||
36 1.4293900734 -0.60411936 0.4998811682
|
||||
37 1.693914078 -1.1739451596 1.2777368674
|
||||
38 -0.7702945434 -0.4936272762 0.4995237402
|
||||
39 2.5001273412 0.4105916904 1.3657870828
|
||||
40 -0.2151642102 -0.4489046268 1.3296380976
|
||||
41 -0.7687151904 0.5062139106 0.4999055828
|
||||
42 2.500152618 -0.0892589747999999 0.4997650116
|
||||
43 1.0009049868 1.008280419 0.972585352
|
||||
44 -1.5086934072 0.9974863356 1.4916875348
|
||||
45 -0.1906878174 -2.5001610756 1.3546498898
|
||||
46 1.9350760212 2.50015141518 1.3263206044
|
||||
47 0.7680680142 -0.613803066 1.2529781652
|
||||
48 -0.520322322 0.9840571992 1.3423839878
|
||||
49 -1.7049937512 1.8781106406 0.987517195
|
||||
50 0.2890163712 1.5679785972 1.4005698552
|
||||
51 -2.5001055165 -0.9902666664 1.3677983936
|
||||
52 0.6718107054 0.0485346384000001 0.4998990378
|
||||
53 0.8828891958 -1.4903279178 0.7856231914
|
||||
54 1.6971075462 -1.8794484798 1.986236625
|
||||
55 0.7785745614 -1.5429397554 1.778749626
|
||||
56 2.498355582 -2.5002474342 1.9162502768
|
||||
57 1.8163510674 1.118761185 1.5402656292
|
||||
58 -2.49028043208 0.00966293040000021 1.3657617934
|
||||
59 -1.0465593666 -1.9851376494 1.3111443026
|
||||
60 1.6230277242 -0.109344417 1.3725323044
|
||||
61 0.803677725 -2.4904980648 1.4601558584
|
||||
62 2.500174548 -1.291019802 2.077806292
|
||||
63 -0.4406783868 -1.0295588292 2.111380354
|
||||
64 -1.0593921888 -0.9853736058 1.3206667652
|
||||
65 -1.0862456712 0.0421811507999998 1.334589922
|
||||
66 -0.0664300529999999 -1.4875173498 1.246881552
|
||||
67 0.2975538384 0.4089966312 1.3541999206
|
||||
68 -2.0563739124 1.7171792856 1.9181011058
|
||||
69 -1.5021759366 -2.5002090786 2.037012458
|
||||
70 1.2004706514 1.8826223166 1.7322744688
|
||||
71 -2.50018854048 1.0131918204 1.3636933196
|
||||
72 -0.6610079004 -1.996969944 2.233624626
|
||||
73 0.3572570658 -0.4242221946 2.149145084
|
||||
74 -2.50015722168 2.5001806872 1.4828326074
|
||||
75 -1.7654338962 -0.4966383762 1.832939586
|
||||
76 2.5001148054 1.8908456178 2.089239758
|
||||
77 -1.5156057486 -1.498156245 2.047882108
|
||||
78 -0.0249709901999999 2.50011927126 2.002554182
|
||||
79 2.500335852 0.901840926 2.23670456
|
||||
80 -2.50033055412 -2.5002094542 2.093220108
|
||||
81 -2.50007568966 -1.5087105342 2.222856128
|
||||
82 0.2019219258 -2.5001781654 2.2742338
|
||||
83 2.500074618 -0.1030437882 2.239501644
|
||||
84 1.306372176 -0.7329475686 2.087233828
|
||||
85 -0.9572314386 1.6112582586 2.05661196
|
||||
86 0.8603279154 0.9694525734 1.9616903498
|
||||
87 -1.4114044692 2.50004378976 1.713374457
|
||||
88 -2.5000006182 2.49931211886 2.482805848
|
||||
89 -1.020675462 -0.3572734878 2.57123686
|
||||
90 -0.4044797454 0.2263507242 2.042403434
|
||||
91 -2.50015066302 -0.0762997092000002 2.3660063
|
||||
92 2.5000666632 -0.6377540202 3.084536714
|
||||
93 1.635820743 0.3998132112 2.232930018
|
||||
94 0.787044012 2.3196010806 2.557182368
|
||||
95 1.7880996756 -1.270196802 2.779504834
|
||||
96 -2.5000149498 0.9308964468 2.36020607
|
||||
97 2.50006086 1.4990173908 3.038728388
|
||||
98 2.5000002036 -2.0009185842 2.782437742
|
||||
99 2.4973597854 0.4018063872 3.102688092
|
||||
100 -0.0847238868 1.1548315362 2.230957046
|
||||
101 -1.6189831278 0.38758413 2.276164892
|
||||
102 -1.3109302698 -1.529630028 3.0261821
|
||||
103 -0.8621444616 2.50007941956 2.548976818
|
||||
104 -2.5003575921 -2.1906193686 3.043995226
|
||||
105 1.737794406 2.50023188418 2.306502354
|
||||
106 1.1607421194 -2.5001894034 2.557490476
|
||||
107 -0.5515943472 -2.5000711818 3.090821674
|
||||
108 0.7581635106 0.305805486 2.70258895
|
||||
109 -0.129270348 -0.0804334734000003 2.953362524
|
||||
110 1.5702057348 -0.2965035672 2.947395472
|
||||
111 -1.5907955166 0.297198915 3.271622288
|
||||
112 -1.6352174376 1.2855549804 2.715570616
|
||||
113 0.2365862016 -1.5621519012 2.618913636
|
||||
114 2.5001485044 -1.4752385472 3.632918874
|
||||
115 -2.50003414566 0.7085497368 3.335106492
|
||||
116 0.693198909 -0.7706072304 3.02499245
|
||||
117 -1.977290892 -0.837825789 2.748661152
|
||||
118 -0.0904186877999997 1.9400047344 2.850126046
|
||||
119 0.7424979096 1.3708776012 2.869705454
|
||||
120 2.5001771184 2.49786273384 2.953357364
|
||||
121 -0.460913031 -1.0102788876 3.1107298
|
||||
122 -1.5499088826 -2.5003303314 3.035766602
|
||||
123 1.0563693948 -1.7172623304 3.2938531
|
||||
124 0.4360463934 -2.5001018958 3.246364772
|
||||
125 0.0342889535999999 0.8326700802 3.326329174
|
||||
126 1.8144590976 -2.498344152 3.31403944
|
||||
127 1.4937454758 0.7565635794 3.208225078
|
||||
128 1.6727590014 1.420657209 2.482601878
|
||||
129 0.9063634374 -0.0106950330000002 3.63948294
|
||||
130 1.6212776142 2.0992148076 3.215117466
|
||||
131 -0.8136720582 0.7230042144 2.807794018
|
||||
132 -1.315108014 -0.6402926916 3.483977248
|
||||
133 -2.50004255652 -0.2892251556 3.401060322
|
||||
134 0.1195260084 -1.6342581966 3.633549956
|
||||
135 0.9584037636 1.636359729 3.809100648
|
||||
136 -1.7019079596 2.2670358852 3.038768934
|
||||
137 0.4485449298 2.50002773754 3.480648292
|
||||
138 -0.5629460556 2.50007656902 3.530567852
|
||||
139 -2.068160793 -2.5000301934 3.890959658
|
||||
140 1.8860334708 0.0716001041999998 3.821883252
|
||||
141 -2.50019618556 1.6650778878 3.043689132
|
||||
142 -2.50008791622 -1.2873252654 3.47288578
|
||||
143 0.1086245172 -0.5872844136 3.815345888
|
||||
144 1.6639765482 -0.932813649 3.712928374
|
||||
145 -0.1833273246 -2.5000925064 4.03160142
|
||||
146 -0.8962851474 1.5809637768 3.320864614
|
||||
147 -0.7169574816 0.1400516334 3.731676664
|
||||
148 2.500011852 2.0721063306 3.85816837
|
||||
149 2.5001365008 -0.6344300454 4.174079146
|
||||
150 -1.7707348866 1.2864253152 3.70626387
|
||||
151 1.2513762864 0.7556992416 4.181294142
|
||||
152 1.089643938 -2.5001485434 4.002974924
|
||||
153 2.50008954 -2.499974847 4.041819504
|
||||
154 -1.0940190246 -2.1313022424 3.845642176
|
||||
155 2.1776722896 1.0541972718 3.87428099
|
||||
156 -0.0395331882000001 1.6972500684 3.823106582
|
||||
157 2.5000338774 0.3867181632 4.54549633
|
||||
158 2.5001497122 1.3073891742 4.960181558
|
||||
159 1.3717521018 2.50027781286 4.096333292
|
||||
160 -1.6955078352 -1.3622797578 4.061873346
|
||||
161 1.6724483508 1.6405378734 4.508968746
|
||||
162 -1.5883062366 2.50004191788 4.004525984
|
||||
163 -2.50011644388 0.2717493792 4.23459531
|
||||
164 -0.7107997986 -1.1884793388 4.062312162
|
||||
165 0.8285435406 -1.2029877876 4.191307692
|
||||
166 -1.55143851 -0.0437593109999996 4.25096113
|
||||
167 -2.50013461182 2.50003897878 3.594022786
|
||||
168 0.0734856906000001 2.50008308844 4.408358144
|
||||
169 -0.914548509 1.0255301358 4.152194222
|
||||
170 -1.6341264246 -2.500034877 4.79181139
|
||||
171 1.4748712236 -0.4511699232 4.568599668
|
||||
172 0.1489712184 0.3411368382 4.189539116
|
||||
173 1.406735919 0.986367417 5.217013654
|
||||
174 0.4877848422 -0.430742853 4.727390504
|
||||
175 -2.5000717353 1.7276144418 4.229072872
|
||||
176 -1.7937201336 0.8688761202 4.61458745
|
||||
177 -2.50005687384 -1.8015027882 4.461473774
|
||||
178 -0.8057804424 2.0077339104 4.385534408
|
||||
179 -2.5000002933 -0.726109998 4.300541254
|
||||
180 -2.2475473872 -1.145362248 5.172585892
|
||||
181 -0.5008551234 -0.354949131 4.573265494
|
||||
182 0.8966084802 2.50000754118 4.976206068
|
||||
183 1.7559791976 -1.7879098968 4.223069524
|
||||
184 -0.0969458190000001 -1.2325570164 4.850439668
|
||||
185 2.5000228332 -2.5000156716 5.04177638
|
||||
186 -0.0943493447999999 1.8364560702 5.137311674
|
||||
187 2.500007484 -0.422753251200001 5.151382112
|
||||
188 0.4431724908 1.22235765 4.55945736
|
||||
189 -0.955181808 1.3287034494 5.104253614
|
||||
190 -0.9722254404 -1.7524120296 4.845562498
|
||||
191 0.4668761538 -2.0274797958 4.626421886
|
||||
192 0.5609288028 0.4537067568 5.188170966
|
||||
193 1.5196347156 0.0203280810000002 5.449296672
|
||||
194 1.2386247156 -1.5352518792 5.04064475
|
||||
195 -1.057892532 0.3365646498 5.033092932
|
||||
196 -1.3577205258 -0.8297695788 4.837965486
|
||||
197 2.3955945402 0.4951880454 5.534080218
|
||||
198 2.1694818594 2.50002353358 4.699335376
|
||||
199 -1.7074444422 1.9173469206 4.808416404
|
||||
200 2.5000456284 -1.4262992286 4.784752276
|
||||
201 0.7982982492 1.698849276 5.566507768
|
||||
202 1.5086419476 -2.500001286 4.91091146
|
||||
203 -0.5057618832 -2.5000529898 5.318127822
|
||||
204 -1.6643472924 -1.859715171 5.559303806
|
||||
205 1.7791669638 -0.9293853702 5.624343356
|
||||
206 0.4425652998 -1.510152669 5.645313296
|
||||
207 0.7376718042 -0.5556371952 5.687557738
|
||||
208 -0.3174564174 0.724506156 5.58195597
|
||||
209 0.476099514 -2.5000387746 5.50763995
|
||||
210 1.7492949126 1.983260724 5.445238122
|
||||
211 -0.2060036316 -0.2676090414 5.524777266
|
||||
212 2.3083762086 -1.7742526776 5.702449874
|
||||
213 1.3510895334 -2.1388098024 5.829978542
|
||||
214 -2.1305990952 -0.1588704822 5.057989534
|
||||
215 -2.50001512608 1.3339185534 5.148295084
|
||||
216 -1.0131713934 2.5000168179 5.230870194
|
||||
@@ -0,0 +1,107 @@
|
||||
// Direct C++ interface example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
void draw_polygon(FILE *fp,vector<int> &f_vert,vector<double> &v,int j);
|
||||
|
||||
int main() {
|
||||
unsigned int i,j;
|
||||
int id,nx,ny,nz;
|
||||
double x,y,z;
|
||||
voronoicell_neighbor c;
|
||||
vector<int> neigh,f_vert;
|
||||
vector<double> v;
|
||||
|
||||
// Create a pre-container class to import the input file and guess the
|
||||
// best computational grid size to use.
|
||||
pre_container pcon(-3,3,-3,3,0,6,false,false,false);
|
||||
pcon.import("pack_six_cube");
|
||||
pcon.guess_optimal(nx,ny,nz);
|
||||
|
||||
// Set up the container class and import the particles from the
|
||||
// pre-container
|
||||
container con(-3,3,-3,3,0,6,nx,ny,nz,false,false,false,8);
|
||||
pcon.setup(con);
|
||||
|
||||
// Open the output files
|
||||
FILE *fp4=safe_fopen("polygons4_v.pov","w"),
|
||||
*fp5=safe_fopen("polygons5_v.pov","w"),
|
||||
*fp6=safe_fopen("polygons6_v.pov","w");
|
||||
|
||||
// Loop over all particles in the container and compute each Voronoi
|
||||
// cell
|
||||
c_loop_all cl(con);
|
||||
if(cl.start()) do if(con.compute_cell(c,cl)) {
|
||||
cl.pos(x,y,z);id=cl.pid();
|
||||
|
||||
// Gather information about the computed Voronoi cell
|
||||
c.neighbors(neigh);
|
||||
c.face_vertices(f_vert);
|
||||
c.vertices(x,y,z,v);
|
||||
|
||||
// Loop over all faces of the Voronoi cell
|
||||
for(i=0,j=0;i<neigh.size();i++) {
|
||||
|
||||
// Draw all quadrilaterals, pentagons, and hexagons.
|
||||
// Skip if the neighbor information is smaller than
|
||||
// this particle's ID, to avoid double counting. This
|
||||
// also removes faces that touch the walls, since the
|
||||
// neighbor information is set to negative numbers for
|
||||
// these cases.
|
||||
if(neigh[i]>id) {
|
||||
switch(f_vert[j]) {
|
||||
case 4: draw_polygon(fp4,f_vert,v,j);
|
||||
break;
|
||||
case 5: draw_polygon(fp5,f_vert,v,j);
|
||||
break;
|
||||
case 6: draw_polygon(fp6,f_vert,v,j);
|
||||
}
|
||||
}
|
||||
|
||||
// Skip to the next entry in the face vertex list
|
||||
j+=f_vert[j]+1;
|
||||
}
|
||||
} while (cl.inc());
|
||||
|
||||
// Close the output files
|
||||
fclose(fp4);
|
||||
fclose(fp5);
|
||||
fclose(fp6);
|
||||
|
||||
// Draw the outline of the domain
|
||||
con.draw_domain_pov("polygons_d.pov");
|
||||
}
|
||||
|
||||
void draw_polygon(FILE *fp,vector<int> &f_vert,vector<double> &v,int j) {
|
||||
static char s[6][128];
|
||||
int k,l,n=f_vert[j];
|
||||
|
||||
// Create POV-Ray vector strings for each of the vertices
|
||||
for(k=0;k<n;k++) {
|
||||
l=3*f_vert[j+k+1];
|
||||
sprintf(s[k],"<%g,%g,%g>",v[l],v[l+1],v[l+2]);
|
||||
}
|
||||
|
||||
// Draw the interior of the polygon
|
||||
fputs("union{\n",fp);
|
||||
for(k=2;k<n;k++) fprintf(fp,"\ttriangle{%s,%s,%s}\n",s[0],s[k-1],s[k]);
|
||||
fputs("\ttexture{t1}\n}\n",fp);
|
||||
|
||||
// Draw the outline of the polygon
|
||||
fputs("union{\n",fp);
|
||||
for(k=0;k<n;k++) {
|
||||
l=(k+1)%n;
|
||||
fprintf(fp,"\tcylinder{%s,%s,r}\n\tsphere{%s,r}\n",
|
||||
s[k],s[l],s[l]);
|
||||
}
|
||||
fputs("\ttexture{t2}\n}\n",fp);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
up 0.15*z
|
||||
right -0.15*x*image_width/image_height
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
#declare r=0.06;
|
||||
#declare rr=0.08;
|
||||
|
||||
#declare f1=finish{reflection 0.15 specular 0.3 ambient 0.42}
|
||||
|
||||
#declare t1=texture{pigment{rgbft <0.9,0.5,0.3,0,0.4>} finish{f1}}
|
||||
#declare t2=texture{pigment{rgb <0.9,0.35,0.25>} finish{f1}}
|
||||
|
||||
union{
|
||||
#include "polygons4_v.pov"
|
||||
}
|
||||
|
||||
union{
|
||||
#include "polygons_d.pov"
|
||||
texture{T_Silver_4B}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
up 0.15*z
|
||||
right -0.15*x*image_width/image_height
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
#declare r=0.06;
|
||||
#declare rr=0.08;
|
||||
|
||||
#declare f1=finish{reflection 0.15 specular 0.3 ambient 0.42}
|
||||
|
||||
#declare t1=texture{pigment{rgbft <0.3,0.9,0.7,0,0.4>} finish{f1}}
|
||||
#declare t2=texture{pigment{rgb <0.1,0.5,0.3>} finish{f1}}
|
||||
|
||||
union{
|
||||
#include "polygons5_v.pov"
|
||||
}
|
||||
|
||||
union{
|
||||
#include "polygons_d.pov"
|
||||
texture{T_Silver_4B}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#version 3.6;
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <30,-50,25>
|
||||
sky z
|
||||
up 0.15*z
|
||||
right -0.15*x*image_width/image_height
|
||||
look_at <0,0,2.8>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<25,-12,12> color rgb <0.43,0.45,0.45>}
|
||||
|
||||
#declare r=0.06;
|
||||
#declare rr=0.08;
|
||||
|
||||
#declare f1=finish{reflection 0.15 specular 0.3 ambient 0.42}
|
||||
|
||||
#declare t1=texture{pigment{rgbft <0.3,0.7,0.9,0,0.4>} finish{f1}}
|
||||
#declare t2=texture{pigment{rgb <0.3,0.4,0.9>} finish{f1}}
|
||||
|
||||
union{
|
||||
#include "polygons6_v.pov"
|
||||
}
|
||||
|
||||
union{
|
||||
#include "polygons_d.pov"
|
||||
texture{T_Silver_4B}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
Timing examples
|
||||
===============
|
||||
These codes and scripts can be used to test the code's performance. The program
|
||||
timing_test.cc creates a container with 100000 particles, and then times the
|
||||
computation of all the cells in the container, using the dummy function
|
||||
compute_all_cells().
|
||||
|
||||
The code will compile and run in the usual way, but it can also be tuned using
|
||||
the preprocessor macro NNN to configure the grid size. The perl script
|
||||
timing_test.pl will compile and run the program multiple times for NNN in the
|
||||
range 10 to 40. For each value of NNN, it carries out three runs, and prints a
|
||||
mean and standard deviation of times.
|
||||
@@ -0,0 +1,60 @@
|
||||
// Timing test example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include <ctime>
|
||||
using namespace std;
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-1,x_max=1;
|
||||
const double y_min=-1,y_max=1;
|
||||
const double z_min=-1,z_max=1;
|
||||
|
||||
// Set up the number of blocks that the container is divided into. If the
|
||||
// preprocessor variable NNN hasn't been passed to the code, then initialize it
|
||||
// to a good value. Otherwise, use the value that has been passed.
|
||||
#ifndef NNN
|
||||
#define NNN 26
|
||||
#endif
|
||||
const int n_x=NNN,n_y=NNN,n_z=NNN;
|
||||
|
||||
// Set the number of particles that are going to be randomly introduced
|
||||
const int particles=100000;
|
||||
|
||||
// This function returns a random double between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
clock_t start,end;
|
||||
int i;double x,y,z;
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// periodic in each of the three coordinates. Allocate space for eight
|
||||
// particles within each computational block.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
true,true,true,8);
|
||||
|
||||
//Randomly add particles into the container
|
||||
for(i=0;i<particles;i++) {
|
||||
x=x_min+rnd()*(x_max-x_min);
|
||||
y=y_min+rnd()*(y_max-y_min);
|
||||
z=z_min+rnd()*(z_max-z_min);
|
||||
con.put(i,x,y,z);
|
||||
}
|
||||
|
||||
// Store the initial clock time
|
||||
start=clock();
|
||||
|
||||
// Carry out a dummy computation of all cells in the entire container
|
||||
con.compute_all_cells();
|
||||
|
||||
// Calculate the elapsed time and print it
|
||||
end=clock();
|
||||
double runtime=double(end-start)/CLOCKS_PER_SEC;
|
||||
printf("%g\n",runtime);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# The range of grid sizes to consider
|
||||
@range=(10..40);
|
||||
|
||||
# The number of trials to consider. If this is set to one, the time for a
|
||||
# single trial will be outputted. For higher values, the mean of all the trials
|
||||
# will be outputted, along with the standard deviation.
|
||||
$tries=3;
|
||||
|
||||
# The flags to pass for code optimization
|
||||
$opt="-O3";
|
||||
|
||||
foreach $r (@range) {
|
||||
|
||||
# Compile the code with the current grid size
|
||||
system "g++ $opt -I../../src -DNNN=$r -o timing_test "
|
||||
."-L../../src timing_test.cc -lvoro++";
|
||||
|
||||
# Carry out the trials for this grid size
|
||||
$st=$stt=0;
|
||||
foreach $t (1..$tries) {
|
||||
|
||||
# Run the code, and output the timing information to the
|
||||
# "time_temp" file.
|
||||
system "./timing_test >time_temp";
|
||||
|
||||
# Read the "time_temp" file to find the duration of the run
|
||||
open F,"time_temp" or die "Can't open timing file: $!";
|
||||
($t)=split ' ',<F>;
|
||||
$st+=$t;$stt+=$t*$t;
|
||||
close F;
|
||||
}
|
||||
|
||||
# Compute the mean and variance and print to standard output
|
||||
$st/=$tries;
|
||||
$stt=$stt/$tries-$st*$st;$stt=$stt>0?sqrt($stt):0;
|
||||
print "$r $st $stt\n";
|
||||
}
|
||||
|
||||
# Delete the temporary timing file
|
||||
unlink "time_temp";
|
||||
@@ -0,0 +1,31 @@
|
||||
# Voro++ makefile
|
||||
#
|
||||
# Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
# Email : chr@alum.mit.edu
|
||||
# Date : August 30th 2011
|
||||
|
||||
# Load the common configuration file
|
||||
include ../../config.mk
|
||||
|
||||
# List of executables
|
||||
EXECUTABLES=cylinder tetrahedron frustum torus
|
||||
|
||||
# Makefile rules
|
||||
all: $(EXECUTABLES)
|
||||
|
||||
cylinder: cylinder.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o cylinder cylinder.cc -lvoro++
|
||||
|
||||
tetrahedron: tetrahedron.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o tetrahedron tetrahedron.cc -lvoro++
|
||||
|
||||
frustum: frustum.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o frustum frustum.cc -lvoro++
|
||||
|
||||
torus: torus.cc
|
||||
$(CXX) $(CFLAGS) $(E_INC) $(E_LIB) -o torus torus.cc -lvoro++
|
||||
|
||||
clean:
|
||||
rm -f $(EXECUTABLES)
|
||||
|
||||
.PHONY: all clean
|
||||
@@ -0,0 +1,47 @@
|
||||
Wall support
|
||||
============
|
||||
The structure of Voro++ makes it easy to handle complicated boundary conditions
|
||||
by adding in additional plane cuts due to walls. The code has built-in support
|
||||
for plane, cylindrical, and spherical walls, and extra ones can be easily coded
|
||||
as derived C++ classes.
|
||||
|
||||
1. cylinder.cc - this example creates a cylinder wall object, and imports a
|
||||
test packing from "pack_cylinder". It outputs POV-Ray files for particles at
|
||||
cylinder_p.pov, and Voronoi cells at cylinder_v.pov. These can be rendered
|
||||
using the scene file cylinder.pov with the command:
|
||||
|
||||
povray +W600 +H800 +A0.3 +Ocylinder.png cylinder.pov
|
||||
|
||||
2. frustum.cc - this example creates a frustum by making use of a cone wall
|
||||
object. It fills the frustum with 500 random points, and outputs the
|
||||
Voronoi cells in gnuplot format. Due to the conical wall being approximated
|
||||
with plane cuts, some inaccuracies can be seen.
|
||||
|
||||
3. tetrahedron.cc - this example creates a tetrahedron with four planes, and
|
||||
randomly inserts particles into it, using the point_inside() function to
|
||||
determine whether the points are within the walls. It outputs the particles to
|
||||
tetrahedron_p.gnu, and the Voronoi cells to tetrahedron_v.gnu. These can be
|
||||
visualized in gnuplot using:
|
||||
|
||||
splot 'tetrahedron_p.gnu' with points, 'tetrahedron_v.gnu' with lines
|
||||
|
||||
Currently, the curved walls are made by a single approximating plane cut. This
|
||||
provides good results when particles are pressed against the walls, but is
|
||||
inaccurate it the particles are sparse. It would be possible to improve this by
|
||||
approximating the curved surface with a sequence of planes rather than just
|
||||
one.
|
||||
|
||||
The code currently only supports walls which lead to convex computational
|
||||
domains, since a non-convex domain would lead to non-convex cells. To correctly
|
||||
handle these cases, the easiest way would be to divide the domain into several
|
||||
convex sub-domains, carry out a calculation in each, and then glue the cells
|
||||
that cross the divisions. Native support for non-convex domains may be added in
|
||||
a later version.
|
||||
|
||||
4. torus.cc - this example shows how to create a custom wall object, derived
|
||||
from the pure virtual "wall" class. A routine is written that can cut a Voronoi
|
||||
cell in response to a torus centered on the origin that is aligned with the xy
|
||||
plane. The program writes POV-Ray files of the particles and Voronoi cells, and
|
||||
these can be rendered using the following command:
|
||||
|
||||
povray +W800 +H600 +A0.3 +Otorus.png torus.pov
|
||||
@@ -0,0 +1,37 @@
|
||||
// Cylindrical wall example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-6.5,x_max=6.5;
|
||||
const double y_min=-6.5,y_max=6.5;
|
||||
const double z_min=0,z_max=18.5;
|
||||
|
||||
// Set the computational grid size
|
||||
const int n_x=7,n_y=7,n_z=14;
|
||||
|
||||
int main() {
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Add a cylindrical wall to the container
|
||||
wall_cylinder cyl(0,0,0,0,0,1,6);
|
||||
con.add_wall(cyl);
|
||||
|
||||
// Import the particles from a file
|
||||
con.import("pack_cylinder");
|
||||
|
||||
// Output the particle positions in POV-Ray format
|
||||
con.draw_particles_pov("cylinder_p.pov");
|
||||
|
||||
// Output the Voronoi cells in POV-Ray format
|
||||
con.draw_cells_pov("cylinder_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#version 3.6;
|
||||
|
||||
// Right-handed coordinate system in which the z axis points upwards
|
||||
camera {
|
||||
location <20,-50,30>
|
||||
sky z
|
||||
right -0.4*x*image_width/image_height
|
||||
up 0.4*z
|
||||
look_at <0,0,9.25>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<20,-15,5> color rgb <0.38,0.40,0.40>}
|
||||
|
||||
// Radius of the Voronoi cell network, and the particle radius
|
||||
#declare r=0.08;
|
||||
#declare s=0.5;
|
||||
|
||||
// Particles
|
||||
union{
|
||||
#include "cylinder_p.pov"
|
||||
scale <1,-1,1>
|
||||
pigment{rgb <1,0.95,0.5>} finish{reflection 0.1 specular 0.3 ambient 0.42}
|
||||
}
|
||||
|
||||
// Voronoi cells
|
||||
union{
|
||||
#include "cylinder_v.pov"
|
||||
scale <1,-1,1>
|
||||
pigment{rgb <0.5,0.8,1>} finish{specular 0.5 ambient 0.42}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
// Frustum example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
const double pi=3.1415926535897932384626433832795;
|
||||
|
||||
int main() {
|
||||
int i=0;
|
||||
double x,y,z,evol,vvol;
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block.
|
||||
container con(-1.2,1.2,-1.2,1.2,0,1,14,14,7,
|
||||
false,false,false,8);
|
||||
|
||||
// Add a cylindrical wall to the container
|
||||
wall_cone cone(0,0,2,0,0,-1,atan(0.5));
|
||||
con.add_wall(cone);
|
||||
|
||||
// Place particles in a regular grid within the frustum, for points
|
||||
// which are within the wall boundaries
|
||||
for(z=0.1;z<1;z+=0.2) for(y=-0.85;y<1;y+=0.2) for(x=-0.95;x<1;x+=0.2) {
|
||||
if (con.point_inside(x,y,z)) {
|
||||
con.put(i,x,y,z);i++;
|
||||
}
|
||||
}
|
||||
|
||||
// Output the particle positions and Voronoi cells in Gnuplot format
|
||||
con.draw_particles("frustum_p.gnu");
|
||||
con.draw_cells_gnuplot("frustum_v.gnu");
|
||||
|
||||
// Output the particle positions and Voronoi cells in POV-Ray format
|
||||
con.draw_particles_pov("frustum_p.pov");
|
||||
con.draw_cells_pov("frustum_v.pov");
|
||||
|
||||
// Compute the volume of the Voronoi cells and compare it to the
|
||||
// exact frustum volume
|
||||
evol=pi*1*(0.5*0.5+0.5*1+1*1)/3;
|
||||
vvol=con.sum_cell_volumes();
|
||||
printf("Exact frustum volume : %g\n"
|
||||
"Voronoi cell volume : %g\n"
|
||||
"Difference : %g\n",evol,vvol,vvol-evol);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#version 3.6;
|
||||
|
||||
// Right-handed coordinate system in which the z-axis points upwards
|
||||
camera {
|
||||
location <20,-50,30>
|
||||
sky z
|
||||
right -0.3*x*image_width/image_height
|
||||
up 0.3*z
|
||||
look_at <0,0,3>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-8,-20,30> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<20,-15,5> color rgb <0.38,0.40,0.40>}
|
||||
|
||||
// Radius of the Voronoi cell network, and the particle radius
|
||||
#declare r=0.025;
|
||||
#declare s=0.1;
|
||||
|
||||
// Particles
|
||||
union{
|
||||
#include "frustum_p.pov"
|
||||
scale 10
|
||||
pigment{rgb <0.4,0.85,0.95>} finish{reflection 0.1 specular 0.3 ambient 0.42 metallic}
|
||||
}
|
||||
|
||||
// Voronoi cells
|
||||
union{
|
||||
#include "frustum_v.pov"
|
||||
scale 10
|
||||
pigment{rgb <0.5,0.5,0.51>} finish{specular 0.3 ambient 0.42 reflection 0.4 metallic}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
// Tetrahedron example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-2,x_max=2;
|
||||
const double y_min=-2,y_max=2;
|
||||
const double z_min=-2,z_max=2;
|
||||
|
||||
// Set up the number of blocks that the container is divided
|
||||
// into
|
||||
const int n_x=7,n_y=7,n_z=7;
|
||||
|
||||
// Set the number of particles that are going to be randomly
|
||||
// introduced
|
||||
const int particles=64;
|
||||
|
||||
// This function returns a random double between 0 and 1
|
||||
double rnd() {return double(rand())/RAND_MAX;}
|
||||
|
||||
int main() {
|
||||
int i=0;
|
||||
double x,y,z;
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for 8
|
||||
// particles within each computational block.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Add four plane walls to the container to make a tetrahedron
|
||||
wall_plane p1(1,1,1,1);con.add_wall(p1);
|
||||
wall_plane p2(-1,-1,1,1);con.add_wall(p2);
|
||||
wall_plane p3(1,-1,-1,1);con.add_wall(p3);
|
||||
wall_plane p4(-1,1,-1,1);con.add_wall(p4);
|
||||
|
||||
// Randomly insert particles into the container, checking that they lie
|
||||
// inside the tetrahedron
|
||||
while(i<particles) {
|
||||
x=x_min+rnd()*(x_max-x_min);
|
||||
y=y_min+rnd()*(y_max-y_min);
|
||||
z=z_min+rnd()*(z_max-z_min);
|
||||
if (con.point_inside(x,y,z)) {
|
||||
con.put(i,x,y,z);i++;
|
||||
}
|
||||
}
|
||||
|
||||
// Output the particle positions and the Voronoi cells in Gnuplot and
|
||||
// POV-Ray formats
|
||||
con.draw_particles("tetrahedron_p.gnu");
|
||||
con.draw_cells_gnuplot("tetrahedron_v.gnu");
|
||||
con.draw_particles_pov("tetrahedron_p.pov");
|
||||
con.draw_cells_pov("tetrahedron_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#version 3.6;
|
||||
|
||||
#include "colors.inc"
|
||||
#include "metals.inc"
|
||||
#include "textures.inc"
|
||||
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
camera {
|
||||
location <20,30,-50>
|
||||
right 0.26*x*image_width/image_height
|
||||
up 0.26*y
|
||||
look_at <0,-2,0>
|
||||
}
|
||||
|
||||
background{rgb 1}
|
||||
|
||||
light_source{<-8,30,-20> color rgb <0.77,0.75,0.75>}
|
||||
light_source{<20,5,-15> color rgb <0.38,0.40,0.40>}
|
||||
|
||||
#declare r=0.025;
|
||||
#declare s=0.07;
|
||||
|
||||
union{
|
||||
#include "tetrahedron_p.pov"
|
||||
scale 5
|
||||
rotate <0,-65,0>
|
||||
texture{T_Silver_3C}
|
||||
}
|
||||
|
||||
union{
|
||||
#include "tetrahedron_v.pov"
|
||||
scale 5
|
||||
rotate <0,-65,0>
|
||||
pigment{rgb <0.3,0.3,0.9>} finish{phong 0.9 ambient 0.42 reflection 0.1}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
// Custom wall class example code
|
||||
//
|
||||
// Author : Chris H. Rycroft (LBL / UC Berkeley)
|
||||
// Email : chr@alum.mit.edu
|
||||
// Date : August 30th 2011
|
||||
|
||||
#include "voro++.hh"
|
||||
using namespace voro;
|
||||
|
||||
// Major and minor torus radii
|
||||
const double arad=9,brad=3.5;
|
||||
|
||||
// The outer radius of the torus, that determines how big the container should
|
||||
// be
|
||||
const double crad=arad+brad;
|
||||
|
||||
// Set up constants for the container geometry
|
||||
const double x_min=-crad-0.5,x_max=crad+0.5;
|
||||
const double y_min=-crad-0.5,y_max=crad+0.5;
|
||||
const double z_min=-brad-0.5,z_max=brad+0.5;
|
||||
|
||||
// Set the computational grid size
|
||||
const int n_x=10,n_y=10,n_z=3;
|
||||
|
||||
// This class creates a custom toroidal wall object that is centered on the
|
||||
// origin and is aligned with the xy plane. It is derived from the pure virtual
|
||||
// "wall" class. The "wall" class contains virtual functions for cutting the
|
||||
// Voronoi cell in response to a wall, and for telling whether a given point is
|
||||
// inside the wall or not. In this derived class, specific implementations of
|
||||
// these functions are given.
|
||||
class wall_torus : public wall {
|
||||
public:
|
||||
|
||||
// The wall constructor initializes constants for the major and
|
||||
// minor axes of the torus. It also initializes the wall ID
|
||||
// number that is used when the plane cuts are made. This is
|
||||
// only tracked with the voronoicell_neighbor class and is
|
||||
// ignored otherwise. It can be omitted, and then an arbitrary
|
||||
// value of -99 is used.
|
||||
wall_torus(double imjr,double imnr,int iw_id=-99)
|
||||
: w_id(iw_id), mjr(imjr), mnr(imnr) {};
|
||||
|
||||
// This returns true if a given vector is inside the torus, and
|
||||
// false if it is outside. For the current example, this
|
||||
// routine is not needed, but in general it would be, for use
|
||||
// with the point_inside() routine in the container class.
|
||||
bool point_inside(double x,double y,double z) {
|
||||
double temp=sqrt(x*x+y*y)-mjr;
|
||||
return temp*temp+z*z<mnr*mnr;
|
||||
}
|
||||
|
||||
// This template takes a reference to a voronoicell or
|
||||
// voronoicell_neighbor object for a particle at a vector
|
||||
// (x,y,z), and makes a plane cut to to the object to account
|
||||
// for the toroidal wall
|
||||
template<class vc_class>
|
||||
inline bool cut_cell_base(vc_class &c,double x,double y,double z) {
|
||||
double orad=sqrt(x*x+y*y);
|
||||
double odis=orad-mjr;
|
||||
double ot=odis*odis+z*z;
|
||||
|
||||
// Unless the particle is within 1% of the major
|
||||
// radius, then a plane cut is made
|
||||
if(ot>0.01*mnr) {
|
||||
ot=2*mnr/sqrt(ot)-2;
|
||||
z*=ot;
|
||||
odis*=ot/orad;
|
||||
x*=odis;
|
||||
y*=odis;
|
||||
return c.nplane(x,y,z,w_id);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// These virtual functions are called during the cell
|
||||
// computation in the container class. They call instances of
|
||||
// the template given above.
|
||||
bool cut_cell(voronoicell &c,double x,
|
||||
double y,double z) {return cut_cell_base(c,x,y,z);}
|
||||
bool cut_cell(voronoicell_neighbor &c,double x,
|
||||
double y,double z) {return cut_cell_base(c,x,y,z);}
|
||||
private:
|
||||
// The ID number associated with the wall
|
||||
const int w_id;
|
||||
// The major radius of the torus
|
||||
const double mjr;
|
||||
// The minor radius of the torus
|
||||
const double mnr;
|
||||
};
|
||||
|
||||
int main() {
|
||||
|
||||
// Create a container with the geometry given above, and make it
|
||||
// non-periodic in each of the three coordinates. Allocate space for
|
||||
// eight particles within each computational block.
|
||||
container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z,
|
||||
false,false,false,8);
|
||||
|
||||
// Add the custom toroidal wall to the container
|
||||
wall_torus tor(arad,brad);
|
||||
con.add_wall(tor);
|
||||
|
||||
// Import the particles from a file
|
||||
con.import("pack_torus");
|
||||
|
||||
// Output the particle positions in POV-Ray format
|
||||
con.draw_particles_pov("torus_p.pov");
|
||||
|
||||
// Output the Voronoi cells in POV-Ray format
|
||||
con.draw_cells_pov("torus_v.pov");
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
#version 3.6;
|
||||
|
||||
// Increase the trace level for more accurate reflections
|
||||
global_settings {
|
||||
max_trace_level 64
|
||||
}
|
||||
|
||||
// Right-handed coordinate system in which the z-axis points upwards
|
||||
camera {
|
||||
location <0,-40,34>
|
||||
sky z
|
||||
right -0.4*x*image_width/image_height
|
||||
up 0.4*z
|
||||
look_at <0,0,-1.31>
|
||||
}
|
||||
|
||||
// White background
|
||||
background{rgb 1}
|
||||
|
||||
// Two lights with slightly different colors
|
||||
light_source{<-16,-20,43> color rgb <0.72,0.69,0.69>}
|
||||
light_source{<30,-15,12> color rgb <0.34,0.37,0.37>}
|
||||
|
||||
// Radius of the Voronoi cell network, and the particle radius
|
||||
#declare r=0.06;
|
||||
#declare s=0.5;
|
||||
|
||||
// Particles
|
||||
union{
|
||||
#include "torus_p.pov"
|
||||
pigment{rgb 0.97}
|
||||
finish{reflection 0.1 ambient 0.30 specular 0.3}
|
||||
}
|
||||
|
||||
// Voronoi cells, using a radial pigment map
|
||||
union{
|
||||
#include "torus_v.pov"
|
||||
pigment{radial pigment_map {
|
||||
[0 rgb <0.5,0.7,1>]
|
||||
[0.25 rgb <0.38,0.82,0.92>]
|
||||
[0.5 rgb <0.5,0.7,1>]
|
||||
[0.75 rgb <0.65,0.4,1>]
|
||||
[1 rgb <0.5,0.7,1>]}
|
||||
rotate <270,0,0>}
|
||||
finish{specular 0.3 ambient 0.3 reflection 0.1}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: Data Structures</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Data Structures</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
|
||||
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><b>voro</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1particle__order.html" target="_self">particle_order</a></td><td class="desc">A class for storing ordering information when particles are added to a container </td></tr>
|
||||
<tr id="row_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__base.html" target="_self">c_loop_base</a></td><td class="desc">Base class for looping over particles in a container </td></tr>
|
||||
<tr id="row_0_2_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__all.html" target="_self">c_loop_all</a></td><td class="desc">Class for looping over all of the particles in a container </td></tr>
|
||||
<tr id="row_0_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__subset.html" target="_self">c_loop_subset</a></td><td class="desc">Class for looping over a subset of particles in a container </td></tr>
|
||||
<tr id="row_0_4_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__order.html" target="_self">c_loop_order</a></td><td class="desc">Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class </td></tr>
|
||||
<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__all__periodic.html" target="_self">c_loop_all_periodic</a></td><td class="desc">A class for looping over all particles in a <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> or <a class="el" href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations. ">container_periodic_poly</a> class </td></tr>
|
||||
<tr id="row_0_6_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1c__loop__order__periodic.html" target="_self">c_loop_order_periodic</a></td><td class="desc">Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class, for use with <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> classes </td></tr>
|
||||
<tr id="row_0_7_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1voronoicell__base.html" target="_self">voronoicell_base</a></td><td class="desc">A class representing a single Voronoi cell </td></tr>
|
||||
<tr id="row_0_8_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1voronoicell.html" target="_self">voronoicell</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1voronoicell__base.html" title="A class representing a single Voronoi cell. ">voronoicell_base</a> class to represent a Voronoi cell without neighbor information </td></tr>
|
||||
<tr id="row_0_9_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1voronoicell__neighbor.html" target="_self">voronoicell_neighbor</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1voronoicell__base.html" title="A class representing a single Voronoi cell. ">voronoicell_base</a> class to represent a Voronoi cell with neighbor information </td></tr>
|
||||
<tr id="row_0_10_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1wall.html" target="_self">wall</a></td><td class="desc">Pure virtual class from which wall objects are derived </td></tr>
|
||||
<tr id="row_0_11_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1wall__list.html" target="_self">wall_list</a></td><td class="desc">A class for storing a list of pointers to walls </td></tr>
|
||||
<tr id="row_0_12_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container__base.html" target="_self">container_base</a></td><td class="desc">Class for representing a particle system in a three-dimensional rectangular box </td></tr>
|
||||
<tr id="row_0_13_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container.html" target="_self">container</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1container__base.html" title="Class for representing a particle system in a three-dimensional rectangular box. ">container_base</a> class for computing regular Voronoi tessellations </td></tr>
|
||||
<tr id="row_0_14_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container__poly.html" target="_self">container_poly</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1container__base.html" title="Class for representing a particle system in a three-dimensional rectangular box. ">container_base</a> class for computing radical Voronoi tessellations </td></tr>
|
||||
<tr id="row_0_15_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container__periodic__base.html" target="_self">container_periodic_base</a></td><td class="desc">Class for representing a particle system in a 3D periodic non-orthogonal periodic domain </td></tr>
|
||||
<tr id="row_0_16_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container__periodic.html" target="_self">container_periodic</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1container__periodic__base.html" title="Class for representing a particle system in a 3D periodic non-orthogonal periodic domain...">container_periodic_base</a> class for computing regular Voronoi tessellations </td></tr>
|
||||
<tr id="row_0_17_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1container__periodic__poly.html" target="_self">container_periodic_poly</a></td><td class="desc">Extension of the <a class="el" href="classvoro_1_1container__periodic__base.html" title="Class for representing a particle system in a 3D periodic non-orthogonal periodic domain...">container_periodic_base</a> class for computing radical Voronoi tessellations </td></tr>
|
||||
<tr id="row_0_18_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1pre__container__base.html" target="_self">pre_container_base</a></td><td class="desc">A class for storing an arbitrary number of particles, prior to setting up a container geometry </td></tr>
|
||||
<tr id="row_0_19_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1pre__container.html" target="_self">pre_container</a></td><td class="desc">A class for storing an arbitrary number of particles without radius information, prior to setting up a container geometry </td></tr>
|
||||
<tr id="row_0_20_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1pre__container__poly.html" target="_self">pre_container_poly</a></td><td class="desc">A class for storing an arbitrary number of particles with radius information, prior to setting up a container geometry </td></tr>
|
||||
<tr id="row_0_21_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1radius__mono.html" target="_self">radius_mono</a></td><td class="desc">Class containing all of the routines that are specific to computing the regular Voronoi tessellation </td></tr>
|
||||
<tr id="row_0_22_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1radius__poly.html" target="_self">radius_poly</a></td><td class="desc">Class containing all of the routines that are specific to computing the radical Voronoi tessellation </td></tr>
|
||||
<tr id="row_0_23_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1unitcell.html" target="_self">unitcell</a></td><td class="desc">Class for computation of the unit Voronoi cell associated with a 3D non-rectangular periodic domain </td></tr>
|
||||
<tr id="row_0_24_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1voro__base.html" target="_self">voro_base</a></td><td class="desc">Class containing data structures common across all particle container classes </td></tr>
|
||||
<tr id="row_0_25_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structvoro_1_1particle__record.html" target="_self">particle_record</a></td><td class="desc">Structure for holding information about a particle </td></tr>
|
||||
<tr id="row_0_26_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classvoro_1_1voro__compute.html" target="_self">voro_compute</a></td><td class="desc">Template for carrying out Voronoi cell computations </td></tr>
|
||||
<tr id="row_0_27_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structvoro_1_1wall__sphere.html" target="_self">wall_sphere</a></td><td class="desc">A class representing a spherical wall object </td></tr>
|
||||
<tr id="row_0_28_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structvoro_1_1wall__plane.html" target="_self">wall_plane</a></td><td class="desc">A class representing a plane wall object </td></tr>
|
||||
<tr id="row_0_29_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structvoro_1_1wall__cylinder.html" target="_self">wall_cylinder</a></td><td class="desc">A class representing a cylindrical wall object </td></tr>
|
||||
<tr id="row_0_30_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structvoro_1_1wall__cone.html" target="_self">wall_cone</a></td><td class="desc">A class representing a conical wall object </td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:05 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 676 B |
|
After Width: | Height: | Size: 147 B |
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: c_loops.cc File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">c_loops.cc File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Function implementations for the loop classes.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>"</code><br/>
|
||||
</div>
|
||||
<p><a href="c__loops_8cc_source.html">Go to the source code of this file.</a></p>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,228 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: c_loops.cc Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">c_loops.cc</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="c__loops_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Voro++, a 3D cell-based Voronoi library</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Author : Chris H. Rycroft (LBL / UC Berkeley)</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Email : chr@alum.mit.edu</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Date : August 30th 2011</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/** \file c_loops.cc</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * \brief Function implementations for the loop classes. */</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="c__loops_8hh.html">c_loops.hh</a>"</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>voro {</div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">/** Initializes a c_loop_subset object to scan over all particles within a</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * given sphere.</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * \param[in] (vx,vy,vz) the position vector of the center of the sphere.</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * \param[in] r the radius of the sphere.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * \param[in] bounds_test whether to do detailed bounds checking. If this is</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * false then the class will loop over all particles in</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * blocks that overlap the given sphere. If it is true,</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * the particle will only loop over the particles which</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * actually lie within the sphere.</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * \return True if there is any valid point to loop over, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb"> 24</a></span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb">c_loop_subset::setup_sphere</a>(<span class="keywordtype">double</span> vx,<span class="keywordtype">double</span> vy,<span class="keywordtype">double</span> vz,<span class="keywordtype">double</span> r,<span class="keywordtype">bool</span> bounds_test) {</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keywordflow">if</span>(bounds_test) {<a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>=sphere;v0=vx;v1=vy;v2=vz;v3=r*r;} <span class="keywordflow">else</span> <a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>=no_check;</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  ai=step_int((vx-ax-r)*xsp);</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  bi=step_int((vx-ax+r)*xsp);</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  aj=step_int((vy-ay-r)*ysp);</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  bj=step_int((vy-ay+r)*ysp);</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  ak=step_int((vz-az-r)*zsp);</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  bk=step_int((vz-az+r)*zsp);</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  setup_common();</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> }</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/** Initializes the class to loop over all particles in a rectangular subgrid</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * of blocks.</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * \param[in] (ai_,bi_) the subgrid range in the x-direction, inclusive of both</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * ends.</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * \param[in] (aj_,bj_) the subgrid range in the y-direction, inclusive of both</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * ends.</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * \param[in] (ak_,bk_) the subgrid range in the z-direction, inclusive of both</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * ends.</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * \return True if there is any valid point to loop over, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d"> 44</a></span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d">c_loop_subset::setup_intbox</a>(<span class="keywordtype">int</span> ai_,<span class="keywordtype">int</span> bi_,<span class="keywordtype">int</span> aj_,<span class="keywordtype">int</span> bj_,<span class="keywordtype">int</span> ak_,<span class="keywordtype">int</span> bk_) {</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  ai=ai_;bi=bi_;aj=aj_;bj=bj_;ak=ak_;bk=bk_;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>=no_check;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  setup_common();</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> }</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/** Sets up all of the common constants used for the loop.</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * \return True if there is any valid point to loop over, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> c_loop_subset::setup_common() {</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span>(!xperiodic) {</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span>(ai<0) {ai=0;<span class="keywordflow">if</span>(bi<0) bi=0;}</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span>(bi>=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>) {bi=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>-1;<span class="keywordflow">if</span>(ai>=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>) ai=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>-1;}</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span>(!yperiodic) {</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span>(aj<0) {aj=0;<span class="keywordflow">if</span>(bj<0) bj=0;}</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span>(bj>=<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>) {bj=<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>-1;<span class="keywordflow">if</span>(aj>=<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>) aj=<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>-1;}</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span>(!zperiodic) {</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span>(ak<0) {ak=0;<span class="keywordflow">if</span>(bk<0) bk=0;}</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span>(bk>=<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>) {bk=<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>-1;<span class="keywordflow">if</span>(ak>=<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>) ak=<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>-1;}</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  ci=ai;cj=aj;ck=ak;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  di=<a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=step_mod(ci,<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>);apx=px=step_div(ci,<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>)*sx;</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  dj=<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=step_mod(cj,<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>);apy=py=step_div(cj,<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>)*sy;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  dk=<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>=step_mod(ck,<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>);apz=pz=step_div(ck,<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>)*sz;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  inc1=di-step_mod(bi,<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  inc2=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>*(<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>+dj-step_mod(bj,<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>))+inc1;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  inc1+=<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=di+<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>*(dj+<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>*dk);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/** Starts the loop by finding the first particle within the container to</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * consider.</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> * \return True if there is any particle to consider, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4"> 79</a></span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4">c_loop_subset::start</a>() {</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]==0) {<span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;}</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>!=no_check&&out_of_bounds()) {</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>++;</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>>=<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]) {<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;<span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;}</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">/** Initializes the class to loop over all particles in a rectangular box.</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> * \param[in] (xmin,xmax) the minimum and maximum x coordinates of the box.</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment"> * \param[in] (ymin,ymax) the minimum and maximum y coordinates of the box.</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * \param[in] (zmin,zmax) the minimum and maximum z coordinates of the box.</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> * \param[in] bounds_test whether to do detailed bounds checking. If this is</span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> * false then the class will loop over all particles in</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> * blocks that overlap the given box. If it is true, the</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> * particle will only loop over the particles which</span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> * actually lie within the box.</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * \return True if there is any valid point to loop over, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d"> 98</a></span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d">c_loop_subset::setup_box</a>(<span class="keywordtype">double</span> xmin,<span class="keywordtype">double</span> xmax,<span class="keywordtype">double</span> ymin,<span class="keywordtype">double</span> ymax,<span class="keywordtype">double</span> zmin,<span class="keywordtype">double</span> zmax,<span class="keywordtype">bool</span> bounds_test) {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span>(bounds_test) {<a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>=box;v0=xmin;v1=xmax;v2=ymin;v3=ymax;v4=zmin;v5=zmax;} <span class="keywordflow">else</span> <a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>=no_check;</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  ai=step_int((xmin-ax)*xsp);</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  bi=step_int((xmax-ax)*xsp);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  aj=step_int((ymin-ay)*ysp);</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  bj=step_int((ymax-ay)*ysp);</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  ak=step_int((zmin-az)*zsp);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  bk=step_int((zmax-az)*zsp);</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  setup_common();</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">/** Computes whether the current point is out of bounds, relative to the</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> * current loop setup.</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> * \return True if the point is out of bounds, false otherwise. */</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">bool</span> c_loop_subset::out_of_bounds() {</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">double</span> *pp=<a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]+<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>==sphere) {</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">double</span> fx(*pp+px-v0),fy(pp[1]+py-v1),fz(pp[2]+pz-v2);</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">return</span> fx*fx+fy*fy+fz*fz>v3;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">double</span> f(*pp+px);<span class="keywordflow">if</span>(f<v0||f>v1) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  f=pp[1]+py;<span class="keywordflow">if</span>(f<v2||f>v3) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  f=pp[2]+pz;<span class="keywordflow">return</span> f<v4||f>v5;</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">/** Returns the next block to be tested in a loop, and updates the periodicity</span></div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> * vector if necessary. */</span></div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">bool</span> c_loop_subset::next_block() {</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a><bi) {</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>++;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">if</span>(ci<<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>-1) {ci++;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>++;} <span class="keywordflow">else</span> {ci=0;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=1-<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>;px+=sx;}</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a><bj) {</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=ai;ci=di;px=apx;<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>++;</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span>(cj<<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>-1) {cj++;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=inc1;} <span class="keywordflow">else</span> {cj=0;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=inc1-<a class="code" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a>;py+=sy;}</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a><bk) {</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=ai;ci=di;<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=aj;cj=dj;px=apx;py=apy;<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>++;</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(ck<<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>-1) {ck++;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=inc2;} <span class="keywordflow">else</span> {ck=0;<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=inc2-<a class="code" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a>;pz+=sz;}</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">/** Extends the memory available for storing the ordering. */</span></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keywordtype">void</span> particle_order::add_ordering_memory() {</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordtype">int</span> *no=<span class="keyword">new</span> <span class="keywordtype">int</span>[<a class="code" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">size</a><<2],*nop=no,*opp=<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">while</span>(opp<<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>) *(nop++)=*(opp++);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">delete</span> [] <a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">size</a><<=1;<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>=no;<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>=nop;</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a2eaa096a64736b5792cdf3d799b95786"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">voro::c_loop_base::q</a></div><div class="ttdeci">int q</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00119">c_loops.hh:119</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_af8bef46cbdfdee608090aa5df0666df2"><div class="ttname"><a href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">voro::particle_order::o</a></div><div class="ttdeci">int * o</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00040">c_loops.hh:40</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ab42c93bbaf7cfc11e3c95f5d38f694e2"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">voro::c_loop_base::ps</a></div><div class="ttdeci">const int ps</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00095">c_loops.hh:95</a></div></div>
|
||||
<div class="ttc" id="c__loops_8hh_html"><div class="ttname"><a href="c__loops_8hh.html">c_loops.hh</a></div><div class="ttdoc">Header file for the loop classes. </div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abbaba2fc0d1fa07760220d37a3cc7ccf"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">voro::c_loop_base::j</a></div><div class="ttdeci">int j</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00110">c_loops.hh:110</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a060e5b0e557141713b6897b0a0728f2d"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">voro::c_loop_base::co</a></div><div class="ttdeci">int * co</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00104">c_loops.hh:104</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aaec35b971352bff60f4a446c430f26f8"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">voro::c_loop_base::nz</a></div><div class="ttdeci">const int nz</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00085">c_loops.hh:85</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a2aba9be724d35e088e3597dc9181182d"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d">voro::c_loop_subset::setup_box</a></div><div class="ttdeci">void setup_box(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, bool bounds_test=true)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00098">c_loops.cc:98</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abf2dcc131f23212c15169e90ba30d6e4"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">voro::c_loop_base::k</a></div><div class="ttdeci">int k</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00113">c_loops.hh:113</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a2b6abbe65d550ae7071aaa28d0fbb534"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">voro::c_loop_base::p</a></div><div class="ttdeci">double ** p</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00098">c_loops.hh:98</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a68cafa132e9028ed7b143e93e85a102d"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">voro::c_loop_base::nxyz</a></div><div class="ttdeci">const int nxyz</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00092">c_loops.hh:92</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a0d6046f6de1f80849e5d1d8f3b7212e7"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">voro::c_loop_base::nx</a></div><div class="ttdeci">const int nx</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00081">c_loops.hh:81</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_ac5d8b2aa34f936022e9059ca093b914c"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">voro::c_loop_subset::mode</a></div><div class="ttdeci">c_loop_subset_mode mode</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00223">c_loops.hh:223</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a3cb6bc5c8b22e57325bb136feba93d9b"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">voro::c_loop_base::ijk</a></div><div class="ttdeci">int ijk</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00116">c_loops.hh:116</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_a742bc941dfd87ecd64b42f6e50df19db"><div class="ttname"><a href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">voro::particle_order::size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00046">c_loops.hh:46</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a4c9709bc992e33668471e292474c39f4"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4">voro::c_loop_subset::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00079">c_loops.cc:79</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ac8f42728e3a98149c2185aba833ac5ff"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">voro::c_loop_base::ny</a></div><div class="ttdeci">const int ny</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00083">c_loops.hh:83</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a688ef02340f6a9bc64c77c2de4c4ae3d"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d">voro::c_loop_subset::setup_intbox</a></div><div class="ttdeci">void setup_intbox(int ai_, int bi_, int aj_, int bj_, int ak_, int bk_)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00044">c_loops.cc:44</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_a6aeb89179930977f344416a0ba1c38a4"><div class="ttname"><a href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">voro::particle_order::op</a></div><div class="ttdeci">int * op</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00043">c_loops.hh:43</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a585f47e725dc0de645defc8dc0d463cb"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb">voro::c_loop_subset::setup_sphere</a></div><div class="ttdeci">void setup_sphere(double vx, double vy, double vz, double r, bool bounds_test=true)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00024">c_loops.cc:24</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abb655606af4e184c2982f1a32cd47e12"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">voro::c_loop_base::nxy</a></div><div class="ttdeci">const int nxy</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00089">c_loops.hh:89</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aef465d2da85b963fa9e0e886ee273541"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">voro::c_loop_base::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00107">c_loops.hh:107</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: c_loops.hh File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#enum-members">Enumerations</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">c_loops.hh File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Header file for the loop classes.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "<a class="el" href="config_8hh_source.html">config.hh</a>"</code><br/>
|
||||
</div>
|
||||
<p><a href="c__loops_8hh_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1particle__order.html">voro::particle_order</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A class for storing ordering information when particles are added to a container. <a href="classvoro_1_1particle__order.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for looping over particles in a container. <a href="classvoro_1_1c__loop__base.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all.html">voro::c_loop_all</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for looping over all of the particles in a container. <a href="classvoro_1_1c__loop__all.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html">voro::c_loop_subset</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for looping over a subset of particles in a container. <a href="classvoro_1_1c__loop__subset.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html">voro::c_loop_order</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class. <a href="classvoro_1_1c__loop__order.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all__periodic.html">voro::c_loop_all_periodic</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A class for looping over all particles in a <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> or <a class="el" href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations. ">container_periodic_poly</a> class. <a href="classvoro_1_1c__loop__all__periodic.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html">voro::c_loop_order_periodic</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class, for use with <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> classes. <a href="classvoro_1_1c__loop__order__periodic.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
<tr class="memitem:ad9e943173772c282e7031e90ff88d3e3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>c_loop_subset_mode</b> { <b>sphere</b>,
|
||||
<b>box</b>,
|
||||
<b>no_check</b>
|
||||
}</td></tr>
|
||||
<tr class="separator:ad9e943173772c282e7031e90ff88d3e3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,572 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: c_loops.hh Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">c_loops.hh</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="c__loops_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Voro++, a 3D cell-based Voronoi library</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Author : Chris H. Rycroft (LBL / UC Berkeley)</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Email : chr@alum.mit.edu</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Date : August 30th 2011</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/** \file c_loops.hh</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * \brief Header file for the loop classes. */</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef VOROPP_C_LOOPS_HH</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"></span><span class="preprocessor">#define VOROPP_C_LOOPS_HH</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="config_8hh.html">config.hh</a>"</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">namespace </span>voro {</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">/** A type associated with a c_loop_subset class, determining what type of</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * geometrical region to loop over. */</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">enum</span> c_loop_subset_mode {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  sphere,</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  box,</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  no_check</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> };</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">/** \brief A class for storing ordering information when particles are added to</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * a container.</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * When particles are added to a container class, they are sorted into an</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * internal computational grid of blocks. The particle_order class provides a</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * mechanism for remembering which block particles were sorted into. The import</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * and put routines in the container class have variants that also take a</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * particle_order class. Each time they are called, they will store the block</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * that the particle was sorted into, plus the position of the particle within</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * the block. The particle_order class can used by the c_loop_order class to</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> * specifically loop over the particles that have their information stored</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * within it. */</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html"> 37</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1particle__order.html">particle_order</a> {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> /** A pointer to the array holding the ordering. */</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2"> 40</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> /** A pointer to the next position in the ordering array in</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * which to store an entry. */</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4"> 43</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> /** The current memory allocation for the class, set to the</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * number of entries which can be stored. */</span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db"> 46</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">size</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> /** The particle_order constructor allocates memory to store the</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * ordering information.</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * \param[in] init_size the initial amount of memory to</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * allocate. */</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#a205b5e4a472043123d091b1a3bc103c8"> 51</a></span>  <a class="code" href="classvoro_1_1particle__order.html#a205b5e4a472043123d091b1a3bc103c8">particle_order</a>(<span class="keywordtype">int</span> init_size=init_ordering_size)</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  : <a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>(new int[init_size<<1]),<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>(<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>),<a class="code" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">size</a>(init_size) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> /** The particle_order destructor frees the dynamically allocated</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * memory used to store the ordering information. */</span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#aec68354015eedbde68752a58a8457c90"> 55</a></span>  <a class="code" href="classvoro_1_1particle__order.html#aec68354015eedbde68752a58a8457c90">~particle_order</a>() {</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">delete</span> [] <a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> /** Adds a record to the order, corresponding to the memory</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> * address of where a particle was placed into the container.</span></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * \param[in] ijk the block into which the particle was placed.</span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> * \param[in] q the position within the block where the</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> * particle was placed. */</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classvoro_1_1particle__order.html#adabcf6cd995eb03fe007844ba5637a8a"> 63</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1particle__order.html#adabcf6cd995eb03fe007844ba5637a8a">add</a>(<span class="keywordtype">int</span> ijk,<span class="keywordtype">int</span> q) {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>==<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>+<a class="code" href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">size</a>) add_ordering_memory();</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  *(<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>++)=ijk;*(<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>++)=q;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">void</span> add_ordering_memory();</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/** \brief Base class for looping over particles in a container.</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> * This class forms the base of all classes that can loop over a subset of</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * particles in a contaner in some order. When initialized, it stores constants</span></div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> * about the corresponding container geometry. It also contains a number of</span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * routines for interrogating which particle currently being considered by the</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * loop, which are common between all of the derived classes. */</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html"> 78</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> /** The number of blocks in the x direction. */</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7"> 81</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> /** The number of blocks in the y direction. */</span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff"> 83</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> /** The number of blocks in the z direction. */</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8"> 85</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"> /** A constant, set to the value of nx multiplied by ny, which</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> * is used in the routines that step through blocks in</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> * sequence. */</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12"> 89</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment"> /** A constant, set to the value of nx*ny*nz, which is used in</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * the routines that step through blocks in sequence. */</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d"> 92</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> /** The number of floating point numbers per particle in the</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> * associated container data structure. */</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2"> 95</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> /** A pointer to the particle position information in the</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * associated container data structure. */</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534"> 98</a></span>  <span class="keywordtype">double</span> **<a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> /** A pointer to the particle ID information in the associated</span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> * container data structure. */</span></div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1"> 101</a></span>  <span class="keywordtype">int</span> **<a class="code" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> /** A pointer to the particle counts in the associated</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> * container data structure. */</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d"> 104</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> /** The current x-index of the block under consideration by the</span></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> * loop. */</span></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541"> 107</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> /** The current y-index of the block under consideration by the</span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * loop. */</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf"> 110</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> /** The current z-index of the block under consideration by the</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> * loop. */</span></div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4"> 113</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> /** The current index of the block under consideration by the</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> * loop. */</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b"> 116</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> /** The index of the particle under consideration within the current</span></div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * block. */</span></div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786"> 119</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> * base container class.</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> * \param[in] con the container class to use. */</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216"> 124</a></span>  <a class="code" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a>(c_class &con) : <a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>), <a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>), <a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a>),</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a>), <a class="code" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a>), <a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>),</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>), <a class="code" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a>), <a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>(con.<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> /** Returns the position vector of the particle currently being</span></div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> * considered by the loop.</span></div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> * \param[out] (x,y,z) the position vector of the particle. */</span></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83"> 130</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a>(<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>,<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>,<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>) {</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">double</span> *pp=<a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]+<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  x=*(pp++);y=*(pp++);z=*pp;</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"> /** Returns the ID, position vector, and radius of the particle</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> * currently being considered by the loop.</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> * \param[out] pid the particle ID.</span></div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"> * \param[out] (x,y,z) the position vector of the particle.</span></div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> * \param[out] r the radius of the particle. If no radius</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> * information is available the default radius</span></div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> * value is returned. */</span></div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155"> 141</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a>(<span class="keywordtype">int</span> &<a class="code" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>,<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>,<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>,<span class="keywordtype">double</span> &<a class="code" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>,<span class="keywordtype">double</span> &r) {</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  pid=<span class="keywordtype">id</span>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>][<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>];</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">double</span> *pp=<a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]+<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>;</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  x=*(pp++);y=*(pp++);z=*pp;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  r=<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>==3?default_radius:*(++pp);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"> /** Returns the x position of the particle currently being</span></div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> * considered by the loop. */</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>() {<span class="keywordflow">return</span> <a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>][<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>];}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> /** Returns the y position of the particle currently being</span></div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment"> * considered by the loop. */</span></div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758"> 152</a></span>  <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>() {<span class="keywordflow">return</span> <a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>][<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>+1];}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment"> /** Returns the z position of the particle currently being</span></div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"> * considered by the loop. */</span></div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9"> 155</a></span>  <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>() {<span class="keywordflow">return</span> <a class="code" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>][<a class="code" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a>*<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>+2];}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"> /** Returns the ID of the particle currently being considered</span></div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment"> * by the loop. */</span></div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07"> 158</a></span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>() {<span class="keywordflow">return</span> <span class="keywordtype">id</span>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>][<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>];}</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> };</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">/** \brief Class for looping over all of the particles in a container.</span></div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> * This is one of the simplest loop classes, that scans the computational</span></div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> * blocks in order, and scans all the particles within each block in order. */</span></div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all.html"> 165</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__all.html">c_loop_all</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> * base container class.</span></div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> * \param[in] con the container class to use. */</span></div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all.html#a255049d5c5f878a24804ed2e29043e68"> 171</a></span>  <a class="code" href="classvoro_1_1c__loop__all.html#a255049d5c5f878a24804ed2e29043e68">c_loop_all</a>(c_class &con) : <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a>(con) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> /** Sets the class to consider the first particle.</span></div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"> * \return True if there is any particle to consider, false</span></div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment"> * otherwise. */</span></div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all.html#acab7b0f3917a172844d4d2565913855d"> 175</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__all.html#acab7b0f3917a172844d4d2565913855d">start</a>() {</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>=<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]==0) <span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> /** Finds the next particle to test.</span></div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> * \return True if there is another particle, false if no more</span></div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> * particles are available. */</span></div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all.html#a322b26b0f78f73b345ee0af92f908df0"> 183</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__all.html#a322b26b0f78f73b345ee0af92f908df0">inc</a>() {</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>++;</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>>=<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]) {</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">do</span> {</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  } <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[ijk]==0);</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">private</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> /** Updates the internal variables to find the next</span></div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> * computational block with any particles.</span></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"> * \return True if another block is found, false if there are</span></div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment"> * no more blocks. */</span></div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> next_block() {</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>++;</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>++;</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>==<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>) {</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=0;<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>++;</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>==<a class="code" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a>) {</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=0;<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>++;</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>==<a class="code" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> };</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">/** \brief Class for looping over a subset of particles in a container.</span></div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment"> * This class can loop over a subset of particles in a certain geometrical</span></div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> * region within the container. The class can be set up to loop over a</span></div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"> * rectangular box or sphere. It can also rectangular group of internal</span></div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"> * computational blocks. */</span></div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html"> 218</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__subset.html">c_loop_subset</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"> /** The current mode of operation, determining whether tests</span></div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment"> * should be applied to particles to ensure they are within a</span></div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment"> * certain geometrical object. */</span></div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c"> 223</a></span>  c_loop_subset_mode <a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment"> * base container class.</span></div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> * \param[in] con the container class to use. */</span></div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#aab236b412de99f7a58d77d23a25ff44f"> 228</a></span>  <a class="code" href="classvoro_1_1c__loop__subset.html#aab236b412de99f7a58d77d23a25ff44f">c_loop_subset</a>(c_class &con) : <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a>(con), ax(con.ax), ay(con.ay), az(con.az),</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  sx(con.bx-ax), sy(con.by-ay), sz(con.bz-az), xsp(con.xsp), ysp(con.ysp), zsp(con.zsp),</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  xperiodic(con.xperiodic), yperiodic(con.yperiodic), zperiodic(con.zperiodic) {}</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb">setup_sphere</a>(<span class="keywordtype">double</span> vx,<span class="keywordtype">double</span> vy,<span class="keywordtype">double</span> vz,<span class="keywordtype">double</span> r,<span class="keywordtype">bool</span> bounds_test=<span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d">setup_box</a>(<span class="keywordtype">double</span> xmin,<span class="keywordtype">double</span> xmax,<span class="keywordtype">double</span> ymin,<span class="keywordtype">double</span> ymax,<span class="keywordtype">double</span> zmin,<span class="keywordtype">double</span> zmax,<span class="keywordtype">bool</span> bounds_test=<span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d">setup_intbox</a>(<span class="keywordtype">int</span> ai_,<span class="keywordtype">int</span> bi_,<span class="keywordtype">int</span> aj_,<span class="keywordtype">int</span> bj_,<span class="keywordtype">int</span> ak_,<span class="keywordtype">int</span> bk_);</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4">start</a>();<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> /** Finds the next particle to test.</span></div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> * \return True if there is another particle, false if no more</span></div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> * particles are available. */</span></div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__subset.html#af45a6a610d039dc8c8434caf61b092c6"> 238</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__subset.html#af45a6a610d039dc8c8434caf61b092c6">inc</a>() {</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">do</span> {</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>++;</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>>=<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]) {<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;<span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;}</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  } <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a>!=no_check&&out_of_bounds());</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> ax,ay,az,sx,sy,sz,xsp,ysp,zsp;</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> xperiodic,yperiodic,zperiodic;</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordtype">double</span> px,py,pz,apx,apy,apz;</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordtype">double</span> v0,v1,v2,v3,v4,v5;</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">int</span> ai,bi,aj,bj,ak,bk,s;</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordtype">int</span> ci,cj,ck,di,dj,dk,inc1,inc2;</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> step_mod(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {<span class="keywordflow">return</span> a>=0?a%b:b-1-(b-1-a)%b;}</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> step_div(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {<span class="keywordflow">return</span> a>=0?a/b:-1+(a+1)/b;}</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> step_int(<span class="keywordtype">double</span> a) {<span class="keywordflow">return</span> a<0?int(a)-1:int(a);}</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">void</span> setup_common();</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordtype">bool</span> next_block();</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordtype">bool</span> out_of_bounds();</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> };</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">/** \brief Class for looping over all of the particles specified in a</span></div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> * pre-assembled particle_order class.</span></div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> * The particle_order class can be used to create a specific order of particles</span></div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> * within the container. This class can then loop over these particles in this</span></div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> * order. The class is particularly useful in cases where the ordering of the</span></div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment"> * output must match the ordering of particles as they were inserted into the</span></div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"> * container. */</span></div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html"> 268</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__order.html">c_loop_order</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"> /** A reference to the ordering class to use. */</span></div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987"> 271</a></span>  <a class="code" href="classvoro_1_1particle__order.html">particle_order</a> &<a class="code" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">vo</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> /** A pointer to the current position in the ordering class. */</span></div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61"> 273</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"> /** A pointer to the end position in the ordering class. */</span></div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f"> 275</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">op</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment"> * base class, and sets up a reference to the ordering class to</span></div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment"> * use.</span></div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment"> * \param[in] con the container class to use.</span></div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment"> * \param[in] vo_ the ordering class to use. */</span></div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#a08bc288a867bff0716d67fde7f18b892"> 282</a></span>  <a class="code" href="classvoro_1_1c__loop__order.html#a08bc288a867bff0716d67fde7f18b892">c_loop_order</a>(c_class &con,<a class="code" href="classvoro_1_1particle__order.html">particle_order</a> &vo_)</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  : <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a>(con), <a class="code" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">vo</a>(vo_), nx(con.nx), nxy(con.nxy) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment"> /** Sets the class to consider the first particle.</span></div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment"> * \return True if there is any particle to consider, false</span></div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment"> * otherwise. */</span></div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#a0e03892771119212847d1ea7c56c5228"> 287</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__order.html#a0e03892771119212847d1ea7c56c5228">start</a>() {</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>=<a class="code" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">vo</a>.<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;<a class="code" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">op</a>=<a class="code" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">vo</a>.<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>;</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>!=<a class="code" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">op</a>) {</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=*(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>++);decode();</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=*(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>++);</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"> /** Finds the next particle to test.</span></div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> * \return True if there is another particle, false if no more</span></div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> * particles are available. */</span></div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order.html#ae2e1c198611110487e9b41c17cae65a7"> 298</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__order.html#ae2e1c198611110487e9b41c17cae65a7">inc</a>() {</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>==<a class="code" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">op</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=*(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>++);decode();</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=*(<a class="code" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a>++);</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">private</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> /** The number of computational blocks in the x direction. */</span></div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> nx;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment"> /** The number of computational blocks in a z-slice. */</span></div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> nxy;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment"> /** Takes the current block index and computes indices in the</span></div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"> * x, y, and z directions. */</span></div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> decode() {</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>=<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>/nxy;</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordtype">int</span> ijkt=<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>-nxy*<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>;</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=ijkt/nx;</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=ijkt-<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>*nx;</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> };</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">/** \brief A class for looping over all particles in a container_periodic or</span></div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment"> * container_periodic_poly class.</span></div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment"> * Since the container_periodic and container_periodic_poly classes have a</span></div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment"> * fundamentally different memory organization, the regular loop classes cannot</span></div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"> * be used with them. */</span></div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all__periodic.html"> 325</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__all__periodic.html">c_loop_all_periodic</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment"> * base periodic container class.</span></div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="comment"> * \param[in] con the periodic container class to use. */</span></div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all__periodic.html#a07dc6f74c7a503bb8cb4e7fa4f2e84ff"> 331</a></span>  <a class="code" href="classvoro_1_1c__loop__all__periodic.html#a07dc6f74c7a503bb8cb4e7fa4f2e84ff">c_loop_all_periodic</a>(c_class &con) : <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a>(con), ey(con.ey), ez(con.ez), wy(con.wy), wz(con.wz),</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  ijk0(<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>*(ey+con.oy*ez)), inc2(2*<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>*con.ey+1) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment"> /** Sets the class to consider the first particle.</span></div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment"> * \return True if there is any particle to consider, false</span></div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment"> * otherwise. */</span></div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all__periodic.html#ab7b002f40adfe7116d3db77d6bb95f4c"> 336</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__all__periodic.html#ab7b002f40adfe7116d3db77d6bb95f4c">start</a>() {</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=0;</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=ey;</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>=ez;</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=ijk0;</div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]==0) <span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> /** Finds the next particle to test.</span></div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"> * \return True if there is another particle, false if no more</span></div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment"> * particles are available. */</span></div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__all__periodic.html#ac25d006faa31cee1d1b6bbc621532651"> 348</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__all__periodic.html#ac25d006faa31cee1d1b6bbc621532651">inc</a>() {</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>++;</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>>=<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>]) {</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=0;</div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">do</span> {</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">if</span>(!next_block()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  } <span class="keywordflow">while</span>(<a class="code" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a>[ijk]==0);</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">private</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment"> /** The lower y index (inclusive) of the primary domain within</span></div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment"> * the block structure. */</span></div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordtype">int</span> ey;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="comment"> /** The lower y index (inclusive) of the primary domain within</span></div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="comment"> * the block structure. */</span></div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">int</span> ez;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment"> /** The upper y index (exclusive) of the primary domain within</span></div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment"> * the block structure. */</span></div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordtype">int</span> wy;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="comment"> /** The upper z index (exclusive) of the primary domain within</span></div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment"> * the block structure. */</span></div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">int</span> wz;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment"> /** The index of the (0,0,0) block within the block structure.</span></div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">int</span> ijk0;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment"> /** A value to increase ijk by when the z index is increased.</span></div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">int</span> inc2;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment"> /** Updates the internal variables to find the next</span></div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment"> * computational block with any particles.</span></div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment"> * \return True if another block is found, false if there are</span></div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="comment"> * no more blocks. */</span></div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> next_block() {</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>++;</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>==<a class="code" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a>) {</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=0;<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>++;</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>==wy) {</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=ey;<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>++;</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>==wz) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>+=inc2;</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  } <span class="keywordflow">else</span> <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>++;</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  } <span class="keywordflow">else</span> <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>++;</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> };</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="comment">/** \brief Class for looping over all of the particles specified in a</span></div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="comment"> * pre-assembled particle_order class, for use with container_periodic classes.</span></div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="comment"> * The particle_order class can be used to create a specific order of particles</span></div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="comment"> * within the container. This class can then loop over these particles in this</span></div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment"> * order. The class is particularly useful in cases where the ordering of the</span></div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="comment"> * output must match the ordering of particles as they were inserted into the</span></div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment"> * container. */</span></div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html"> 403</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1c__loop__order__periodic.html">c_loop_order_periodic</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a> {</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment"> /** A reference to the ordering class to use. */</span></div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018"> 406</a></span>  <a class="code" href="classvoro_1_1particle__order.html">particle_order</a> &<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">vo</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment"> /** A pointer to the current position in the ordering class. */</span></div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982"> 408</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment"> /** A pointer to the end position in the ordering class. */</span></div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475"> 410</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">op</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment"> /** The constructor copies several necessary constants from the</span></div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment"> * base class, and sets up a reference to the ordering class to</span></div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment"> * use.</span></div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment"> * \param[in] con the container class to use.</span></div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment"> * \param[in] vo_ the ordering class to use. */</span></div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">template</span><<span class="keyword">class</span> c_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#adb9aea9a009c1dfdd231b608257d04f9"> 417</a></span>  <a class="code" href="classvoro_1_1c__loop__order__periodic.html#adb9aea9a009c1dfdd231b608257d04f9">c_loop_order_periodic</a>(c_class &con,<a class="code" href="classvoro_1_1particle__order.html">particle_order</a> &vo_)</div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  : <a class="code" href="classvoro_1_1c__loop__base.html">c_loop_base</a>(con), <a class="code" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">vo</a>(vo_), nx(con.nx), oxy(con.nx*con.oy) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment"> /** Sets the class to consider the first particle.</span></div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="comment"> * \return True if there is any particle to consider, false</span></div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="comment"> * otherwise. */</span></div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#a3734764b6b10670ce820de143d118d8e"> 422</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__order__periodic.html#a3734764b6b10670ce820de143d118d8e">start</a>() {</div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>=<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">vo</a>.<a class="code" href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">o</a>;<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">op</a>=<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">vo</a>.<a class="code" href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">op</a>;</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>!=<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">op</a>) {</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=*(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>++);decode();</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=*(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>++);</div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="comment"> /** Finds the next particle to test.</span></div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="comment"> * \return True if there is another particle, false if no more</span></div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="comment"> * particles are available. */</span></div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classvoro_1_1c__loop__order__periodic.html#ae34027247718bedc32b705ceb5b029de"> 433</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1c__loop__order__periodic.html#ae34027247718bedc32b705ceb5b029de">inc</a>() {</div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span>(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>==<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">op</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>=*(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>++);decode();</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a>=*(<a class="code" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a>++);</div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">private</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment"> /** The number of computational blocks in the x direction. */</span></div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> nx;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment"> /** The number of computational blocks in a z-slice. */</span></div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> oxy;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment"> /** Takes the current block index and computes indices in the</span></div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment"> * x, y, and z directions. */</span></div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> decode() {</div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>=<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>/oxy;</div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordtype">int</span> ijkt=<a class="code" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a>-oxy*<a class="code" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a>;</div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>=ijkt/nx;</div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a>=ijkt-<a class="code" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a>*nx;</div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> };</div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> }</div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_ae34027247718bedc32b705ceb5b029de"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#ae34027247718bedc32b705ceb5b029de">voro::c_loop_order_periodic::inc</a></div><div class="ttdeci">bool inc()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00433">c_loops.hh:433</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a2eaa096a64736b5792cdf3d799b95786"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">voro::c_loop_base::q</a></div><div class="ttdeci">int q</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00119">c_loops.hh:119</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_af8bef46cbdfdee608090aa5df0666df2"><div class="ttname"><a href="classvoro_1_1particle__order.html#af8bef46cbdfdee608090aa5df0666df2">voro::particle_order::o</a></div><div class="ttdeci">int * o</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00040">c_loops.hh:40</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all_html"><div class="ttname"><a href="classvoro_1_1c__loop__all.html">voro::c_loop_all</a></div><div class="ttdoc">Class for looping over all of the particles in a container. </div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00165">c_loops.hh:165</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all_html_a255049d5c5f878a24804ed2e29043e68"><div class="ttname"><a href="classvoro_1_1c__loop__all.html#a255049d5c5f878a24804ed2e29043e68">voro::c_loop_all::c_loop_all</a></div><div class="ttdeci">c_loop_all(c_class &con)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00171">c_loops.hh:171</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_acc2351174b5d0a163b172fb016e94216"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">voro::c_loop_base::c_loop_base</a></div><div class="ttdeci">c_loop_base(c_class &con)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00124">c_loops.hh:124</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ab42c93bbaf7cfc11e3c95f5d38f694e2"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">voro::c_loop_base::ps</a></div><div class="ttdeci">const int ps</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00095">c_loops.hh:95</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all_html_a322b26b0f78f73b345ee0af92f908df0"><div class="ttname"><a href="classvoro_1_1c__loop__all.html#a322b26b0f78f73b345ee0af92f908df0">voro::c_loop_all::inc</a></div><div class="ttdeci">bool inc()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00183">c_loops.hh:183</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_a6c2b7ac4d078f84490b9433523bf766f"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">voro::c_loop_order::op</a></div><div class="ttdeci">int * op</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00275">c_loops.hh:275</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a759f4fc1cb4b7d5b41b1358c0e4fe4c3"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">voro::c_loop_base::x</a></div><div class="ttdeci">double x()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00149">c_loops.hh:149</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aa958fedbef8948a8a359ce00bdb52d07"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">voro::c_loop_base::pid</a></div><div class="ttdeci">int pid()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00158">c_loops.hh:158</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all_html_acab7b0f3917a172844d4d2565913855d"><div class="ttname"><a href="classvoro_1_1c__loop__all.html#acab7b0f3917a172844d4d2565913855d">voro::c_loop_all::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00175">c_loops.hh:175</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abbaba2fc0d1fa07760220d37a3cc7ccf"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">voro::c_loop_base::j</a></div><div class="ttdeci">int j</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00110">c_loops.hh:110</a></div></div>
|
||||
<div class="ttc" id="config_8hh_html"><div class="ttname"><a href="config_8hh.html">config.hh</a></div><div class="ttdoc">Master configuration file for setting various compile-time options. </div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a2f4b84b1453d680afe11b7877f191758"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">voro::c_loop_base::y</a></div><div class="ttdeci">double y()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00152">c_loops.hh:152</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_adb9aea9a009c1dfdd231b608257d04f9"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#adb9aea9a009c1dfdd231b608257d04f9">voro::c_loop_order_periodic::c_loop_order_periodic</a></div><div class="ttdeci">c_loop_order_periodic(c_class &con, particle_order &vo_)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00417">c_loops.hh:417</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a060e5b0e557141713b6897b0a0728f2d"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">voro::c_loop_base::co</a></div><div class="ttdeci">int * co</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00104">c_loops.hh:104</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_a80063187d6d4ea8e8bb2efe02091a475"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">voro::c_loop_order_periodic::op</a></div><div class="ttdeci">int * op</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00410">c_loops.hh:410</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aaec35b971352bff60f4a446c430f26f8"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">voro::c_loop_base::nz</a></div><div class="ttdeci">const int nz</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00085">c_loops.hh:85</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a2aba9be724d35e088e3597dc9181182d"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d">voro::c_loop_subset::setup_box</a></div><div class="ttdeci">void setup_box(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, bool bounds_test=true)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00098">c_loops.cc:98</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_a9b82e0a6ce7c6ed0456738cf23e08c61"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">voro::c_loop_order::cp</a></div><div class="ttdeci">int * cp</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00273">c_loops.hh:273</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_a281ac4b9e4f3c687081f067239fdd982"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">voro::c_loop_order_periodic::cp</a></div><div class="ttdeci">int * cp</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00408">c_loops.hh:408</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html">voro::c_loop_order_periodic</a></div><div class="ttdoc">Class for looping over all of the particles specified in a pre-assembled particle_order class...</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00403">c_loops.hh:403</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abf2dcc131f23212c15169e90ba30d6e4"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">voro::c_loop_base::k</a></div><div class="ttdeci">int k</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00113">c_loops.hh:113</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a2b6abbe65d550ae7071aaa28d0fbb534"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">voro::c_loop_base::p</a></div><div class="ttdeci">double ** p</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00098">c_loops.hh:98</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html"><div class="ttname"><a href="classvoro_1_1c__loop__order.html">voro::c_loop_order</a></div><div class="ttdoc">Class for looping over all of the particles specified in a pre-assembled particle_order class...</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00268">c_loops.hh:268</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ab64ac0420d5ebed7d3259dd5c861d5c1"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">voro::c_loop_base::id</a></div><div class="ttdeci">int ** id</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00101">c_loops.hh:101</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_a3a9be1df3e0f88e0e3e6fc0458949987"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">voro::c_loop_order::vo</a></div><div class="ttdeci">particle_order & vo</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00271">c_loops.hh:271</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ac9f65f527282809c894c7094291fca83"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">voro::c_loop_base::pos</a></div><div class="ttdeci">void pos(double &x, double &y, double &z)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00130">c_loops.hh:130</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aec12d78b1e8282f84eac5a6fd67fc3c9"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">voro::c_loop_base::z</a></div><div class="ttdeci">double z()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00155">c_loops.hh:155</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_aec68354015eedbde68752a58a8457c90"><div class="ttname"><a href="classvoro_1_1particle__order.html#aec68354015eedbde68752a58a8457c90">voro::particle_order::~particle_order</a></div><div class="ttdeci">~particle_order()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00055">c_loops.hh:55</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_a08bc288a867bff0716d67fde7f18b892"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#a08bc288a867bff0716d67fde7f18b892">voro::c_loop_order::c_loop_order</a></div><div class="ttdeci">c_loop_order(c_class &con, particle_order &vo_)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00282">c_loops.hh:282</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a68cafa132e9028ed7b143e93e85a102d"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">voro::c_loop_base::nxyz</a></div><div class="ttdeci">const int nxyz</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00092">c_loops.hh:92</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a0d6046f6de1f80849e5d1d8f3b7212e7"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">voro::c_loop_base::nx</a></div><div class="ttdeci">const int nx</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00081">c_loops.hh:81</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_ac5d8b2aa34f936022e9059ca093b914c"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">voro::c_loop_subset::mode</a></div><div class="ttdeci">c_loop_subset_mode mode</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00223">c_loops.hh:223</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a3cb6bc5c8b22e57325bb136feba93d9b"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">voro::c_loop_base::ijk</a></div><div class="ttdeci">int ijk</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00116">c_loops.hh:116</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_af45a6a610d039dc8c8434caf61b092c6"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#af45a6a610d039dc8c8434caf61b092c6">voro::c_loop_subset::inc</a></div><div class="ttdeci">bool inc()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00238">c_loops.hh:238</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_ae2e1c198611110487e9b41c17cae65a7"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#ae2e1c198611110487e9b41c17cae65a7">voro::c_loop_order::inc</a></div><div class="ttdeci">bool inc()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00298">c_loops.hh:298</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_a33a5410ec11caa521d05c72e585bd155"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">voro::c_loop_base::pos</a></div><div class="ttdeci">void pos(int &pid, double &x, double &y, double &z, double &r)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00141">c_loops.hh:141</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html">voro::c_loop_subset</a></div><div class="ttdoc">Class for looping over a subset of particles in a container. </div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00218">c_loops.hh:218</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_adabcf6cd995eb03fe007844ba5637a8a"><div class="ttname"><a href="classvoro_1_1particle__order.html#adabcf6cd995eb03fe007844ba5637a8a">voro::particle_order::add</a></div><div class="ttdeci">void add(int ijk, int q)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00063">c_loops.hh:63</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_a742bc941dfd87ecd64b42f6e50df19db"><div class="ttname"><a href="classvoro_1_1particle__order.html#a742bc941dfd87ecd64b42f6e50df19db">voro::particle_order::size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00046">c_loops.hh:46</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a4c9709bc992e33668471e292474c39f4"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4">voro::c_loop_subset::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00079">c_loops.cc:79</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_ac8f42728e3a98149c2185aba833ac5ff"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">voro::c_loop_base::ny</a></div><div class="ttdeci">const int ny</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00083">c_loops.hh:83</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a688ef02340f6a9bc64c77c2de4c4ae3d"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d">voro::c_loop_subset::setup_intbox</a></div><div class="ttdeci">void setup_intbox(int ai_, int bi_, int aj_, int bj_, int ak_, int bk_)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00044">c_loops.cc:44</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_a6aeb89179930977f344416a0ba1c38a4"><div class="ttname"><a href="classvoro_1_1particle__order.html#a6aeb89179930977f344416a0ba1c38a4">voro::particle_order::op</a></div><div class="ttdeci">int * op</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00043">c_loops.hh:43</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_aab236b412de99f7a58d77d23a25ff44f"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#aab236b412de99f7a58d77d23a25ff44f">voro::c_loop_subset::c_loop_subset</a></div><div class="ttdeci">c_loop_subset(c_class &con)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00228">c_loops.hh:228</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all__periodic_html_ac25d006faa31cee1d1b6bbc621532651"><div class="ttname"><a href="classvoro_1_1c__loop__all__periodic.html#ac25d006faa31cee1d1b6bbc621532651">voro::c_loop_all_periodic::inc</a></div><div class="ttdeci">bool inc()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00348">c_loops.hh:348</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_a73e215fc8915ed65f17e633d85c0f018"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">voro::c_loop_order_periodic::vo</a></div><div class="ttdeci">particle_order & vo</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00406">c_loops.hh:406</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html_a205b5e4a472043123d091b1a3bc103c8"><div class="ttname"><a href="classvoro_1_1particle__order.html#a205b5e4a472043123d091b1a3bc103c8">voro::particle_order::particle_order</a></div><div class="ttdeci">particle_order(int init_size=init_ordering_size)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00051">c_loops.hh:51</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order_html_a0e03892771119212847d1ea7c56c5228"><div class="ttname"><a href="classvoro_1_1c__loop__order.html#a0e03892771119212847d1ea7c56c5228">voro::c_loop_order::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00287">c_loops.hh:287</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html"><div class="ttname"><a href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></div><div class="ttdoc">Base class for looping over particles in a container. </div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00078">c_loops.hh:78</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__order__periodic_html_a3734764b6b10670ce820de143d118d8e"><div class="ttname"><a href="classvoro_1_1c__loop__order__periodic.html#a3734764b6b10670ce820de143d118d8e">voro::c_loop_order_periodic::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00422">c_loops.hh:422</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all__periodic_html"><div class="ttname"><a href="classvoro_1_1c__loop__all__periodic.html">voro::c_loop_all_periodic</a></div><div class="ttdoc">A class for looping over all particles in a container_periodic or container_periodic_poly class...</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00325">c_loops.hh:325</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__subset_html_a585f47e725dc0de645defc8dc0d463cb"><div class="ttname"><a href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb">voro::c_loop_subset::setup_sphere</a></div><div class="ttdeci">void setup_sphere(double vx, double vy, double vz, double r, bool bounds_test=true)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8cc_source.html#l00024">c_loops.cc:24</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_abb655606af4e184c2982f1a32cd47e12"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">voro::c_loop_base::nxy</a></div><div class="ttdeci">const int nxy</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00089">c_loops.hh:89</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all__periodic_html_ab7b002f40adfe7116d3db77d6bb95f4c"><div class="ttname"><a href="classvoro_1_1c__loop__all__periodic.html#ab7b002f40adfe7116d3db77d6bb95f4c">voro::c_loop_all_periodic::start</a></div><div class="ttdeci">bool start()</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00336">c_loops.hh:336</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__base_html_aef465d2da85b963fa9e0e886ee273541"><div class="ttname"><a href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">voro::c_loop_base::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00107">c_loops.hh:107</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1particle__order_html"><div class="ttname"><a href="classvoro_1_1particle__order.html">voro::particle_order</a></div><div class="ttdoc">A class for storing ordering information when particles are added to a container. ...</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00037">c_loops.hh:37</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1c__loop__all__periodic_html_a07dc6f74c7a503bb8cb4e7fa4f2e84ff"><div class="ttname"><a href="classvoro_1_1c__loop__all__periodic.html#a07dc6f74c7a503bb8cb4e7fa4f2e84ff">voro::c_loop_all_periodic::c_loop_all_periodic</a></div><div class="ttdeci">c_loop_all_periodic(c_class &con)</div><div class="ttdef"><b>Definition:</b> <a href="c__loops_8hh_source.html#l00331">c_loops.hh:331</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: cell.cc File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">cell.cc File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Function implementations for the voronoicell and related classes.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cmath></code><br/>
|
||||
<code>#include <cstring></code><br/>
|
||||
<code>#include "<a class="el" href="config_8hh_source.html">config.hh</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="common_8hh_source.html">common.hh</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="cell_8hh_source.html">cell.hh</a>"</code><br/>
|
||||
</div>
|
||||
<p><a href="cell_8cc_source.html">Go to the source code of this file.</a></p>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: cell.hh File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">cell.hh File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Header file for the voronoicell and related classes.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <vector></code><br/>
|
||||
<code>#include "<a class="el" href="config_8hh_source.html">config.hh</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="common_8hh_source.html">common.hh</a>"</code><br/>
|
||||
</div>
|
||||
<p><a href="cell_8hh_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1voronoicell__base.html">voro::voronoicell_base</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A class representing a single Voronoi cell. <a href="classvoro_1_1voronoicell__base.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1voronoicell.html">voro::voronoicell</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Extension of the <a class="el" href="classvoro_1_1voronoicell__base.html" title="A class representing a single Voronoi cell. ">voronoicell_base</a> class to represent a Voronoi cell without neighbor information. <a href="classvoro_1_1voronoicell.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1voronoicell__neighbor.html">voro::voronoicell_neighbor</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Extension of the <a class="el" href="classvoro_1_1voronoicell__base.html" title="A class representing a single Voronoi cell. ">voronoicell_base</a> class to represent a Voronoi cell with neighbor information. <a href="classvoro_1_1voronoicell__neighbor.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,662 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: cell.hh Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">cell.hh</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="cell_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Voro++, a 3D cell-based Voronoi library</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Author : Chris H. Rycroft (LBL / UC Berkeley)</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Email : chr@alum.mit.edu</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Date : August 30th 2011</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/** \file cell.hh</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * \brief Header file for the voronoicell and related classes. */</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef VOROPP_CELL_HH</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"></span><span class="preprocessor">#define VOROPP_CELL_HH</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="config_8hh.html">config.hh</a>"</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="common_8hh.html">common.hh</a>"</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span>voro {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">/** \brief A class representing a single Voronoi cell.</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * This class represents a single Voronoi cell, as a collection of vertices</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * that are connected by edges. The class contains routines for initializing</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * the Voronoi cell to be simple shapes such as a box, tetrahedron, or octahedron.</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * It the contains routines for recomputing the cell based on cutting it</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * by a plane, which forms the key routine for the Voronoi cell computation.</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * It contains numerous routine for computing statistics about the Voronoi cell,</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * and it can output the cell in several formats.</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * This class is not intended for direct use, but forms the base of the</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * voronoicell and voronoicell_neighbor classes, which extend it based on</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * whether neighboring particle ID information needs to be tracked. */</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> /** This holds the current size of the arrays ed and nu, which</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * hold the vertex information. If more vertices are created</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * than can fit in this array, then it is dynamically extended</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * using the add_memory_vertices routine. */</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#ab0b624e4e72fca14c99bf1c41c430614"> 39</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ab0b624e4e72fca14c99bf1c41c430614">current_vertices</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> /** This holds the current maximum allowed order of a vertex,</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * which sets the size of the mem, mep, and mec arrays. If a</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * vertex is created with more vertices than this, the arrays</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * are dynamically extended using the add_memory_vorder routine.</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a14c97918200da778388673728da29274"> 45</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a14c97918200da778388673728da29274">current_vertex_order</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> /** This sets the size of the main delete stack. */</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a7dbec3b0b6ea24e22e651cf76f06dc04"> 47</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7dbec3b0b6ea24e22e651cf76f06dc04">current_delete_size</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> /** This sets the size of the auxiliary delete stack. */</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a2a238c710c2e91045ef9deae0faf8dc9"> 49</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a2a238c710c2e91045ef9deae0faf8dc9">current_delete2_size</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> /** This sets the total number of vertices in the current cell.</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243"> 52</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> /** This is the index of particular point in the cell, which is</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * used to start the tracing routines for plane intersection</span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * and cutting. These routines will work starting from any</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> * point, but it's often most efficient to start from the last</span></div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> * point considered, since in many cases, the cell construction</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> * algorithm may consider many planes with similar vectors</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> * concurrently. */</span></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a7746d94ae036439d60c3e4a9e37f6d15"> 60</a></span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7746d94ae036439d60c3e4a9e37f6d15">up</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> /** This is a two dimensional array that holds information</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> * about the edge connections of the vertices that make up the</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> * cell. The two dimensional array is not allocated in the</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> * usual method. To account for the fact the different vertices</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> * have different orders, and thus require different amounts of</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> * storage, the elements of ed[i] point to one-dimensional</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * arrays in the mep[] array of different sizes.</span></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * More specifically, if vertex i has order m, then ed[i]</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * points to a one-dimensional array in mep[m] that has 2*m+1</span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> * entries. The first m elements hold the neighboring edges, so</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * that the jth edge of vertex i is held in ed[i][j]. The next</span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> * m elements hold a table of relations which is redundant but</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * helps speed up the computation. It satisfies the relation</span></div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> * ed[ed[i][j]][ed[i][m+j]]=i. The final entry holds a back</span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * pointer, so that ed[i+2*m]=i. The back pointers are used</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * when rearranging the memory. */</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a85fec05865342d7efca9d9fd11b60342"> 78</a></span>  <span class="keywordtype">int</span> **<a class="code" href="classvoro_1_1voronoicell__base.html#a85fec05865342d7efca9d9fd11b60342">ed</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> /** This array holds the order of the vertices in the Voronoi</span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> * cell. This array is dynamically allocated, with its current</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> * size held by current_vertices. */</span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#abc7ec6777725e0ddffbbe2ecbe81c6a1"> 82</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1voronoicell__base.html#abc7ec6777725e0ddffbbe2ecbe81c6a1">nu</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> /** This in an array with size 3*current_vertices for holding</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> * the positions of the vertices. */</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#aa4e3f22d4ff450097571e95caeda1b3d"> 85</a></span>  <span class="keywordtype">double</span> *<a class="code" href="classvoro_1_1voronoicell__base.html#aa4e3f22d4ff450097571e95caeda1b3d">pts</a>;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#a83d13bf519c98bf0ea5804763ffc967d">voronoicell_base</a>();</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#ac959634a1ae2e3201e96624f44e7e71e">~voronoicell_base</a>();</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a4c7f5406ba3beb1aa0d047592316c68d">init_base</a>(<span class="keywordtype">double</span> xmin,<span class="keywordtype">double</span> xmax,<span class="keywordtype">double</span> ymin,<span class="keywordtype">double</span> ymax,<span class="keywordtype">double</span> zmin,<span class="keywordtype">double</span> zmax);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#aab954caa57c67a26c03b0377f5778bb1">init_octahedron_base</a>(<span class="keywordtype">double</span> l);</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ae71280e1c36c5f840f870d55e91c027b">init_tetrahedron_base</a>(<span class="keywordtype">double</span> x0,<span class="keywordtype">double</span> y0,<span class="keywordtype">double</span> z0,<span class="keywordtype">double</span> x1,<span class="keywordtype">double</span> y1,<span class="keywordtype">double</span> z1,<span class="keywordtype">double</span> x2,<span class="keywordtype">double</span> y2,<span class="keywordtype">double</span> z2,<span class="keywordtype">double</span> x3,<span class="keywordtype">double</span> y3,<span class="keywordtype">double</span> z3);</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ab2c8534b380907975eb60f3441d50e1e">translate</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z);</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a923ffa62bd5d62070cd29e01f3a1327a">draw_pov</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,FILE *fp=stdout);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> /** Outputs the cell in POV-Ray format, using cylinders for edges</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> * and spheres for vertices, to a given file.</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> * \param[in] (x,y,z) a displacement to add to the cell's</span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> * position.</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * \param[in] filename the name of the file to write to. */</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a8138dc62fc6288c772b0483d0eb4eb96"> 98</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a8138dc62fc6288c772b0483d0eb4eb96">draw_pov</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  FILE *fp=safe_fopen(filename,<span class="stringliteral">"w"</span>);</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#a923ffa62bd5d62070cd29e01f3a1327a">draw_pov</a>(x,y,z,fp);</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  fclose(fp);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a1b52986eadcea3b6b230626a6dbddc40">draw_pov_mesh</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,FILE *fp=stdout);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> /** Outputs the cell in POV-Ray format as a mesh2 object to a</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> * given file.</span></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> * \param[in] (x,y,z) a displacement to add to the cell's</span></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> * position.</span></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> * \param[in] filename the name of the file to write to. */</span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#ac572b3e8ed428c12f38243b48bf39099"> 109</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ac572b3e8ed428c12f38243b48bf39099">draw_pov_mesh</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) {</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  FILE *fp=safe_fopen(filename,<span class="stringliteral">"w"</span>);</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#a1b52986eadcea3b6b230626a6dbddc40">draw_pov_mesh</a>(x,y,z,fp);</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  fclose(fp);</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a1c0657c1d89313089bbd437170c97d46">draw_gnuplot</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,FILE *fp=stdout);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> /** Outputs the cell in Gnuplot format a given file.</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> * \param[in] (x,y,z) a displacement to add to the cell's</span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> * position.</span></div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * \param[in] filename the name of the file to write to. */</span></div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#ac7cb75aa645c98107c9c0162fabf698e"> 119</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ac7cb75aa645c98107c9c0162fabf698e">draw_gnuplot</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) {</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  FILE *fp=safe_fopen(filename,<span class="stringliteral">"w"</span>);</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#a1c0657c1d89313089bbd437170c97d46">draw_gnuplot</a>(x,y,z,fp);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  fclose(fp);</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a92f69986a6f78e7b8b6d9f5778ed99ba">volume</a>();</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a6a29a361a158db038a5c4c8e47322bd5">max_radius_squared</a>();</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a94fc0aba05c11fba465449bc1c4217e9">total_edge_distance</a>();</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">double</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af1a68eea414a0a52b072005af7bd710a">surface_area</a>();</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7ea57c92bba3110da745381c5877cec3">centroid</a>(<span class="keywordtype">double</span> &cx,<span class="keywordtype">double</span> &cy,<span class="keywordtype">double</span> &cz);</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a56b835abe6d47cb67b206202125eb406">number_of_faces</a>();</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a5dbd3cd4e9e9a41744e1a2a4c8f550c0">number_of_edges</a>();</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#adfed605232f7e6d1b52276010facbf08">vertex_orders</a>(std::vector<int> &v);</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af92d19d0e7fc07006bcd8ea30c9df447">output_vertex_orders</a>(FILE *fp=stdout);</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ab6b1755fb46b262df8f8bc2980c7470a">vertices</a>(std::vector<double> &v);</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#aee879731b1f4feb9f630d9b7f9c0062f">output_vertices</a>(FILE *fp=stdout);</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ab6b1755fb46b262df8f8bc2980c7470a">vertices</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,std::vector<double> &v);</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#aee879731b1f4feb9f630d9b7f9c0062f">output_vertices</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,FILE *fp=stdout);</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a4e6698c49580b3a64046230e02f0f8ea">face_areas</a>(std::vector<double> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> /** Outputs the areas of the faces.</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a0492ecd057449172ca6d3993cb0661e4"> 140</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a0492ecd057449172ca6d3993cb0661e4">output_face_areas</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  std::vector<double> v;<a class="code" href="classvoro_1_1voronoicell__base.html#a4e6698c49580b3a64046230e02f0f8ea">face_areas</a>(v);</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  voro_print_vector(v,fp);</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af9bad3fddace8e63ac4c0a5874aee7c5">face_orders</a>(std::vector<int> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"> /** Outputs a list of the number of sides of each face.</span></div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#ad14069d3bebcda9353b07488f512800d"> 147</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ad14069d3bebcda9353b07488f512800d">output_face_orders</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  std::vector<int> v;<a class="code" href="classvoro_1_1voronoicell__base.html#af9bad3fddace8e63ac4c0a5874aee7c5">face_orders</a>(v);</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  voro_print_vector(v,fp);</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a9df53445116446fafea8ffc4ee1afa76">face_freq_table</a>(std::vector<int> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment"> /** Outputs a */</span></div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a38929ec0787bb1acac5f1f7b9ec7cadf"> 153</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a38929ec0787bb1acac5f1f7b9ec7cadf">output_face_freq_table</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  std::vector<int> v;<a class="code" href="classvoro_1_1voronoicell__base.html#a9df53445116446fafea8ffc4ee1afa76">face_freq_table</a>(v);</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  voro_print_vector(v,fp);</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a83e74ffece2b313f6691f467769a16f5">face_vertices</a>(std::vector<int> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> /** Outputs the */</span></div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a67d6682dd62b76162f83822a17de6fe5"> 159</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a67d6682dd62b76162f83822a17de6fe5">output_face_vertices</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  std::vector<int> v;<a class="code" href="classvoro_1_1voronoicell__base.html#a83e74ffece2b313f6691f467769a16f5">face_vertices</a>(v);</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  voro_print_face_vertices(v,fp);</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a335daba5a84e43c278384cae6ecefff3">face_perimeters</a>(std::vector<double> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> /** Outputs a list of the perimeters of each face.</span></div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a5dc3ae580a5f25424d50d4015aa878ba"> 166</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a5dc3ae580a5f25424d50d4015aa878ba">output_face_perimeters</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  std::vector<double> v;<a class="code" href="classvoro_1_1voronoicell__base.html#a335daba5a84e43c278384cae6ecefff3">face_perimeters</a>(v);</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  voro_print_vector(v,fp);</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#aebbbd4815cfbbe5cb1c71a682872664d">normals</a>(std::vector<double> &v);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> /** Outputs a list of the perimeters of each face.</span></div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#aae096d26d957c3e5b0f02b20d493a3ff"> 173</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#aae096d26d957c3e5b0f02b20d493a3ff">output_normals</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  std::vector<double> v;<a class="code" href="classvoro_1_1voronoicell__base.html#aebbbd4815cfbbe5cb1c71a682872664d">normals</a>(v);</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  voro_print_positions(v,fp);</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"> /** Outputs a custom string of information about the Voronoi</span></div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> * cell to a file. It assumes the cell is at (0,0,0) and has a</span></div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"> * the default_radius associated with it.</span></div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> * \param[in] format the custom format string to use.</span></div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a095c6bfc1b9b7a087d0b35b443e5c023"> 182</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a095c6bfc1b9b7a087d0b35b443e5c023">output_custom</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *format,FILE *fp=stdout) {<a class="code" href="classvoro_1_1voronoicell__base.html#a095c6bfc1b9b7a087d0b35b443e5c023">output_custom</a>(format,0,0,0,0,default_radius,fp);}</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a095c6bfc1b9b7a087d0b35b443e5c023">output_custom</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *format,<span class="keywordtype">int</span> i,<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> r,FILE *fp=stdout);</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a33184cd45a3090291a080c4aff08a2fd">nplane</a>(vc_class &vc,<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq,<span class="keywordtype">int</span> p_id);</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af6fd00a511226fd8dc4f27e34f002fc1">plane_intersects</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq);</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__base.html#afe3d860ac52be1326e69ba8c0750530d">plane_intersects_guess</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af49d85cd2a3daf84d623ab09ab7037cf">construct_relations</a>();</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ae7bb21f644a45946001beef598a1da1f">check_relations</a>();</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a3f6c0b98feb914c324248cd3d3baf43d">check_duplicates</a>();</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a8a7e29d041abbd58406e2c05a9a6248a">print_edges</a>();<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment"> /** Returns a list of IDs of neighboring particles</span></div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> * corresponding to each face.</span></div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> * \param[out] v a reference to a vector in which to return the</span></div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> * results. If no neighbor information is</span></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"> * available, a blank vector is returned. */</span></div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a59dd181ccbcc66370ef8b5c4bf250843"> 197</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a59dd181ccbcc66370ef8b5c4bf250843">neighbors</a>(std::vector<int> &v) {v.clear();}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"> /** This is a virtual function that is overridden by a routine</span></div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> * to print a list of IDs of neighboring particles</span></div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"> * corresponding to each face. By default, when no neighbor</span></div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment"> * information is available, the routine does nothing.</span></div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment"> * \param[in] fp the file handle to write to. */</span></div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a99837f8d963c57c2c244518ba0ae4b8f"> 203</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a99837f8d963c57c2c244518ba0ae4b8f">output_neighbors</a>(FILE *fp=stdout) {}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment"> /** This a virtual function that is overridden by a routine to</span></div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment"> * print the neighboring particle IDs for a given vertex. By</span></div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment"> * default, when no neighbor information is available, the</span></div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment"> * routine does nothing.</span></div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"> * \param[in] i the vertex to consider. */</span></div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#ac164b3767ce186360fb3308e349e058c"> 209</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#ac164b3767ce186360fb3308e349e058c">print_edges_neighbors</a>(<span class="keywordtype">int</span> i) {};<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment"> /** This is a simple inline function for picking out the index</span></div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"> * of the next edge counterclockwise at the current vertex.</span></div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment"> * \param[in] a the index of an edge of the current vertex.</span></div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"> * \param[in] p the number of the vertex.</span></div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment"> * \return 0 if a=nu[p]-1, or a+1 otherwise. */</span></div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a1d86762311d8860960a45cc409b14f0f"> 215</a></span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a1d86762311d8860960a45cc409b14f0f">cycle_up</a>(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>) {<span class="keywordflow">return</span> a==<a class="code" href="classvoro_1_1voronoicell__base.html#abc7ec6777725e0ddffbbe2ecbe81c6a1">nu</a>[<a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>]-1?0:a+1;}<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"> /** This is a simple inline function for picking out the index</span></div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"> * of the next edge clockwise from the current vertex.</span></div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> * \param[in] a the index of an edge of the current vertex.</span></div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"> * \param[in] p the number of the vertex.</span></div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"> * \return nu[p]-1 if a=0, or a-1 otherwise. */</span></div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#adfccfa7dce395277535f61f780d87c8b"> 221</a></span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#adfccfa7dce395277535f61f780d87c8b">cycle_down</a>(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>) {<span class="keywordflow">return</span> a==0?<a class="code" href="classvoro_1_1voronoicell__base.html#abc7ec6777725e0ddffbbe2ecbe81c6a1">nu</a>[<a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>]-1:a-1;}</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">protected</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment"> /** This a one dimensional array that holds the current sizes</span></div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"> * of the memory allocations for them mep array.*/</span></div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#aafad86ca11af64de2788637b466479f6"> 225</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1voronoicell__base.html#aafad86ca11af64de2788637b466479f6">mem</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> /** This is a one dimensional array that holds the current</span></div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> * number of vertices of order p that are stored in the mep[p]</span></div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> * array. */</span></div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571"> 229</a></span>  <span class="keywordtype">int</span> *<a class="code" href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571">mec</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"> /** This is a two dimensional array for holding the information</span></div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"> * about the edges of the Voronoi cell. mep[p] is a</span></div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"> * one-dimensional array for holding the edge information about</span></div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment"> * all vertices of order p, with each vertex holding 2*p+1</span></div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"> * integers of information. The total number of vertices held</span></div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> * on mep[p] is stored in mem[p]. If the space runs out, the</span></div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> * code allocates more using the add_memory() routine. */</span></div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__base.html#a2b115cbde725e468000a1da234b2fc66"> 237</a></span>  <span class="keywordtype">int</span> **<a class="code" href="classvoro_1_1voronoicell__base.html#a2b115cbde725e468000a1da234b2fc66">mep</a>;</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a5d09c9e36ad159fcd23cfef8855cae61">reset_edges</a>();</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#af2c9d916f946ba8d9c7e4c0a7e65215b">check_memory_for_copy</a>(vc_class &vc,<a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a>* vb);</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a47d450e9b9be0fab103f401ddcaeefac">copy</a>(<a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a>* vb);</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">private</span>:<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"> /** This is the delete stack, used to store the vertices which</span></div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> * are going to be deleted during the plane cutting procedure.</span></div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">int</span> *ds,*stacke;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment"> /** This is the auxiliary delete stack, which has size set by</span></div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> * current_delete2_size. */</span></div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordtype">int</span> *ds2,*stacke2;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment"> /** This stores the current memory allocation for the marginal</span></div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"> * cases. */</span></div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordtype">int</span> current_marginal;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment"> /** This stores the total number of marginal points which are</span></div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"> * currently in the buffer. */</span></div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">int</span> n_marg;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"> /** This array contains a list of the marginal points, and also</span></div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"> * the outcomes of the marginal tests. */</span></div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">int</span> *marg;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"> /** The x coordinate of the normal vector to the test plane. */</span></div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordtype">double</span> px;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> /** The y coordinate of the normal vector to the test plane. */</span></div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordtype">double</span> py;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> /** The z coordinate of the normal vector to the test plane. */</span></div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordtype">double</span> pz;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> /** The magnitude of the normal vector to the test plane. */</span></div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordtype">double</span> prsq;</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordtype">void</span> add_memory(vc_class &vc,<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> *stackp2);</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">void</span> add_memory_vertices(vc_class &vc);</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordtype">void</span> add_memory_vorder(vc_class &vc);</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordtype">void</span> add_memory_ds(<span class="keywordtype">int</span> *&stackp);</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordtype">void</span> add_memory_ds2(<span class="keywordtype">int</span> *&stackp2);</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> collapse_order1(vc_class &vc);</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> collapse_order2(vc_class &vc);</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> delete_connection(vc_class &vc,<span class="keywordtype">int</span> j,<span class="keywordtype">int</span> k,<span class="keywordtype">bool</span> hand);</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> search_for_outside_edge(vc_class &vc,<span class="keywordtype">int</span> &<a class="code" href="classvoro_1_1voronoicell__base.html#a7746d94ae036439d60c3e4a9e37f6d15">up</a>);</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">template</span><<span class="keyword">class</span> vc_<span class="keyword">class</span>></div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> add_to_stack(vc_class &vc,<span class="keywordtype">int</span> lp,<span class="keywordtype">int</span> *&stackp2);</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> plane_intersects_track(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rs,<span class="keywordtype">double</span> g);</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> normals_search(std::vector<double> &v,<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> j,<span class="keywordtype">int</span> k);</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> search_edge(<span class="keywordtype">int</span> l,<span class="keywordtype">int</span> &m,<span class="keywordtype">int</span> &k);</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">inline</span> <span class="keywordtype">int</span> m_test(<span class="keywordtype">int</span> n,<span class="keywordtype">double</span> &ans);</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">int</span> check_marginal(<span class="keywordtype">int</span> n,<span class="keywordtype">double</span> &ans);</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell.html">voronoicell</a>;</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell__neighbor.html">voronoicell_neighbor</a>;</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> };</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">/** \brief Extension of the voronoicell_base class to represent a Voronoi</span></div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"> * cell without neighbor information.</span></div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> * This class is an extension of the voronoicell_base class, in cases when</span></div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment"> * is not necessary to track the IDs of neighboring particles associated</span></div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment"> * with each face of the Voronoi cell. */</span></div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html"> 300</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell.html">voronoicell</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a> {</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">using</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a33184cd45a3090291a080c4aff08a2fd">voronoicell_base::nplane</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment"> /** Copies the information from another voronoicell class into</span></div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment"> * this class, extending memory allocation if necessary.</span></div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> * \param[in] c the class to copy. */</span></div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a00ff7480ad31fbf06dcca83cb0683e68"> 306</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell.html#a00ff7480ad31fbf06dcca83cb0683e68">operator=</a>(<a class="code" href="classvoro_1_1voronoicell.html">voronoicell</a> &c) {</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a>* vb((<a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a>*) &c);</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#af2c9d916f946ba8d9c7e4c0a7e65215b">check_memory_for_copy</a>(*<span class="keyword">this</span>,vb);<a class="code" href="classvoro_1_1voronoicell__base.html#a47d450e9b9be0fab103f401ddcaeefac">copy</a>(vb);</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"> /** Cuts a Voronoi cell using by the plane corresponding to the</span></div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment"> * perpendicular bisector of a particle.</span></div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment"> * \param[in] (x,y,z) the position of the particle.</span></div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"> * \param[in] rsq the modulus squared of the vector.</span></div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"> * \param[in] p_id the plane ID, ignored for this case where no</span></div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> * neighbor tracking is enabled.</span></div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9"> 318</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">nplane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq,<span class="keywordtype">int</span> p_id) {</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment"> /** Cuts a Voronoi cell using by the plane corresponding to the</span></div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment"> * perpendicular bisector of a particle.</span></div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment"> * \param[in] (x,y,z) the position of the particle.</span></div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"> * \param[in] p_id the plane ID, ignored for this case where no</span></div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> * neighbor tracking is enabled.</span></div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a3f334a0d45c764677418ded3687f005a"> 328</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell.html#a3f334a0d45c764677418ded3687f005a">nplane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">int</span> p_id) {</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordtype">double</span> rsq=x*x+y*y+z*z;</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment"> /** Cuts a Voronoi cell using by the plane corresponding to the</span></div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment"> * perpendicular bisector of a particle.</span></div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment"> * \param[in] (x,y,z) the position of the particle.</span></div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment"> * \param[in] rsq the modulus squared of the vector.</span></div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a6e95394d82fd835c75a77462c872594e"> 338</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell.html#a6e95394d82fd835c75a77462c872594e">plane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq) {</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment"> /** Cuts a Voronoi cell using by the plane corresponding to the</span></div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment"> * perpendicular bisector of a particle.</span></div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment"> * \param[in] (x,y,z) the position of the particle.</span></div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#ac2273c14b7bcc02696be10d9249670c0"> 346</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell.html#ac2273c14b7bcc02696be10d9249670c0">plane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z) {</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordtype">double</span> rsq=x*x+y*y+z*z;</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment"> /** Initializes the Voronoi cell to be rectangular box with the</span></div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment"> * given dimensions.</span></div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment"> * \param[in] (xmin,xmax) the minimum and maximum x coordinates.</span></div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment"> * \param[in] (ymin,ymax) the minimum and maximum y coordinates.</span></div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="comment"> * \param[in] (zmin,zmax) the minimum and maximum z coordinates. */</span></div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a573257366d690af4fd8646b4c431ca84"> 355</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell.html#a573257366d690af4fd8646b4c431ca84">init</a>(<span class="keywordtype">double</span> xmin,<span class="keywordtype">double</span> xmax,<span class="keywordtype">double</span> ymin,<span class="keywordtype">double</span> ymax,<span class="keywordtype">double</span> zmin,<span class="keywordtype">double</span> zmax) {</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#a4c7f5406ba3beb1aa0d047592316c68d">init_base</a>(xmin,xmax,ymin,ymax,zmin,zmax);</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment"> /** Initializes the cell to be an octahedron with vertices at</span></div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment"> * (l,0,0), (-l,0,0), (0,l,0), (0,-l,0), (0,0,l), and (0,0,-l).</span></div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment"> * \param[in] l a parameter setting the size of the octahedron.</span></div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a10e64245beac741327913dbe25a6abc9"> 362</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell.html#a10e64245beac741327913dbe25a6abc9">init_octahedron</a>(<span class="keywordtype">double</span> l) {</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#aab954caa57c67a26c03b0377f5778bb1">init_octahedron_base</a>(l);</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment"> /** Initializes the cell to be a tetrahedron.</span></div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment"> * \param[in] (x0,y0,z0) the coordinates of the first vertex.</span></div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment"> * \param[in] (x1,y1,z1) the coordinates of the second vertex.</span></div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="comment"> * \param[in] (x2,y2,z2) the coordinates of the third vertex.</span></div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment"> * \param[in] (x3,y3,z3) the coordinates of the fourth vertex.</span></div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell.html#a63e460f0fdabffedd31c0e90a26ec169"> 371</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell.html#a63e460f0fdabffedd31c0e90a26ec169">init_tetrahedron</a>(<span class="keywordtype">double</span> x0,<span class="keywordtype">double</span> y0,<span class="keywordtype">double</span> z0,<span class="keywordtype">double</span> x1,<span class="keywordtype">double</span> y1,<span class="keywordtype">double</span> z1,<span class="keywordtype">double</span> x2,<span class="keywordtype">double</span> y2,<span class="keywordtype">double</span> z2,<span class="keywordtype">double</span> x3,<span class="keywordtype">double</span> y3,<span class="keywordtype">double</span> z3) {</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classvoro_1_1voronoicell__base.html#ae71280e1c36c5f840f870d55e91c027b">init_tetrahedron_base</a>(x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3);</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_allocate(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> m) {};</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_add_memory_vertices(<span class="keywordtype">int</span> i) {};</div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_add_memory_vorder(<span class="keywordtype">int</span> i) {};</div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_pointer(<span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>,<span class="keywordtype">int</span> n) {};</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b,<span class="keywordtype">int</span> c,<span class="keywordtype">int</span> d) {};</div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b,<span class="keywordtype">int</span> c) {};</div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_aux1(<span class="keywordtype">int</span> k) {};</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_aux1(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {};</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_aux1_shift(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {};</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_aux2_copy(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {};</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_pointer(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {};</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux1(<span class="keywordtype">int</span> j) {};</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux2(<span class="keywordtype">int</span> j) {};</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_allocate_aux1(<span class="keywordtype">int</span> i) {};</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_switch_to_aux1(<span class="keywordtype">int</span> i) {};</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_to_aux1(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> m) {};</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux1_offset(<span class="keywordtype">int</span> k,<span class="keywordtype">int</span> m) {};</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_neighbors(std::vector<int> &v) {v.clear();};</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell__base.html#a83d13bf519c98bf0ea5804763ffc967d">voronoicell_base</a>;</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> };</div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="comment">/** \brief Extension of the voronoicell_base class to represent a Voronoi cell</span></div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment"> * with neighbor information.</span></div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="comment"> * This class is an extension of the voronoicell_base class, in cases when the</span></div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment"> * IDs of neighboring particles associated with each face of the Voronoi cell.</span></div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="comment"> * It contains additional data structures mne and ne for storing this</span></div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment"> * information. */</span></div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html"> 403</a></span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell__neighbor.html">voronoicell_neighbor</a> : <span class="keyword">public</span> <a class="code" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a> {</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keyword">using</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a33184cd45a3090291a080c4aff08a2fd">voronoicell_base::nplane</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment"> /** This two dimensional array holds the neighbor information</span></div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment"> * associated with each vertex. mne[p] is a one dimensional</span></div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment"> * array which holds all of the neighbor information for</span></div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment"> * vertices of order p. */</span></div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c"> 410</a></span>  <span class="keywordtype">int</span> **<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>;<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment"> /** This is a two dimensional array that holds the neighbor</span></div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment"> * information associated with each vertex. ne[i] points to a</span></div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment"> * one-dimensional array in mne[nu[i]]. ne[i][j] holds the</span></div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment"> * neighbor information associated with the jth edge of vertex</span></div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment"> * i. It is set to the ID number of the plane that made the</span></div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment"> * face that is clockwise from the jth edge. */</span></div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19"> 417</a></span>  <span class="keywordtype">int</span> **<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>;</div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a4fdf7a7b46bb5b8e6c9613308ad399c0">voronoicell_neighbor</a>();</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a196e44ab9b3caf7d5862fa47ee3341fe">~voronoicell_neighbor</a>();</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#ac6036ae44845e301da1e3656e0e98403">operator=</a>(<a class="code" href="classvoro_1_1voronoicell.html">voronoicell</a> &c);</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#ac6036ae44845e301da1e3656e0e98403">operator=</a>(<a class="code" href="classvoro_1_1voronoicell__neighbor.html">voronoicell_neighbor</a> &c);<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="comment"> /** Cuts the Voronoi cell by a particle whose center is at a</span></div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="comment"> * separation of (x,y,z) from the cell center. The value of rsq</span></div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="comment"> * should be initially set to \f$x^2+y^2+z^2\f$.</span></div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="comment"> * \param[in] (x,y,z) the normal vector to the plane.</span></div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="comment"> * \param[in] rsq the distance along this vector of the plane.</span></div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="comment"> * \param[in] p_id the plane ID (for neighbor tracking only).</span></div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f"> 430</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">nplane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq,<span class="keywordtype">int</span> p_id) {</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,p_id);</div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="comment"> /** This routine calculates the modulus squared of the vector</span></div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment"> * before passing it to the main nplane() routine with full</span></div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment"> * arguments.</span></div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="comment"> * \param[in] (x,y,z) the vector to cut the cell by.</span></div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment"> * \param[in] p_id the plane ID (for neighbor tracking only).</span></div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#aa8bc77ca240ae0675be493b26513eb18"> 440</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#aa8bc77ca240ae0675be493b26513eb18">nplane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">int</span> p_id) {</div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordtype">double</span> rsq=x*x+y*y+z*z;</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,p_id);</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment"> /** This version of the plane routine just makes up the plane</span></div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment"> * ID to be zero. It will only be referenced if neighbor</span></div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="comment"> * tracking is enabled.</span></div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment"> * \param[in] (x,y,z) the vector to cut the cell by.</span></div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="comment"> * \param[in] rsq the modulus squared of the vector.</span></div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#ab71c4487bbca2d20b00e9af2fc6d1ed0"> 451</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#ab71c4487bbca2d20b00e9af2fc6d1ed0">plane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z,<span class="keywordtype">double</span> rsq) {</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }<span class="comment"></span></div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment"> /** Cuts a Voronoi cell using the influence of a particle at</span></div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment"> * (x,y,z), first calculating the modulus squared of this</span></div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment"> * vector before passing it to the main nplane() routine. Zero</span></div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment"> * is supplied as the plane ID, which will be ignored unless</span></div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="comment"> * neighbor tracking is enabled.</span></div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="comment"> * \param[in] (x,y,z) the vector to cut the cell by.</span></div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment"> * \return False if the plane cut deleted the cell entirely,</span></div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment"> * true otherwise. */</span></div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#a8bac2d46226b8dbb88ad3e3d58d10cf7"> 462</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a8bac2d46226b8dbb88ad3e3d58d10cf7">plane</a>(<span class="keywordtype">double</span> x,<span class="keywordtype">double</span> y,<span class="keywordtype">double</span> z) {</div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordtype">double</span> rsq=x*x+y*y+z*z;</div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">return</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">nplane</a>(*<span class="keyword">this</span>,x,y,z,rsq,0);</div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#ac20bf4f827fd1fc20c1596a8cec95fa3">init</a>(<span class="keywordtype">double</span> xmin,<span class="keywordtype">double</span> xmax,<span class="keywordtype">double</span> ymin,<span class="keywordtype">double</span> ymax,<span class="keywordtype">double</span> zmin,<span class="keywordtype">double</span> zmax);</div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a3648ccb2b3bdf7832779ea7d311d129c">init_octahedron</a>(<span class="keywordtype">double</span> l);</div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a71f908538fa59e4a1ab1d44834f1f3f9">init_tetrahedron</a>(<span class="keywordtype">double</span> x0,<span class="keywordtype">double</span> y0,<span class="keywordtype">double</span> z0,<span class="keywordtype">double</span> x1,<span class="keywordtype">double</span> y1,<span class="keywordtype">double</span> z1,<span class="keywordtype">double</span> x2,<span class="keywordtype">double</span> y2,<span class="keywordtype">double</span> z2,<span class="keywordtype">double</span> x3,<span class="keywordtype">double</span> y3,<span class="keywordtype">double</span> z3);</div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#aa3d80872ecb0dbccbc951082428c13c1">check_facets</a>();</div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1b18405092d2229e1001933925f403ca">neighbors</a>(std::vector<int> &v);</div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a868581daaec73455618629e668c92d38">print_edges_neighbors</a>(<span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classvoro_1_1voronoicell__neighbor.html#a2b212f8abaf92200e8ee4b5eee0e60d1"> 472</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a2b212f8abaf92200e8ee4b5eee0e60d1">output_neighbors</a>(FILE *fp=stdout) {</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  std::vector<int> v;<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a1b18405092d2229e1001933925f403ca">neighbors</a>(v);</div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  voro_print_vector(v,fp);</div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordtype">int</span> *paux1;</div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordtype">int</span> *paux2;</div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_allocate(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> m) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[i]=<span class="keyword">new</span> <span class="keywordtype">int</span>[m*i];}</div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_add_memory_vertices(<span class="keywordtype">int</span> i) {</div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordtype">int</span> **pp=<span class="keyword">new</span> <span class="keywordtype">int</span>*[i];</div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=0;j<<a class="code" href="classvoro_1_1voronoicell__base.html#ab0b624e4e72fca14c99bf1c41c430614">current_vertices</a>;j++) pp[j]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[j];</div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keyword">delete</span> [] <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>;<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>=pp;</div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_add_memory_vorder(<span class="keywordtype">int</span> i) {</div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">int</span> **p2=<span class="keyword">new</span> <span class="keywordtype">int</span>*[i];</div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=0;j<<a class="code" href="classvoro_1_1voronoicell__base.html#a14c97918200da778388673728da29274">current_vertex_order</a>;j++) p2[j]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[j];</div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keyword">delete</span> [] <a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>;<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>=p2;</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_pointer(<span class="keywordtype">int</span> <a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>,<span class="keywordtype">int</span> n) {</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[<a class="code" href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">p</a>]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[n]+n*<a class="code" href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571">mec</a>[n];</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b,<span class="keywordtype">int</span> c,<span class="keywordtype">int</span> d) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a][b]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[c][d];}</div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b,<span class="keywordtype">int</span> c) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a][b]=c;}</div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_aux1(<span class="keywordtype">int</span> k) {paux1=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[k]+k*<a class="code" href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571">mec</a>[k];}</div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_aux1(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {paux1[b]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a][b];}</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_aux1_shift(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {paux1[b]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a][b+1];}</div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_aux2_copy(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {</div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  paux2=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[b]+b*<a class="code" href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571">mec</a>[b];</div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;i<b;i++) <a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a][i]=paux2[i];</div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_pointer(<span class="keywordtype">int</span> a,<span class="keywordtype">int</span> b) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[a]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[b];}</div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux1(<span class="keywordtype">int</span> j) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[j]=paux1;}</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux2(<span class="keywordtype">int</span> j) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[j]=paux2;}</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_allocate_aux1(<span class="keywordtype">int</span> i) {paux1=<span class="keyword">new</span> <span class="keywordtype">int</span>[i*<a class="code" href="classvoro_1_1voronoicell__base.html#aafad86ca11af64de2788637b466479f6">mem</a>[i]];}</div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_switch_to_aux1(<span class="keywordtype">int</span> i) {<span class="keyword">delete</span> [] <a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[i];<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[i]=paux1;}</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_copy_to_aux1(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> m) {paux1[m]=<a class="code" href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">mne</a>[i][m];}</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> n_set_to_aux1_offset(<span class="keywordtype">int</span> k,<span class="keywordtype">int</span> m) {<a class="code" href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">ne</a>[k]=paux1+m;}</div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classvoro_1_1voronoicell__base.html#a83d13bf519c98bf0ea5804763ffc967d">voronoicell_base</a>;</div>
|
||||
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> };</div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> }</div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a71f908538fa59e4a1ab1d44834f1f3f9"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a71f908538fa59e4a1ab1d44834f1f3f9">voro::voronoicell_neighbor::init_tetrahedron</a></div><div class="ttdeci">void init_tetrahedron(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02147">cell.cc:2147</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a63e460f0fdabffedd31c0e90a26ec169"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a63e460f0fdabffedd31c0e90a26ec169">voro::voronoicell::init_tetrahedron</a></div><div class="ttdeci">void init_tetrahedron(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00371">cell.hh:371</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af92d19d0e7fc07006bcd8ea30c9df447"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af92d19d0e7fc07006bcd8ea30c9df447">voro::voronoicell_base::output_vertex_orders</a></div><div class="ttdeci">void output_vertex_orders(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01751">cell.cc:1751</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a3f334a0d45c764677418ded3687f005a"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a3f334a0d45c764677418ded3687f005a">voro::voronoicell::nplane</a></div><div class="ttdeci">bool nplane(double x, double y, double z, int p_id)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00328">cell.hh:328</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html">voro::voronoicell_neighbor</a></div><div class="ttdoc">Extension of the voronoicell_base class to represent a Voronoi cell with neighbor information...</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00403">cell.hh:403</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_adfccfa7dce395277535f61f780d87c8b"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#adfccfa7dce395277535f61f780d87c8b">voro::voronoicell_base::cycle_down</a></div><div class="ttdeci">int cycle_down(int a, int p)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00221">cell.hh:221</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a7ea57c92bba3110da745381c5877cec3"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a7ea57c92bba3110da745381c5877cec3">voro::voronoicell_base::centroid</a></div><div class="ttdeci">void centroid(double &cx, double &cy, double &cz)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01408">cell.cc:1408</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a7746d94ae036439d60c3e4a9e37f6d15"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a7746d94ae036439d60c3e4a9e37f6d15">voro::voronoicell_base::up</a></div><div class="ttdeci">int up</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00060">cell.hh:60</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af6fd00a511226fd8dc4f27e34f002fc1"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af6fd00a511226fd8dc4f27e34f002fc1">voro::voronoicell_base::plane_intersects</a></div><div class="ttdeci">bool plane_intersects(double x, double y, double z, double rsq)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01920">cell.cc:1920</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a4e6698c49580b3a64046230e02f0f8ea"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a4e6698c49580b3a64046230e02f0f8ea">voro::voronoicell_base::face_areas</a></div><div class="ttdeci">void face_areas(std::vector< double > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01336">cell.cc:1336</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a5d09c9e36ad159fcd23cfef8855cae61"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a5d09c9e36ad159fcd23cfef8855cae61">voro::voronoicell_base::reset_edges</a></div><div class="ttdeci">void reset_edges()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01572">cell.cc:1572</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ae71280e1c36c5f840f870d55e91c027b"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ae71280e1c36c5f840f870d55e91c027b">voro::voronoicell_base::init_tetrahedron_base</a></div><div class="ttdeci">void init_tetrahedron_base(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00312">cell.cc:312</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a00ff7480ad31fbf06dcca83cb0683e68"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a00ff7480ad31fbf06dcca83cb0683e68">voro::voronoicell::operator=</a></div><div class="ttdeci">void operator=(voronoicell &c)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00306">cell.hh:306</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a1c0657c1d89313089bbd437170c97d46"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a1c0657c1d89313089bbd437170c97d46">voro::voronoicell_base::draw_gnuplot</a></div><div class="ttdeci">void draw_gnuplot(double x, double y, double z, FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01507">cell.cc:1507</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a59dd181ccbcc66370ef8b5c4bf250843"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a59dd181ccbcc66370ef8b5c4bf250843">voro::voronoicell_base::neighbors</a></div><div class="ttdeci">virtual void neighbors(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00197">cell.hh:197</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aafad86ca11af64de2788637b466479f6"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aafad86ca11af64de2788637b466479f6">voro::voronoicell_base::mem</a></div><div class="ttdeci">int * mem</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00225">cell.hh:225</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_aa8bc77ca240ae0675be493b26513eb18"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#aa8bc77ca240ae0675be493b26513eb18">voro::voronoicell_neighbor::nplane</a></div><div class="ttdeci">bool nplane(double x, double y, double z, int p_id)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00440">cell.hh:440</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a8bac2d46226b8dbb88ad3e3d58d10cf7"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a8bac2d46226b8dbb88ad3e3d58d10cf7">voro::voronoicell_neighbor::plane</a></div><div class="ttdeci">bool plane(double x, double y, double z)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00462">cell.hh:462</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a6e95394d82fd835c75a77462c872594e"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a6e95394d82fd835c75a77462c872594e">voro::voronoicell::plane</a></div><div class="ttdeci">bool plane(double x, double y, double z, double rsq)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00338">cell.hh:338</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a3f6c0b98feb914c324248cd3d3baf43d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a3f6c0b98feb914c324248cd3d3baf43d">voro::voronoicell_base::check_duplicates</a></div><div class="ttdeci">void check_duplicates()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00342">cell.cc:342</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_accebb51f721d72fc6d460f1368180571"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#accebb51f721d72fc6d460f1368180571">voro::voronoicell_base::mec</a></div><div class="ttdeci">int * mec</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00229">cell.hh:229</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_abc7ec6777725e0ddffbbe2ecbe81c6a1"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#abc7ec6777725e0ddffbbe2ecbe81c6a1">voro::voronoicell_base::nu</a></div><div class="ttdeci">int * nu</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00082">cell.hh:82</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a10e64245beac741327913dbe25a6abc9"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a10e64245beac741327913dbe25a6abc9">voro::voronoicell::init_octahedron</a></div><div class="ttdeci">void init_octahedron(double l)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00362">cell.hh:362</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af49d85cd2a3daf84d623ab09ab7037cf"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af49d85cd2a3daf84d623ab09ab7037cf">voro::voronoicell_base::construct_relations</a></div><div class="ttdeci">void construct_relations()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00349">cell.cc:349</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a7c061d08eac012b23588032779603a19"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a7c061d08eac012b23588032779603a19">voro::voronoicell_neighbor::ne</a></div><div class="ttdeci">int ** ne</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00417">cell.hh:417</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ab0b624e4e72fca14c99bf1c41c430614"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ab0b624e4e72fca14c99bf1c41c430614">voro::voronoicell_base::current_vertices</a></div><div class="ttdeci">int current_vertices</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00039">cell.hh:39</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_ac20bf4f827fd1fc20c1596a8cec95fa3"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#ac20bf4f827fd1fc20c1596a8cec95fa3">voro::voronoicell_neighbor::init</a></div><div class="ttdeci">void init(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02105">cell.cc:2105</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a0492ecd057449172ca6d3993cb0661e4"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a0492ecd057449172ca6d3993cb0661e4">voro::voronoicell_base::output_face_areas</a></div><div class="ttdeci">void output_face_areas(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00140">cell.hh:140</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a868581daaec73455618629e668c92d38"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a868581daaec73455618629e668c92d38">voro::voronoicell_neighbor::print_edges_neighbors</a></div><div class="ttdeci">virtual void print_edges_neighbors(int i)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02237">cell.cc:2237</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a7e69469f95464afbeb9feec927507243"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a7e69469f95464afbeb9feec927507243">voro::voronoicell_base::p</a></div><div class="ttdeci">int p</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00052">cell.hh:52</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a38929ec0787bb1acac5f1f7b9ec7cadf"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a38929ec0787bb1acac5f1f7b9ec7cadf">voro::voronoicell_base::output_face_freq_table</a></div><div class="ttdeci">void output_face_freq_table(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00153">cell.hh:153</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a14c97918200da778388673728da29274"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a14c97918200da778388673728da29274">voro::voronoicell_base::current_vertex_order</a></div><div class="ttdeci">int current_vertex_order</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00045">cell.hh:45</a></div></div>
|
||||
<div class="ttc" id="config_8hh_html"><div class="ttname"><a href="config_8hh.html">config.hh</a></div><div class="ttdoc">Master configuration file for setting various compile-time options. </div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ac572b3e8ed428c12f38243b48bf39099"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ac572b3e8ed428c12f38243b48bf39099">voro::voronoicell_base::draw_pov_mesh</a></div><div class="ttdeci">void draw_pov_mesh(double x, double y, double z, const char *filename)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00109">cell.hh:109</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a85fec05865342d7efca9d9fd11b60342"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a85fec05865342d7efca9d9fd11b60342">voro::voronoicell_base::ed</a></div><div class="ttdeci">int ** ed</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00078">cell.hh:78</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a2b212f8abaf92200e8ee4b5eee0e60d1"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a2b212f8abaf92200e8ee4b5eee0e60d1">voro::voronoicell_neighbor::output_neighbors</a></div><div class="ttdeci">virtual void output_neighbors(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00472">cell.hh:472</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a33184cd45a3090291a080c4aff08a2fd"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a33184cd45a3090291a080c4aff08a2fd">voro::voronoicell_base::nplane</a></div><div class="ttdeci">bool nplane(vc_class &vc, double x, double y, double z, double rsq, int p_id)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00404">cell.cc:404</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af1a68eea414a0a52b072005af7bd710a"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af1a68eea414a0a52b072005af7bd710a">voro::voronoicell_base::surface_area</a></div><div class="ttdeci">double surface_area()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01372">cell.cc:1372</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a3648ccb2b3bdf7832779ea7d311d129c"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a3648ccb2b3bdf7832779ea7d311d129c">voro::voronoicell_neighbor::init_octahedron</a></div><div class="ttdeci">void init_octahedron(double l)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02127">cell.cc:2127</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a1b18405092d2229e1001933925f403ca"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a1b18405092d2229e1001933925f403ca">voro::voronoicell_neighbor::neighbors</a></div><div class="ttdeci">virtual void neighbors(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02198">cell.cc:2198</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a196e44ab9b3caf7d5862fa47ee3341fe"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a196e44ab9b3caf7d5862fa47ee3341fe">voro::voronoicell_neighbor::~voronoicell_neighbor</a></div><div class="ttdeci">~voronoicell_neighbor()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02191">cell.cc:2191</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af2c9d916f946ba8d9c7e4c0a7e65215b"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af2c9d916f946ba8d9c7e4c0a7e65215b">voro::voronoicell_base::check_memory_for_copy</a></div><div class="ttdeci">void check_memory_for_copy(vc_class &vc, voronoicell_base *vb)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00056">cell.cc:56</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a56b835abe6d47cb67b206202125eb406"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a56b835abe6d47cb67b206202125eb406">voro::voronoicell_base::number_of_faces</a></div><div class="ttdeci">int number_of_faces()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01721">cell.cc:1721</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ab6b1755fb46b262df8f8bc2980c7470a"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ab6b1755fb46b262df8f8bc2980c7470a">voro::voronoicell_base::vertices</a></div><div class="ttdeci">void vertices(std::vector< double > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01760">cell.cc:1760</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_ab71c4487bbca2d20b00e9af2fc6d1ed0"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#ab71c4487bbca2d20b00e9af2fc6d1ed0">voro::voronoicell_neighbor::plane</a></div><div class="ttdeci">bool plane(double x, double y, double z, double rsq)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00451">cell.hh:451</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aa4e3f22d4ff450097571e95caeda1b3d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aa4e3f22d4ff450097571e95caeda1b3d">voro::voronoicell_base::pts</a></div><div class="ttdeci">double * pts</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00085">cell.hh:85</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a335daba5a84e43c278384cae6ecefff3"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a335daba5a84e43c278384cae6ecefff3">voro::voronoicell_base::face_perimeters</a></div><div class="ttdeci">void face_perimeters(std::vector< double > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01807">cell.cc:1807</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ac164b3767ce186360fb3308e349e058c"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ac164b3767ce186360fb3308e349e058c">voro::voronoicell_base::print_edges_neighbors</a></div><div class="ttdeci">virtual void print_edges_neighbors(int i)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00209">cell.hh:209</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a2a238c710c2e91045ef9deae0faf8dc9"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a2a238c710c2e91045ef9deae0faf8dc9">voro::voronoicell_base::current_delete2_size</a></div><div class="ttdeci">int current_delete2_size</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00049">cell.hh:49</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_aa3d80872ecb0dbccbc951082428c13c1"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#aa3d80872ecb0dbccbc951082428c13c1">voro::voronoicell_neighbor::check_facets</a></div><div class="ttdeci">void check_facets()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02159">cell.cc:2159</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a4fdf7a7b46bb5b8e6c9613308ad399c0"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a4fdf7a7b46bb5b8e6c9613308ad399c0">voro::voronoicell_neighbor::voronoicell_neighbor</a></div><div class="ttdeci">voronoicell_neighbor()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02180">cell.cc:2180</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a7dbec3b0b6ea24e22e651cf76f06dc04"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a7dbec3b0b6ea24e22e651cf76f06dc04">voro::voronoicell_base::current_delete_size</a></div><div class="ttdeci">int current_delete_size</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00047">cell.hh:47</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a99837f8d963c57c2c244518ba0ae4b8f"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a99837f8d963c57c2c244518ba0ae4b8f">voro::voronoicell_base::output_neighbors</a></div><div class="ttdeci">virtual void output_neighbors(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00203">cell.hh:203</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aee879731b1f4feb9f630d9b7f9c0062f"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aee879731b1f4feb9f630d9b7f9c0062f">voro::voronoicell_base::output_vertices</a></div><div class="ttdeci">void output_vertices(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01772">cell.cc:1772</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_ac2273c14b7bcc02696be10d9249670c0"><div class="ttname"><a href="classvoro_1_1voronoicell.html#ac2273c14b7bcc02696be10d9249670c0">voro::voronoicell::plane</a></div><div class="ttdeci">bool plane(double x, double y, double z)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00346">cell.hh:346</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_ac6036ae44845e301da1e3656e0e98403"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#ac6036ae44845e301da1e3656e0e98403">voro::voronoicell_neighbor::operator=</a></div><div class="ttdeci">void operator=(voronoicell &c)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00080">cell.cc:80</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a9918d33d62ce9afaff9ed8549ff637f9"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a9918d33d62ce9afaff9ed8549ff637f9">voro::voronoicell::nplane</a></div><div class="ttdeci">bool nplane(double x, double y, double z, double rsq, int p_id)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00318">cell.hh:318</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a5dbd3cd4e9e9a41744e1a2a4c8f550c0"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a5dbd3cd4e9e9a41744e1a2a4c8f550c0">voro::voronoicell_base::number_of_edges</a></div><div class="ttdeci">int number_of_edges()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02007">cell.cc:2007</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a923ffa62bd5d62070cd29e01f3a1327a"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a923ffa62bd5d62070cd29e01f3a1327a">voro::voronoicell_base::draw_pov</a></div><div class="ttdeci">void draw_pov(double x, double y, double z, FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01487">cell.cc:1487</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a6a29a361a158db038a5c4c8e47322bd5"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a6a29a361a158db038a5c4c8e47322bd5">voro::voronoicell_base::max_radius_squared</a></div><div class="ttdeci">double max_radius_squared()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01454">cell.cc:1454</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_aaa1c991b6f5af826bac0f4c7d5f6bf5c"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#aaa1c991b6f5af826bac0f4c7d5f6bf5c">voro::voronoicell_neighbor::mne</a></div><div class="ttdeci">int ** mne</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00410">cell.hh:410</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ad14069d3bebcda9353b07488f512800d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ad14069d3bebcda9353b07488f512800d">voro::voronoicell_base::output_face_orders</a></div><div class="ttdeci">void output_face_orders(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00147">cell.hh:147</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__neighbor_html_a1f0d64e7c42503ada9204cfaeb61027f"><div class="ttname"><a href="classvoro_1_1voronoicell__neighbor.html#a1f0d64e7c42503ada9204cfaeb61027f">voro::voronoicell_neighbor::nplane</a></div><div class="ttdeci">bool nplane(double x, double y, double z, double rsq, int p_id)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00430">cell.hh:430</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_af9bad3fddace8e63ac4c0a5874aee7c5"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#af9bad3fddace8e63ac4c0a5874aee7c5">voro::voronoicell_base::face_orders</a></div><div class="ttdeci">void face_orders(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01866">cell.cc:1866</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a1d86762311d8860960a45cc409b14f0f"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a1d86762311d8860960a45cc409b14f0f">voro::voronoicell_base::cycle_up</a></div><div class="ttdeci">int cycle_up(int a, int p)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00215">cell.hh:215</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a5dc3ae580a5f25424d50d4015aa878ba"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a5dc3ae580a5f25424d50d4015aa878ba">voro::voronoicell_base::output_face_perimeters</a></div><div class="ttdeci">void output_face_perimeters(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00166">cell.hh:166</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ac7cb75aa645c98107c9c0162fabf698e"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ac7cb75aa645c98107c9c0162fabf698e">voro::voronoicell_base::draw_gnuplot</a></div><div class="ttdeci">void draw_gnuplot(double x, double y, double z, const char *filename)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00119">cell.hh:119</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a83e74ffece2b313f6691f467769a16f5"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a83e74ffece2b313f6691f467769a16f5">voro::voronoicell_base::face_vertices</a></div><div class="ttdeci">void face_vertices(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01839">cell.cc:1839</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aab954caa57c67a26c03b0377f5778bb1"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aab954caa57c67a26c03b0377f5778bb1">voro::voronoicell_base::init_octahedron_base</a></div><div class="ttdeci">void init_octahedron_base(double l)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00286">cell.cc:286</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_afe3d860ac52be1326e69ba8c0750530d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#afe3d860ac52be1326e69ba8c0750530d">voro::voronoicell_base::plane_intersects_guess</a></div><div class="ttdeci">bool plane_intersects_guess(double x, double y, double z, double rsq)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01933">cell.cc:1933</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a2b115cbde725e468000a1da234b2fc66"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a2b115cbde725e468000a1da234b2fc66">voro::voronoicell_base::mep</a></div><div class="ttdeci">int ** mep</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00237">cell.hh:237</a></div></div>
|
||||
<div class="ttc" id="common_8hh_html"><div class="ttname"><a href="common_8hh.html">common.hh</a></div><div class="ttdoc">Header file for the small helper functions. </div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a94fc0aba05c11fba465449bc1c4217e9"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a94fc0aba05c11fba465449bc1c4217e9">voro::voronoicell_base::total_edge_distance</a></div><div class="ttdeci">double total_edge_distance()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01468">cell.cc:1468</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a47d450e9b9be0fab103f401ddcaeefac"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a47d450e9b9be0fab103f401ddcaeefac">voro::voronoicell_base::copy</a></div><div class="ttdeci">void copy(voronoicell_base *vb)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00065">cell.cc:65</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a9df53445116446fafea8ffc4ee1afa76"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a9df53445116446fafea8ffc4ee1afa76">voro::voronoicell_base::face_freq_table</a></div><div class="ttdeci">void face_freq_table(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01891">cell.cc:1891</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a095c6bfc1b9b7a087d0b35b443e5c023"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a095c6bfc1b9b7a087d0b35b443e5c023">voro::voronoicell_base::output_custom</a></div><div class="ttdeci">void output_custom(const char *format, FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00182">cell.hh:182</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html">voro::voronoicell_base</a></div><div class="ttdoc">A class representing a single Voronoi cell. </div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00033">cell.hh:33</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html"><div class="ttname"><a href="classvoro_1_1voronoicell.html">voro::voronoicell</a></div><div class="ttdoc">Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information...</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00300">cell.hh:300</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ac959634a1ae2e3201e96624f44e7e71e"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ac959634a1ae2e3201e96624f44e7e71e">voro::voronoicell_base::~voronoicell_base</a></div><div class="ttdeci">~voronoicell_base()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00043">cell.cc:43</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a1b52986eadcea3b6b230626a6dbddc40"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a1b52986eadcea3b6b230626a6dbddc40">voro::voronoicell_base::draw_pov_mesh</a></div><div class="ttdeci">void draw_pov_mesh(double x, double y, double z, FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01542">cell.cc:1542</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a4c7f5406ba3beb1aa0d047592316c68d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a4c7f5406ba3beb1aa0d047592316c68d">voro::voronoicell_base::init_base</a></div><div class="ttdeci">void init_base(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00257">cell.cc:257</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a67d6682dd62b76162f83822a17de6fe5"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a67d6682dd62b76162f83822a17de6fe5">voro::voronoicell_base::output_face_vertices</a></div><div class="ttdeci">void output_face_vertices(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00159">cell.hh:159</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a8a7e29d041abbd58406e2c05a9a6248a"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a8a7e29d041abbd58406e2c05a9a6248a">voro::voronoicell_base::print_edges</a></div><div class="ttdeci">void print_edges()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l02220">cell.cc:2220</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_adfed605232f7e6d1b52276010facbf08"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#adfed605232f7e6d1b52276010facbf08">voro::voronoicell_base::vertex_orders</a></div><div class="ttdeci">void vertex_orders(std::vector< int > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01744">cell.cc:1744</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aae096d26d957c3e5b0f02b20d493a3ff"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aae096d26d957c3e5b0f02b20d493a3ff">voro::voronoicell_base::output_normals</a></div><div class="ttdeci">void output_normals(FILE *fp=stdout)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00173">cell.hh:173</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ab2c8534b380907975eb60f3441d50e1e"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ab2c8534b380907975eb60f3441d50e1e">voro::voronoicell_base::translate</a></div><div class="ttdeci">void translate(double x, double y, double z)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00105">cell.cc:105</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_aebbbd4815cfbbe5cb1c71a682872664d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#aebbbd4815cfbbe5cb1c71a682872664d">voro::voronoicell_base::normals</a></div><div class="ttdeci">void normals(std::vector< double > &v)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01639">cell.cc:1639</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_ae7bb21f644a45946001beef598a1da1f"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#ae7bb21f644a45946001beef598a1da1f">voro::voronoicell_base::check_relations</a></div><div class="ttdeci">void check_relations()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00331">cell.cc:331</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a92f69986a6f78e7b8b6d9f5778ed99ba"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a92f69986a6f78e7b8b6d9f5778ed99ba">voro::voronoicell_base::volume</a></div><div class="ttdeci">double volume()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l01299">cell.cc:1299</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a83d13bf519c98bf0ea5804763ffc967d"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a83d13bf519c98bf0ea5804763ffc967d">voro::voronoicell_base::voronoicell_base</a></div><div class="ttdeci">voronoicell_base()</div><div class="ttdef"><b>Definition:</b> <a href="cell_8cc_source.html#l00020">cell.cc:20</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell__base_html_a8138dc62fc6288c772b0483d0eb4eb96"><div class="ttname"><a href="classvoro_1_1voronoicell__base.html#a8138dc62fc6288c772b0483d0eb4eb96">voro::voronoicell_base::draw_pov</a></div><div class="ttdeci">void draw_pov(double x, double y, double z, const char *filename)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00098">cell.hh:98</a></div></div>
|
||||
<div class="ttc" id="classvoro_1_1voronoicell_html_a573257366d690af4fd8646b4c431ca84"><div class="ttname"><a href="classvoro_1_1voronoicell.html#a573257366d690af4fd8646b4c431ca84">voro::voronoicell::init</a></div><div class="ttdeci">void init(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)</div><div class="ttdef"><b>Definition:</b> <a href="cell_8hh_source.html#l00355">cell.hh:355</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: Data Structure Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Data Structure Index</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href="#letter_U">U</a> | <a class="qindex" href="#letter_V">V</a> | <a class="qindex" href="#letter_W">W</a></div>
|
||||
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  C  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="classvoro_1_1container__base.html">container_base</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1pre__container.html">pre_container</a> (voro)   </td><td rowspan="2" valign="bottom"><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  V  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="structvoro_1_1wall__cone.html">wall_cone</a> (voro)   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1container__periodic.html">container_periodic</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1pre__container__base.html">pre_container_base</a> (voro)   </td><td valign="top"><a class="el" href="structvoro_1_1wall__cylinder.html">wall_cylinder</a> (voro)   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__all.html">c_loop_all</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1container__periodic__base.html">container_periodic_base</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1pre__container__poly.html">pre_container_poly</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1voro__base.html">voro_base</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1wall__list.html">wall_list</a> (voro)   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__all__periodic.html">c_loop_all_periodic</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1container__periodic__poly.html">container_periodic_poly</a> (voro)   </td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  R  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="classvoro_1_1voro__compute.html">voro_compute</a> (voro)   </td><td valign="top"><a class="el" href="structvoro_1_1wall__plane.html">wall_plane</a> (voro)   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__base.html">c_loop_base</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1container__poly.html">container_poly</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1voronoicell.html">voronoicell</a> (voro)   </td><td valign="top"><a class="el" href="structvoro_1_1wall__sphere.html">wall_sphere</a> (voro)   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__order.html">c_loop_order</a> (voro)   </td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  P  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="classvoro_1_1radius__mono.html">radius_mono</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1voronoicell__base.html">voronoicell_base</a> (voro)   </td><td></td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__order__periodic.html">c_loop_order_periodic</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1radius__poly.html">radius_poly</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1voronoicell__neighbor.html">voronoicell_neighbor</a> (voro)   </td><td></td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1c__loop__subset.html">c_loop_subset</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a> (voro)   </td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  U  </div></td></tr></table>
|
||||
</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  W  </div></td></tr></table>
|
||||
</td><td></td></tr>
|
||||
<tr><td valign="top"><a class="el" href="classvoro_1_1container.html">container</a> (voro)   </td><td valign="top"><a class="el" href="structvoro_1_1particle__record.html">particle_record</a> (voro)   </td><td></td></tr>
|
||||
<tr><td></td><td></td><td valign="top"><a class="el" href="classvoro_1_1unitcell.html">unitcell</a> (voro)   </td><td valign="top"><a class="el" href="classvoro_1_1wall.html">wall</a> (voro)   </td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href="#letter_U">U</a> | <a class="qindex" href="#letter_V">V</a> | <a class="qindex" href="#letter_W">W</a></div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:05 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,236 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_all Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__all.html">c_loop_all</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_all Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Class for looping over all of the particles in a container.
|
||||
<a href="classvoro_1_1c__loop__all.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_all:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__all.png" usemap="#voro::c_loop_all_map" alt=""/>
|
||||
<map id="voro::c_loop_all_map" name="voro::c_loop_all_map">
|
||||
<area href="classvoro_1_1c__loop__base.html" title="Base class for looping over particles in a container. " alt="voro::c_loop_base" shape="rect" coords="0,0,116,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a255049d5c5f878a24804ed2e29043e68"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:a255049d5c5f878a24804ed2e29043e68"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all.html#a255049d5c5f878a24804ed2e29043e68">c_loop_all</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:a255049d5c5f878a24804ed2e29043e68"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acab7b0f3917a172844d4d2565913855d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all.html#acab7b0f3917a172844d4d2565913855d">start</a> ()</td></tr>
|
||||
<tr class="separator:acab7b0f3917a172844d4d2565913855d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a322b26b0f78f73b345ee0af92f908df0"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all.html#a322b26b0f78f73b345ee0af92f908df0">inc</a> ()</td></tr>
|
||||
<tr class="separator:a322b26b0f78f73b345ee0af92f908df0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
||||
Additional Inherited Members</h2></td></tr>
|
||||
<tr class="inherit_header pub_attribs_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Data Fields inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>This is one of the simplest loop classes, that scans the computational blocks in order, and scans all the particles within each block in order. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00165">165</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="a255049d5c5f878a24804ed2e29043e68"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_all::c_loop_all </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base container class. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the container class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00171">171</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="a322b26b0f78f73b345ee0af92f908df0"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_all::inc </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Finds the next particle to test. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is another particle, false if no more particles are available. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00183">183</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="acab7b0f3917a172844d4d2565913855d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_all::start </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Sets the class to consider the first particle. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any particle to consider, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00175">175</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -0,0 +1,236 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_all_periodic Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__all__periodic.html">c_loop_all_periodic</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_all_periodic Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>A class for looping over all particles in a <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> or <a class="el" href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations. ">container_periodic_poly</a> class.
|
||||
<a href="classvoro_1_1c__loop__all__periodic.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_all_periodic:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__all__periodic.png" usemap="#voro::c_loop_all_periodic_map" alt=""/>
|
||||
<map id="voro::c_loop_all_periodic_map" name="voro::c_loop_all_periodic_map">
|
||||
<area href="classvoro_1_1c__loop__base.html" title="Base class for looping over particles in a container. " alt="voro::c_loop_base" shape="rect" coords="0,0,155,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a07dc6f74c7a503bb8cb4e7fa4f2e84ff"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:a07dc6f74c7a503bb8cb4e7fa4f2e84ff"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all__periodic.html#a07dc6f74c7a503bb8cb4e7fa4f2e84ff">c_loop_all_periodic</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:a07dc6f74c7a503bb8cb4e7fa4f2e84ff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab7b002f40adfe7116d3db77d6bb95f4c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all__periodic.html#ab7b002f40adfe7116d3db77d6bb95f4c">start</a> ()</td></tr>
|
||||
<tr class="separator:ab7b002f40adfe7116d3db77d6bb95f4c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac25d006faa31cee1d1b6bbc621532651"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__all__periodic.html#ac25d006faa31cee1d1b6bbc621532651">inc</a> ()</td></tr>
|
||||
<tr class="separator:ac25d006faa31cee1d1b6bbc621532651"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
||||
Additional Inherited Members</h2></td></tr>
|
||||
<tr class="inherit_header pub_attribs_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Data Fields inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Since the <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> and <a class="el" href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations. ">container_periodic_poly</a> classes have a fundamentally different memory organization, the regular loop classes cannot be used with them. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00325">325</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="a07dc6f74c7a503bb8cb4e7fa4f2e84ff"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_all_periodic::c_loop_all_periodic </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base periodic container class. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the periodic container class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00331">331</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="ac25d006faa31cee1d1b6bbc621532651"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_all_periodic::inc </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Finds the next particle to test. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is another particle, false if no more particles are available. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00348">348</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab7b002f40adfe7116d3db77d6bb95f4c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_all_periodic::start </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Sets the class to consider the first particle. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any particle to consider, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00336">336</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 609 B |
@@ -0,0 +1,605 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_base Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__base.html">c_loop_base</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="#pub-attribs">Data Fields</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_base Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Base class for looping over particles in a container.
|
||||
<a href="classvoro_1_1c__loop__base.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_base:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__base.png" usemap="#voro::c_loop_base_map" alt=""/>
|
||||
<map id="voro::c_loop_base_map" name="voro::c_loop_base_map">
|
||||
<area href="classvoro_1_1c__loop__all.html" title="Class for looping over all of the particles in a container. " alt="voro::c_loop_all" shape="rect" coords="0,56,173,80"/>
|
||||
<area href="classvoro_1_1c__loop__all__periodic.html" title="A class for looping over all particles in a container_periodic or container_periodic_poly class..." alt="voro::c_loop_all_periodic" shape="rect" coords="183,56,356,80"/>
|
||||
<area href="classvoro_1_1c__loop__order.html" title="Class for looping over all of the particles specified in a pre-assembled particle_order class..." alt="voro::c_loop_order" shape="rect" coords="366,56,539,80"/>
|
||||
<area href="classvoro_1_1c__loop__order__periodic.html" title="Class for looping over all of the particles specified in a pre-assembled particle_order class..." alt="voro::c_loop_order_periodic" shape="rect" coords="549,56,722,80"/>
|
||||
<area href="classvoro_1_1c__loop__subset.html" title="Class for looping over a subset of particles in a container. " alt="voro::c_loop_subset" shape="rect" coords="732,56,905,80"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Data Fields</h2></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>This class forms the base of all classes that can loop over a subset of particles in a contaner in some order. When initialized, it stores constants about the corresponding container geometry. It also contains a number of routines for interrogating which particle currently being considered by the loop, which are common between all of the derived classes. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00078">78</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="acc2351174b5d0a163b172fb016e94216"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_base::c_loop_base </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base container class. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the container class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00124">124</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="aa958fedbef8948a8a359ce00bdb52d07"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::pid </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the ID of the particle currently being considered by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00158">158</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ac9f65f527282809c894c7094291fca83"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void voro::c_loop_base::pos </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>x</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>y</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>z</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the position vector of the particle currently being considered by the loop. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">(x,y,z)</td><td>the position vector of the particle. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00130">130</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a33a5410ec11caa521d05c72e585bd155"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void voro::c_loop_base::pos </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">int & </td>
|
||||
<td class="paramname"><em>pid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>x</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>y</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>z</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double & </td>
|
||||
<td class="paramname"><em>r</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the ID, position vector, and radius of the particle currently being considered by the loop. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">pid</td><td>the particle ID. </td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">(x,y,z)</td><td>the position vector of the particle. </td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>the radius of the particle. If no radius information is available the default radius value is returned. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00141">141</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a759f4fc1cb4b7d5b41b1358c0e4fe4c3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">double voro::c_loop_base::x </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the x position of the particle currently being considered by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00149">149</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2f4b84b1453d680afe11b7877f191758"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">double voro::c_loop_base::y </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the y position of the particle currently being considered by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00152">152</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aec12d78b1e8282f84eac5a6fd67fc3c9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">double voro::c_loop_base::z </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns the z position of the particle currently being considered by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00155">155</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a class="anchor" id="a060e5b0e557141713b6897b0a0728f2d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int* voro::c_loop_base::co</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the particle counts in the associated container data structure. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00104">104</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aef465d2da85b963fa9e0e886ee273541"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::i</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The current x-index of the block under consideration by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00107">107</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab64ac0420d5ebed7d3259dd5c861d5c1"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int** voro::c_loop_base::id</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the particle ID information in the associated container data structure. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00101">101</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3cb6bc5c8b22e57325bb136feba93d9b"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::ijk</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The current index of the block under consideration by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00116">116</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="abbaba2fc0d1fa07760220d37a3cc7ccf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::j</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The current y-index of the block under consideration by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00110">110</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="abf2dcc131f23212c15169e90ba30d6e4"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::k</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The current z-index of the block under consideration by the loop. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00113">113</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0d6046f6de1f80849e5d1d8f3b7212e7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::nx</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The number of blocks in the x direction. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00081">81</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="abb655606af4e184c2982f1a32cd47e12"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::nxy</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A constant, set to the value of nx multiplied by ny, which is used in the routines that step through blocks in sequence. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00089">89</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a68cafa132e9028ed7b143e93e85a102d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::nxyz</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A constant, set to the value of nx*ny*nz, which is used in the routines that step through blocks in sequence. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00092">92</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ac8f42728e3a98149c2185aba833ac5ff"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::ny</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The number of blocks in the y direction. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00083">83</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aaec35b971352bff60f4a446c430f26f8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::nz</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The number of blocks in the z direction. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00085">85</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2b6abbe65d550ae7071aaa28d0fbb534"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">double** voro::c_loop_base::p</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the particle position information in the associated container data structure. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00098">98</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab42c93bbaf7cfc11e3c95f5d38f694e2"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const int voro::c_loop_base::ps</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The number of floating point numbers per particle in the associated container data structure. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00095">95</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2eaa096a64736b5792cdf3d799b95786"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int voro::c_loop_base::q</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The index of the particle under consideration within the current block. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00119">119</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,300 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_order Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__order.html">c_loop_order</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="#pub-attribs">Data Fields</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_order Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class.
|
||||
<a href="classvoro_1_1c__loop__order.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_order:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__order.png" usemap="#voro::c_loop_order_map" alt=""/>
|
||||
<map id="voro::c_loop_order_map" name="voro::c_loop_order_map">
|
||||
<area href="classvoro_1_1c__loop__base.html" title="Base class for looping over particles in a container. " alt="voro::c_loop_base" shape="rect" coords="0,0,120,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a08bc288a867bff0716d67fde7f18b892"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:a08bc288a867bff0716d67fde7f18b892"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#a08bc288a867bff0716d67fde7f18b892">c_loop_order</a> (c_class &con, <a class="el" href="classvoro_1_1particle__order.html">particle_order</a> &vo_)</td></tr>
|
||||
<tr class="separator:a08bc288a867bff0716d67fde7f18b892"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0e03892771119212847d1ea7c56c5228"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#a0e03892771119212847d1ea7c56c5228">start</a> ()</td></tr>
|
||||
<tr class="separator:a0e03892771119212847d1ea7c56c5228"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae2e1c198611110487e9b41c17cae65a7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#ae2e1c198611110487e9b41c17cae65a7">inc</a> ()</td></tr>
|
||||
<tr class="separator:ae2e1c198611110487e9b41c17cae65a7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Data Fields</h2></td></tr>
|
||||
<tr class="memitem:a3a9be1df3e0f88e0e3e6fc0458949987"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#a3a9be1df3e0f88e0e3e6fc0458949987">vo</a></td></tr>
|
||||
<tr class="separator:a3a9be1df3e0f88e0e3e6fc0458949987"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9b82e0a6ce7c6ed0456738cf23e08c61"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#a9b82e0a6ce7c6ed0456738cf23e08c61">cp</a></td></tr>
|
||||
<tr class="separator:a9b82e0a6ce7c6ed0456738cf23e08c61"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6c2b7ac4d078f84490b9433523bf766f"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order.html#a6c2b7ac4d078f84490b9433523bf766f">op</a></td></tr>
|
||||
<tr class="separator:a6c2b7ac4d078f84490b9433523bf766f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_attribs_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Data Fields inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>The <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class can be used to create a specific order of particles within the container. This class can then loop over these particles in this order. The class is particularly useful in cases where the ordering of the output must match the ordering of particles as they were inserted into the container. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00268">268</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="a08bc288a867bff0716d67fde7f18b892"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_order::c_loop_order </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a> & </td>
|
||||
<td class="paramname"><em>vo_</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base class, and sets up a reference to the ordering class to use. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the container class to use. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">vo_</td><td>the ordering class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00282">282</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="ae2e1c198611110487e9b41c17cae65a7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_order::inc </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Finds the next particle to test. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is another particle, false if no more particles are available. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00298">298</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0e03892771119212847d1ea7c56c5228"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_order::start </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Sets the class to consider the first particle. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any particle to consider, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00287">287</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a class="anchor" id="a9b82e0a6ce7c6ed0456738cf23e08c61"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int* voro::c_loop_order::cp</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the current position in the ordering class. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00273">273</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a6c2b7ac4d078f84490b9433523bf766f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int* voro::c_loop_order::op</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the end position in the ordering class. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00275">275</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3a9be1df3e0f88e0e3e6fc0458949987"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a>& voro::c_loop_order::vo</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A reference to the ordering class to use. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00271">271</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 519 B |
@@ -0,0 +1,300 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_order_periodic Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__order__periodic.html">c_loop_order_periodic</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="#pub-attribs">Data Fields</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_order_periodic Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Class for looping over all of the particles specified in a pre-assembled <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class, for use with <a class="el" href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations. ">container_periodic</a> classes.
|
||||
<a href="classvoro_1_1c__loop__order__periodic.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_order_periodic:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__order__periodic.png" usemap="#voro::c_loop_order_periodic_map" alt=""/>
|
||||
<map id="voro::c_loop_order_periodic_map" name="voro::c_loop_order_periodic_map">
|
||||
<area href="classvoro_1_1c__loop__base.html" title="Base class for looping over particles in a container. " alt="voro::c_loop_base" shape="rect" coords="0,0,173,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:adb9aea9a009c1dfdd231b608257d04f9"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:adb9aea9a009c1dfdd231b608257d04f9"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#adb9aea9a009c1dfdd231b608257d04f9">c_loop_order_periodic</a> (c_class &con, <a class="el" href="classvoro_1_1particle__order.html">particle_order</a> &vo_)</td></tr>
|
||||
<tr class="separator:adb9aea9a009c1dfdd231b608257d04f9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3734764b6b10670ce820de143d118d8e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#a3734764b6b10670ce820de143d118d8e">start</a> ()</td></tr>
|
||||
<tr class="separator:a3734764b6b10670ce820de143d118d8e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae34027247718bedc32b705ceb5b029de"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#ae34027247718bedc32b705ceb5b029de">inc</a> ()</td></tr>
|
||||
<tr class="separator:ae34027247718bedc32b705ceb5b029de"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Data Fields</h2></td></tr>
|
||||
<tr class="memitem:a73e215fc8915ed65f17e633d85c0f018"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#a73e215fc8915ed65f17e633d85c0f018">vo</a></td></tr>
|
||||
<tr class="separator:a73e215fc8915ed65f17e633d85c0f018"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a281ac4b9e4f3c687081f067239fdd982"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#a281ac4b9e4f3c687081f067239fdd982">cp</a></td></tr>
|
||||
<tr class="separator:a281ac4b9e4f3c687081f067239fdd982"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a80063187d6d4ea8e8bb2efe02091a475"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__order__periodic.html#a80063187d6d4ea8e8bb2efe02091a475">op</a></td></tr>
|
||||
<tr class="separator:a80063187d6d4ea8e8bb2efe02091a475"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_attribs_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Data Fields inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>The <a class="el" href="classvoro_1_1particle__order.html" title="A class for storing ordering information when particles are added to a container. ...">particle_order</a> class can be used to create a specific order of particles within the container. This class can then loop over these particles in this order. The class is particularly useful in cases where the ordering of the output must match the ordering of particles as they were inserted into the container. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00403">403</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="adb9aea9a009c1dfdd231b608257d04f9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_order_periodic::c_loop_order_periodic </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a> & </td>
|
||||
<td class="paramname"><em>vo_</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base class, and sets up a reference to the ordering class to use. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the container class to use. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">vo_</td><td>the ordering class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00417">417</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="ae34027247718bedc32b705ceb5b029de"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_order_periodic::inc </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Finds the next particle to test. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is another particle, false if no more particles are available. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00433">433</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3734764b6b10670ce820de143d118d8e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_order_periodic::start </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Sets the class to consider the first particle. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any particle to consider, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00422">422</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a class="anchor" id="a281ac4b9e4f3c687081f067239fdd982"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int* voro::c_loop_order_periodic::cp</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the current position in the ordering class. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00408">408</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a80063187d6d4ea8e8bb2efe02091a475"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int* voro::c_loop_order_periodic::op</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A pointer to the end position in the ordering class. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00410">410</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a73e215fc8915ed65f17e633d85c0f018"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="classvoro_1_1particle__order.html">particle_order</a>& voro::c_loop_order_periodic::vo</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>A reference to the ordering class to use. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00406">406</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 640 B |
@@ -0,0 +1,441 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||
<title>Voro++: voro::c_loop_subset Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">Voro++
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.5 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><b>voro</b></li><li class="navelem"><a class="el" href="classvoro_1_1c__loop__subset.html">c_loop_subset</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="#pub-attribs">Data Fields</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">voro::c_loop_subset Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Class for looping over a subset of particles in a container.
|
||||
<a href="classvoro_1_1c__loop__subset.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::c_loop_subset:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center">
|
||||
<img src="classvoro_1_1c__loop__subset.png" usemap="#voro::c_loop_subset_map" alt=""/>
|
||||
<map id="voro::c_loop_subset_map" name="voro::c_loop_subset_map">
|
||||
<area href="classvoro_1_1c__loop__base.html" title="Base class for looping over particles in a container. " alt="voro::c_loop_base" shape="rect" coords="0,0,125,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||
Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:aab236b412de99f7a58d77d23a25ff44f"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:aab236b412de99f7a58d77d23a25ff44f"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#aab236b412de99f7a58d77d23a25ff44f">c_loop_subset</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:aab236b412de99f7a58d77d23a25ff44f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a585f47e725dc0de645defc8dc0d463cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#a585f47e725dc0de645defc8dc0d463cb">setup_sphere</a> (double vx, double vy, double vz, double r, bool bounds_test=true)</td></tr>
|
||||
<tr class="separator:a585f47e725dc0de645defc8dc0d463cb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2aba9be724d35e088e3597dc9181182d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#a2aba9be724d35e088e3597dc9181182d">setup_box</a> (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, bool bounds_test=true)</td></tr>
|
||||
<tr class="separator:a2aba9be724d35e088e3597dc9181182d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a688ef02340f6a9bc64c77c2de4c4ae3d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#a688ef02340f6a9bc64c77c2de4c4ae3d">setup_intbox</a> (int ai_, int bi_, int aj_, int bj_, int ak_, int bk_)</td></tr>
|
||||
<tr class="separator:a688ef02340f6a9bc64c77c2de4c4ae3d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4c9709bc992e33668471e292474c39f4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#a4c9709bc992e33668471e292474c39f4">start</a> ()</td></tr>
|
||||
<tr class="separator:a4c9709bc992e33668471e292474c39f4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af45a6a610d039dc8c8434caf61b092c6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#af45a6a610d039dc8c8434caf61b092c6">inc</a> ()</td></tr>
|
||||
<tr class="separator:af45a6a610d039dc8c8434caf61b092c6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplParams" colspan="2">template<class c_class > </td></tr>
|
||||
<tr class="memitem:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#acc2351174b5d0a163b172fb016e94216">c_loop_base</a> (c_class &con)</td></tr>
|
||||
<tr class="separator:acc2351174b5d0a163b172fb016e94216 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac9f65f527282809c894c7094291fca83">pos</a> (double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>)</td></tr>
|
||||
<tr class="separator:ac9f65f527282809c894c7094291fca83 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a33a5410ec11caa521d05c72e585bd155">pos</a> (int &<a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a>, double &<a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a>, double &r)</td></tr>
|
||||
<tr class="separator:a33a5410ec11caa521d05c72e585bd155 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a759f4fc1cb4b7d5b41b1358c0e4fe4c3">x</a> ()</td></tr>
|
||||
<tr class="separator:a759f4fc1cb4b7d5b41b1358c0e4fe4c3 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2f4b84b1453d680afe11b7877f191758">y</a> ()</td></tr>
|
||||
<tr class="separator:a2f4b84b1453d680afe11b7877f191758 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aec12d78b1e8282f84eac5a6fd67fc3c9">z</a> ()</td></tr>
|
||||
<tr class="separator:aec12d78b1e8282f84eac5a6fd67fc3c9 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aa958fedbef8948a8a359ce00bdb52d07">pid</a> ()</td></tr>
|
||||
<tr class="separator:aa958fedbef8948a8a359ce00bdb52d07 inherit pub_methods_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Data Fields</h2></td></tr>
|
||||
<tr class="memitem:ac5d8b2aa34f936022e9059ca093b914c"><td class="memItemLeft" align="right" valign="top">c_loop_subset_mode </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__subset.html#ac5d8b2aa34f936022e9059ca093b914c">mode</a></td></tr>
|
||||
<tr class="separator:ac5d8b2aa34f936022e9059ca093b914c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_attribs_classvoro_1_1c__loop__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classvoro_1_1c__loop__base')"><img src="closed.png" alt="-"/> Data Fields inherited from <a class="el" href="classvoro_1_1c__loop__base.html">voro::c_loop_base</a></td></tr>
|
||||
<tr class="memitem:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a0d6046f6de1f80849e5d1d8f3b7212e7">nx</a></td></tr>
|
||||
<tr class="separator:a0d6046f6de1f80849e5d1d8f3b7212e7 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ac8f42728e3a98149c2185aba833ac5ff">ny</a></td></tr>
|
||||
<tr class="separator:ac8f42728e3a98149c2185aba833ac5ff inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aaec35b971352bff60f4a446c430f26f8">nz</a></td></tr>
|
||||
<tr class="separator:aaec35b971352bff60f4a446c430f26f8 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abb655606af4e184c2982f1a32cd47e12">nxy</a></td></tr>
|
||||
<tr class="separator:abb655606af4e184c2982f1a32cd47e12 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a68cafa132e9028ed7b143e93e85a102d">nxyz</a></td></tr>
|
||||
<tr class="separator:a68cafa132e9028ed7b143e93e85a102d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab42c93bbaf7cfc11e3c95f5d38f694e2">ps</a></td></tr>
|
||||
<tr class="separator:ab42c93bbaf7cfc11e3c95f5d38f694e2 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2b6abbe65d550ae7071aaa28d0fbb534">p</a></td></tr>
|
||||
<tr class="separator:a2b6abbe65d550ae7071aaa28d0fbb534 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#ab64ac0420d5ebed7d3259dd5c861d5c1">id</a></td></tr>
|
||||
<tr class="separator:ab64ac0420d5ebed7d3259dd5c861d5c1 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a060e5b0e557141713b6897b0a0728f2d">co</a></td></tr>
|
||||
<tr class="separator:a060e5b0e557141713b6897b0a0728f2d inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#aef465d2da85b963fa9e0e886ee273541">i</a></td></tr>
|
||||
<tr class="separator:aef465d2da85b963fa9e0e886ee273541 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abbaba2fc0d1fa07760220d37a3cc7ccf">j</a></td></tr>
|
||||
<tr class="separator:abbaba2fc0d1fa07760220d37a3cc7ccf inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#abf2dcc131f23212c15169e90ba30d6e4">k</a></td></tr>
|
||||
<tr class="separator:abf2dcc131f23212c15169e90ba30d6e4 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a3cb6bc5c8b22e57325bb136feba93d9b">ijk</a></td></tr>
|
||||
<tr class="separator:a3cb6bc5c8b22e57325bb136feba93d9b inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1c__loop__base.html#a2eaa096a64736b5792cdf3d799b95786">q</a></td></tr>
|
||||
<tr class="separator:a2eaa096a64736b5792cdf3d799b95786 inherit pub_attribs_classvoro_1_1c__loop__base"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>This class can loop over a subset of particles in a certain geometrical region within the container. The class can be set up to loop over a rectangular box or sphere. It can also rectangular group of internal computational blocks. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00218">218</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="aab236b412de99f7a58d77d23a25ff44f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class c_class > </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">voro::c_loop_subset::c_loop_subset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">c_class & </td>
|
||||
<td class="paramname"><em>con</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The constructor copies several necessary constants from the base container class. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">con</td><td>the container class to use. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00228">228</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="af45a6a610d039dc8c8434caf61b092c6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_subset::inc </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Finds the next particle to test. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is another particle, false if no more particles are available. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00238">238</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2aba9be724d35e088e3597dc9181182d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void voro::c_loop_subset::setup_box </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>xmin</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>xmax</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>ymin</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>ymax</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>zmin</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>zmax</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">bool </td>
|
||||
<td class="paramname"><em>bounds_test</em> = <code>true</code> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Initializes the class to loop over all particles in a rectangular box. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(xmin,xmax)</td><td>the minimum and maximum x coordinates of the box. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(ymin,ymax)</td><td>the minimum and maximum y coordinates of the box. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(zmin,zmax)</td><td>the minimum and maximum z coordinates of the box. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">bounds_test</td><td>whether to do detailed bounds checking. If this is false then the class will loop over all particles in blocks that overlap the given box. If it is true, the particle will only loop over the particles which actually lie within the box. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any valid point to loop over, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8cc_source.html#l00098">98</a> of file <a class="el" href="c__loops_8cc_source.html">c_loops.cc</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a688ef02340f6a9bc64c77c2de4c4ae3d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void voro::c_loop_subset::setup_intbox </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>ai_</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>bi_</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>aj_</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>bj_</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>ak_</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>bk_</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Initializes the class to loop over all particles in a rectangular subgrid of blocks. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(ai_,bi_)</td><td>the subgrid range in the x-direction, inclusive of both ends. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(aj_,bj_)</td><td>the subgrid range in the y-direction, inclusive of both ends. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(ak_,bk_)</td><td>the subgrid range in the z-direction, inclusive of both ends. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any valid point to loop over, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8cc_source.html#l00044">44</a> of file <a class="el" href="c__loops_8cc_source.html">c_loops.cc</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a585f47e725dc0de645defc8dc0d463cb"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void voro::c_loop_subset::setup_sphere </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>vx</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>vy</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>vz</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">double </td>
|
||||
<td class="paramname"><em>r</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">bool </td>
|
||||
<td class="paramname"><em>bounds_test</em> = <code>true</code> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Initializes a <a class="el" href="classvoro_1_1c__loop__subset.html" title="Class for looping over a subset of particles in a container. ">c_loop_subset</a> object to scan over all particles within a given sphere. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">(vx,vy,vz)</td><td>the position vector of the center of the sphere. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the radius of the sphere. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">bounds_test</td><td>whether to do detailed bounds checking. If this is false then the class will loop over all particles in blocks that overlap the given sphere. If it is true, the particle will only loop over the particles which actually lie within the sphere. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any valid point to loop over, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8cc_source.html#l00024">24</a> of file <a class="el" href="c__loops_8cc_source.html">c_loops.cc</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4c9709bc992e33668471e292474c39f4"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool voro::c_loop_subset::start </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Starts the loop by finding the first particle within the container to consider. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>True if there is any particle to consider, false otherwise. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8cc_source.html#l00079">79</a> of file <a class="el" href="c__loops_8cc_source.html">c_loops.cc</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a class="anchor" id="ac5d8b2aa34f936022e9059ca093b914c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">c_loop_subset_mode voro::c_loop_subset::mode</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>The current mode of operation, determining whether tests should be applied to particles to ensure they are within a certain geometrical object. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="c__loops_8hh_source.html#l00223">223</a> of file <a class="el" href="c__loops_8hh_source.html">c_loops.hh</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||
<li><a class="el" href="c__loops_8hh_source.html">c_loops.hh</a></li>
|
||||
<li><a class="el" href="c__loops_8cc_source.html">c_loops.cc</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Oct 17 2013 11:14:00 for Voro++ by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.5
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 537 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.4 KiB |