fingerprint
filtered_histogram(mesh, internal, external, bins=200, xrange=None, yrange=None, samples_per_edge=4, include_inverse=False)
Create histogram with multiple samples per face.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mesh
|
mesh with vertex attributes |
required | |
internal
|
atomic number for internal atom |
required | |
external
|
atomic number for external atom |
required | |
bins
|
int
|
number of bins for histogram (default: 200) |
200
|
xrange
|
tuple
|
range for x-axis (d_i) |
None
|
yrange
|
tuple
|
range for y-axis (d_e) |
None
|
samples_per_edge
|
int
|
number of samples per triangle edge (default: 4) |
4
|
include_inverse
|
bool
|
if True, also include contacts where internal and external are swapped (e.g., C...H and H...C). Default: False |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(histogram, xedges, yedges) as returned by np.histogram2d |
Source code in chmpy/crystal/fingerprint.py
filtered_histogram_by_elements(mesh, internal_element, external_element, bins=200, xrange=None, yrange=None, samples_per_edge=4, include_inverse=False)
Create filtered histogram by specifying element symbols.
This is a convenience method that allows filtering by element symbols instead of atomic numbers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mesh
|
mesh with vertex attributes |
required | |
internal_element
|
str or int
|
element symbol (e.g., "C") or atomic number for internal atom |
required |
external_element
|
str or int
|
element symbol (e.g., "H") or atomic number for external atom |
required |
bins
|
int
|
number of bins for histogram (default: 200) |
200
|
xrange
|
tuple
|
range for x-axis (d_i) |
None
|
yrange
|
tuple
|
range for y-axis (d_e) |
None
|
samples_per_edge
|
int
|
number of samples per triangle edge (default: 4) |
4
|
include_inverse
|
bool
|
if True, also include contacts where internal and external are swapped (e.g., C...H and H...C). Default: False |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(histogram, xedges, yedges) as returned by np.histogram2d |
Examples:
>>> # Filter for C...H contacts only
>>> hist = filtered_histogram_by_elements(mesh, "C", "H")
>>> # Filter for both C...H and H...C contacts
>>> hist = filtered_histogram_by_elements(mesh, "C", "H", include_inverse=True)
>>> # Or equivalently using atomic numbers
>>> hist = filtered_histogram_by_elements(mesh, 6, 1, include_inverse=True)
Source code in chmpy/crystal/fingerprint.py
fingerprint_histogram(mesh, bins=200, xrange=None, yrange=None, samples_per_edge=4)
Create histogram for all faces with multiple samples per face.
Source code in chmpy/crystal/fingerprint.py
sample_face_points(vertices, faces, samples_per_edge=4)
Generate sample points within triangle faces using barycentric coordinates.