MPQC
3.0.0-alpha
|
IntCoorGen generates a set of simple internal coordinates for a molecule. More...
#include <chemistry/molecule/coor.h>
Public Member Functions | |
IntCoorGen (const Ref< Molecule > &, int nextra=0, int *extra=0) | |
Create an IntCoorGen given a Molecule and, optionally, extra bonds. More... | |
IntCoorGen (const Ref< KeyVal > &) | |
The KeyVal constructor. More... | |
IntCoorGen (StateIn &) | |
void | save_data_state (StateOut &) |
Standard member. | |
virtual void | generate (const Ref< SetIntCoor > &) |
This generates a set of internal coordinates. | |
virtual void | print (std::ostream &out=ExEnv::out0()) const |
Print out information about this. | |
Public Member Functions inherited from sc::SavableState | |
SavableState & | operator= (const SavableState &) |
void | save_state (StateOut &) |
Save the state of the object as specified by the StateOut object. More... | |
void | save_object_state (StateOut &) |
This can be used for saving state when the exact type of the object is known for both the save and the restore. More... | |
virtual void | save_vbase_state (StateOut &) |
Save the virtual bases for the object. More... | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const MPQC__NOEXCEPT |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
const char * | class_name () const |
Return the name of the object's exact type. | |
int | class_version () const |
Return the version of the class. | |
Ref< DescribedClass > | ref () |
Return this object wrapped up in a Ref smart pointer. More... | |
Public Member Functions inherited from sc::RefCount | |
size_t | identifier () const |
Return the unique identifier for this object that can be compared for different objects of different types. More... | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
Static Public Member Functions | |
static BitArrayLTri | adjacency_matrix (const Molecule &mol, double radius_scaling_factor=1.1) |
computes the adjacency matrix for this molecule using atomic radii and the scaling_factor | |
static std::vector< std::set< int > > | find_disconnected_subgraphs (const BitArrayLTri &adjmat) |
given the adjacency matrix find all disconnected subgraphs, each subgraph is specified by a set of vertex indices | |
Static Public Member Functions inherited from sc::SavableState | |
static void | save_state (SavableState *s, StateOut &) |
static SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
Protected Member Functions | |
void | init_constants () |
double | cos_ijk (Molecule &m, int i, int j, int k) |
int | hterminal (Molecule &m, BitArrayLTri &bonds, int i) |
int | nearest_contact (int i, Molecule &m) |
void | add_bonds (const Ref< SetIntCoor > &list, BitArrayLTri &bonds, Molecule &m) |
void | add_bends (const Ref< SetIntCoor > &list, BitArrayLTri &bonds, Molecule &m) |
void | add_tors (const Ref< SetIntCoor > &list, BitArrayLTri &bonds, Molecule &m) |
void | add_out (const Ref< SetIntCoor > &list, BitArrayLTri &bonds, Molecule &m) |
void | connect_subgraphs (const Molecule &mol, BitArrayLTri &adjacency_matrix) |
(potentially) modifies the adjacency matrix to make sure that there are no disconnected subgraphs | |
Protected Member Functions inherited from sc::SavableState | |
SavableState (const SavableState &) | |
SavableState (StateIn &) | |
Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More... | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes | |
Ref< Molecule > | molecule_ |
int | linear_bends_ |
int | linear_lbends_ |
int | linear_tors_ |
int | linear_stors_ |
int | nextra_bonds_ |
int * | extra_bonds_ |
double | linear_bend_thres_ |
double | linear_tors_thres_ |
double | radius_scale_factor_ |
IntCoorGen generates a set of simple internal coordinates for a molecule.
Create an IntCoorGen given a Molecule and, optionally, extra bonds.
IntCoorGen keeps a reference to extra and deletes it when the destructor is called.
The KeyVal constructor.
molecule
A Molecule object. There is no default.
radius_scale_factor
If the distance between two atoms is less than the radius scale factor times the sum of the atoms' atomic radii, then a bond is placed between the two atoms for the purpose of finding internal coordinates. The default is 1.1.
linear_bend_threshold
A bend angle in degress greater than 180 minus this keyword's floating point value is considered a linear bend. The default is 1.0.
linear_tors_threshold
The angles formed by atoms a-b-c and b-c-d are checked for near linearity. If an angle in degrees is greater than 180 minus this keyword's floating point value, then the torsion is classified as a linear torsion. The default is 1.0.
linear_bend
Generate BendSimpleCo objects to describe linear bends. The default is false.
linear_lbend
Generate pairs of LinIPSimpleCo and LinIPSimpleCo objects to describe linear bends. The default is true.
linear_tors
Generate TorsSimpleCo objects to described linear torsions. The default is false.
linear_stors
Generate ScaledTorsSimpleCo objects to described linear torsions. The default is true.
extra_bonds
This is a vector of atom numbers, where elements and specify the atoms which are bound in extra bond . The extra_bonds keyword should only be needed for weakly interacting fragments, otherwise all the needed bonds will be found.