pair_asu_table Class Template Reference

Managed table of pair interactions based on direct_space_asu::asu_mappings. More...

#include <pair_tables.h>

List of all members.

Public Member Functions

 pair_asu_table ()
 Default constructor. Some data members are not initialized!
 pair_asu_table (boost::shared_ptr< direct_space_asu::asu_mappings< FloatType, IntShiftType > > asu_mappings)
 Initialization of an empty table().
void reserve (std::size_t n_sites_final)
 Support for incremental_pairs. Not available from Python.
void grow (std::size_t number_of_additional_entries)
 Support for incremental_pairs. Not available from Python.
boost::shared_ptr
< direct_space_asu::asu_mappings
< FloatType, IntShiftType > > 
asu_mappings () const
 Instance as passed to the constructor.
pair_asu_table_table const & table () const
 Access to raw table.
bool contains (direct_space_asu::asu_mapping_index_pair const &pair) const
 True if pair is in table().
bool contains (unsigned i_seq, unsigned j_seq, unsigned j_sym) const
 True if pair characterized by i_seq, j_seq, j_sym is in table().
bool operator== (pair_asu_table const &other) const
 The order of the pair_asu_j_sym_groups is irrelevant.
bool operator!= (pair_asu_table const &other) const
 Shorthand for: !operator==.
af::shared< std::size_t > pair_counts () const
 Pair count for each site.
af::shared< std::size_t > cluster_pivot_selection (bool general_positions_only=false, std::size_t max_clusters=0, unsigned estimated_reduction_factor=4) const
 Returns selection for cluster pivots.
pair_asu_tableadd_all_pairs (FloatType const &distance_cutoff, FloatType const &min_cubicle_edge=5, FloatType const &epsilon=1.e-6)
 Uses neighbors::fast_pair_generator to add all pairs with distances <= distance_cutoff*(1+epsilon).
pair_asu_tableadd_covalent_pairs (af::const_ref< std::string > const &scattering_types, af::const_ref< std::string > const &exclude_scattering_types=af::const_ref< std::string >(0, 0), FloatType const &distance_cutoff=3.5, FloatType const &min_cubicle_edge=5, FloatType const &tolerance=0.5, FloatType const &epsilon=1.e-6)
 Uses neighbors::fast_pair_generator to add all pairs with distances <= [sum(covalent radii) + tolerance].
pair_asu_tableadd_pair_sym_table (pair_sym_table const &sym_table)
 Adds all pairs defined by sym_table.
pair_asu_tableadd_pair (direct_space_asu::asu_mapping_index_pair const &pair)
 Adds a pair and all symmetrically equivalent pairs.
pair_asu_tableadd_pair (unsigned i_seq, unsigned j_seq, sgtbx::rt_mx const &rt_mx_ji)
 Adds the pair defined by i_seq, j_seq and rt_mx_ji.
pair_asu_tableadd_pair (af::tiny< unsigned, 2 > const &i_seqs)
 Adds the pair defined by i_seq, j_seq assuming rt_mx_ji is the identity matrix.
pair_sym_table extract_pair_sym_table (bool skip_j_seq_less_than_i_seq=true) const
 Extracts pair_sym_table of interactions unique under symmetry.
bool process_pair (unsigned i_seq, unsigned j_seq, sgtbx::rt_mx const &rt_mx_ji)
 Addition of a pair interaction and all its symmetrically equivalent interactions to table().
bool process_pair (unsigned i_seq, unsigned j_seq, sgtbx::rt_mx const &rt_mx_ji, sgtbx::rt_mx const &rt_mx_i, int j_sym)
 Addition of a pair interaction and all its symmetrically equivalent interactions to table().
pair_asu_table angle_pair_asu_table () const
 Constructs new pair_asu_table with interactions for all bond angles.


Detailed Description

template<typename FloatType = double, typename IntShiftType = int>
class cctbx::crystal::pair_asu_table< FloatType, IntShiftType >

Managed table of pair interactions based on direct_space_asu::asu_mappings.

Member Function Documentation

af::shared<std::size_t> cluster_pivot_selection ( bool  general_positions_only = false,
std::size_t  max_clusters = 0,
unsigned  estimated_reduction_factor = 4 
) const [inline]

Returns selection for cluster pivots.

The list of sites is assumed to be ordered by significance (e.g. peak height), most significant first.

pair_asu_table& add_all_pairs ( FloatType const &  distance_cutoff,
FloatType const &  min_cubicle_edge = 5,
FloatType const &  epsilon = 1.e-6 
) [inline]

Uses neighbors::fast_pair_generator to add all pairs with distances <= distance_cutoff*(1+epsilon).

All symmetrically equivalent pairs are automatically generated.

References pair_asu_table::add_pair(), simple_pair_generator::at_end(), and fast_pair_generator::next().

pair_asu_table& add_covalent_pairs ( af::const_ref< std::string > const &  scattering_types,
af::const_ref< std::string > const &  exclude_scattering_types = af::const_ref<std::string>(0,0),
FloatType const &  distance_cutoff = 3.5,
FloatType const &  min_cubicle_edge = 5,
FloatType const &  tolerance = 0.5,
FloatType const &  epsilon = 1.e-6 
) [inline]

Uses neighbors::fast_pair_generator to add all pairs with distances <= [sum(covalent radii) + tolerance].

All symmetrically equivalent pairs are automatically generated.

References pair_asu_table::add_pair(), simple_pair_generator::at_end(), asu_mapping_index_pair_and_diff::dist_sq, asu_mapping_index_pair::i_seq, asu_mapping_index_pair::j_seq, and fast_pair_generator::next().

pair_asu_table& add_pair_sym_table ( pair_sym_table const &  sym_table  )  [inline]

Adds all pairs defined by sym_table.

All symmetrically equivalent pairs are automatically generated.

References pair_asu_table::add_pair().

pair_asu_table& add_pair ( unsigned  i_seq,
unsigned  j_seq,
sgtbx::rt_mx const &  rt_mx_ji 
) [inline]

Adds the pair defined by i_seq, j_seq and rt_mx_ji.

rt_mx_ji is the symmetry operation that maps the original site referenced by j_seq to the site interacting with the original site referenced by i_seq.

All symmetrically equivalent pairs are automatically generated.

References CCTBX_ASSERT, rt_mx::inverse_cancel(), and pair_asu_table::process_pair().

pair_sym_table extract_pair_sym_table ( bool  skip_j_seq_less_than_i_seq = true  )  const [inline]

Extracts pair_sym_table of interactions unique under symmetry.

The result may be interpreted as an "asymmetric unit of pair interactions."

If skip_j_seq_less_than_i_seq == false the result may contain redundancies. This option is mainly for debugging and development purposes.

References rt_mx::multiply().

bool process_pair ( unsigned  i_seq,
unsigned  j_seq,
sgtbx::rt_mx const &  rt_mx_ji 
) [inline]

Addition of a pair interaction and all its symmetrically equivalent interactions to table().

This functions calls the other overload to perform the actual work.

Not available in Python.

References rt_mx::multiply().

Referenced by pair_asu_table::add_pair(), and shell_asu_tables_actions::shell_complete().

bool process_pair ( unsigned  i_seq,
unsigned  j_seq,
sgtbx::rt_mx const &  rt_mx_ji,
sgtbx::rt_mx const &  rt_mx_i,
int  j_sym 
) [inline]

Addition of a pair interaction and all its symmetrically equivalent interactions to table().

The site_symmetry of i_seq is used to generate the symmetrically equivalent interactions.

Not available in Python.

References CCTBX_ASSERT, pair_asu_table::contains(), and rt_mx::multiply().


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

Generated on Tue Sep 1 17:12:31 2009 for cctbx by  doxygen 1.5.6