occ
Loading...
Searching...
No Matches
occ::interaction::polarization_partitioning Namespace Reference

Classes

struct  AtomContribution
 Represents the contribution of a single atom to polarization energy attribution. More...
 
struct  PairContribution
 Represents the partitioned polarization energy contribution from a dimer pair. More...
 

Typedefs

using FieldMap = ankerl::unordered_dense::map< std::pair< size_t, size_t >, Mat3N >
 

Functions

PairContribution partition_crystal_polarization_energy (const core::Dimer &dimer, const Mat3N &total_field_a, const Mat3N &total_field_b, const Mat3N &pair_field_a, const Mat3N &pair_field_b, const Vec &polarizabilities_a, const Vec &polarizabilities_b)
 Partitions crystal field polarization energy back to individual dimer pairs.
 
std::vector< PairContributionpartition_all_pairs (const std::vector< core::Dimer > &dimers, const FieldMap &total_fields, const FieldMap &pair_fields, const std::vector< Vec > &polarizabilities)
 Partition multiple dimer pairs simultaneously.
 

Typedef Documentation

◆ FieldMap

using occ::interaction::polarization_partitioning::FieldMap = typedef ankerl::unordered_dense::map<std::pair<size_t, size_t>, Mat3N>

Function Documentation

◆ partition_all_pairs()

std::vector< PairContribution > occ::interaction::polarization_partitioning::partition_all_pairs ( const std::vector< core::Dimer > &  dimers,
const FieldMap total_fields,
const FieldMap pair_fields,
const std::vector< Vec > &  polarizabilities 
)

Partition multiple dimer pairs simultaneously.

◆ partition_crystal_polarization_energy()

PairContribution occ::interaction::polarization_partitioning::partition_crystal_polarization_energy ( const core::Dimer dimer,
const Mat3N total_field_a,
const Mat3N total_field_b,
const Mat3N pair_field_a,
const Mat3N pair_field_b,
const Vec polarizabilities_a,
const Vec polarizabilities_b 
)

Partitions crystal field polarization energy back to individual dimer pairs.

Uses gradient-based energy attribution following the approach from the reference Python implementation. The total crystal field polarization energy is smaller than the sum of individual pair polarizations due to field cancellation effects.

Parameters
dimerThe molecular dimer pair
total_field_aTotal crystal field on molecule A atoms
total_field_bTotal crystal field on molecule B atoms
pair_field_aField contribution from molecule B onto A
pair_field_bField contribution from molecule A onto B
polarizabilities_aAtomic polarizabilities for molecule A
polarizabilities_bAtomic polarizabilities for molecule B
Returns
PairContribution containing attributed energies