BALL 1.5.0
Loading...
Searching...
No Matches
Miscellaneous

Topics

 Periodic Table of Elements
 

Classes

class  BALL::Bond
 
class  BALL::ExpressionParser
 
class  BALL::ExpressionTree
 
class  BALL::Element
 
class  BALL::SecondaryStructure
 

Typedefs

typedef std::list< Atom * > BALL::AtomList
 

Functions

BALL_EXPORT AtomList BALL::atoms (const AtomContainer &fragment, const String &expression=String())
 
template<class AtomContainerType >
void BALL::cloneBonds (const AtomContainerType &atom_container, AtomContainerType &cloned)
 

Variables

bool BALL::clone_bonds
 
BALL_EXPORT PTE_ BALL::PTE
 

Detailed Description

Further classes and functions related to the kernel classes

Typedef Documentation

◆ AtomList

typedef std::list<Atom*> BALL::AtomList

Kernel object list classes. These classes can be used to hold pointers to kernel objects. They are returned by kernel extractors. These lists are a convenient way to execute operations on subsets of kernel structures and an often convenient, albeit slower, alternative to iterators. They are just convenient tyepdefs, so they will behave exactly as any STL list. In order to create these lists from kernel objects, use extractors .

Definition at line 51 of file extractors.h.

Function Documentation

◆ atoms()

BALL_EXPORT AtomList BALL::atoms ( const AtomContainer & fragment,
const String & expression = String() )

Extraction functions for external iteration. The following set of functions can by used from python to compile lists of objects from BALL kernel data structures. Extract atoms matching an expression. This method extracts all atoms of a kernel data structure into a list that match the Expression expression. If no expression is given, all atoms will be extracted.

Parameters
fragmentthe AtomContainer containing the atoms.
expressionthe expression that selects the atoms (default: no expression)

◆ cloneBonds()

template<class AtomContainerType >
void BALL::cloneBonds ( const AtomContainerType & atom_container,
AtomContainerType & cloned )

Bond cloning method. This template function implements the cloning of Bond s in AtomContainers. As Bonds are not integrated in the Composite tree structure of kernel objects, a simple deep cloning of a composite only copies all composites down to atoms. Bonds are not included because they are not children of the atoms but stored in a bond array. However, cloning of any kernel objects should naturally clone bonds, too. The implementation of this {cloning-with-bonds} is divided in two parts: first, a deep (recursive) cloning of all composites is performed. Second, the root composite (which is always an AtomContainer) calls cloneBonds for the cloned system to copy the bonds.

The trouble with this implementation is that each clone method must have the possibility to call cloneBonds, but only the first clone method in the recursive call tree is allowed to call it. This is guaranteed by the use of a global static variable clone_bonds . The first clone method called sets clone_bonds to false thereby forbidding the use of cloneBonds to all subsequently called clone methods. Then, it calls cloneBonds and resets clone_bonds to true.
This method assumes that the second argument (the composite without bonds) is a deep copy of the first argument (the composite containing the atoms). If the tree structures of both composites are not isomorphous, bonds are created in an unpredictable way.
Namespace: BALL
Parameters
atom_containerthe atom_container containing the bonds
cloneda deep copy of atom_container

Definition at line 57 of file KERNEL/global.h.

Variable Documentation

◆ clone_bonds

bool BALL::clone_bonds
extern

Global static variable needed for the cloning of kernel objects containing bonds. Namespace: BALL

See also
cloneBonds

◆ PTE

BALL_EXPORT PTE_ BALL::PTE
extern

Global static instance of the periodic table.