ProtoMol - an object-oriented component based framework for Molecular Dynamics simulations.

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

ProtoMol::GenericTopology Class Reference

#include <GenericTopology.h>

Inheritance diagram for ProtoMol::GenericTopology:

ProtoMol::Makeable ProtoMol::SemiGenericTopology< TBoundaryConditions > ProtoMol::Topology< TBoundaryConditions, TCellManager > List of all members.

Public Member Functions

 GenericTopology ()
 GenericTopology (Real c, const ExclusionType &e)
virtual ~GenericTopology ()
virtual Real getVolume (const Vector3DBlock &positions) const=0
virtual Real getVolume () const=0
virtual void rescaleVolume (Real fac)=0
virtual void uncacheCellList ()=0
virtual std::vector< ParametergetDefaults (const Vector3DBlock &positions) const=0
virtual void getBoundingbox (const Vector3DBlock &positions, Vector3D &min, Vector3D &max) const=0
virtual void getBoundaryConditionsBox (Vector3D &min, Vector3D &max) const=0
virtual Vector3D minimalDifference (const Vector3D &c1, const Vector3D &c2) const=0
virtual Vector3D minimalPosition (const Vector3D &c) const=0
virtual bool checkMoleculePairDistances (const Vector3DBlock &positions) const=0
virtual void minimalImage (Vector3DBlock &positions)=0
virtual std::string print (const Vector3DBlock *positions=NULL) const=0
GenericTopologymake (std::string &errMsg, const std::vector< Value > &values) const
virtual std::string getScope () const

Static Public Member Functions

const std::string & getKeyword ()

Public Attributes

std::vector< Atomatoms
std::vector< AtomTypeatomTypes
std::vector< Bondbonds
std::vector< Angleangles
std::vector< Torsiondihedrals
std::vector< Torsionimpropers
std::vector< Moleculemolecules
ExclusionTable exclusions
ExclusionType exclude
LennardJonesParameterTable lennardJonesParameters
Real coulombScalingFactor
Real time
Vector3D min
Vector3D max
BankLennardJonesParameterTable isgLJParms
std::vector< int > iSGNumMols
int degreesOfFreedom
std::vector< Bond::ConstraintbondRattleShakeConstraints
bool minimalMolecularDistances

Static Public Attributes

const std::string scope
const std::string keyword

Private Member Functions

virtual GenericTopologydoMake (std::string &errMsg, std::vector< Value > values) const=0

Detailed Description

GenericTopology represents the topology of the system and contains all force field parameters, which are needed to compute the interactions. GenericTopology is the base class of SemiGenericTopology and Topology, hiding all implementation details from the applications and integrators. GenericTopology itself does not know how the measure distances and how to implement the cell list algorithm. SemiGenericTopology is in charge of implementing the boundary conditions and all other services related to distances. Topology implements the cell algorithm, which relates to boundary conditions. Topology<class BC, class CM> is the actual implementation used by forces, since they are instantiated with the same template parameters they can correctly access the needed services provided by Topology. Some forces will get along with only accessing SemiGenericTopology or even GenericTopology.

There are a couple of service depending on Topology<class BC, class CM>, which are passed through such one can access them, but one may consider the price of calling virtual methods.

The design was motived by these facts:


Constructor & Destructor Documentation

ProtoMol::GenericTopology::GenericTopology  ) 
 

ProtoMol::GenericTopology::GenericTopology Real  c,
const ExclusionType e
 

virtual ProtoMol::GenericTopology::~GenericTopology  )  [inline, virtual]
 


Member Function Documentation

virtual bool ProtoMol::GenericTopology::checkMoleculePairDistances const Vector3DBlock positions  )  const [pure virtual]
 

checks whether the plain distances between all atoms on each molecule are the same as with applying the boundary conditions. If true, there is no molecule, which is wrapped around.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual GenericTopology* ProtoMol::GenericTopology::doMake std::string &  errMsg,
std::vector< Value values
const [private, pure virtual]
 

Implemented in ProtoMol::Topology< TBoundaryConditions, TCellManager >.

virtual void ProtoMol::GenericTopology::getBoundaryConditionsBox Vector3D min,
Vector3D max
const [pure virtual]
 

returns the bounding box of the boundary conditions

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual void ProtoMol::GenericTopology::getBoundingbox const Vector3DBlock positions,
Vector3D min,
Vector3D max
const [pure virtual]
 

computes the minimal bounding box of the positions taking into account of the boundary conditions

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual std::vector<Parameter> ProtoMol::GenericTopology::getDefaults const Vector3DBlock positions  )  const [pure virtual]
 

Sets default parameters basaed on particle positions for cell manager and bounary conditions.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

const std::string& ProtoMol::GenericTopology::getKeyword  )  [inline, static]
 

virtual std::string ProtoMol::GenericTopology::getScope  )  const [inline, virtual]
 

Implements ProtoMol::Makeable.

virtual Real ProtoMol::GenericTopology::getVolume  )  const [pure virtual]
 

Volume by boundary conditions.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual Real ProtoMol::GenericTopology::getVolume const Vector3DBlock positions  )  const [pure virtual]
 

Actual volume of the simulation box or the particles.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

GenericTopology* ProtoMol::GenericTopology::make std::string &  errMsg,
const std::vector< Value > &  values
const
 

virtual Vector3D ProtoMol::GenericTopology::minimalDifference const Vector3D c1,
const Vector3D c2
const [pure virtual]
 

Perform a minimal-image subtraction.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual void ProtoMol::GenericTopology::minimalImage Vector3DBlock positions  )  [pure virtual]
 

translates all positions of a each molecule such that the plain distances between them yields and that the center of mass is inside the minimal image/basis cell. It may not work for molecules which are bigger then half of the simulation cell.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual Vector3D ProtoMol::GenericTopology::minimalPosition const Vector3D c  )  const [pure virtual]
 

Find the position in the basis/original cell/image.

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual std::string ProtoMol::GenericTopology::print const Vector3DBlock positions = NULL  )  const [pure virtual]
 

Implemented in ProtoMol::Topology< TBoundaryConditions, TCellManager >.

virtual void ProtoMol::GenericTopology::rescaleVolume Real  fac  )  [pure virtual]
 

rescales the volume of the system cell/minimal image

Implemented in ProtoMol::SemiGenericTopology< TBoundaryConditions >.

virtual void ProtoMol::GenericTopology::uncacheCellList  )  [pure virtual]
 

Tags the cell list as out of date.

Implemented in ProtoMol::Topology< TBoundaryConditions, TCellManager >.


Member Data Documentation

std::vector<Angle> ProtoMol::GenericTopology::angles
 

std::vector<Atom> ProtoMol::GenericTopology::atoms
 

std::vector<AtomType> ProtoMol::GenericTopology::atomTypes
 

std::vector<Bond::Constraint> ProtoMol::GenericTopology::bondRattleShakeConstraints
 

list of bond constraints (RATTLE/SHAKE)

std::vector<Bond> ProtoMol::GenericTopology::bonds
 

Real ProtoMol::GenericTopology::coulombScalingFactor
 

coulomb scaling factor for modified 1-4 exclusions

int ProtoMol::GenericTopology::degreesOfFreedom
 

the number of degrees of freedom in the system this number is needed to make sure we are properly computing the temperature the number of degrees of freedom is = 3 * (# of atoms) - (# of constraints)

std::vector<Torsion> ProtoMol::GenericTopology::dihedrals
 

ExclusionType ProtoMol::GenericTopology::exclude
 

type of exclusion on intra-molecular interactions

ExclusionTable ProtoMol::GenericTopology::exclusions
 

look-up table of exclusions

std::vector<Torsion> ProtoMol::GenericTopology::impropers
 

BankLennardJonesParameterTable ProtoMol::GenericTopology::isgLJParms
 

a bank of LennardJonesParameterTables needed only for iSGMD

std::vector<int> ProtoMol::GenericTopology::iSGNumMols
 

the # of molecules of each component

const string ProtoMol::GenericTopology::keyword [static]
 

LennardJonesParameterTable ProtoMol::GenericTopology::lennardJonesParameters
 

Lennard-Jones table for all atoms.

Vector3D ProtoMol::GenericTopology::max [mutable]
 

Vector3D ProtoMol::GenericTopology::min [mutable]
 

bool ProtoMol::GenericTopology::minimalMolecularDistances
 

if the distances on the same molecule are minimal regardless boundary conditions

std::vector<Molecule> ProtoMol::GenericTopology::molecules
 

const string ProtoMol::GenericTopology::scope [static]
 

Real ProtoMol::GenericTopology::time [mutable]
 

the actual time of the system, intended to by modified/incremented by an Observer (Modfier*)


The documentation for this class was generated from the following files: Last update: . GNU GENERAL PUBLIC LICENSE, copyrighted by the University of Notre Dame and the University of Bergen, Norway.