occ
Loading...
Searching...
No Matches
occ::crystal::DimerMappingTable Class Reference

Maps and manages symmetry relationships between dimers in a crystal. More...

#include <dimer_mapping_table.h>

Public Member Functions

DimerIndex symmetry_unique_dimer (const DimerIndex &dimer) const
 Finds the symmetry-unique representative for a given dimer.
 
std::vector< DimerIndexsymmetry_related_dimers (const DimerIndex &dimer) const
 Gets all symmetry-related forms of a given dimer.
 
const auto & unique_dimers () const
 Gets all unique dimers (unique up to translation)
 
const auto & symmetry_unique_dimers () const
 Gets all symmetry-unique dimers (including crystal symmetry)
 
const auto & symmetry_unique_dimer_map () const
 
std::pair< Vec3, Vec3dimer_positions (const core::Dimer &) const
 Gets a pair of positions for the given dimer (fractional)
 
DimerIndex dimer_index (const core::Dimer &) const
 Gets the dimer index for the given dimer.
 
DimerIndex dimer_index (const Vec3 &, const Vec3 &) const
 Gets the dimer index for the given dimer specified by positions.
 
DimerIndex canonical_dimer_index (const DimerIndex &) const
 Gets the Normalized dimer index (a,b sorted and starting from 000 cell)
 

Static Public Member Functions

static DimerMappingTable build_dimer_table (const Crystal &crystal, const CrystalDimers &dimers, bool consider_inversion)
 Constructs a dimer mapping table for a crystal structure.
 
static DimerIndex normalized_dimer_index (const DimerIndex &)
 Gets the Normalized dimer index (starting from 000 cell)
 

Detailed Description

Maps and manages symmetry relationships between dimers in a crystal.

DimerMappingTable provides functionality to analyze and track symmetry relationships between dimers in a crystal structure, including mapping between unique and symmetry-related dimers.

Member Function Documentation

◆ build_dimer_table()

static DimerMappingTable occ::crystal::DimerMappingTable::build_dimer_table ( const Crystal crystal,
const CrystalDimers dimers,
bool  consider_inversion 
)
static

Constructs a dimer mapping table for a crystal structure.

Parameters
crystalThe crystal structure to analyze
dimersThe set of crystal dimers to process
consider_inversionWhether to include inversion symmetry
Returns
A new DimerMappingTable instance

◆ canonical_dimer_index()

DimerIndex occ::crystal::DimerMappingTable::canonical_dimer_index ( const DimerIndex ) const

Gets the Normalized dimer index (a,b sorted and starting from 000 cell)

Parameters
TheDimerIndex to canonicalize
Returns
DimerIndex representing the provided dimer

◆ dimer_index() [1/2]

DimerIndex occ::crystal::DimerMappingTable::dimer_index ( const core::Dimer ) const

Gets the dimer index for the given dimer.

Parameters
thedimer object in question
Returns
DimerIndex representing the provided dimer

◆ dimer_index() [2/2]

DimerIndex occ::crystal::DimerMappingTable::dimer_index ( const Vec3 ,
const Vec3  
) const

Gets the dimer index for the given dimer specified by positions.

Parameters
Thetwo positions of dimer end points (fractional)
Returns
DimerIndex representing the provided dimer

◆ dimer_positions()

std::pair< Vec3, Vec3 > occ::crystal::DimerMappingTable::dimer_positions ( const core::Dimer ) const

Gets a pair of positions for the given dimer (fractional)

Parameters
thedimer object in question
Returns
pair of fractional coordinates for each half of the dimer

◆ normalized_dimer_index()

static DimerIndex occ::crystal::DimerMappingTable::normalized_dimer_index ( const DimerIndex )
static

Gets the Normalized dimer index (starting from 000 cell)

Parameters
TheDimerIndex to normalize
Returns
DimerIndex representing the provided dimer

◆ symmetry_related_dimers()

std::vector< DimerIndex > occ::crystal::DimerMappingTable::symmetry_related_dimers ( const DimerIndex dimer) const

Gets all symmetry-related forms of a given dimer.

Parameters
dimerThe dimer index to analyze
Returns
Vector of symmetry-related dimer indices

◆ symmetry_unique_dimer()

DimerIndex occ::crystal::DimerMappingTable::symmetry_unique_dimer ( const DimerIndex dimer) const

Finds the symmetry-unique representative for a given dimer.

Parameters
dimerThe dimer index to analyze
Returns
DimerIndex representing the symmetry-unique form

◆ symmetry_unique_dimer_map()

const auto & occ::crystal::DimerMappingTable::symmetry_unique_dimer_map ( ) const
inline

◆ symmetry_unique_dimers()

const auto & occ::crystal::DimerMappingTable::symmetry_unique_dimers ( ) const
inline

Gets all symmetry-unique dimers (including crystal symmetry)

Returns
Vector of symmetry-unique dimer indices

◆ unique_dimers()

const auto & occ::crystal::DimerMappingTable::unique_dimers ( ) const
inline

Gets all unique dimers (unique up to translation)

Returns
Vector of unique dimer indices

The documentation for this class was generated from the following file: