BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Private Attributes | List of all members
BALL::PeriodicBoundary Class Reference

#include <BALL/MOLMEC/COMMON/periodicBoundary.h>

Classes

struct  Default
 Default values. More...
 
struct  Option
 

Public Types

Type definitions
typedef std::pair< Size, SizeAtomIndexPair
 
typedef std::vector
< AtomIndexPair
AtomIndexArray
 

Public Member Functions

Constructors and Destructors
 PeriodicBoundary ()
 
 PeriodicBoundary (const ForceField &force_field)
 
 PeriodicBoundary (const PeriodicBoundary &periodic_boundary)
 
virtual ~PeriodicBoundary ()
 
Assignment
PeriodicBoundaryoperator= (const PeriodicBoundary &periodic_boundary)
 
virtual void clear ()
 
Setup Methods
bool setup ()
 
Size generateMoleculesVector ()
 
Accessors
void enable ()
 Enable periodic boundary conditions. More...
 
void disable ()
 Disable periodic boundary conditions. More...
 
SimpleBox3 getBox () const
 
void setBox (const SimpleBox3 &box)
 
Size addSolvent (const String &filename)
 
Size removeSolvent ()
 
Predicates
bool isEnabled () const
 
Periodic boundary methods
void updateMolecules ()
 

Public Attributes

Variables
Optionsoptions
 

Private Attributes

ForceFieldforce_field_
 
bool enabled_
 
SimpleBox3 box_
 
AtomIndexArray molecules_
 

Detailed Description

Periodic boundary class for force field simulations. Molecular Mechanics: class representing periodic boundary conditions.

Definition at line 34 of file periodicBoundary.h.

Member Typedef Documentation

Definition at line 48 of file periodicBoundary.h.

Definition at line 45 of file periodicBoundary.h.

Constructor & Destructor Documentation

BALL::PeriodicBoundary::PeriodicBoundary ( )

Default constructor.

BALL::PeriodicBoundary::PeriodicBoundary ( const ForceField force_field)

Constructor.

BALL::PeriodicBoundary::PeriodicBoundary ( const PeriodicBoundary periodic_boundary)

Copy constructor

virtual BALL::PeriodicBoundary::~PeriodicBoundary ( )
virtual

Destructor.

Member Function Documentation

Size BALL::PeriodicBoundary::addSolvent ( const String filename)

Fill the defined box with a solvent. This method fills the defined box with solvent molecules. If no box is defined, no solvent is added. The neccessary solvent box template is either taken from the options (solvent_file) or a default is assumed.

This method replicates the solvent box starting at the box origin in all three dimensions and removes all solvent molecules that are within solvent_distance of a solute molecule or outside the periodic box.
To ensure periodicity, our SimpleBox instance might be resized to an integral multiple of the spacing of the periodic solvent box. The method returns the number of inserted solvent molecules. All solvent molecules are marked as such by setting their property Molecule::PROPERTY__PERIODIC_BOX_SOLVENT .
See Also
removeSolvent
virtual void BALL::PeriodicBoundary::clear ( )
virtual

Clear method

void BALL::PeriodicBoundary::disable ( )

Disable periodic boundary conditions.

void BALL::PeriodicBoundary::enable ( )

Enable periodic boundary conditions.

Size BALL::PeriodicBoundary::generateMoleculesVector ( )

Generate the vector of molecules of the system

SimpleBox3 BALL::PeriodicBoundary::getBox ( ) const

Retrieve the box dimensions.

bool BALL::PeriodicBoundary::isEnabled ( ) const

Returns true if the periodic boundary is enabled

See Also
enable
disable
PeriodicBoundary& BALL::PeriodicBoundary::operator= ( const PeriodicBoundary periodic_boundary)

Assignment operator.

Size BALL::PeriodicBoundary::removeSolvent ( )

Removes all solvent molecules This method removes all molecules that have the property Molecule::PROPERTY__PERIODIC_BOX_SOLVENT set from the force field's system. The number of removed solvent molecules is returned.

See Also
addSolvent
void BALL::PeriodicBoundary::setBox ( const SimpleBox3 box)

Set the box dimensions. The box dimensions are additionally stored in options using keys lower and upper .

bool BALL::PeriodicBoundary::setup ( )

Sets up the periodic box

void BALL::PeriodicBoundary::updateMolecules ( )

Checks which molecules are inside the box. If the center of mass of a molecule leaves the box, it is inserted on the other side.

Member Data Documentation

SimpleBox3 BALL::PeriodicBoundary::box_
private

Definition at line 264 of file periodicBoundary.h.

bool BALL::PeriodicBoundary::enabled_
private

Definition at line 261 of file periodicBoundary.h.

ForceField* BALL::PeriodicBoundary::force_field_
private

Definition at line 258 of file periodicBoundary.h.

AtomIndexArray BALL::PeriodicBoundary::molecules_
private

Definition at line 267 of file periodicBoundary.h.

Options* BALL::PeriodicBoundary::options

Periodic Boundary options. This is usually a pointer to the options of the force field the PeriodicBoundary object is contained in.

Definition at line 245 of file periodicBoundary.h.