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::PeriodicBoundaryConditions Class Reference

#include <PeriodicBoundaryConditions.h>

List of all members.

Public Types

enum  {
  PERIODIC = 1,
  VACUUM = 0
}

Public Member Functions

 PeriodicBoundaryConditions ()
 PeriodicBoundaryConditions (const Vector3D &e1,const Vector3D &e2,const Vector3D &e3,const Vector3D &origin)
void set (const Vector3D &e1,const Vector3D &e2,const Vector3D &e3,const Vector3D &origin)
Vector3D minimalDifference (const Vector3D &c1, const Vector3D &c2) const
Vector3D minimalDifference (const Vector3D &c1, const Vector3D &c2, Real &distSquared) const
Vector3D minimalPosition (const Vector3D &c) const
Vector3D minimalTranslationDifference (const Vector3D &c1, const Vector3D &c2) const
Vector3D minimalTranslationPosition (const Vector3D &c) const
const Vector3De1 () const
const Vector3De2 () const
const Vector3De3 () const
const Vector3De1r () const
const Vector3De2r () const
const Vector3De3r () const
const Vector3Dorigin () const
const Vector3DgetMin () const
const Vector3DgetMax () const
Real getVolume () const
bool isOrthogonal () const
std::vector< Vector3DbuildLatticeVectors (Real cutoff) const
const std::string & getKeyword () const
void getParameters (std::vector< Parameter > &parameters) const
std::vector< ParametergetDefaults (const Vector3DBlock &positions) const

Static Public Member Functions

PeriodicBoundaryConditions make (std::string &errMsg, std::vector< Value > values)
unsigned int getParameterSize ()

Static Public Attributes

const std::string keyword

Private Attributes

Vector3D myE1
Vector3D myE2
Vector3D myE3
Vector3D myE1r
Vector3D myE2r
Vector3D myE3r
Vector3D myOrigin
Vector3D myMin
Vector3D myMax
Real myDX
Real myDY
Real myDZ
Real myD
Vector3D myH
Vector3D myH2
Real myV
bool myOrthogonal


Detailed Description

Implements periodic boundary conditions, defining how we measure distances and accounting the wrapping-around effect. The class use a couple of shorts cut's to avoid rint and to many div's and mul's.


Member Enumeration Documentation

anonymous enum
 

Boolean's defining boundary conditions.

Enumeration values:
PERIODIC 
VACUUM 


Constructor & Destructor Documentation

ProtoMol::PeriodicBoundaryConditions::PeriodicBoundaryConditions  ) 
 

ProtoMol::PeriodicBoundaryConditions::PeriodicBoundaryConditions const Vector3D e1,
const Vector3D e2,
const Vector3D e3,
const Vector3D origin
 


Member Function Documentation

vector< Vector3D > ProtoMol::PeriodicBoundaryConditions::buildLatticeVectors Real  cutoff  )  const
 

Builds the lattice vector for a given cutoff. (0,0,0) is not included.

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e1  )  const [inline]
 

basis/unit vector e1

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e1r  )  const [inline]
 

inverse basis/unit vector e1

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e2  )  const [inline]
 

basis/unit vector e2

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e2r  )  const [inline]
 

inverse basis/unit vector e2

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e3  )  const [inline]
 

basis/unit vector e3

const Vector3D& ProtoMol::PeriodicBoundaryConditions::e3r  )  const [inline]
 

inverse basis/unit vector e3

vector< Parameter > ProtoMol::PeriodicBoundaryConditions::getDefaults const Vector3DBlock positions  )  const
 

Returns possible default values for the parameters based on the positions.

const std::string& ProtoMol::PeriodicBoundaryConditions::getKeyword  )  const [inline]
 

Returns the keyword of the boundary conditions.

const Vector3D& ProtoMol::PeriodicBoundaryConditions::getMax  )  const [inline]
 

maximal corner of the bounding box of the minimal image/cell

const Vector3D& ProtoMol::PeriodicBoundaryConditions::getMin  )  const [inline]
 

minimal corner of the bounding box of the minimal image/cell

void ProtoMol::PeriodicBoundaryConditions::getParameters std::vector< Parameter > &  parameters  )  const
 

unsigned int ProtoMol::PeriodicBoundaryConditions::getParameterSize  )  [inline, static]
 

Real ProtoMol::PeriodicBoundaryConditions::getVolume  )  const [inline]
 

bool ProtoMol::PeriodicBoundaryConditions::isOrthogonal  )  const [inline]
 

PeriodicBoundaryConditions ProtoMol::PeriodicBoundaryConditions::make std::string &  errMsg,
std::vector< Value values
[static]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::minimalDifference const Vector3D c1,
const Vector3D c2,
Real distSquared
const [inline]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::minimalDifference const Vector3D c1,
const Vector3D c2
const [inline]
 

Perform a minimal-image subtraction.

Vector3D ProtoMol::PeriodicBoundaryConditions::minimalPosition const Vector3D c  )  const [inline]
 

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

Vector3D ProtoMol::PeriodicBoundaryConditions::minimalTranslationDifference const Vector3D c1,
const Vector3D c2
const [inline]
 

Find the lattice vector difference between two positions.

Vector3D ProtoMol::PeriodicBoundaryConditions::minimalTranslationPosition const Vector3D c  )  const [inline]
 

Find the lattice translation relative to the original cell/image.

const Vector3D& ProtoMol::PeriodicBoundaryConditions::origin  )  const [inline]
 

origin of the minimal image

void ProtoMol::PeriodicBoundaryConditions::set const Vector3D e1,
const Vector3D e2,
const Vector3D e3,
const Vector3D origin
 

Set method for the dimensions of the (original) simulation box.


Member Data Documentation

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

Real ProtoMol::PeriodicBoundaryConditions::myD [private]
 

maximal distance between two positions where plain subtraction if safe

Real ProtoMol::PeriodicBoundaryConditions::myDX [private]
 

Real ProtoMol::PeriodicBoundaryConditions::myDY [private]
 

Real ProtoMol::PeriodicBoundaryConditions::myDZ [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE1 [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE1r [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE2 [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE2r [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE3 [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myE3r [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myH [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myH2 [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myMax [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myMin [private]
 

Vector3D ProtoMol::PeriodicBoundaryConditions::myOrigin [private]
 

bool ProtoMol::PeriodicBoundaryConditions::myOrthogonal [private]
 

Real ProtoMol::PeriodicBoundaryConditions::myV [private]
 


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.