schrodinger.application.matsci.shapes module¶
Classes and functions to handle various shapes.
Copyright Schrodinger, LLC. All rights reserved.
-
class
schrodinger.application.matsci.shapes.
Vertex
(index, coordinates)¶ Bases:
object
Class to manage vertices.
-
__init__
(index, coordinates)¶ Create a vertex instance.
Parameters: - index (int) – the index of this vertex
- coordinates (numpy.array) – the coordinates of this vertex
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage vertices.\n ', '__init__': <function Vertex.__init__>, '__dict__': <attribute '__dict__' of 'Vertex' objects>, '__weakref__': <attribute '__weakref__' of 'Vertex' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
schrodinger.application.matsci.shapes.
Edge
(index, vertex_1, vertex_2)¶ Bases:
object
Class to manage edges.
-
__init__
(index, vertex_1, vertex_2)¶ Create an edge instance.
Parameters:
-
getLength
()¶ Return the edge length.
Return type: float Returns: the edge length in Ang.
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage edges.\n ', '__init__': <function Edge.__init__>, 'getLength': <function Edge.getLength>, '__dict__': <attribute '__dict__' of 'Edge' objects>, '__weakref__': <attribute '__weakref__' of 'Edge' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
schrodinger.application.matsci.shapes.
Face
(index, indices, points, num_unique)¶ Bases:
object
Class to manage faces.
-
__init__
(index, indices, points, num_unique)¶ Create a face instance.
Parameters: - index (int) – the index of this face
- indices (list) – the indices of points making up this face
- points (list of numpy.array) – the points making up this face
- num_unique (int) – the number of symmetry unique edges per face
-
getEdges
()¶ Return a list of Edge.
Return type: list Returns: contains all Edge for this face
-
setNormal
()¶ Set the normal to this face.
-
setArea
()¶ Set the area of this face.
-
getReferenceEdges
(edges, num_unique)¶ Return a list containing the num_unique number of unique edges. These will be the reference edges used to orient the reference face of the polyhedron.
Parameters: - edges (list) – all Edge objects for this face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: unique Edge objects to serve as references
-
intersectSegmentAndPlane
(line_start, line_end, inf_nan_thresh=1e-12, distance_thresh=0.0001)¶ Return the intersection point of the specified line segment and the plane in which this face resides or return None if there is no intersection.
Parameters: - line_start (numpy.array) – the starting point of the line segment
- line_end (numpy.array) – the ending point of the line segment
- inf_nan_thresh (float) – this parameter handles numerical precision for inf and nan cases
- distance_thresh (float) – this parameter controls how the intersection of line segment end-points and a plane are handled for cases where one of the end-points lies in (or near) the plane (see the comment near the module level constant DISTANCE_THRESH)
Return type: numpy.array or None
Returns: the single point of intersection along the line segment or None if there is no intersection
-
insideFace
(point)¶ Return true if the query point lies on or inside the boundaries of this face, false otherwise.
Parameters: point (numpy.array) – a query point Return type: bool Returns: true if the query point lies on or inside the face boundaries, false otherwise
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage faces.\n ', '__init__': <function Face.__init__>, 'getEdges': <function Face.getEdges>, 'setNormal': <function Face.setNormal>, 'setArea': <function Face.setArea>, 'getReferenceEdges': <function Face.getReferenceEdges>, 'intersectSegmentAndPlane': <function Face.intersectSegmentAndPlane>, 'insideFace': <function Face.insideFace>, '__dict__': <attribute '__dict__' of 'Face' objects>, '__weakref__': <attribute '__weakref__' of 'Face' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
schrodinger.application.matsci.shapes.
ConvexPolyhedron
(params, center, ref_face_idx, ref_face_normal_along, ref_edge_idx, ref_edge_along)¶ Bases:
object
Class to manage a convex polyhedron.
-
__init__
(params, center, ref_face_idx, ref_face_normal_along, ref_edge_idx, ref_edge_along)¶ Create an instance.
Parameters: - params (list) – list of floating point parameters defining the polyhedron
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a convex polyhedron.\n ', '__init__': <function ConvexPolyhedron.__init__>, 'updateShape': <function ConvexPolyhedron.updateShape>, 'getVertices': <function ConvexPolyhedron.getVertices>, 'getFaces': <function ConvexPolyhedron.getFaces>, 'translateVertices': <function ConvexPolyhedron.translateVertices>, 'getSurfaceArea': <function ConvexPolyhedron.getSurfaceArea>, 'getReferenceFaces': <function ConvexPolyhedron.getReferenceFaces>, 'alignPolyhedron': <function ConvexPolyhedron.alignPolyhedron>, 'makeTemplate': <function ConvexPolyhedron.makeTemplate>, 'addPointsToTemplate': <function ConvexPolyhedron.addPointsToTemplate>, 'addAlignmentAxesToTemplate': <function ConvexPolyhedron.addAlignmentAxesToTemplate>, 'addNormalsToTemplate': <function ConvexPolyhedron.addNormalsToTemplate>, 'getSegmentPlaneIntersections': <function ConvexPolyhedron.getSegmentPlaneIntersections>, 'addSegmentPlaneIntersectionsToTemplate': <function ConvexPolyhedron.addSegmentPlaneIntersectionsToTemplate>, 'pointInside': <function ConvexPolyhedron.pointInside>, 'allFacesIntersected': <function ConvexPolyhedron.allFacesIntersected>, '__dict__': <attribute '__dict__' of 'ConvexPolyhedron' objects>, '__weakref__': <attribute '__weakref__' of 'ConvexPolyhedron' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
schrodinger.application.matsci.shapes.
Cube
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a cube.
-
NAME
= 'cube'¶
-
DEFAULT
= [5.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'platonic'¶
-
VERTICES
= [array([0.5, 0.5, 0.5]), array([ 0.5, 0.5, -0.5]), array([ 0.5, -0.5, 0.5]), array([ 0.5, -0.5, -0.5]), array([-0.5, 0.5, 0.5]), array([-0.5, 0.5, -0.5]), array([-0.5, -0.5, 0.5]), array([-0.5, -0.5, -0.5])]¶
-
INDICES
= [[1, 3, 4, 2], [5, 1, 2, 6], [7, 5, 6, 8], [3, 7, 8, 4], [1, 5, 7, 3], [4, 8, 6, 2]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a cube.\n ', 'NAME': 'cube', 'DEFAULT': [5.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'platonic', 'VERTICES': [array([0.5, 0.5, 0.5]), array([ 0.5, 0.5, -0.5]), array([ 0.5, -0.5, 0.5]), array([ 0.5, -0.5, -0.5]), array([-0.5, 0.5, 0.5]), array([-0.5, 0.5, -0.5]), array([-0.5, -0.5, 0.5]), array([-0.5, -0.5, -0.5])], 'INDICES': [[1, 3, 4, 2], [5, 1, 2, 6], [7, 5, 6, 8], [3, 7, 8, 4], [1, 5, 7, 3], [4, 8, 6, 2]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 1, '__init__': <function Cube.__init__>, 'getEdgeLength': <function Cube.getEdgeLength>, 'getCircumRadius': <function Cube.getCircumRadius>, 'getVolume': <function Cube.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Tetrahedron
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a tetrahedron.
-
NAME
= 'tetrahedron'¶
-
DEFAULT
= [10.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'platonic'¶
-
VERTICES
= [array([ 0.5 , 0. , -0.35355339]), array([-0.5 , 0. , -0.35355339]), array([0. , 0.5 , 0.35355339]), array([ 0. , -0.5 , 0.35355339])]¶
-
INDICES
= [[1, 4, 2], [3, 4, 1], [2, 4, 3], [1, 2, 3]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a tetrahedron.\n ', 'NAME': 'tetrahedron', 'DEFAULT': [10.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'platonic', 'VERTICES': [array([ 0.5 , 0. , -0.35355339]), array([-0.5 , 0. , -0.35355339]), array([0. , 0.5 , 0.35355339]), array([ 0. , -0.5 , 0.35355339])], 'INDICES': [[1, 4, 2], [3, 4, 1], [2, 4, 3], [1, 2, 3]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 1, '__init__': <function Tetrahedron.__init__>, 'getEdgeLength': <function Tetrahedron.getEdgeLength>, 'getCircumRadius': <function Tetrahedron.getCircumRadius>, 'getVolume': <function Tetrahedron.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Octahedron
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage an octahedron.
-
NAME
= 'octahedron'¶
-
DEFAULT
= [8.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'platonic'¶
-
VERTICES
= [array([0.70710678, 0. , 0. ]), array([-0.70710678, 0. , 0. ]), array([0. , 0.70710678, 0. ]), array([ 0. , -0.70710678, 0. ]), array([0. , 0. , 0.70710678]), array([ 0. , 0. , -0.70710678])]¶
-
INDICES
= [[6, 2, 3], [4, 2, 6], [5, 2, 4], [3, 2, 5], [6, 3, 1], [4, 6, 1], [5, 4, 1], [3, 5, 1]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage an octahedron.\n ', 'NAME': 'octahedron', 'DEFAULT': [8.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'platonic', 'VERTICES': [array([0.70710678, 0. , 0. ]), array([-0.70710678, 0. , 0. ]), array([0. , 0.70710678, 0. ]), array([ 0. , -0.70710678, 0. ]), array([0. , 0. , 0.70710678]), array([ 0. , 0. , -0.70710678])], 'INDICES': [[6, 2, 3], [4, 2, 6], [5, 2, 4], [3, 2, 5], [6, 3, 1], [4, 6, 1], [5, 4, 1], [3, 5, 1]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 1, '__init__': <function Octahedron.__init__>, 'getEdgeLength': <function Octahedron.getEdgeLength>, 'getCircumRadius': <function Octahedron.getCircumRadius>, 'getVolume': <function Octahedron.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Dodecahedron
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a dodecahedron.
-
NAME
= 'dodecahedron'¶
-
DEFAULT
= [3.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'platonic'¶
-
VERTICES
= [array([0.80901699, 0.80901699, 0.80901699]), array([ 0.80901699, 0.80901699, -0.80901699]), array([ 0.80901699, -0.80901699, 0.80901699]), array([ 0.80901699, -0.80901699, -0.80901699]), array([-0.80901699, 0.80901699, 0.80901699]), array([-0.80901699, 0.80901699, -0.80901699]), array([-0.80901699, -0.80901699, 0.80901699]), array([-0.80901699, -0.80901699, -0.80901699]), array([0. , 0.5 , 1.30901699]), array([ 0. , 0.5 , -1.30901699]), array([ 0. , -0.5 , 1.30901699]), array([ 0. , -0.5 , -1.30901699]), array([0.5 , 1.30901699, 0. ]), array([ 0.5 , -1.30901699, 0. ]), array([-0.5 , 1.30901699, 0. ]), array([-0.5 , -1.30901699, 0. ]), array([1.30901699, 0. , 0.5 ]), array([ 1.30901699, 0. , -0.5 ]), array([-1.30901699, 0. , 0.5 ]), array([-1.30901699, 0. , -0.5 ])]¶
-
INDICES
= [[6, 15, 13, 2, 10], [20, 6, 10, 12, 8], [19, 20, 8, 16, 7], [5, 19, 7, 11, 9], [15, 5, 9, 1, 13], [20, 19, 5, 15, 6], [10, 2, 18, 4, 12], [8, 12, 4, 14, 16], [7, 16, 14, 3, 11], [9, 11, 3, 17, 1], [13, 1, 17, 18, 2], [4, 18, 17, 3, 14]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a dodecahedron.\n ', 'NAME': 'dodecahedron', 'DEFAULT': [3.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'platonic', 'VERTICES': [array([0.80901699, 0.80901699, 0.80901699]), array([ 0.80901699, 0.80901699, -0.80901699]), array([ 0.80901699, -0.80901699, 0.80901699]), array([ 0.80901699, -0.80901699, -0.80901699]), array([-0.80901699, 0.80901699, 0.80901699]), array([-0.80901699, 0.80901699, -0.80901699]), array([-0.80901699, -0.80901699, 0.80901699]), array([-0.80901699, -0.80901699, -0.80901699]), array([0. , 0.5 , 1.30901699]), array([ 0. , 0.5 , -1.30901699]), array([ 0. , -0.5 , 1.30901699]), array([ 0. , -0.5 , -1.30901699]), array([0.5 , 1.30901699, 0. ]), array([ 0.5 , -1.30901699, 0. ]), array([-0.5 , 1.30901699, 0. ]), array([-0.5 , -1.30901699, 0. ]), array([1.30901699, 0. , 0.5 ]), array([ 1.30901699, 0. , -0.5 ]), array([-1.30901699, 0. , 0.5 ]), array([-1.30901699, 0. , -0.5 ])], 'INDICES': [[6, 15, 13, 2, 10], [20, 6, 10, 12, 8], [19, 20, 8, 16, 7], [5, 19, 7, 11, 9], [15, 5, 9, 1, 13], [20, 19, 5, 15, 6], [10, 2, 18, 4, 12], [8, 12, 4, 14, 16], [7, 16, 14, 3, 11], [9, 11, 3, 17, 1], [13, 1, 17, 18, 2], [4, 18, 17, 3, 14]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 1, '__init__': <function Dodecahedron.__init__>, 'getEdgeLength': <function Dodecahedron.getEdgeLength>, 'getCircumRadius': <function Dodecahedron.getCircumRadius>, 'getVolume': <function Dodecahedron.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Icosahedron
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage an icosahedron.
-
NAME
= 'icosahedron'¶
-
DEFAULT
= [5.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'platonic'¶
-
VERTICES
= [array([0. , 0.5 , 0.80901699]), array([ 0. , 0.5 , -0.80901699]), array([ 0. , -0.5 , 0.80901699]), array([ 0. , -0.5 , -0.80901699]), array([0.5 , 0.80901699, 0. ]), array([ 0.5 , -0.80901699, 0. ]), array([-0.5 , 0.80901699, 0. ]), array([-0.5 , -0.80901699, 0. ]), array([0.80901699, 0. , 0.5 ]), array([ 0.80901699, 0. , -0.5 ]), array([-0.80901699, 0. , 0.5 ]), array([-0.80901699, 0. , -0.5 ])]¶
-
INDICES
= [[2, 4, 12], [2, 12, 7], [2, 7, 5], [2, 5, 10], [2, 10, 4], [4, 10, 6], [4, 6, 8], [12, 4, 8], [12, 8, 11], [7, 12, 11], [7, 11, 1], [5, 7, 1], [5, 1, 9], [10, 5, 9], [10, 9, 6], [8, 6, 3], [11, 8, 3], [1, 11, 3], [9, 1, 3], [6, 9, 3]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage an icosahedron.\n ', 'NAME': 'icosahedron', 'DEFAULT': [5.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'platonic', 'VERTICES': [array([0. , 0.5 , 0.80901699]), array([ 0. , 0.5 , -0.80901699]), array([ 0. , -0.5 , 0.80901699]), array([ 0. , -0.5 , -0.80901699]), array([0.5 , 0.80901699, 0. ]), array([ 0.5 , -0.80901699, 0. ]), array([-0.5 , 0.80901699, 0. ]), array([-0.5 , -0.80901699, 0. ]), array([0.80901699, 0. , 0.5 ]), array([ 0.80901699, 0. , -0.5 ]), array([-0.80901699, 0. , 0.5 ]), array([-0.80901699, 0. , -0.5 ])], 'INDICES': [[2, 4, 12], [2, 12, 7], [2, 7, 5], [2, 5, 10], [2, 10, 4], [4, 10, 6], [4, 6, 8], [12, 4, 8], [12, 8, 11], [7, 12, 11], [7, 11, 1], [5, 7, 1], [5, 1, 9], [10, 5, 9], [10, 9, 6], [8, 6, 3], [11, 8, 3], [1, 11, 3], [9, 1, 3], [6, 9, 3]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 1, '__init__': <function Icosahedron.__init__>, 'getEdgeLength': <function Icosahedron.getEdgeLength>, 'getCircumRadius': <function Icosahedron.getCircumRadius>, 'getVolume': <function Icosahedron.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Cubeoctahedron
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a cubeoctahedron.
-
NAME
= 'cubeoctahedron'¶
-
DEFAULT
= [5.0]¶
-
DESCRIPTION
= ['edge length']¶
-
TYPE
= 'archimedean'¶
-
VERTICES
= [array([0.70710678, 0.70710678, 0. ]), array([ 0.70710678, -0.70710678, 0. ]), array([-0.70710678, 0.70710678, 0. ]), array([-0.70710678, -0.70710678, 0. ]), array([0.70710678, 0. , 0.70710678]), array([ 0.70710678, 0. , -0.70710678]), array([-0.70710678, 0. , 0.70710678]), array([-0.70710678, 0. , -0.70710678]), array([0. , 0.70710678, 0.70710678]), array([ 0. , 0.70710678, -0.70710678]), array([ 0. , -0.70710678, 0.70710678]), array([ 0. , -0.70710678, -0.70710678])]¶
-
INDICES
= [[2, 5, 11], [1, 9, 5], [5, 9, 7, 11], [11, 7, 4], [11, 4, 12, 2], [2, 12, 6], [2, 6, 1, 5], [1, 10, 3, 9], [9, 3, 7], [7, 3, 8, 4], [4, 8, 12], [12, 8, 10, 6], [6, 10, 1], [10, 8, 3]]¶
-
NUM_UNIQUE_EDGES
= 1¶
-
NUM_UNIQUE_FACES
= 2¶
-
__init__
(scale, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - scale (float) – multiplicative scaling factor
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getEdgeLength
(circumradius)¶ Return the edge length.
Parameters: circumradius (float) – circumradius in Angstrom Return type: float Returns: edge length in Angstrom
-
getCircumRadius
(length)¶ Return the circumradius.
Parameters: length (float) – length in Angstrom Return type: float Returns: circumradius in Angstrom
-
getVolume
(length)¶ Return the volume.
Parameters: length (float) – length in Angstrom Return type: float Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a cubeoctahedron.\n ', 'NAME': 'cubeoctahedron', 'DEFAULT': [5.0], 'DESCRIPTION': ['edge length'], 'TYPE': 'archimedean', 'VERTICES': [array([0.70710678, 0.70710678, 0. ]), array([ 0.70710678, -0.70710678, 0. ]), array([-0.70710678, 0.70710678, 0. ]), array([-0.70710678, -0.70710678, 0. ]), array([0.70710678, 0. , 0.70710678]), array([ 0.70710678, 0. , -0.70710678]), array([-0.70710678, 0. , 0.70710678]), array([-0.70710678, 0. , -0.70710678]), array([0. , 0.70710678, 0.70710678]), array([ 0. , 0.70710678, -0.70710678]), array([ 0. , -0.70710678, 0.70710678]), array([ 0. , -0.70710678, -0.70710678])], 'INDICES': [[2, 5, 11], [1, 9, 5], [5, 9, 7, 11], [11, 7, 4], [11, 4, 12, 2], [2, 12, 6], [2, 6, 1, 5], [1, 10, 3, 9], [9, 3, 7], [7, 3, 8, 4], [4, 8, 12], [12, 8, 10, 6], [6, 10, 1], [10, 8, 3]], 'NUM_UNIQUE_EDGES': 1, 'NUM_UNIQUE_FACES': 2, '__init__': <function Cubeoctahedron.__init__>, 'getEdgeLength': <function Cubeoctahedron.getEdgeLength>, 'getCircumRadius': <function Cubeoctahedron.getCircumRadius>, 'getVolume': <function Cubeoctahedron.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Parallelepiped
(a_param, b_param, c_param, alpha_param, beta_param, gamma_param, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a parallelepiped.
-
NAME
= 'parallelepiped'¶
-
DEFAULT
= [5.0, 10.0, 12.0, 60.0, 45.0, 80.0]¶
-
DESCRIPTION
= ['edge a length', 'edge b length', 'edge c length', 'edge-edge b-c angle', 'edge-edge a-c angle', 'edge-edge a-b angle']¶
-
TYPE
= 'prism'¶
-
INDICES
= [[1, 4, 3, 2], [5, 1, 2, 6], [4, 8, 7, 3], [8, 5, 6, 7], [8, 4, 1, 5], [6, 2, 3, 7]]¶
-
NUM_UNIQUE_EDGES
= 2¶
-
NUM_UNIQUE_FACES
= 3¶
-
__init__
(a_param, b_param, c_param, alpha_param, beta_param, gamma_param, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - a_param (float) – the length of the parallelepiped along edge a
- b_param (float) – the length of the parallelepiped along edge b
- c_param (float) – the length of the parallelepiped along edge c
- alpha_param (float) – the angle between edges b and c
- beta_param (float) – the angle between edges a and c
- gamma_param (float) – the angle between edges a and b
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
getParallelepipedVertices
(origin, a_vec, b_vec, c_vec)¶ Get the vertices of the specified parallelepiped.
Parameters: - origin (numpy.array) – the point of origin of the lattic vectors
- a_vec (numpy.array) – the a lattice vector
- b_vec (numpy.array) – the b lattice vector
- c_vec (numpy.array) – the c lattice vector
Return type: list of numpy.array
Returns: the vertices of the parallelepiped
-
getVolume
(a_vec, b_vec, c_vec)¶ Return the volume.
Parameters: - a_vec (numpy.array) – the a lattice vector
- b_vec (numpy.array) – the b lattice vector
- c_vec (numpy.array) – the c lattice vector
Return type: float
Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a parallelepiped.\n ', 'NAME': 'parallelepiped', 'DEFAULT': [5.0, 10.0, 12.0, 60.0, 45.0, 80.0], 'DESCRIPTION': ['edge a length', 'edge b length', 'edge c length', 'edge-edge b-c angle', 'edge-edge a-c angle', 'edge-edge a-b angle'], 'TYPE': 'prism', 'INDICES': [[1, 4, 3, 2], [5, 1, 2, 6], [4, 8, 7, 3], [8, 5, 6, 7], [8, 4, 1, 5], [6, 2, 3, 7]], 'NUM_UNIQUE_EDGES': 2, 'NUM_UNIQUE_FACES': 3, '__init__': <function Parallelepiped.__init__>, 'getParallelepipedVertices': <function Parallelepiped.getParallelepipedVertices>, 'getVolume': <function Parallelepiped.getVolume>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Slab
(a_param, b_param, c_param, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Bases:
schrodinger.application.matsci.shapes.Parallelepiped
,schrodinger.application.matsci.shapes.ConvexPolyhedron
Class to manage a slab.
-
NAME
= 'slab'¶
-
DEFAULT
= [5.0, 10.0, 12.0]¶
-
DESCRIPTION
= ['edge a length', 'edge b length', 'edge c length']¶
-
__init__
(a_param, b_param, c_param, center=[0.0, 0.0, 0.0], ref_face_idx=1, ref_face_normal_along=array([0., 0., 1.]), ref_edge_idx=1, ref_edge_along=array([1., 0., 0.]))¶ Create an instance.
Parameters: - a_param (float) – the length of the parallelepiped along edge a
- b_param (float) – the length of the parallelepiped along edge b
- c_param (float) – the length of the parallelepiped along edge c
- center (numpy.array) – the center of the polyhedron
- ref_face_idx (int) – specifies which of this polyhedron’s available reference faces (symmetry unique faces sorted by decreasing area) to use in the alignment
- ref_face_normal_along (numpy.array triple) – specifies the vector along which the reference face normal will be aligned
- ref_edge_idx (int) – specifies which of the reference faces available reference edges (symmetry unique edges sorted by decreasing length) to use in the alignment
- ref_edge_along (numpy.array triple) – specifies the vector along which the reference edge will be aligned
-
INDICES
= [[1, 4, 3, 2], [5, 1, 2, 6], [4, 8, 7, 3], [8, 5, 6, 7], [8, 4, 1, 5], [6, 2, 3, 7]]¶
-
NUM_UNIQUE_EDGES
= 2¶
-
NUM_UNIQUE_FACES
= 3¶
-
TYPE
= 'prism'¶
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a slab.\n ', 'NAME': 'slab', 'DEFAULT': [5.0, 10.0, 12.0], 'DESCRIPTION': ['edge a length', 'edge b length', 'edge c length'], '__init__': <function Slab.__init__>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
addAlignmentAxesToTemplate
()¶ Add unit vectors that mark the primary and secondary alignment axes to the template.
-
addNormalsToTemplate
()¶ Add the normals of this convex polyhedron to its template.
-
addPointsToTemplate
(points)¶ Add the specified points to this convex polyhedron’s template.
Parameters: points (list of numpy.array) – contains the points to be added to the template for this convex polyhedron
-
addSegmentPlaneIntersectionsToTemplate
(line_start, line_end)¶ Add to this polyhedron’s template the intersection points of the specified line segment and the planes containing the faces. Also draw connections between these points and the centers of the faces containing the planes that are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
-
alignPolyhedron
(vertices, face_vector, face_along, edge_vector, edge_along)¶ Return the polyhedron vertices rotated so as to align the face and edge vectors.
Parameters: - vertices (list) – list of Vertex
- face_vector (numpy.array triple) – the normal of the reference face to be rotated
- face_along (numpy.array triple) – the vector onto which the face normal will be rotated
- edge_vector (numpy.array triple) – the vector of the reference edge to be rotated
- edge_along (numpy.array triple) – the vector onto which the edge vector will be rotated, it is actually this vector’s component that is perpendicular to face_along that is used in the alignment, this is to safeguard against the case where edge_along and face_along are not perpendicular, if they are the same an exception is raised
Return type: list
Returns: list of rotated Vertex
-
allFacesIntersected
()¶ Return True if all faces, not the planes containing those faces but the actual faces, of this convex polyhedron have been intersected at least once given all pointInside queries performed thus far.
Return type: bool Returns: True if all faces have been intersected, False otherwise
-
getFaces
(vertices, all_indices, num_unique)¶ Create face data for the polyhedron.
Parameters: - vertices (list) – list of scaled Vertex
- all_indices (list) – contains sub-lists specifying the vertex indices for each face
- num_unique (int) – the number of symmetry unique edges per face
Return type: list
Returns: a list of Face
-
getParallelepipedVertices
(origin, a_vec, b_vec, c_vec)¶ Get the vertices of the specified parallelepiped.
Parameters: - origin (numpy.array) – the point of origin of the lattic vectors
- a_vec (numpy.array) – the a lattice vector
- b_vec (numpy.array) – the b lattice vector
- c_vec (numpy.array) – the c lattice vector
Return type: list of numpy.array
Returns: the vertices of the parallelepiped
-
getReferenceFaces
(faces, num_unique)¶ Return a list containing the num_unique number of unique faces. These will be the reference faces used to orient the polyhedron.
Parameters: - faces (list) – all Face objects for this polyhedron
- num_unique (int) – the number of symmetry unique faces per polyhedron
Return type: list
Returns: unique Face objects to serve as references
-
getSegmentPlaneIntersections
(line_start, line_end)¶ Return a two lists (1) of points where the given line segment intersects the planes containing this polyhedron’s faces and (2) the centers of the faces whose planes are being intersected.
Parameters: - line_start (numpy.array) – the start of the line segment
- line_end (numpy.array) – the end of the line segment
Return type: two lists of numpy.array
Returns: the intersection points and the centers of faces whose planes are being intersected
-
getSurfaceArea
(faces)¶ Return the surface area of the polyhedron.
Parameters: faces (list) – all Face objects for this polyhedron Return type: float Returns: the surface area in Ang.^2
-
getVertices
(vertices, scale=1.0)¶ Create vertex data for the polyhedron, including an option to scale all vertices using a multiplicative factor.
Parameters: - vertices (list) – list of numpy.array triples specifying the vertices of this polyhedron
- scale (float) – multiplicative factor used to scale all vertices
Return type: list
Returns: a list of scaled Vertex
-
getVolume
(a_vec, b_vec, c_vec)¶ Return the volume.
Parameters: - a_vec (numpy.array) – the a lattice vector
- b_vec (numpy.array) – the b lattice vector
- c_vec (numpy.array) – the c lattice vector
Return type: float
Returns: volume in cubic Angstrom
-
makeTemplate
()¶ Create a template, i.e. structure object, for this convex polyhedron.
Return type: schrodinger.structure.Structure
Returns: the template structure
-
pointInside
(point)¶ Return True if the query point is either on or inside of this convex polyhedron.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this polyhedron, False otherwise
-
translateVertices
(vertices, vector)¶ Translate the vertices by adding the specified vector.
Parameters: - vertices (list) – list of scaled Vertex
- vector (numpy.array triple) – the vector used to translate the vertices
-
updateShape
(vertices)¶ Update the shape object using the provided vertices.
Parameters: vertices (list) – list of Vertex with new coordinates
-
-
class
schrodinger.application.matsci.shapes.
Sphere
(radius, center=[0.0, 0.0, 0.0])¶ Bases:
object
Class to manage a sphere.
-
NAME
= 'sphere'¶
-
DEFAULT
= [5.0]¶
-
DESCRIPTION
= ['radius']¶
-
TYPE
= 'basic'¶
-
NUM_UNIQUE_EDGES
= 0¶
-
NUM_UNIQUE_FACES
= 0¶
-
__init__
(radius, center=[0.0, 0.0, 0.0])¶ Create an instance.
Parameters: - radius (float) – the radius of the sphere
- center (numpy.array) – the center of the sphere
-
getVolume
(radius)¶ Return the volume.
Parameters: radius (float) – radius in Angstrom Return type: float Returns: volume in cubic Angstrom
-
getSurfaceArea
(radius)¶ Return the surface area.
Parameters: radius (float) – radius in Angstrom Return type: float Returns: surface area in square Angstrom
-
pointInside
(point)¶ Return True if the query point is either on or inside of this sphere.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this sphere, False otherwise
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a sphere.\n ', 'NAME': 'sphere', 'DEFAULT': [5.0], 'DESCRIPTION': ['radius'], 'TYPE': 'basic', 'NUM_UNIQUE_EDGES': 0, 'NUM_UNIQUE_FACES': 0, '__init__': <function Sphere.__init__>, 'getVolume': <function Sphere.getVolume>, 'getSurfaceArea': <function Sphere.getSurfaceArea>, 'pointInside': <function Sphere.pointInside>, '__dict__': <attribute '__dict__' of 'Sphere' objects>, '__weakref__': <attribute '__weakref__' of 'Sphere' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
schrodinger.application.matsci.shapes.
Cylinder
(radius, length, center=[0.0, 0.0, 0.0])¶ Bases:
object
Class to manage a cylinder.
-
NAME
= 'cylinder'¶
-
DEFAULT
= [5.0, 25.0]¶
-
DESCRIPTION
= ['radius', 'length']¶
-
TYPE
= 'basic'¶
-
NUM_UNIQUE_EDGES
= 0¶
-
NUM_UNIQUE_FACES
= 1¶
-
__init__
(radius, length, center=[0.0, 0.0, 0.0])¶ Create an instance.
Parameters: - radius (float) – the radius of the cylinder
- length (float) – the length of the cylinder
- center (numpy.array) – the center of the cylinder
-
getVolume
(radius, length)¶ Return the volume.
Parameters: - radius (float) – radius in Angstrom
- length (float) – length in Angstrom
Return type: float
Returns: volume in cubic Angstrom
-
__class__
¶ alias of
builtins.type
-
__delattr__
¶ Implement delattr(self, name).
-
__dict__
= mappingproxy({'__module__': 'schrodinger.application.matsci.shapes', '__doc__': '\n Class to manage a cylinder.\n ', 'NAME': 'cylinder', 'DEFAULT': [5.0, 25.0], 'DESCRIPTION': ['radius', 'length'], 'TYPE': 'basic', 'NUM_UNIQUE_EDGES': 0, 'NUM_UNIQUE_FACES': 1, '__init__': <function Cylinder.__init__>, 'getVolume': <function Cylinder.getVolume>, 'getSurfaceArea': <function Cylinder.getSurfaceArea>, 'pointInside': <function Cylinder.pointInside>, '__dict__': <attribute '__dict__' of 'Cylinder' objects>, '__weakref__': <attribute '__weakref__' of 'Cylinder' objects>})¶
-
__dir__
() → list¶ default dir() implementation
-
__eq__
¶ Return self==value.
-
__format__
()¶ default object formatter
-
__ge__
¶ Return self>=value.
-
__getattribute__
¶ Return getattr(self, name).
-
__gt__
¶ Return self>value.
-
__hash__
¶ Return hash(self).
-
__init_subclass__
()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__
¶ Return self<=value.
-
__lt__
¶ Return self<value.
-
__module__
= 'schrodinger.application.matsci.shapes'¶
-
__ne__
¶ Return self!=value.
-
__new__
()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__
()¶ helper for pickle
-
__reduce_ex__
()¶ helper for pickle
-
__repr__
¶ Return repr(self).
-
__setattr__
¶ Implement setattr(self, name, value).
-
__sizeof__
() → int¶ size of object in memory, in bytes
-
__str__
¶ Return str(self).
-
__subclasshook__
()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__
¶ list of weak references to the object (if defined)
-
getSurfaceArea
(radius, length)¶ Return the surface area.
Parameters: - radius (float) – radius in Angstrom
- length (float) – length in Angstrom
Return type: float
Returns: surface area in square Angstrom
-
pointInside
(point)¶ Return True if the query point is either on or inside of this cylinder.
Parameters: point (numpy.array) – the point in question Return type: bool Returns: True if the point in question is either on or inside this cylinder, False otherwise
-
-
schrodinger.application.matsci.shapes.
get_shape_object_by_name
(name)¶ Return a shape object by name.
Parameters: name (str) – the name of the object wanted Return type: object Returns: the shape object
-
schrodinger.application.matsci.shapes.
get_polygon_area
(vertices)¶ Return the area of the specified polygon using the shoelace formula.
Parameters: vertices (list) – contains all vertices of the polygon, each of which is a two dimensional numpy.array, i.e. x and y Return type: float Returns: the area of the polygon
-
schrodinger.application.matsci.shapes.
get_reference_data
(data, attr, num_unique, threshold)¶ Return a list containing the num_unique number of unique data. The data will be either a list of Face or a list of Edge characterized using the attr AREA or LENGTH, respectively. These will be the reference data used to orient the polyhedron.
Parameters: - data (list) – either all Face objects for a given polyhedron or all Edge objects for a given face
- attr (str) – the attribute on which to characterize the data, either AREA or LENGTH
- num_unique (int) – the number of symmetry unique data
- threshold (float) – the threshold used to consider if two data are equivalent by attr (either Ang. or Ang.^2)
Return type: list
Returns: unique data to serve as references
-
schrodinger.application.matsci.shapes.
get_parallelepiped_vertices
(origin, a_vec, b_vec, c_vec, center=True)¶ Get the vertices of the specified parallelepiped.
Parameters: - origin (numpy.array) – the point of origin of the lattic vectors
- a_vec (numpy.array) – the a lattice vector
- b_vec (numpy.array) – the b lattice vector
- c_vec (numpy.array) – the c lattice vector
- center (bool) – specifies whether or not to translate the final vertices so that the centroid is at (0, 0, 0)
Return type: list of numpy.array
Returns: the vertices of the parallelepiped
-
schrodinger.application.matsci.shapes.
get_centroid
(vertices)¶ Return the centroid of the provided vertices.
Parameters: vertices (list) – numpy.array array of points Return type: numpy.array Returns: the centroid