RAII resource manager for the ARTn C library with global synchronization. More...
Namespaces | |
| namespace | config |
| namespace | detail |
| namespace | dynlib |
| Cross-platform dynamic library loading abstraction. | |
| namespace | EpiCenters |
| namespace | geometry |
| namespace | helpers |
| namespace | io |
| namespace | log |
| namespace | neb |
| namespace | pairhess |
| namespace | params_ssot |
| namespace | pathintegral |
| namespace | pbc |
| namespace | piqtst |
| namespace | pot |
| namespace | Prefactor |
| namespace | rng |
| namespace | safemath |
| namespace | tunneling |
| namespace | xtsci_eindir |
Classes | |
| struct | ams_options_t |
| struct | artn_options_t |
| class | ARTnResource |
| class | ARTnSaddleSearch |
| Saddle search method using the Activation-Relaxation Technique nouveau. More... | |
| struct | ase_nwchem_options_t |
| struct | ase_orca_options_t |
| class | AtomicGPDimer |
| struct | basin_hopping_options_t |
| class | BasinHoppingJob |
| class | BasinHoppingSaddleSearch |
| struct | bgsd_options_t |
| class | BGSDObjectiveFunction |
| class | BiasedGradientSquaredDescent |
| class | BondBoost |
| Functionality relying on the conjugate gradients algorithm. More... | |
| struct | catlearn_options_t |
| class | CollectiveIDPPObjectiveFunction |
| class | ConjugateGradients |
| Decleration of the Conjugate Gradients optimizer. More... | |
| struct | constants_t |
| class | Davidson |
| Davidson method for the lowest Hessian curvature mode (min-mode). More... | |
| struct | davidson_options_t |
| struct | debug_options_t |
| struct | DecodedDiv |
| struct | dftd_options_t |
| class | Dimer |
| Classic dimer method to find the lowest curvature mode. More... | |
| struct | dimer_options_t |
| class | DimerModeLostException |
| class | DimerModeRestoredException |
| struct | DimerRotationResult |
| Result of a non-classical dimer rotation backend (mode estimate only). More... | |
| class | Dynamics |
| struct | dynamics_options_t |
| struct | DynamicsConfig |
| Configuration extracted from Parameters for Dynamics. More... | |
| class | DynamicsJob |
| class | DynamicsSaddleSearch |
| struct | expr_options_t |
| class | FiniteDifferenceJob |
| class | FIRE |
| class | ForceCallTimer |
| RAII wrapper for tracking force calls over a scope. More... | |
| class | FPEGuard |
| class | FPEHandler |
| class | GleThermostat |
| Colored-noise (generalized Langevin) thermostat. More... | |
| struct | global_optimization_options_t |
| class | GlobalOptimization |
| class | GlobalOptimizationJob |
| struct | gp_surrogate_options_t |
| struct | gpr_dimer_options_t |
| class | GPSurrogateJob |
| class | Hessian |
| struct | hessian_options_t |
| class | HessianJob |
| class | Hyperdynamics |
| struct | hyperdynamics_options_t |
| class | IARTnResource |
| class | IDPPObjectiveFunction |
| class | IIRAResource |
| class | ILammpsLoader |
| class | IMetatomicLoader |
| class | ImprovedDimer |
| struct | instanton_options_t |
| class | InstantonJob |
| Ring-polymer instanton ([Instanton]): the tunnelling splitting between two minima beyond one-dimensional WKB (mode splitting), or the thermal rate through a saddle (mode rate): the ring below the crossover temperature, and the parabolic barrier factor times harmonic transition-state theory above it, written to instanton.con and results.dat. More... | |
| class | IPluginLoader |
| class | IPotRegistry |
| struct | ira_options_t |
| class | IRACompare |
| C++ wrapper for the IRA (Iterative Rotations and Assignments) library. More... | |
| class | IRAResource |
| class | Job |
| Declaration of job class. More... | |
| struct | JobResultEnvelope |
| In-memory JobResult scalars. More... | |
| class | LammpsLoader |
| class | Lanczos |
| struct | lanczos_options_t |
| class | LBFGS |
| class | LORRotation |
| class | LowestEigenmode |
| Base for eigenmode solvers. More... | |
| struct | main_options_t |
| class | Matter |
| struct | metatomic_options_t |
| class | MetatomicDynPot |
| class | MetatomicLoader |
| class | MinimizationJob |
| class | MinModeObjectiveFunction |
| class | MinModeSaddleSearch |
| struct | monte_carlo_options_t |
| class | MonteCarlo |
| class | MonteCarloJob |
| struct | mopac_options_t |
| struct | neb_options_t |
| class | NEBObjectiveFunction |
| class | NudgedElasticBand |
| class | NudgedElasticBandJob |
| class | ObjectiveFunction |
| struct | oh_tst_options_t |
| class | OHTSTJob |
| class | Optimizer |
| struct | optimizer_options_t |
| struct | OptimizerConfig |
| Declaration of the optimizer class. More... | |
| struct | parallel_replica_options_t |
| class | ParallelReplicaJob |
| class | Parameters |
| struct | ParametersLoadAccess |
| Write hole for INI/JSON loaders and nanobind property setters. More... | |
| class | PluginLoader |
| class | PointJob |
| class | Potential |
| struct | potential_options_t |
| class | PotentialConstructionScope |
| RAII: Potential default construction records on this registry instead of PotRegistry::get(). More... | |
| class | PotRegistry |
| struct | prefactor_options_t |
| class | PrefactorJob |
| struct | process_search_options_t |
| class | ProcessSearchJob |
| Declaration of the Process Search job. More... | |
| class | Quickmin |
| struct | replica_exchange_options_t |
| class | ReplicaDynamicsJob |
| Base class for replica dynamics jobs (TAD, SafeHyper). More... | |
| class | ReplicaExchangeJob |
| struct | rgpot_options_t |
| class | Runtime |
| Move-only composition root for process resources (dlopen loaders and the potential registry). More... | |
| struct | saddle_search_options_t |
| class | SaddleSearchJob |
| Declaration of the Saddle Search job. More... | |
| class | SaddleSearchMethod |
| class | SafeHyperJob |
| struct | serve_options_t |
| struct | ServeEndpoint |
| Configuration for a single serve endpoint. More... | |
| struct | socket_nwchem_options_t |
| class | SteepestDescent |
| class | StructureComparisonJob |
| struct | StructureComparisonOptions |
| Options for Matter::compare / distance. More... | |
| class | SurrogatePotential |
| struct | tad_options_t |
| class | TADJob |
| class | TestJob |
| struct | thermostat_options_t |
| class | VesinNeighbors |
| RAII wrapper around vesin_neighbors for Matter-style boxes (double[9] row-major 3×3 cell, same layout as Matter::cell). More... | |
| struct | X86DivRegs |
| struct | xtb_options_t |
| class | XtsciOptimizer |
| xtsci-optimize backend. More... | |
| struct | zbl_options_t |
| class | ZBLRepulsiveIDPPObjective |
Concepts | |
| concept | ThreadSafeQueryable |
| Duck-typed thread-safety query. | |
Typedefs | |
| using | EigenmodeStrategy = LowestEigenmode |
| Type-erased eigenmode solver. Layout is the same with or without gprd. | |
| using | JobFactory |
| using | structure_comparison_options_t = StructureComparisonOptions |
| using | ForceCallback |
| Callback type for potential energy/force evaluation. | |
Functions | |
| int | getBundleSize () |
| std::vector< std::string > | unbundle (int number) |
| void | deleteUnbundledFiles (const std::vector< std::string > &unbundledFilenames) |
| void | bundle (int number, const std::vector< std::string > &filenames, std::vector< std::string > *bundledFilenames) |
| void | commandLine (int argc, char **argv) |
| std::shared_ptr< LowestEigenmode > | buildEigenmodeStrategy (std::shared_ptr< Matter > matter, const Parameters ¶ms, std::shared_ptr< Potential > pot) |
| double | maxFreeAtomForceNorm (const double *forces, const double *fixed, long nAtoms) |
| Max Euclidean norm over N x 3 row-major force rows. | |
| template<typename Work> | |
| void | forEachImage (long n, Work &&work) |
| static DecodedDiv | decode_div_insn (const unsigned char *code, bool long_mode) |
| static X86DivRegs | x86_div_regs (void *scp) |
| static bool | advance_integer_div (void *scp) |
| static void | write_fault_rip (void *scp) |
| static void | fpe_signal_handler (int sig, siginfo_t *sip, void *scp) |
| void | enableFPE () |
| void | disableFPE () |
| std::vector< int > | greedyColorCutoffGraph (const std::vector< std::vector< int > > &adj) |
| Greedy coloring of an undirected graph. | |
| std::vector< int > | colorMobileCutoffGraph (const Matter &matter, const VectorXi &atoms, double cutoff) |
| Conflict graph on atoms: two mobile atoms share an edge when their closed cutoff neighborhoods intersect, then greedy-colored. | |
| std::vector< double > | cartesianMode (const Matter &matter, const VectorXi &atoms, const Eigen::Ref< const VectorXd > &mode) |
| Cartesian displacement of every atom along one mass-weighted mode over the mobile degrees of freedom atoms: x = q / sqrt(m), unit norm, zero on atoms outside atoms. | |
| bool | writeNormalModes (Matter &matter, const VectorXi &atoms, const VectorXd &eigenvalues, const MatrixXd &modes, const std::string &path) |
| Writes one frame of matter per mode to path, the mode as the displacements section and mode_eigenvalue (eV / (Angstrom^2 amu)), hbar_omega (eV, negative for an imaginary mode) and wavenumber (cm^-1, same sign) as frame metadata. | |
| bool | trivialModeCountIsPhysical (long removed, long fixedAtoms) |
| Whether removed zero-frequency modes are what the structure's symmetries give: 6 for a free cluster (3 translations and 3 rotations), 5 for a linear one, 3 for a periodic cell, where rotations are no symmetry of the lattice, and none once any atom is fixed. | |
| void | forceJobRegistration () |
| std::map< JobType, JobFactory > & | jobTable () |
| void | registerJob (JobType type, JobFactory factory) |
| void | evaluateTogether (Potential &pot, std::span< Matter *const > systems) |
| Evaluates every system that needs a force update. | |
| bool | atomListMeansAll (const std::string &atomList) |
| Whether atomList means "every free atom" (empty, "all", case-insensitive). | |
| VectorXi | freeAtomIndices (const Matter *matter) |
| Free (unfixed) atom indices in ascending order. | |
| VectorXi | resolveMobileAtoms (const Matter *matter, const std::string &atomList) |
| PHVA-class mobile set for FD Hessian and matrix-free Krylov (Lanczos / Davidson). | |
| VectorXi | resolveMobileAtoms (const Matter *matter, const VectorXi &candidates) |
| Explicit candidate indices, intersected with free flags (order preserved, duplicates dropped). | |
| VectorXd | packMobileRows (const AtomMatrix &full, const VectorXi &mobile) |
| Pack full (n_atoms,3) rows of mobile atoms into a 3*n_mobile vector. | |
| void | unpackMobileRows (const VectorXd &packed, const VectorXi &mobile, AtomMatrix &full) |
| Write a 3*n_mobile vector into full AtomMatrix rows (other rows unchanged). | |
| VectorXd | mobileForces (Matter *matter, const VectorXi &mobile) |
| Force components on mobile atoms after Matter has a valid force cache (calls getForces under the hood if needed via the non-const Matter API). | |
| AtomMatrix | minImageRemoveRigidDrift (const Matter &reference, AtomMatrix diff, Eigen::RowVector3d *totalDrift) |
| Minimum-image a free-atom difference and remove rigid translation. | |
| static EonMtaConfig | config_from_params (const Parameters ¶ms) |
| void | serveMode (const Parameters ¶ms, const std::string &host, uint16_t port) |
| Start a single rgpot-compatible Cap'n Proto RPC server. | |
| void | serveMultiple (const std::vector< ServeEndpoint > &endpoints, const Parameters ¶ms) |
| Serve multiple potentials concurrently on different ports. | |
| void | serveReplicated (const Parameters ¶ms, const std::string &host, uint16_t base_port, size_t replicas) |
| Serve N replicas of the same potential across sequential ports. | |
| void | serveGateway (const Parameters ¶ms, const std::string &host, uint16_t port, size_t pool_size) |
| Start a gateway server backed by a pool of potential instances. | |
| void | serveFromConfig (const Parameters ¶ms) |
| Start serve mode from config-file parameters. | |
| std::vector< ServeEndpoint > | parseServeSpec (const std::string &spec) |
| Parse a serve configuration string into endpoints. | |
| void | startRpcServer (ForceCallback callback, const std::string &host, uint16_t port) |
| Start a blocking Cap'n Proto RPC server using a force callback. | |
| void | startPooledRpcServer (std::vector< ForceCallback > pool, const std::string &host, uint16_t port) |
| Start a blocking Cap'n Proto RPC server backed by a pool of force callbacks dispatched round-robin. | |
| constexpr bool | usesAlternativeRotation (DimerRotationBackend backend) noexcept |
| std::optional< DimerRotationResult > | runAlternativeRotation (DimerRotationBackend backend, const std::shared_ptr< Matter > &matter, const Parameters ¶ms, const std::shared_ptr< Potential > &pot, const AtomMatrix &initialDirection, quill::Logger *log=nullptr) |
| Run Lanczos, Davidson, or LOR. | |
| AtomMatrix | from_fortran_layout_vector (const std::vector< double > &flat_colmajor, int nat) |
| Reconstruct AtomMatrix from a flat column-major vector (e.g. | |
| void | lattice_rows_to_fortran_box (const Matrix3d &cell, double *box) |
| Pack an eOn cell for pARTn artn_step. | |
| void | eigenmodeCompute (LowestEigenmode &s, std::shared_ptr< Matter > matter, AtomMatrix direction) |
| double | eigenmodeGetEigenvalue (LowestEigenmode &s) |
| AtomMatrix | eigenmodeGetEigenvector (LowestEigenmode &s) |
| ImprovedDimer * | asImprovedDimer (LowestEigenmode &s) |
| long | eigenmodeTotalForceCalls (LowestEigenmode &s) |
| double | eigenmodeStatsTorque (LowestEigenmode &s) |
| double | eigenmodeStatsAngle (LowestEigenmode &s) |
| long | eigenmodeStatsRotations (LowestEigenmode &s) |
| long | eigenmodeTotalIterations (LowestEigenmode &s) |
| FdScheme | parseFdScheme (std::string_view scheme) |
| template<class M> | |
| M | fdForceDerivative (FdScheme scheme, double dr, const M &f0, const M &fPlus, const M &fMinus, const M &fPlus2, const M &fMinus2) |
| Derivative of a sampled force map along one real step of length dr. | |
| template<class Eval> | |
| VectorXd | fdHessianVector (FdScheme scheme, double dr, const VectorXd &force0, Eval &&eval) |
| Energy Hessian-vector product -dF. | |
| constexpr std::uint32_t | maskWindowsMxcsrForContinue (std::uint32_t mxcsr) |
| ARTnResource & | get_artn_resource () |
| Global access to thread-safe ARTn resource. | |
| IRAResource & | get_ira_resource () |
| Global access to thread-safe IRA resource. | |
| void | ensure_interpreter () |
| double | pmfScanS (long plane, long nScan, double guideLen) |
| Uniform PMF-scan coordinate. | |
| template<class P> requires ThreadSafeQueryable<P> | |
| bool | potIsThreadSafe (const P &p) noexcept |
| template<class P> requires requires(const P &p) { { p.isSharedInstanceThreadSafe() } -> std::convertible_to<bool>; } | |
| bool | potAllowsSharedInstance (const P &p) noexcept |
| bool | lammpsWorkerReaped (long got, long child, int err) |
| True when waitpid has collected the child. EINTR is not a collection. | |
| std::int64_t | lammpsScreenCursor (std::int64_t pos, std::int64_t fileSize, bool restarted) |
| Byte offset at which to keep copying a LAMMPS screen file. | |
| std::vector< std::string > | lammpsOpenArgs (bool logging, bool with_omp, const std::string &screen) |
| LAMMPS argv. | |
Variables | |
| static constexpr unsigned | MXCSR_MASK_IM = 1u << 7 |
| static constexpr unsigned | MXCSR_MASK_ZM = 1u << 9 |
| static constexpr unsigned | MXCSR_MASK_OM = 1u << 10 |
| constexpr std::uint32_t | kWindowsMxcsrExceptionMasks = 0x1F80u |
| constexpr double | kEvToWavenumber = 8065.543937349212 |
| 1 eV in cm^-1, e / (h c) from the exact SI values. | |
| constexpr double | IM = 2147483647.0 |
| constexpr double | AM = 1.0 / IM |
| constexpr int | NTAB = 32 |
| constexpr int | NDIV = 1 + (IM / NTAB) |
| constexpr double | EPS = 1.2e-7 |
| constexpr double | RNMX = 1.0 - EPS |
| constexpr long | IM1 = 2147483563 |
| constexpr long | IM2 = 2147483399 |
| constexpr long | IMM1 = IM1 - 1 |
| constexpr long | IA1 = 40014 |
| constexpr long | IA2 = 40692 |
| constexpr long | IQ1 = 53668 |
| constexpr long | IQ2 = 52774 |
| constexpr long | IR1 = 12211 |
| constexpr long | IR2 = 3791 |
RAII resource manager for the ARTn C library with global synchronization.
Runtime loader for engine plugin shared libraries.
Runtime loader for the LAMMPS C library.
Contains all runtime parameters and results.
RAII resource manager for the IRA C library with global synchronization.
Uses dlopen (POSIX) or LoadLibrary (Windows) to load libartn at runtime. Implements global mutex to ensure thread-safety when multiple threads access the Fortran backend which has shared global state.
WARNING: Due to the non-thread-safe Fortran backend, all ARTn operations are serialized through a global mutex. Multiple threads calling ARTn simultaneously will execute sequentially, potentially creating a significant performance bottleneck in multi-threaded contexts. Consider process-level parallelism if true concurrent ARTn operations are required.
Uses dlopen (POSIX) or LoadLibrary (Windows) to load libira at runtime. Implements global mutex to ensure thread-safety when multiple threads access the Fortran backend which has shared global state.
WARNING: Due to the non-thread-safe Fortran backend, all IRA operations are serialized through a global mutex. Multiple threads calling IRA simultaneously will execute sequentially, potentially creating a significant performance bottleneck in multi-threaded contexts. Consider process-level parallelism if true concurrent IRA operations are required.
No functionality just bookkeeping.
Uses dlopen (POSIX) or LoadLibrary (Windows) to load liblammps at runtime rather than requiring it at compile time. This allows a single eOn binary to optionally use LAMMPS potentials if the library is installed.
Engines that ship as their own shared objects (the rgpot metatomic and xtb backends) are found by base name across a search path rather than by an absolute path, so a build, a wheel, and a conda prefix can each place them differently.
Uses dlopen (POSIX) or LoadLibrary (Windows) to load Fortran potential libraries at runtime. The search order is:
Call add_config_paths() once at startup (before any potential constructor) to inject config-file paths into the singleton.
Type-erased eigenmode solver. Layout is the same with or without gprd.
Definition at line 25 of file EigenmodeStrategy.h.
| using eonc::ForceCallback |
Callback type for potential energy/force evaluation.
Flat-array interface that avoids any AtomMatrix type dependency, preventing collisions between eOn's Eigen-based AtomMatrix and rgpot's custom AtomMatrix.
| nAtoms | Number of atoms. |
| positions | Flat array [x1,y1,z1, x2,y2,z2, ...] (nAtoms*3). |
| atomicNrs | Atomic numbers [Z1, Z2, ...] (nAtoms). |
| forces | Output forces [Fx1,Fy1,Fz1, ...] (nAtoms*3). |
| energy | Output energy (single double). |
| box | Simulation cell flat 3x3 row-major (9 doubles). |
Definition at line 36 of file ServeRpcServer.h.
| using eonc::JobFactory |
Definition at line 16 of file JobRegistry.h.
Definition at line 185 of file ParametersOptions.h.
|
strong |
|
strong |
Real finite-difference scheme for the assembled Hessian and for Lanczos/Davidson Hessian-vector products.
Complex-step is not a scheme: cutoffs and external potentials are not holomorphic.
| Enumerator | |
|---|---|
| OneSided | |
| Central | |
| Fourth | |
Definition at line 25 of file FiniteDifference.h.
|
strong |
Definition at line 77 of file BaseStructures.h.
|
strong |
| Enumerator | |
|---|---|
| LINEAR | |
| IDPP | |
| IDPP_COLLECTIVE | |
| SIDPP | |
| SIDPP_ZBL | |
| FILE | |
Definition at line 115 of file BaseStructures.h.
|
strong |
|
strong |
| Enumerator | |
|---|---|
| Legacy | |
| MinimumImage | |
|
strong |
Definition at line 36 of file BaseStructures.h.
|
strong |
| Enumerator | |
|---|---|
| GOOD | |
| FAIL_MAX_ITERATIONS | |
| FAIL_POTENTIAL_FAILED | |
Definition at line 117 of file BaseStructures.h.
|
static |
Definition at line 249 of file fpe_handler.cpp.
|
inline |
Definition at line 44 of file EigenmodeStrategy.h.
| bool eonc::atomListMeansAll | ( | const std::string & | atomList | ) |
Whether atomList means "every free atom" (empty, "all", case-insensitive).
Definition at line 22 of file MobileAtoms.cpp.
| std::shared_ptr< LowestEigenmode > eonc::buildEigenmodeStrategy | ( | std::shared_ptr< Matter > | matter, |
| const Parameters & | params, | ||
| std::shared_ptr< Potential > | pot ) |
Definition at line 28 of file EigenmodeStrategy.cpp.
| void eonc::bundle | ( | int | number, |
| const std::vector< std::string > & | filenames, | ||
| std::vector< std::string > * | bundledFilenames ) |
Definition at line 180 of file Bundling.cpp.
| std::vector< double > eonc::cartesianMode | ( | const Matter & | matter, |
| const VectorXi & | atoms, | ||
| const Eigen::Ref< const VectorXd > & | mode ) |
Cartesian displacement of every atom along one mass-weighted mode over the mobile degrees of freedom atoms: x = q / sqrt(m), unit norm, zero on atoms outside atoms.
Row-major N x 3.
Definition at line 748 of file Hessian.cpp.
| std::vector< int > eonc::colorMobileCutoffGraph | ( | const Matter & | matter, |
| const VectorXi & | atoms, | ||
| double | cutoff ) |
Conflict graph on atoms: two mobile atoms share an edge when their closed cutoff neighborhoods intersect, then greedy-colored.
Empty when the neighbor list cannot be built.
Definition at line 266 of file Hessian.cpp.
| void eonc::commandLine | ( | int | argc, |
| char ** | argv ) |
Definition at line 93 of file CommandLine.cpp.
|
static |
Definition at line 16 of file MetatomicDynPot.cpp.
|
static |
Definition at line 120 of file fpe_handler.cpp.
| void eonc::deleteUnbundledFiles | ( | const std::vector< std::string > & | unbundledFilenames | ) |
Definition at line 145 of file Bundling.cpp.
| void eonc::disableFPE | ( | ) |
Definition at line 527 of file fpe_handler.cpp.
|
inline |
Definition at line 31 of file EigenmodeStrategy.h.
|
inline |
Definition at line 36 of file EigenmodeStrategy.h.
|
inline |
Definition at line 40 of file EigenmodeStrategy.h.
|
inline |
Definition at line 54 of file EigenmodeStrategy.h.
|
inline |
Definition at line 56 of file EigenmodeStrategy.h.
|
inline |
Definition at line 52 of file EigenmodeStrategy.h.
|
inline |
Definition at line 48 of file EigenmodeStrategy.h.
|
inline |
Definition at line 60 of file EigenmodeStrategy.h.
| void eonc::enableFPE | ( | ) |
Definition at line 491 of file fpe_handler.cpp.
|
inline |
Evaluates every system that needs a force update.
With a potential that batches, the dirty systems go through forceBatch in one call, so calculator groups take them together; otherwise each computes on its own. Systems that are current are left alone.
Definition at line 847 of file Matter.cpp.
| M eonc::fdForceDerivative | ( | FdScheme | scheme, |
| double | dr, | ||
| const M & | f0, | ||
| const M & | fPlus, | ||
| const M & | fMinus, | ||
| const M & | fPlus2, | ||
| const M & | fMinus2 ) |
Derivative of a sampled force map along one real step of length dr.
Fourth-order central: [-f(+2h) + 8 f(+h) - 8 f(-h) + f(-2h)] / (12 h).
Definition at line 46 of file FiniteDifference.h.
| VectorXd eonc::fdHessianVector | ( | FdScheme | scheme, |
| double | dr, | ||
| const VectorXd & | force0, | ||
| Eval && | eval ) |
Energy Hessian-vector product -dF.
eval(scale) is the force at x + scale * dr * v. One-sided and central read only the samples they need; fourth reads scale in {1, -1, 2, -2}.
Definition at line 67 of file FiniteDifference.h.
|
inline |
Definition at line 19 of file ForEachImage.h.
|
static |
Definition at line 289 of file fpe_handler.cpp.
| VectorXi eonc::freeAtomIndices | ( | const Matter * | matter | ) |
Free (unfixed) atom indices in ascending order.
Definition at line 49 of file MobileAtoms.cpp.
|
inline |
Reconstruct AtomMatrix from a flat column-major vector (e.g.
from Fortran). RowMajor(N,3) and ColMajor(3,N) share the same contiguous memory layout, so this is effectively a reinterpretation of the flat data.
Definition at line 61 of file Eigen.h.
|
inline |
Global access to thread-safe ARTn resource.
Definition at line 171 of file ARTnResource.h.
|
inline |
Global access to thread-safe IRA resource.
Definition at line 127 of file IRAResource.h.
| int eonc::getBundleSize | ( | ) |
Definition at line 27 of file Bundling.cpp.
| std::vector< int > eonc::greedyColorCutoffGraph | ( | const std::vector< std::vector< int > > & | adj | ) |
Greedy coloring of an undirected graph.
adj[v] lists neighbors of v (self-loops ignored). Colors are dense from 0 in vertex order.
Definition at line 241 of file Hessian.cpp.
| std::map< JobType, JobFactory > & eonc::jobTable | ( | ) |
Definition at line 14 of file JobRegistry.cpp.
|
inline |
LAMMPS argv.
The log file stays off. A screen path is copied into the process logger by the caller.
Definition at line 51 of file LAMMPSPot.h.
|
inline |
Byte offset at which to keep copying a LAMMPS screen file.
A new LAMMPS open truncates that file, so a restart or a shorter file reads from the start.
Definition at line 41 of file LAMMPSPot.h.
|
inline |
True when waitpid has collected the child. EINTR is not a collection.
Definition at line 31 of file LAMMPSPot.h.
|
inline |
Pack an eOn cell for pARTn artn_step.
Lattice vector i is row i here and Fortran column i there (box(:,i)). Row-major cell memory is already that column-major layout. Filling box so Fortran box(i,j) equals cell(i,j) sends the transpose.
Definition at line 71 of file Eigen.h.
|
constexpr |
Definition at line 24 of file fpe_handler.h.
|
nodiscard |
Max Euclidean norm over N x 3 row-major force rows.
An atom is ignored when fixed is non-null and all three of its mask entries are greater than 0.5 (fully fixed). fixed == nullptr keeps every atom. Returns 0 when nAtoms is not positive, and NaN when any free atom's norm is NaN, on every SIMD target.
Definition at line 106 of file ForceNorm.cpp.
| AtomMatrix eonc::minImageRemoveRigidDrift | ( | const Matter & | reference, |
| AtomMatrix | diff, | ||
| Eigen::RowVector3d * | totalDrift ) |
Minimum-image a free-atom difference and remove rigid translation.
One pbc pass wraps boundary atoms while a uniform drift remains, so the primary guideline and each symmetry product share this fixed point.
Definition at line 71 of file OHTSTJob.cpp.
| VectorXd eonc::mobileForces | ( | Matter * | matter, |
| const VectorXi & | mobile ) |
Force components on mobile atoms after Matter has a valid force cache (calls getForces under the hood if needed via the non-const Matter API).
Definition at line 142 of file MobileAtoms.cpp.
| VectorXd eonc::packMobileRows | ( | const AtomMatrix & | full, |
| const VectorXi & | mobile ) |
Pack full (n_atoms,3) rows of mobile atoms into a 3*n_mobile vector.
Definition at line 127 of file MobileAtoms.cpp.
|
inline |
Definition at line 27 of file FiniteDifference.h.
| std::vector< ServeEndpoint > eonc::parseServeSpec | ( | const std::string & | spec | ) |
Parse a serve configuration string into endpoints.
Accepts comma-separated entries of the form "potential:port" or "potential:host:port". Examples: "lj:12345" "metatomic:12345,lj:12346" "metatomic:0.0.0.0:12345"
| spec | The comma-separated endpoint specification. |
Definition at line 232 of file ServeMode.cpp.
|
inline |
Uniform PMF-scan coordinate.
Plane 0 is the reactant (s = 0) and plane nScan-1 is the product (s = guideLen). s_init is not applied.
Definition at line 26 of file OHTSTJob.h.
|
nodiscardnoexcept |
Definition at line 38 of file PotCapabilities.h.
|
nodiscardnoexcept |
Definition at line 30 of file PotCapabilities.h.
| void eonc::registerJob | ( | JobType | type, |
| JobFactory | factory ) |
Definition at line 19 of file JobRegistry.cpp.
| VectorXi eonc::resolveMobileAtoms | ( | const Matter * | matter, |
| const std::string & | atomList ) |
PHVA-class mobile set for FD Hessian and matrix-free Krylov (Lanczos / Davidson).
free/fixed on Matter is the optimizer mask. The mobile set is a (possibly proper) subset of free atoms: those that are displaced in finite-difference Hessian-vector products (Li & Jensen, Theor. Chem. Acc. 107, 211 (2002)).
atomList empty or "all" -> all free atoms (backward-compatible default). Otherwise comma/space-separated 0-based indices, intersected with free flags; order follows the list (duplicates dropped). Out-of-range and fixed indices are skipped.
Definition at line 68 of file MobileAtoms.cpp.
| VectorXi eonc::resolveMobileAtoms | ( | const Matter * | matter, |
| const VectorXi & | candidates ) |
Explicit candidate indices, intersected with free flags (order preserved, duplicates dropped).
Used by pyeonclient compute(..., atoms=...).
Definition at line 105 of file MobileAtoms.cpp.
|
inlinenodiscard |
Run Lanczos, Davidson, or LOR.
Classical returns nullopt (stock rotation loop).
Definition at line 70 of file DimerRotationDispatch.h.
| void eonc::serveFromConfig | ( | const Parameters & | params | ) |
Start serve mode from config-file parameters.
Reads serve_options from params and dispatches to the appropriate mode:
| params | The eOn parameters with serve_options populated. |
Definition at line 203 of file ServeMode.cpp.
| void eonc::serveGateway | ( | const Parameters & | params, |
| const std::string & | host, | ||
| uint16_t | port, | ||
| size_t | pool_size ) |
Start a gateway server backed by a pool of potential instances.
Creates pool_size instances of the configured potential and serves them behind a single gateway port. Incoming requests are dispatched round-robin across the pool. This gives clients a single endpoint while spreading load.
| params | The eOn parameters (potential_options.potential must be set). |
| host | The hostname to listen on. |
| port | The gateway port. |
| pool_size | Number of potential instances in the pool. |
Definition at line 170 of file ServeMode.cpp.
| void eonc::serveMode | ( | const Parameters & | params, |
| const std::string & | host, | ||
| uint16_t | port ) |
Start a single rgpot-compatible Cap'n Proto RPC server.
Wraps eOn's Potential::force() as an rgpot PotentialBase and serves it over Cap'n Proto RPC. Blocks until the server is killed.
| params | The eOn parameters (potential_options.potential must be set). |
| host | The hostname to listen on (e.g., "localhost" or "*"). |
| port | The TCP port to listen on. |
Definition at line 58 of file ServeMode.cpp.
| void eonc::serveMultiple | ( | const std::vector< ServeEndpoint > & | endpoints, |
| const Parameters & | params ) |
Serve multiple potentials concurrently on different ports.
Each endpoint gets its own thread, its own potential instance, and its own Cap'n Proto event loop. All threads block until SIGINT/SIGTERM.
| endpoints | List of {potential, host, port} configurations. |
| params | Base eOn parameters (potential type is overridden per endpoint). |
Definition at line 81 of file ServeMode.cpp.
| void eonc::serveReplicated | ( | const Parameters & | params, |
| const std::string & | host, | ||
| uint16_t | base_port, | ||
| size_t | replicas ) |
Serve N replicas of the same potential across sequential ports.
Starts replicas threads, each serving the same potential type on ports base_port, base_port+1, ..., base_port+replicas-1.
| params | The eOn parameters (potential_options.potential must be set). |
| host | The hostname to listen on. |
| base_port | The first port; replicas use base_port+0 .. base_port+N-1. |
| replicas | Number of concurrent server instances. |
Definition at line 136 of file ServeMode.cpp.
| void eonc::startPooledRpcServer | ( | std::vector< ForceCallback > | pool, |
| const std::string & | host, | ||
| uint16_t | port ) |
Start a blocking Cap'n Proto RPC server backed by a pool of force callbacks dispatched round-robin.
| pool | Vector of force callbacks (one per pool instance). |
| host | The hostname to listen on. |
| port | The TCP port to listen on. |
Definition at line 187 of file ServeRpcServer.cpp.
| void eonc::startRpcServer | ( | ForceCallback | callback, |
| const std::string & | host, | ||
| uint16_t | port ) |
Start a blocking Cap'n Proto RPC server using a force callback.
Defined in a separate translation unit to avoid naming collision between eOn's class Potential and the capnp-generated Potential interface.
| callback | Force evaluation function. |
| host | The hostname to listen on. |
| port | The TCP port to listen on. |
Definition at line 105 of file ServeRpcServer.cpp.
| bool eonc::trivialModeCountIsPhysical | ( | long | removed, |
| long | fixedAtoms ) |
Whether removed zero-frequency modes are what the structure's symmetries give: 6 for a free cluster (3 translations and 3 rotations), 5 for a linear one, 3 for a periodic cell, where rotations are no symmetry of the lattice, and none once any atom is fixed.
Definition at line 798 of file Hessian.cpp.
| std::vector< std::string > eonc::unbundle | ( | int | number | ) |
Definition at line 71 of file Bundling.cpp.
| void eonc::unpackMobileRows | ( | const VectorXd & | packed, |
| const VectorXi & | mobile, | ||
| AtomMatrix & | full ) |
Write a 3*n_mobile vector into full AtomMatrix rows (other rows unchanged).
Definition at line 135 of file MobileAtoms.cpp.
|
inlinenodiscardconstexprnoexcept |
Definition at line 41 of file DimerRotationDispatch.h.
|
static |
Definition at line 272 of file fpe_handler.cpp.
| bool eonc::writeNormalModes | ( | Matter & | matter, |
| const VectorXi & | atoms, | ||
| const VectorXd & | eigenvalues, | ||
| const MatrixXd & | modes, | ||
| const std::string & | path ) |
Writes one frame of matter per mode to path, the mode as the displacements section and mode_eigenvalue (eV / (Angstrom^2 amu)), hbar_omega (eV, negative for an imaginary mode) and wavenumber (cm^-1, same sign) as frame metadata.
Definition at line 775 of file Hessian.cpp.
|
static |
Definition at line 215 of file fpe_handler.cpp.
|
constexpr |
Definition at line 18 of file RandomNumbers.h.
|
constexpr |
Definition at line 21 of file RandomNumbers.h.
|
constexpr |
Definition at line 26 of file RandomNumbers.h.
|
constexpr |
Definition at line 27 of file RandomNumbers.h.
|
constexpr |
Definition at line 17 of file RandomNumbers.h.
|
constexpr |
Definition at line 23 of file RandomNumbers.h.
|
constexpr |
Definition at line 24 of file RandomNumbers.h.
|
constexpr |
Definition at line 25 of file RandomNumbers.h.
|
constexpr |
Definition at line 28 of file RandomNumbers.h.
|
constexpr |
Definition at line 29 of file RandomNumbers.h.
|
constexpr |
Definition at line 30 of file RandomNumbers.h.
|
constexpr |
Definition at line 31 of file RandomNumbers.h.
|
inlineconstexpr |
|
constexpr |
Definition at line 23 of file fpe_handler.h.
|
staticconstexpr |
Definition at line 106 of file fpe_handler.cpp.
|
staticconstexpr |
Definition at line 108 of file fpe_handler.cpp.
|
staticconstexpr |
Definition at line 107 of file fpe_handler.cpp.
Definition at line 20 of file RandomNumbers.h.
|
constexpr |
Definition at line 19 of file RandomNumbers.h.
|
constexpr |
Definition at line 22 of file RandomNumbers.h.