|
occ
|
Namespaces | |
| namespace | impl |
Classes | |
| struct | AccelerationPlan |
| struct | AssignedEnergy |
| class | CEModelCrystalGrowthCalculator |
| struct | CGConfig |
| class | CrystalGrowthCalculator |
| struct | CrystalGrowthCalculatorOptions |
| struct | CrystalSurfaceEnergies |
| struct | DMAConfig |
| class | DMADriver |
| class | DummyCrystalGrowthCalculator |
| struct | FacetEnergies |
| struct | MethodSpec |
| struct | VibrationalAnalysisConfig |
| Configuration options for vibrational frequency analysis. More... | |
| class | XTBCrystalGrowthCalculator |
Typedefs | |
| using | WavefunctionList = std::vector< Wavefunction > |
| using | SolventNeighborContributionList = std::vector< cg::SolvationContribution > |
| using | MoleculeList = std::vector< occ::core::Molecule > |
Enumerations | |
| enum class | WavefunctionChoice { GasPhase , Solvated } |
| enum class | MethodKind { HF , DFT , MP2 , CCSD , CCSD_T , GFN2 } |
Functions | |
| AccelerationPlan | plan_acceleration (io::RIPolicy policy, const std::string &orbital_basis_name, std::size_t nbf, double exact_exchange, const std::string &user_df_basis, bool user_cosx) |
| Decide SCF acceleration (density fitting / COSX) for a calculation. | |
| template<typename Proc > | |
| void | apply_acceleration (Proc &proc, std::size_t nbf, const io::OccInput &config, bool allow_cosx=true) |
| Apply the active acceleration policy (DF / COSX) to an SCF procedure. | |
| occ::cg::CrystalGrowthResult | run_cg (CGConfig const &) |
| std::vector< AssignedEnergy > | assign_interaction_terms_to_nearest_neighbours (const crystal::CrystalDimers::MoleculeNeighbors &neighbors, const std::vector< double > &dimer_energies, double cg_radius) |
| std::vector< occ::Vec3 > | calculate_net_dipole (const WavefunctionList &wavefunctions, const crystal::CrystalDimers &crystal_dimers) |
| CrystalSurfaceEnergies | calculate_crystal_surface_energies (const std::string &filename, const occ::crystal::Crystal &crystal, const occ::crystal::CrystalDimers &uc_dimers, int max_number_of_surfaces, int sign=-1) |
| void | to_json (nlohmann::json &j, const FacetEnergies &) |
| void | to_json (nlohmann::json &j, const CrystalSurfaceEnergies &) |
| qm::Wavefunction | geometry_optimization (const io::OccInput &config) |
| Perform geometry optimization. | |
| std::pair< qm::Wavefunction, core::VibrationalModes > | geometry_optimization_with_frequencies (const io::OccInput &config, bool run_frequencies=true) |
| Perform geometry optimization with optional vibrational analysis. | |
| MethodSpec | parse_method_string (const std::string &method_string) |
| Parse a method string into base method, dispersion, kind and backend. | |
| MethodKind | method_kind_from_string (const std::string &name) |
| qm::SpinorbitalKind | determine_spinorbital_kind (const std::string &name, int multiplicity, MethodKind method_kind) |
| occ::qm::Wavefunction | calculate_wavefunction (const occ::core::Molecule &mol, const std::string &name, const std::string &energy_model, bool spherical) |
| WavefunctionList | calculate_wavefunctions (const std::string &basename, const MoleculeList &molecules, const std::string &energy_model, bool spherical) |
| void | compute_monomer_energies (const std::string &basename, WavefunctionList &wavefunctions, const std::string &model_name) |
| qm::Wavefunction | single_point (const io::OccInput &) |
| qm::Wavefunction | single_point (const io::OccInput &, const qm::Wavefunction &) |
| core::VibrationalModes | vibrational_analysis (const io::OccInput &config, const qm::Wavefunction &wfn, const VibrationalAnalysisConfig &vib_config={}) |
| Perform vibrational frequency analysis on an optimized geometry. | |
| core::VibrationalModes | vibrational_analysis (const io::OccInput &config, const qm::Wavefunction &wfn) |
| Convenience function for standard frequency analysis. | |
| using occ::driver::MoleculeList = typedef std::vector<occ::core::Molecule> |
| using occ::driver::SolventNeighborContributionList = typedef std::vector<cg::SolvationContribution> |
| typedef std::vector< occ::qm::Wavefunction > occ::driver::WavefunctionList |
|
strong |
|
strong |
| void occ::driver::apply_acceleration | ( | Proc & | proc, |
| std::size_t | nbf, | ||
| const io::OccInput & | config, | ||
| bool | allow_cosx = true |
||
| ) |
Apply the active acceleration policy (DF / COSX) to an SCF procedure.
Works for both HartreeFock and DFT (both expose the DF and COSX setters). COSX is only enabled for exact exchange, never for range-separated hybrids (COSX cannot handle range separation).
| allow_cosx | pass false for gradient-producing calculations (geometry optimisation, frequencies): COSX has no analytic gradient, so it is downgraded to DF exchange there. |
| std::vector< AssignedEnergy > occ::driver::assign_interaction_terms_to_nearest_neighbours | ( | const crystal::CrystalDimers::MoleculeNeighbors & | neighbors, |
| const std::vector< double > & | dimer_energies, | ||
| double | cg_radius | ||
| ) |
| CrystalSurfaceEnergies occ::driver::calculate_crystal_surface_energies | ( | const std::string & | filename, |
| const occ::crystal::Crystal & | crystal, | ||
| const occ::crystal::CrystalDimers & | uc_dimers, | ||
| int | max_number_of_surfaces, | ||
| int | sign = -1 |
||
| ) |
| std::vector< occ::Vec3 > occ::driver::calculate_net_dipole | ( | const WavefunctionList & | wavefunctions, |
| const crystal::CrystalDimers & | crystal_dimers | ||
| ) |
| occ::qm::Wavefunction occ::driver::calculate_wavefunction | ( | const occ::core::Molecule & | mol, |
| const std::string & | name, | ||
| const std::string & | energy_model, | ||
| bool | spherical | ||
| ) |
| WavefunctionList occ::driver::calculate_wavefunctions | ( | const std::string & | basename, |
| const MoleculeList & | molecules, | ||
| const std::string & | energy_model, | ||
| bool | spherical | ||
| ) |
| void occ::driver::compute_monomer_energies | ( | const std::string & | basename, |
| WavefunctionList & | wavefunctions, | ||
| const std::string & | model_name | ||
| ) |
|
inline |
| qm::Wavefunction occ::driver::geometry_optimization | ( | const io::OccInput & | config | ) |
Perform geometry optimization.
| config | Input configuration |
| std::pair< qm::Wavefunction, core::VibrationalModes > occ::driver::geometry_optimization_with_frequencies | ( | const io::OccInput & | config, |
| bool | run_frequencies = true |
||
| ) |
Perform geometry optimization with optional vibrational analysis.
| config | Input configuration |
| run_frequencies | If true, compute vibrational frequencies after optimization |
|
inline |
|
inline |
Parse a method string into base method, dispersion, kind and backend.
Single source of truth: a leading "ri-"/"df-"/"thc-" backend prefix (only for correlation methods) is split off, then a dispersion suffix, then the base is classified. Anything not matching a known method alias is a DFT functional.
Examples: "pbe-d4" -> {base "pbe", disp "d4", kind DFT} "hf-d4" -> {base "hf", disp "d4", kind HF} "ccsd(t)" -> {base "ccsd(t)", kind CCSD_T, backend ""} "ri-ccsd(t)" -> {base "ccsd(t)", kind CCSD_T, backend "df"} "thc-mp2" -> {base "mp2", kind MP2, backend "thc"} "b97-d" -> {base "b97-d", kind DFT} (prefix/suffix kept)
|
inline |
Decide SCF acceleration (density fitting / COSX) for a calculation.
| policy | requested RIPolicy (Auto by default) |
| orbital_basis_name | primary orbital basis name (for aux-basis lookup) |
| nbf | number of basis functions (for the COSX crossover) |
| exact_exchange | fraction of exact (HF) exchange: 1.0 for HF, the hybrid mixing fraction for DFT, 0.0 for a pure GGA |
| user_df_basis | explicit –df-basis/–aux value ("" if unset) |
| user_cosx | explicit –cosx flag |
Explicit user settings always win; Auto only fills in choices left unset. The Auto rule (ORCA-style): density-fit the Coulomb term for every SCF method, and for exact exchange use DF-K below the basis-function crossover, seminumerical COSX above it.
| occ::cg::CrystalGrowthResult occ::driver::run_cg | ( | CGConfig const & | ) |
| qm::Wavefunction occ::driver::single_point | ( | const io::OccInput & | ) |
| qm::Wavefunction occ::driver::single_point | ( | const io::OccInput & | , |
| const qm::Wavefunction & | |||
| ) |
| void occ::driver::to_json | ( | nlohmann::json & | j, |
| const CrystalSurfaceEnergies & | |||
| ) |
| void occ::driver::to_json | ( | nlohmann::json & | j, |
| const FacetEnergies & | |||
| ) |
| core::VibrationalModes occ::driver::vibrational_analysis | ( | const io::OccInput & | config, |
| const qm::Wavefunction & | wfn | ||
| ) |
Convenience function for standard frequency analysis.
Uses default settings optimized for most common use cases:
| config | Input configuration from OCC input file |
| wfn | Converged wavefunction from optimization or single point |
| core::VibrationalModes occ::driver::vibrational_analysis | ( | const io::OccInput & | config, |
| const qm::Wavefunction & | wfn, | ||
| const VibrationalAnalysisConfig & | vib_config = {} |
||
| ) |
Perform vibrational frequency analysis on an optimized geometry.
This function computes the molecular Hessian using finite differences and performs normal mode analysis to obtain vibrational frequencies. It can be called after geometry optimization to characterize the stationary point.
| config | Input configuration from OCC input file |
| wfn | Converged wavefunction from optimization or single point |
| vib_config | Configuration options for vibrational analysis |