Loading...
Searching...
No Matches
EpiCenters.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#pragma once
13#include "Matter.h"
14#include <vector>
15
16namespace eonc {
17
18namespace EpiCenters {
19
20const char DISP_LOAD[] = "load";
21const char DISP_NOT_FCC_OR_HCP[] = "not_fcc_hcp_coordinated";
22const char DISP_MIN_COORDINATED[] = "least_coordinated";
23const char DISP_LAST_ATOM[] = "last_atom";
24const char DISP_RANDOM[] = "random";
25const char DISP_LISTED_ATOMS[] = "listed_atoms";
26
27// index of random atom that is free and neither FCC nor HCP coordinated
28long cnaEpiCenter(const Matter *matter, double neighborCutoff);
29
30// index of a random atom that is free and minimally coordinated
31long minCoordinatedEpiCenter(const Matter *matter, double neighborCutoff);
32
33// index of last atom -- assumed to be free
34long lastAtom(const Matter *matter);
35
36// index of a random atom that is free
37long randomFreeAtomEpiCenter(const Matter *matter);
38
39// index of a random free atom from a user-provided list
40long listedAtomEpiCenter(const Matter *matter,
41 const std::vector<long> &atomList);
42
43// do a common neighbor analysis
44void cna(long *cna, const Matter *matter, double neighborCutoff);
45
46// determine the coordination for individual atoms
47void coordination(long *coordinationVal, const Matter *matter,
48 double neighborCutoff);
49
50// determine atoms with coordination <= coordinationMaxVal
51void coordinationLessOrEqual(bool *result, long coordinationMaxVal,
52 const Matter *matter, double neighborCutoff);
53
54// determine first minimally coordinated atom
55long minCoordination(const Matter *matter, double neighborCutoff);
56} // namespace EpiCenters
57
58} // namespace eonc
const char DISP_RANDOM[]
Definition EpiCenters.h:24
long lastAtom(const Matter *matter)
const char DISP_LISTED_ATOMS[]
Definition EpiCenters.h:25
long minCoordination(const Matter *matter, double neighborCutoff)
const char DISP_NOT_FCC_OR_HCP[]
Definition EpiCenters.h:21
const char DISP_MIN_COORDINATED[]
Definition EpiCenters.h:22
void cna(long *cna, const Matter *matter, double neighborCutoff)
long cnaEpiCenter(const Matter *matter, double neighborCutoff)
const char DISP_LOAD[]
Definition EpiCenters.h:20
const char DISP_LAST_ATOM[]
Definition EpiCenters.h:23
long randomFreeAtomEpiCenter(const Matter *matter)
void coordinationLessOrEqual(bool *result, long coordinationMaxVal, const Matter *matter, double neighborCutoff)
long listedAtomEpiCenter(const Matter *matter, const std::vector< long > &atomList)
long minCoordinatedEpiCenter(const Matter *matter, double neighborCutoff)
void coordination(long *coordinationVal, const Matter *matter, double neighborCutoff)
RAII resource manager for the ARTn C library with global synchronization.