Example #1
0
 def atoms_inside(self, atoms):
     """Decides which atoms are inside the body (see Body class)."""
     
     atoms_inside = Cylinder.atoms_inside(self, atoms)
     atoms_inside *= self.periodicity.mask_unique(atoms - self.shift_vector,
                                                  atoms_inside)
     return atoms_inside
Example #2
0
 def __init__(self, geometry, period, **kwargs):
     """Creates a Periodic1DCylinder instance.
     
     Keyword args:
         shift_vector: Origin of the body.        
         radius: Radius of the cylinder.
     """
     self.radius = kwargs.pop("radius")
     self.periodicity = period
     kwargs["radius1"] = self.radius
     kwargs["radius2"] = self.radius
     axis = period.get_axis("cartesian")[0]
     axisnorm = np.linalg.norm(axis) 
     kwargs["point1"] = -axis / axisnorm * PERIODIC_TOLERANCE 
     kwargs["point2"] = axis  + axis / axisnorm * PERIODIC_TOLERANCE 
     kwargs["point1_coordsys"] = "cartesian"
     kwargs["point2_coordsys"] = "cartesian"
     Cylinder.__init__(self, geometry, period, **kwargs)