Class Voro.voronoicell_neighbor

  • Enclosing class:
    Voro

    class Voro.voronoicell_neighbor
    extends Voro.voronoicell_base
    \brief Extension of the voronoicell_base class to represent a Voronoi cell with neighbor information. This class is an extension of the voronoicell_base class, in cases when the IDs of neighboring particles associated with each face of the Voronoi cell. It contains additional data structures mne and ne for storing this information.
    • Field Detail

      • paux1nemne

        private int[] paux1nemne
      • paux1ne

        private int[] paux1ne
      • paux2nemne

        private int[] paux2nemne
      • paux2ne

        private int[] paux2ne
    • Method Detail

      • delete

        public void delete()
        The class destructor frees the dynamically allocated memory for storing neighbor information.
        Overrides:
        delete in class Voro.voronoicell_base
      • operatorEquals

        public void operatorEquals​(Voro.voronoicell_neighbor c)
        Copies the information from another voronoicell_neighbor class into this class, extending memory allocation if necessary. \param[in] c the class to copy.
      • nplane

        public boolean nplane​(double x,
                              double y,
                              double z,
                              double rsq,
                              int p_id)
        Cuts the Voronoi cell by a particle whose center is at a separation of (x,y,z) from the cell center. The value of rsq should be initially set to \f$x^2+y^2+z^2\f$. \param[in] (x,y,z) the normal vector to the plane. \param[in] rsq the distance along this vector of the plane. \param[in] p_id the plane ID (for neighbor tracking only). \return False if the plane cut deleted the cell entirely, true otherwise.
      • nplane

        public boolean nplane​(double x,
                              double y,
                              double z,
                              int p_id)
        This routine calculates the modulus squared of the vector before passing it to the main nplane() routine with full arguments. \param[in] (x,y,z) the vector to cut the cell by. \param[in] p_id the plane ID (for neighbor tracking only). \return False if the plane cut deleted the cell entirely, true otherwise.
      • plane

        public boolean plane​(double x,
                             double y,
                             double z,
                             double rsq)
        This version of the plane routine just makes up the plane ID to be zero. It will only be referenced if neighbor tracking is enabled. \param[in] (x,y,z) the vector to cut the cell by. \param[in] rsq the modulus squared of the vector. \return False if the plane cut deleted the cell entirely, true otherwise.
      • plane

        public boolean plane​(double x,
                             double y,
                             double z)
        Cuts a Voronoi cell using the influence of a particle at (x,y,z), first calculating the modulus squared of this vector before passing it to the main nplane() routine. Zero is supplied as the plane ID, which will be ignored unless neighbor tracking is enabled. \param[in] (x,y,z) the vector to cut the cell by. \return False if the plane cut deleted the cell entirely, true otherwise.
      • init

        public void init​(double xmin,
                         double xmax,
                         double ymin,
                         double ymax,
                         double zmin,
                         double zmax)
        This initializes the class to be a rectangular box. It calls the base class initialization routine to set up the edge and vertex information, and then sets up the neighbor information, with initial faces being assigned ID numbers from -1 to -6. \param[in] (xmin,xmax) the minimum and maximum x coordinates. \param[in] (ymin,ymax) the minimum and maximum y coordinates. \param[in] (zmin,zmax) the minimum and maximum z coordinates.
      • init_octahedron

        public void init_octahedron​(double l)
        This initializes the class to be an octahedron. It calls the base class initialization routine to set up the edge and vertex information, and then sets up the neighbor information, with the initial faces being assigned ID numbers from -1 to -8. \param[in] l The distance from the octahedron center to a vertex. Six vertices are initialized at (-l,0,0), (l,0,0), (0,-l,0), (0,l,0), (0,0,-l), and (0,0,l).
      • init_tetrahedron

        public 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)
        This initializes the class to be a tetrahedron. It calls the base class initialization routine to set up the edge and vertex information, and then sets up the neighbor information, with the initial faces being assigned ID numbers from -1 to -4. \param (x0,y0,z0) a position vector for the first vertex. \param (x1,y1,z1) a position vector for the second vertex. \param (x2,y2,z2) a position vector for the third vertex. \param (x3,y3,z3) a position vector for the fourth vertex.
      • check_facets

        public void check_facets()
        This routine checks to make sure the neighbor information of each face is consistent.
      • print_edges_neighbors

        public void print_edges_neighbors​(int i)
        This prints out the neighbor information for vertex i.
      • output_neighbors

        public void output_neighbors​(java.io.RandomAccessFile raFile)
      • memory_setup

        private void memory_setup()
        The class constructor allocates memory for storing neighbor information.
      • n_allocate

        private void n_allocate​(int i,
                                int m)
      • n_add_memory_vertices

        private void n_add_memory_vertices​(int i)
      • n_add_memory_vorder

        private void n_add_memory_vorder​(int i)
      • n_set_pointer

        private void n_set_pointer​(int p,
                                   int n)
      • n_copy

        private void n_copy​(int a,
                            int b,
                            int c,
                            int d)
      • n_set

        private void n_set​(int a,
                           int b,
                           int c)
      • n_set_aux1

        private void n_set_aux1​(int k)
      • n_copy_aux1

        private void n_copy_aux1​(int a,
                                 int b)
      • n_copy_aux1_shift

        private void n_copy_aux1_shift​(int a,
                                       int b)
      • n_set_aux2_copy

        private void n_set_aux2_copy​(int a,
                                     int b)
      • n_copy_pointer

        private void n_copy_pointer​(int a,
                                    int b)
      • n_set_to_aux1

        private void n_set_to_aux1​(int j)
      • n_set_to_aux2

        private void n_set_to_aux2​(int j)
      • n_allocate_aux1

        private void n_allocate_aux1​(int i)
      • n_switch_to_aux1

        private void n_switch_to_aux1​(int i)
      • n_copy_to_aux1

        private void n_copy_to_aux1​(int i,
                                    int m)
      • n_set_to_aux1_offset

        private void n_set_to_aux1_offset​(int k,
                                          int m)