Plugins
Cluster Analysis
Find connected particle clusters using a distance cutoff.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
cutoff | float | 3.2 | Cutoff radius used to define connectivity. |
sort_by_size | bool | true | Sort clusters by size in descending order. |
unwrap | bool | false | Unwrap particle coordinates inside each cluster. |
centers_of_mass | bool | false | Compute cluster centers with uniform weights. |
radius_of_gyration | bool | false | Compute radii and tensors of gyration with uniform weights. |
Output
{outputBase}_cluster_analysis.parquet
type Vec3 = [float, float, float];
type GyrationTensor = [float, float, float, float, float, float];
interface Cluster {
cluster_id: int;
size: int;
center?: Vec3;
radius_of_gyration?: float;
gyration_tensor?: GyrationTensor;
}
interface ClusterAnalysisOutput {
main_listing: {
total_atoms: int;
clusters: int;
largest_cluster_size: int;
has_zero_weight_cluster: boolean;
};
sub_listings: {
clusters: Cluster[];
};
}{outputBase}_atoms.parquet
Per-atom data in the canonical AtomisticExporter format consumed by the VOLT viewer. Atoms are grouped into named buckets: Cluster_<n> for clustered atoms, Unclustered for unassigned atoms.
type Vec3 = [float, float, float];
interface AtomEntry {
id: int;
pos: Vec3;
structure_id: int;
structure_name: string;
cluster_id: int;
pos_unwrapped?: Vec3; // present only when `unwrap` is true
}
interface AtomsOutput {
main_listing: {
total_atoms: int;
structure_count: int;
};
sub_listings: {
structures: Array<{
structure_id: int;
structure_name: string;
atom_count: int;
}>;
};
export: {
AtomisticExporter: {
[bucketName: string]: AtomEntry[];
};
};
}This file also feeds the cluster-model-export node in the workflow DAG, which produces a GLB 3D model via the AtomisticExporter.
See Also
- Coordination Analysis — local neighbor counts and RDF