Loading...
Searching...
No Matches
MobileAtoms.cpp File Reference
#include "eon/MobileAtoms.h"
#include <cctype>
#include <string>
#include <unordered_set>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  eonc
 RAII resource manager for the ARTn C library with global synchronization.

Functions

bool eonc::atomListMeansAll (const std::string &atomList)
 Whether atomList means "every free atom" (empty, "all", case-insensitive).
VectorXi eonc::freeAtomIndices (const Matter *matter)
 Free (unfixed) atom indices in ascending order.
VectorXi eonc::resolveMobileAtoms (const Matter *matter, const std::string &atomList)
 PHVA-class mobile set for FD Hessian and matrix-free Krylov (Lanczos / Davidson).
VectorXi eonc::resolveMobileAtoms (const Matter *matter, const VectorXi &candidates)
 Explicit candidate indices, intersected with free flags (order preserved, duplicates dropped).
VectorXd eonc::packMobileRows (const AtomMatrix &full, const VectorXi &mobile)
 Pack full (n_atoms,3) rows of mobile atoms into a 3*n_mobile vector.
void eonc::unpackMobileRows (const VectorXd &packed, const VectorXi &mobile, AtomMatrix &full)
 Write a 3*n_mobile vector into full AtomMatrix rows (other rows unchanged).
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).