Loading...
Searching...
No Matches
periodicBoundary.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: periodicBoundary.h,v 1.22 2005/12/23 17:01:51 amoll Exp $
//
#ifndef BALL_MOLMEC_COMMON_PERIODICBOUNDARY_H
#define BALL_MOLMEC_COMMON_PERIODICBOUNDARY_H
#ifndef BALL_COMMON_H
# include <BALL/common.h>
#endif
#ifndef BALL_DATATYPE_OPTIONS_H
# include <BALL/DATATYPE/options.h>
#endif
#ifndef BALL_MATHS_SIMPLEBOX3_H
# include <BALL/MATHS/simpleBox3.h>
#endif
namespace BALL
{
class ForceField;
class PeriodicBoundary;
class BALL_EXPORT PeriodicBoundary
{
public:
BALL_CREATE(PeriodicBoundary)
typedef std::pair<Size, Size> AtomIndexPair;
typedef std::vector<AtomIndexPair> AtomIndexArray;
struct BALL_EXPORT Option
{
static const char* PERIODIC_BOX_LOWER;
static const char* PERIODIC_BOX_UPPER;
static const char* PERIODIC_BOX_ENABLED;
static const char* PERIODIC_BOX_DISTANCE;
static const char* PERIODIC_BOX_ADD_SOLVENT;
static const char* PERIODIC_BOX_SOLVENT_FILE;
static const char* PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE;
static const char* PERIODIC_WATER_FILE;
};
struct BALL_EXPORT Default
{
static const Vector3 PERIODIC_BOX_LOWER;
static const Vector3 PERIODIC_BOX_UPPER;
static const bool PERIODIC_BOX_ENABLED;
static const float PERIODIC_BOX_DISTANCE;
static const bool PERIODIC_BOX_ADD_SOLVENT;
static const char* PERIODIC_BOX_SOLVENT_FILE;
static const float PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE;
static const char* PERIODIC_WATER_FILE;
};
PeriodicBoundary();
PeriodicBoundary(const ForceField& force_field);
PeriodicBoundary(const PeriodicBoundary& periodic_boundary);
virtual ~PeriodicBoundary();
PeriodicBoundary& operator = (const PeriodicBoundary& periodic_boundary);
virtual void clear();
bool setup();
Size generateMoleculesVector();
void enable();
void disable();
SimpleBox3 getBox() const;
void setBox(const SimpleBox3& box);
Size addSolvent(const String& filename);
Size removeSolvent();
bool isEnabled() const;
void updateMolecules();
Options* options;
protected:
private:
/*_ @name Private Attributes
*/
//_@{
//_ Pointer to the force field of the periodic boundary
ForceField* force_field_;
//_ Indicates if periodic boundary is enabled or not
bool enabled_;
//_ The box of the periodic boundary
SimpleBox3 box_;
//_ An pair vector with the start and end indices of all molecules (atoms of the molecules)
AtomIndexArray molecules_;
//_@}
};
} // namespace BALL
#endif // BALL_MOLMEC_COMMON_PERIODICBOUNDARY_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
BALL::ForceField
Definition forceField.h:86
BALL::Options
Definition options.h:48
BALL::PeriodicBoundary
Definition periodicBoundary.h:35
BALL::PeriodicBoundary::PeriodicBoundary
PeriodicBoundary()
BALL::PeriodicBoundary::generateMoleculesVector
Size generateMoleculesVector()
BALL::PeriodicBoundary::enable
void enable()
Enable periodic boundary conditions.
BALL::PeriodicBoundary::removeSolvent
Size removeSolvent()
BALL::PeriodicBoundary::options
Options * options
Definition periodicBoundary.h:245
BALL::PeriodicBoundary::addSolvent
Size addSolvent(const String &filename)
BALL::PeriodicBoundary::PeriodicBoundary
PeriodicBoundary(const PeriodicBoundary &periodic_boundary)
BALL::PeriodicBoundary::~PeriodicBoundary
virtual ~PeriodicBoundary()
BALL::PeriodicBoundary::PeriodicBoundary
PeriodicBoundary(const ForceField &force_field)
BALL::PeriodicBoundary::setup
bool setup()
BALL::PeriodicBoundary::getBox
SimpleBox3 getBox() const
BALL::PeriodicBoundary::isEnabled
bool isEnabled() const
BALL::PeriodicBoundary::disable
void disable()
Disable periodic boundary conditions.
BALL::PeriodicBoundary::AtomIndexPair
std::pair< Size, Size > AtomIndexPair
Definition periodicBoundary.h:45
BALL::PeriodicBoundary::setBox
void setBox(const SimpleBox3 &box)
BALL::PeriodicBoundary::updateMolecules
void updateMolecules()
BALL::PeriodicBoundary::clear
virtual void clear()
BALL::PeriodicBoundary::AtomIndexArray
std::vector< AtomIndexPair > AtomIndexArray
Definition periodicBoundary.h:48
BALL::String
Definition string.h:57
common.h
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
BALL::SimpleBox3
TSimpleBox3< float > SimpleBox3
Definition simpleBox3.h:615
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::Vector3
TVector3< float > Vector3
Definition vector3.h:1084
std
STL namespace.
options.h
simpleBox3.h
BALL::PeriodicBoundary::Default
Default values.
Definition periodicBoundary.h:91
BALL::PeriodicBoundary::Default::PERIODIC_BOX_ADD_SOLVENT
static const bool PERIODIC_BOX_ADD_SOLVENT
Default value of the flag to initiate the addition of solvent to the box.
Definition periodicBoundary.h:105
BALL::PeriodicBoundary::Default::PERIODIC_BOX_UPPER
static const Vector3 PERIODIC_BOX_UPPER
Default vector for the upper corner of the box.
Definition periodicBoundary.h:96
BALL::PeriodicBoundary::Default::PERIODIC_WATER_FILE
static const char * PERIODIC_WATER_FILE
Default file for default solvent.
Definition periodicBoundary.h:117
BALL::PeriodicBoundary::Default::PERIODIC_BOX_LOWER
static const Vector3 PERIODIC_BOX_LOWER
Default vector for the lower corner of the box.
Definition periodicBoundary.h:93
BALL::PeriodicBoundary::Default::PERIODIC_BOX_ENABLED
static const bool PERIODIC_BOX_ENABLED
Default bool value for periodic boundary (enabled or not).
Definition periodicBoundary.h:99
BALL::PeriodicBoundary::Default::PERIODIC_BOX_DISTANCE
static const float PERIODIC_BOX_DISTANCE
Default minimum distance between solute molecules and the box in Angstrom.
Definition periodicBoundary.h:102
BALL::PeriodicBoundary::Default::PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE
static const float PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE
Default minimum distance between solvent and solute for added solvent.
Definition periodicBoundary.h:114
BALL::PeriodicBoundary::Default::PERIODIC_BOX_SOLVENT_FILE
static const char * PERIODIC_BOX_SOLVENT_FILE
Definition periodicBoundary.h:111
BALL::PeriodicBoundary::Option
Definition periodicBoundary.h:57
BALL::PeriodicBoundary::Option::PERIODIC_BOX_UPPER
static const char * PERIODIC_BOX_UPPER
Vector containing the upper corner of the box.
Definition periodicBoundary.h:62
BALL::PeriodicBoundary::Option::PERIODIC_BOX_SOLVENT_FILE
static const char * PERIODIC_BOX_SOLVENT_FILE
Definition periodicBoundary.h:77
BALL::PeriodicBoundary::Option::PERIODIC_BOX_LOWER
static const char * PERIODIC_BOX_LOWER
Vector containing the lower corner of the box.
Definition periodicBoundary.h:59
BALL::PeriodicBoundary::Option::PERIODIC_BOX_ADD_SOLVENT
static const char * PERIODIC_BOX_ADD_SOLVENT
Flag to initiate the addition of solvent to the box.
Definition periodicBoundary.h:71
BALL::PeriodicBoundary::Option::PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE
static const char * PERIODIC_BOX_SOLVENT_SOLUTE_DISTANCE
Definition periodicBoundary.h:81
BALL::PeriodicBoundary::Option::PERIODIC_BOX_DISTANCE
static const char * PERIODIC_BOX_DISTANCE
Minimum distance between solute molecules and the box in Angstrom.
Definition periodicBoundary.h:68
BALL::PeriodicBoundary::Option::PERIODIC_WATER_FILE
static const char * PERIODIC_WATER_FILE
Definition periodicBoundary.h:85
BALL::PeriodicBoundary::Option::PERIODIC_BOX_ENABLED
static const char * PERIODIC_BOX_ENABLED
Bool that indicates whether periodic boundary is enabled or not.
Definition periodicBoundary.h:65