|
occ
|
Namespaces | |
| namespace | impl |
Classes | |
| struct | AccelerationPlan |
| struct | AssignedEnergy |
| class | CEModelCrystalGrowthCalculator |
| struct | CGConfig |
| struct | CGPreparation |
| Result of loading and configuring a cg run: the crystal, the calculator options and any per-molecule charges. More... | |
| struct | CorrelationOptions |
| Options for a post-HF correlation calculation on a converged SCF wavefunction. More... | |
| struct | CorrelationResult |
| Result of a post-HF correlation calculation. More... | |
| class | CrystalGrowthCalculator |
| struct | CrystalGrowthCalculatorOptions |
| struct | CrystalSurfaceEnergies |
| struct | DMAConfig |
| class | DMADriver |
| struct | DMAReferenceLevel |
| Reference QM level for the monomer multipoles in the DMA+exp-6 model. More... | |
| class | DummyCrystalGrowthCalculator |
| struct | FacetEnergies |
| struct | MethodSpec |
| struct | MorphologyOptions |
| Options for the particle size/shape-dependent energy calculation. More... | |
| 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. | |
| CGPreparation | prepare_cg (CGConfig const &config) |
Load the crystal and build calculator options + charges from config. | |
| occ::cg::CrystalGrowthResult | run_cg_pipeline (CrystalGrowthCalculator &calc, const CrystalGrowthCalculatorOptions &opts, CGConfig const &config) |
| Run the full crystal-growth pipeline on an already-constructed calculator: monomer energies -> lattice convergence -> molecular surroundings -> surface energies / morphology -> JSON serialization. | |
| occ::cg::CrystalGrowthResult | run_cg (CGConfig const &) |
| CorrelationResult | run_correlation (const qm::Wavefunction &wfn, const CorrelationOptions &opts={}) |
| Run an MP2 / CCSD / CCSD(T) calculation on a converged SCF wavefunction, with the same backend dispatch, auxiliary-basis resolution and frozen-core handling as the CLI. | |
| 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) |
| MorphologyResult | compute_crystal_morphology (const occ::crystal::Crystal &crystal, const occ::crystal::CrystalDimers &uc_dimers, const CrystalSurfaceEnergies &surface_energies, const occ::cg::CrystalGrowthResult &growth_result, const MorphologyOptions &options={}) |
| Compute the particle size/shape-dependent (surface + edge + corner) energy. | |
| 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) |
| occ::qm::Wavefunction | calculate_wavefunction (const occ::core::Molecule &mol, const std::string &name, const std::string &method, const std::string &basis, bool spherical) |
| Compute a wavefunction at an explicit method/basis rather than a CE model name. | |
| WavefunctionList | calculate_wavefunctions (const std::string &basename, const MoleculeList &molecules, const std::string &method, const std::string &basis, 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 | ||
| ) |
| occ::qm::Wavefunction occ::driver::calculate_wavefunction | ( | const occ::core::Molecule & | mol, |
| const std::string & | name, | ||
| const std::string & | method, | ||
| const std::string & | basis, | ||
| bool | spherical | ||
| ) |
Compute a wavefunction at an explicit method/basis rather than a CE model name.
| WavefunctionList occ::driver::calculate_wavefunctions | ( | const std::string & | basename, |
| const MoleculeList & | molecules, | ||
| const std::string & | energy_model, | ||
| bool | spherical | ||
| ) |
| WavefunctionList occ::driver::calculate_wavefunctions | ( | const std::string & | basename, |
| const MoleculeList & | molecules, | ||
| const std::string & | method, | ||
| const std::string & | basis, | ||
| bool | spherical | ||
| ) |
| MorphologyResult occ::driver::compute_crystal_morphology | ( | const occ::crystal::Crystal & | crystal, |
| const occ::crystal::CrystalDimers & | uc_dimers, | ||
| const CrystalSurfaceEnergies & | surface_energies, | ||
| const occ::cg::CrystalGrowthResult & | growth_result, | ||
| const MorphologyOptions & | options = {} |
||
| ) |
Compute the particle size/shape-dependent (surface + edge + corner) energy.
| uc_dimers | must already carry interaction energies (as produced by the cg flow via InteractionMapper); dimer.interaction_energy("Total") is read. |
| 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.
| CGPreparation occ::driver::prepare_cg | ( | CGConfig const & | config | ) |
Load the crystal and build calculator options + charges from config.
| occ::cg::CrystalGrowthResult occ::driver::run_cg | ( | CGConfig const & | ) |
| occ::cg::CrystalGrowthResult occ::driver::run_cg_pipeline | ( | CrystalGrowthCalculator & | calc, |
| const CrystalGrowthCalculatorOptions & | opts, | ||
| CGConfig const & | config | ||
| ) |
Run the full crystal-growth pipeline on an already-constructed calculator: monomer energies -> lattice convergence -> molecular surroundings -> surface energies / morphology -> JSON serialization.
| CorrelationResult occ::driver::run_correlation | ( | const qm::Wavefunction & | wfn, |
| const CorrelationOptions & | opts = {} |
||
| ) |
Run an MP2 / CCSD / CCSD(T) calculation on a converged SCF wavefunction, with the same backend dispatch, auxiliary-basis resolution and frozen-core handling as the CLI.
Handles restricted and unrestricted references.
| 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 |