Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

Atom Class Reference
[Molecular Datastructures]

Atom class. More...

#include <atom.h>

Inheritance diagram for Atom:

Composite PropertyManager PersistentObject Selectable Object AutoDeletable PDBAtom List of all members.

Class friends

  • class Bond


typedef short Type
 Atom type.
class Bond

External iteration

typedef Index BondIteratorPosition
typedef RandomAccessIterator<
Atom, Bond, BondIteratorPosition,
BondIteratorTraits > 
BondIterator
 Random access iterator for bonds.
typedef ConstRandomAccessIterator<
Atom, Bond, BondIteratorPosition,
BondIteratorTraits > 
BondConstIterator
 Constant random access iterator for bonds.
typedef std::reverse_iterator<
BondIterator
BondReverseIterator
 Reverse random access iterator for bonds.
typedef std::reverse_iterator<
BondConstIterator
BondConstReverseIterator
 Constant reverse random access iterator for bonds.
BondIterator beginBond () throw ()
 Return a bond iterator pointing to the first bond of the atom.
BondIterator endBond () throw ()
 Return a past-the-end bond iterator.
BondConstIterator beginBond () const throw ()
 Return a constant bond iterator pointing to the first bond.
BondConstIterator endBond () const throw ()
 Return a constant past-the-end bond iterator.
BondReverseIterator rbeginBond () throw ()
 Return a reverse bond iterator pointing to the last bond.
BondReverseIterator rendBond () throw ()
 Return a past-the-end bond iterator for reverse traversal.
BondConstReverseIterator rbeginBond () const throw ()
 Return a constant reverse bond iterator pointing to the first atom.
BondConstReverseIterator rendBond () const throw ()
 Return a constant past-the-end bond iterator for reverse traversal.
class BondIteratorTraits

Efficient handling of atom attributes

typedef std::list< Atom * > AtomPtrList
typedef std::list< PositionAtomIndexList
Position getIndex () const
 Return the index in the static attribute array.
StaticAtomAttributes * getAttributePtr ()
const StaticAtomAttributes * getAttributePtr () const
Position compact (const AtomIndexList &indices) throw (Exception::OutOfRange)
 Compact memory for a list of atoms.
AttributeVector & getAttributes ()
 Access to the static attribute array.
const PreciseTimegetAttributesModificationTime () throw ()
 Get the time, when the attributes vector was last modified.

Attributes

Position index_
const Elementelement_
String name_
String type_name_
float radius_
unsigned char number_of_bonds_
Bondbond_ [MAX_NUMBER_OF_BONDS]
AttributeVector static_attributes_
AtomIndexList free_list_
PreciseTime attributes_changed_time_
 time of the last resize of the attributes vector

Public Types

Enumerations
enum  { UNKNOWN_TYPE = -1, ANY_TYPE = 0, MAX_NUMBER_OF_BONDS = 12 }
 Unnamed enumeration of all non-categorized constants. More...
enum  Property { NUMBER_OF_PROPERTIES = 0 }
 Predefined properties. More...
enum  FullNameType {
  NO_VARIANT_EXTENSIONS, ADD_VARIANT_EXTENSIONS, ADD_RESIDUE_ID, ADD_VARIANT_EXTENSIONS_AND_ID,
  ADD_CHAIN_RESIDUE_ID, ADD_VARIANT_EXTENSIONS_AND_CHAIN_RESIDUE_ID
}
 The type of name used for getFullName. More...

Public Member Functions

Constructors
 Atom () throw ()
 Default constructor.
 Atom (const Atom &atom, bool deep=true) throw ()
 Copy constructor.
 Atom (Element &element, const String &name, const String &type_name=BALL_ATOM_DEFAULT_TYPE_NAME, Type atom_type=BALL_ATOM_DEFAULT_TYPE, const Vector3 &position=Vector3(BALL_ATOM_DEFAULT_POSITION), const Vector3 &velocity=Vector3(BALL_ATOM_DEFAULT_VELOCITY), const Vector3 &force=Vector3(BALL_ATOM_DEFAULT_FORCE), float charge=BALL_ATOM_DEFAULT_CHARGE, float radius=BALL_ATOM_DEFAULT_RADIUS, Index formal_charge=BALL_ATOM_DEFAULT_FORMAL_CHARGE) throw ()
 Detailed state initializing constructor.
Destructors
virtual ~Atom () throw ()
 Destructor.
virtual void clear () throw ()
 Explicit default initialization.
virtual void destroy () throw ()
 Explicit destructor.
Persistence
virtual void persistentWrite (PersistenceManager &pm, const char *name=0) const throw (Exception::GeneralException)
 Write an Atom to a persistent stream.
virtual void persistentRead (PersistenceManager &pm) throw (Exception::GeneralException)
 Read an Atom from a persistent stream.
Assignment methods
void set (const Atom &atom, bool deep=true) throw ()
 Deep/shallow assignment.
void get (Atom &atom, bool deep=true) const throw ()
 Deep/shallow assignment.
Atomoperator= (const Atom &atom) throw ()
 Assignment operator.
void swap (Atom &atom) throw ()
 Swap the contents of two atoms.
bool operator== (const Atom &atom) const throw ()
 Equality operator.
bool operator!= (const Atom &atom) const throw ()
 Inequality operator.
Accessors
void setElement (const Element &element) throw ()
 Assign the atom's element.
const ElementgetElement () const throw ()
 Return the atom's element.
void setCharge (float charge) throw ()
 Set the atom's (partial) charge.
float getCharge () const throw ()
 Return the atom's (partial) charge.
void setFormalCharge (Index formal_charge) throw ()
 Set the atom's formal charge.
Index getFormalCharge () const throw ()
 Return the atom's formal charge.
const MoleculegetMolecule () const throw ()
 Return the molecule the atom is contained in (const).
MoleculegetMolecule () throw ()
 Return the molecule the atom is contained in (mutable).
const FragmentgetFragment () const throw ()
 Return the fragment the atom is contained in (const).
FragmentgetFragment () throw ()
 Return the fragment the atom is contained in (mutable).
const ResiduegetResidue () const throw ()
 Return the residue the atom is contained in (const).
ResiduegetResidue () throw ()
 Return the residue the atom is contained in (mutable).
const SecondaryStructuregetSecondaryStructure () const throw ()
 Return the secondary structure the atom is contained in (const).
SecondaryStructuregetSecondaryStructure () throw ()
 Return the secondary structure the atom is contained in (mutable).
const ChaingetChain () const throw ()
 Return the chain the atom is contained in (const).
ChaingetChain () throw ()
 Return the chain the atom is contained in (mutable).
void setName (const String &name) throw ()
 Set the atom name.
const StringgetName () const throw ()
 Return the atom name.
String getFullName (FullNameType type=ADD_VARIANT_EXTENSIONS) const throw ()
 Assemble a fully specified atom name.
void setPosition (const Vector3 &position) throw ()
 Assign the atom coordinates.
Vector3getPosition () throw ()
 Return the atom coordinates (mutable).
const Vector3getPosition () const throw ()
 Return the atom coordinates (const).
void setRadius (float radius) throw ()
 Set the atom radius.
float getRadius () const throw ()
 Return the atom radius.
void setType (Type atom_type) throw ()
 Assign the numerical atom type.
Type getType () const throw ()
 Return the (numerical) atom type.
String getTypeName () const throw ()
 Return the atom type name.
void setTypeName (const String &name) throw ()
 Assign the atom type name.
void setVelocity (const Vector3 &velocity) throw ()
 Set the atom velocity BALL uses units of $ {\AA}/ps $ for the velocity.
const Vector3getVelocity () const throw ()
 Return the atom velocity.
void setForce (const Vector3 &force) throw ()
 Assign the atom's force vevtor.
const Vector3getForce () const throw ()
 Return the atom's force vector (const).
Vector3getForce () throw ()
 Return the atom's force vector (mutable).
Size countBonds () const throw ()
 Return the number of bonds.
BondgetBond (Position index) throw (Exception::IndexOverflow)
 Return a bond by its index (mutable).
const BondgetBond (Position index) const throw (Exception::IndexOverflow)
 Return a bond by its index (const).
BondgetBond (const Atom &atom) throw ()
 Return a bond by its partner atom (const).
const BondgetBond (const Atom &atom) const throw ()
 Return a bond by its partner atom (mutable) The reference is 0 if this instance does not have a bond with atom .
Miscellaneous
BondcreateBond (Atom &atom) throw (Exception::TooManyBonds)
 Create a new bond to an atom.
BondcreateBond (Bond &bond, Atom &atom) throw (Exception::TooManyBonds)
 Create a new bond from an already existing instance of Bond.
BondcloneBond (Bond &bond, Atom &atom) throw ()
 Create a copy of a bond.
bool destroyBond (const Atom &atom) throw ()
 Explicit bond destruction.
void destroyBonds () throw ()
 Explicit bond table destruction.
Predicates
bool hasBond (const Bond &bond) const throw ()
 Determine whether the atom takes part in a certain bond.
bool isBoundTo (const Atom &atom) const throw ()
 Determine whether there exists a bond to another atom.
bool isBound () const throw ()
 Determine whether the atom has any bond.
bool isGeminal (const Atom &atom) const throw ()
 True if the two atoms are geminal.
bool isVicinal (const Atom &atom) const throw ()
 True if the two atoms are vicinal.
Debuggers and diagnostics
virtual bool isValid () const throw ()
 Internal state and consistency self-validation.
virtual void dump (std::ostream &s=std::cout, Size depth=0) const throw ()
 Internal state dump.
Internal iteration
bool applyBonds (UnaryProcessor< Bond > &processor) throw ()
 Application of an unary processor on every contained bond.

Detailed Description

Atom class.

A class representing atoms. During each runtime instance of a program an atom is unique and identified by a Object::Handle . Atom equality is defined as atom identity, so there cannot be any two identical atoms. A linear ordering of atoms is defined as the linear order of the Object::Handle s.

Two atoms can be connected via a Bond . There can be only one bond between any two atoms (double bonds etc. are expressed via the bond order attribute of the bond) and the total number of bonds of an atom is limited to eight (can be changed at compile time, see MAX_NUMBER_OF_BONDS ).
Since Atom is derived from ProperyManager , it may contain arbitrary, user-defined properties. An atom may be inserted in a Fragment instance ("parent fragment"). The "state" of an atom is defined by its attributes:


Member Typedef Documentation

typedef RandomAccessIterator<Atom, Bond, BondIteratorPosition, BondIteratorTraits> Atom::BondIterator
 

Random access iterator for bonds.

typedef short Atom::Type
 

Atom type.


Member Enumeration Documentation

anonymous enum
 

Unnamed enumeration of all non-categorized constants.

Enumeration values:
UNKNOWN_TYPE  Unknown atom type.

The type assigned for default-constructed atoms.

ANY_TYPE  Any atom type.

Used as a wild card in the context of forcefields mainly

MAX_NUMBER_OF_BONDS  Maximum number of bonds of an atom.

enum Atom::FullNameType
 

The type of name used for getFullName.

See also:
getFullName

enum Atom::Property
 

Predefined properties.

Enumeration of all properties that are used by the BALL kernel.

Reimplemented in PDBAtom.


Constructor & Destructor Documentation

Atom::Atom  )  throw ()
 

Default constructor.

The state of this instance is:

Atom::Atom const Atom atom,
bool  deep = true
throw ()
 

Copy constructor.

The copy is either deep (default) or shallow.

Note: Deep copying of atoms does not include bond cloning.
Parameters:
atom the atom to be copied (cloned)
deep make a deep (=true) or shallow (=false) copy of atom
Returns:
Atom - new constructed atom cloned from atom
See also:
Composite::Composite

PropertyManager::PropertyManager

Atom::Atom Element element,
const String name,
const String type_name = BALL_ATOM_DEFAULT_TYPE_NAME,
Type  atom_type = BALL_ATOM_DEFAULT_TYPE,
const Vector3 position = Vector3(BALL_ATOM_DEFAULT_POSITION),
const Vector3 velocity = Vector3(BALL_ATOM_DEFAULT_VELOCITY),
const Vector3 force = Vector3(BALL_ATOM_DEFAULT_FORCE),
float  charge = BALL_ATOM_DEFAULT_CHARGE,
float  radius = BALL_ATOM_DEFAULT_RADIUS,
Index  formal_charge = BALL_ATOM_DEFAULT_FORMAL_CHARGE
throw ()
 

Detailed state initializing constructor.

The item bond table is empty (atom has no bonds).

Parameters:
element element type of the constructed atom
name name of the constructed atom
type_name type name name of the constructed atom
atom_type type of the constructed atom
position position of the constructed atom
velocity velocity of the constructed atom
force force acting upon the constructed atom
charge charge of the constructed atom
formal_charge formal charge of the constructed atom
radius radius of the constructed atom
Returns:
Atom - new constructed atom
See also:
Composite::Composite

PropertyManager::PropertyManager

virtual Atom::~Atom  )  throw () [virtual]
 

Destructor.

If the atom has bonds in common with an other atom that atom is disconnected and the associated Bond instance is destroyed. Calls Atom::destroy .

See also:
Atom::destroy


Member Function Documentation

bool Atom::applyBonds UnaryProcessor< Bond > &  processor  )  throw ()
 

Application of an unary processor on every contained bond.

Parameters:
processor a typed unary processor for Bond instances
Returns:
bool - true if application has been terminated successfully, false otherwise

virtual void Atom::clear  )  throw () [virtual]
 

Explicit default initialization.

Calls Composite::clear and resets the attributes to the default values. In contrast to destroy , the atom is not removed from any composite structure, i.e. its parent fragment pointer remains unchanged.

See also:
Composite::clear

destroy

Reimplemented from Composite.

Reimplemented in PDBAtom.

Bond* Atom::cloneBond Bond bond,
Atom atom
throw ()
 

Create a copy of a bond.

This is mostly for internal use and should not be required by most users.

Position Atom::compact const AtomIndexList &  indices  )  throw (Exception::OutOfRange) [static]
 

Compact memory for a list of atoms.

This method packs the static attributes of the atom in the given range into a contiguous memory segment in order to increase locality.

Bond* Atom::createBond Bond bond,
Atom atom
throw (Exception::TooManyBonds)
 

Create a new bond from an already existing instance of Bond.

Initialize the bond bond to connect this instance to atom . Calls Bond::createBond . The state of the bond is initialzed to the default values.

Note: This method is recommended for use if a subclass of the Bond is to be used as the new bond. This permits extensibility of bonds to the framework client.
Returns:
Bond* - default initialized bond bond that connects this instance to atom
See also:
Bond::createBond

Bond* Atom::createBond Atom atom  )  throw (Exception::TooManyBonds)
 

Create a new bond to an atom.

Create a new instance of Bond connecting this instance to atom . Calls Bond::createBond . The state of the bond is initialized to the default values.

Returns:
Bond* - default initialized Bond instance that connects this instance to atom
See also:
Bond::createBond

virtual void Atom::destroy  )  throw () [virtual]
 

Explicit destructor.

Destroy this instance explicitly and reset its attributes to the default values.

See also:
Composite::clear

Reimplemented from Composite.

Reimplemented in PDBAtom.

bool Atom::destroyBond const Atom atom  )  throw ()
 

Explicit bond destruction.

Destroy the bond connecting {*this atom} and atom explicitly. If the bond is auto-deletable the default destructor is called otherwise Bond::destroy .

Note: This method is recommended to destroy a bond of an atom explicitly instead of using the keyword delete. This is due to erroneous explicit destruction of statically allocated bonds.
Parameters:
atom the atom that should be disconnected from this instance
See also:
AutoDeletable

Bond::destroy

void Atom::destroyBonds  )  throw ()
 

Explicit bond table destruction.

Destroy all the bonds connecting {*this atom} with another atom explicitly. If the bonds are auto-deletable the default destructors are called otherwise Bond::destroy .

Note: This method is recommended to destroy all bonds of an atom explicitly instead of using the keyword delete. This is due to erroneous explicit destruction of statically allocated bonds.
Parameters:
atom the atom that should be disconnected from this instance
See also:
AutoDeletable

Bond::destroy

virtual void Atom::dump std::ostream &  s = std::cout,
Size  depth = 0
const throw () [virtual]
 

Internal state dump.

Dump the current internal state of this instance to the output ostream s with dumping depth depth . For debugging purposes only.

Parameters:
s - output stream where to output the internal state
depth - the dumping depth

Reimplemented from Composite.

Reimplemented in PDBAtom.

void Atom::get Atom atom,
bool  deep = true
const throw ()
 

Deep/shallow assignment.

The inverse operation to set , behaves identically.

Parameters:
atom the atom to be assigned to
See also:
Atom::set

const PreciseTime& Atom::getAttributesModificationTime  )  throw () [static]
 

Get the time, when the attributes vector was last modified.

This needed for the GeometricObject 's in VIEW, because they store pointer to the position of atoms. These have to be updated, after a resize of the vector.

const Bond* Atom::getBond const Atom atom  )  const throw ()
 

Return a bond by its partner atom (mutable) The reference is 0 if this instance does not have a bond with atom .

Parameters:
atom the atom that is considered to have a bond with this instance
Returns:
Bond* - constant pointer to the bond that connects atom with this instance, 0 if this instance does not have a bond with atom
See also:
Atom::createBond

Bond* Atom::getBond const Atom atom  )  throw ()
 

Return a bond by its partner atom (const).

The reference is 0 if this instance does not have a bond with atom .

Parameters:
atom the atom that is considered to have a bond with this instance
Returns:
Bond* - mutable pointer to the bond that connects atom with this instance, 0 if this instance does not have a bond with atom
See also:
Atom::createBond

const Bond* Atom::getBond Position  index  )  const throw (Exception::IndexOverflow)
 

Return a bond by its index (const).

Exceptions:
IndexOverflow if index >= MAX_NUMBER_OF_BONDS

Bond* Atom::getBond Position  index  )  throw (Exception::IndexOverflow)
 

Return a bond by its index (mutable).

The reference is 0 if this instance does not have a bond with index index .

Note: No corresponding mutator Atom::setBond exists to consider design of contract - an atom may not insert a bond in its bond table at a given index. The atom's bond table is an implementation detail that is not relevant to and should not be relied on by the client programmer. A bond must always be created via Bond::Bond or Atom::createBond .
Parameters:
index the index of the bond to be accessed to
Returns:
Bond* - mutable pointer to the bond that is indexed in this instance's bond table, 0 if this instance does not have a bond with index index
Exceptions:
IndexOverflow if index >= MAX_NUMBER_OF_BONDS

const Chain* Atom::getChain  )  const throw ()
 

Return the chain the atom is contained in (const).

A NULL pointer is returned if this atom is not part of a chain.

Returns:
Chain* - constant pointer to the chain

Reimplemented in PDBAtom.

float Atom::getCharge  )  const throw ()
 

Return the atom's (partial) charge.

Charges should be assigned in multiples of the proton charge (elementary charge).

const Fragment* Atom::getFragment  )  const throw ()
 

Return the fragment the atom is contained in (const).

A NULL pointer is returned if this atom is not part of a fragment.

Use Fragment::insert to insert an atom into a fragment and Fragment::remove to remove it.
Returns:
Fragment* - constant pointer to the fragment

String Atom::getFullName FullNameType  type = ADD_VARIANT_EXTENSIONS  )  const throw ()
 

Assemble a fully specified atom name.

This method returns at fully specified atom name as used for charge and type assignments. The name consists of the name of the residue the atom is contained in, a colon, and the atom name. Blanks are removed from both names. For example, for the alpha carbon atom of isoleucine getFullName will return the name ILE:CA. For N terminal residues, -N is appended to the residue name, for C terminal residues -C. If the residue is a CYS involved in a disulphide bridge, an additional -S or S (for terminal residue) is appended. For single amino acids (C and N terminal) -M is added.

If the atom is not contained in a residue, the name of the parent fragment is taken instead of the residue name. If there is no parent fragment, the name of the parent molecule is taken. If the atom is not contained in any superstructure, getFullname returns getName.
Overview of the returned strings:
  • <residue>:<atom> -- if contained in a residue
  • <residue>-C:<atom> -- for C terminal residues
  • <residue>-N:<atom> -- for N terminal residues
  • CYS-S:<atom> -- for CYS residues involved in a SS bond
  • CYS-NS:<atom> -- for N terminal CYS residues involved in a SS bond
  • CYS-CS:<atom> -- for C terminal CYS residues involved in a SS bond
  • <fragment>:atom -- for atoms contained in a fragment, but not in a residue
  • <molecule>:atom -- for atoms contained in a molecule, but not in a fragment

Parameters:
type if type is set to Atom::NO_VARIANT_EXTENSIONS, the variant extension (-XX) is omitted
Returns:
String the full name

const Molecule* Atom::getMolecule  )  const throw ()
 

Return the molecule the atom is contained in (const).

A NULL pointer is returned if this atom is not part of a molecule.

Use Molecule::insert to insert an atom into a molecule and Molecule::remove to remove it.
Returns:
Molecule* - constant pointer to the parent molecule

const Residue* Atom::getResidue  )  const throw ()
 

Return the residue the atom is contained in (const).

A NULL pointer is returned if this atom is not part of a residue.

Use Residue::insert to insert an atom into a residue and Residue::remove to remove it.
Returns:
Residue* - constant pointer to the residue

Reimplemented in PDBAtom.

const SecondaryStructure* Atom::getSecondaryStructure  )  const throw ()
 

Return the secondary structure the atom is contained in (const).

A NULL pointer is returned if this atom is not part of a secondary structure.

Returns:
SecondaryStructure* - constant pointer to the secondary structure

const Vector3& Atom::getVelocity  )  const throw ()
 

Return the atom velocity.

BALL uses units of $ {\AA}/ps $ for the velocity.

bool Atom::hasBond const Bond bond  )  const throw ()
 

Determine whether the atom takes part in a certain bond.

Parameters:
bond the bond in question
Returns:
bool true if the bond bond connects this instance with another atom, false otherwise
See also:
Atom::hasBond

bool Atom::isBound  )  const throw ()
 

Determine whether the atom has any bond.

Returns:
bool - true if an atom is bound to this instance, false otherwise
See also:
Atom::hasBond

bool Atom::isBoundTo const Atom atom  )  const throw ()
 

Determine whether there exists a bond to another atom.

Calls Atom::getBond . Hydrogen bonds (type = Bond::TYPE__HYDROGEN) are ignored.

Parameters:
atom the atom in question
Returns:
bool - true if bond connects atom with {*this atom}, false otherwise
See also:
Atom::getBond

bool Atom::isGeminal const Atom atom  )  const throw ()
 

True if the two atoms are geminal.

Two atoms are geminal if they do not share a common bond but both have a bond to a third atom. For example the two hydrogen atoms in water are geminal. Hydrogen bonds (type = Bond::TYPE__HYDROGEN) are ignored.

Parameters:
atom the second atom
Returns:
bool - true if atom is geminal to this instance

virtual bool Atom::isValid  )  const throw () [virtual]
 

Internal state and consistency self-validation.

Returns:
bool - true if the internal state of this instance is correct (self-validated) and consistent, false otherwise

Reimplemented from Composite.

bool Atom::isVicinal const Atom atom  )  const throw ()
 

True if the two atoms are vicinal.

Two atoms are vicinal if they are separated by three bonds (1-4 position). Hydrogen bonds (type = Bond::TYPE__HYDROGEN) are ignored.

Parameters:
atom the second atom
Returns:
bool - true if atom is vicinal to this instance

bool Atom::operator!= const Atom atom  )  const throw ()
 

Inequality operator.

See also:
operator ==

Atom& Atom::operator= const Atom atom  )  throw ()
 

Assignment operator.

The assignment is always deep. Calls Atom::set .

Note: Bonds are not copied
Parameters:
atom the atom to be copied
Returns:
Atom& - this instance
See also:
Atom::set

bool Atom::operator== const Atom atom  )  const throw ()
 

Equality operator.

Two atoms are equal if they have the same handle.

See also:
Object::operator ==

virtual void Atom::persistentRead PersistenceManager pm  )  throw (Exception::GeneralException) [virtual]
 

Read an Atom from a persistent stream.

Parameters:
pm the persistence manager

Reimplemented from Composite.

Reimplemented in PDBAtom.

virtual void Atom::persistentWrite PersistenceManager pm,
const char *  name = 0
const throw (Exception::GeneralException) [virtual]
 

Write an Atom to a persistent stream.

Parameters:
pm the persistence manager

Reimplemented from Composite.

Reimplemented in PDBAtom.

void Atom::set const Atom atom,
bool  deep = true
throw ()
 

Deep/shallow assignment.

The assignment is either deep or shallow (default is deep). In the case of a deep assignment, all composites contained in atom are copied as well.

Caveat: Bonds are not copied!
Parameters:
atom the atom to be copied
deep make a deep (=true) or shallow (=false) copy of atom

void Atom::setCharge float  charge  )  throw ()
 

Set the atom's (partial) charge.

Charges should be assigned in multiples of the proton charge (elementary charge).

void Atom::setForce const Vector3 force  )  throw ()
 

Assign the atom's force vevtor.

BALL uses units of Newton (1 N = 1 J/m) as the unit of force.

void Atom::setPosition const Vector3 position  )  throw ()
 

Assign the atom coordinates.

BALL uses units of Angstrom for atom coordinates.

void Atom::setRadius float  radius  )  throw ()
 

Set the atom radius.

BALL uses units of Angstrom for the atom radii.

void Atom::setVelocity const Vector3 velocity  )  throw ()
 

Set the atom velocity BALL uses units of $ {\AA}/ps $ for the velocity.

void Atom::swap Atom atom  )  throw ()
 

Swap the contents of two atoms.

The static attributes are swapped by exchanging the indices of the two atoms!

Parameters:
atom the atom being swapped with this instance