Simpatico  v1.10
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
Simp::HomoRing Class Reference

Detailed Description

A species of homogeneous ring molecules.

A HomoRing is a chemically homogeneous ring of atoms, in which all atoms are of the same type.

See also
parameter file format

Definition at line 29 of file HomoRing.h.

#include <HomoRing.h>

Inheritance diagram for Simp::HomoRing:
Simp::Ring Simp::Species Util::ParamComposite Util::ParamComponent Util::Serializable Util::MpiFileIo

Public Member Functions

 HomoRing ()
 Default constructor. More...
 
virtual ~HomoRing ()
 Destructor. More...
 
virtual void save (Serializable::OArchive &ar)
 Save internal state to an archive. More...
 
- Public Member Functions inherited from Simp::Ring
 Ring ()
 Constructor. More...
 
virtual ~Ring ()
 Destructor. More...
 
- Public Member Functions inherited from Simp::Species
 Species ()
 Constructor. More...
 
virtual ~Species ()
 Destructor. More...
 
void setId (int id)
 Set integer id for this Species. More...
 
virtual void readParameters (std::istream &in)
 Read parameters and initialize structure for this species. More...
 
virtual void loadParameters (Serializable::IArchive &ar)
 Load internal state from an archive. More...
 
void readStructure (std::istream &in)
 Read structure from config/topology file format. More...
 
void writeStructure (std::ostream &out, std::string indent=std::string())
 Write molecular structure in config/topology file format. More...
 
bool matchStructure (std::istream &in)
 Read structure, return true iff it matches existing structure. More...
 
int nAtom () const
 Get number of atoms per molecule for this Species. More...
 
int atomTypeId (int iAtom) const
 Get atom type index for a specific atom, by local atom index. More...
 
int nBond () const
 Get number of bonds per molecule for this Species. More...
 
const SpeciesBondspeciesBond (int iBond) const
 Get a specific SpeciesBond object, by local bond index. More...
 
const AtomBondIdArrayatomBondIds (int atomId) const
 Get array of ids for Bonds that contain one Atom. More...
 
int nAngle () const
 Get number of angles per molecule for this Species. More...
 
const SpeciesAnglespeciesAngle (int iAngle) const
 Get a specific SpeciesAngle object, by local angle index. More...
 
const AtomAngleIdArrayatomAngleIds (int atomId) const
 Get array of ids for angles that contain one Atom. More...
 
int nDihedral () const
 Get number of dihedrals per molecule for this Species. More...
 
const SpeciesDihedralspeciesDihedral (int iDihedral) const
 Get a specific SpeciesDihedral object, by local angle index. More...
 
const AtomDihedralIdArrayatomDihedralIds (int atomId) const
 Get array of ids for dihedrals that contain one Atom. More...
 
bool isMutable () const
 Is this a mutable Species? More...
 
McMd::SpeciesMutatormutator ()
 Return the species mutator object by reference. More...
 
int id () const
 Get integer id of this Species. More...
 
int capacity () const
 Maximum allowed number of molecules for this Species. More...
 
bool isValid () const
 Return true if Species is valid, or throw an Exception. More...
 
- Public Member Functions inherited from Util::ParamComposite
 ParamComposite ()
 Constructor. More...
 
 ParamComposite (const ParamComposite &other)
 Copy constructor. More...
 
 ParamComposite (int capacity)
 Constructor. More...
 
virtual ~ParamComposite ()
 Virtual destructor. More...
 
void resetParam ()
 Resets ParamComposite to its empty state. More...
 
virtual void readParam (std::istream &in)
 Read the parameter file block. More...
 
virtual void readParamOptional (std::istream &in)
 Read optional parameter file block. More...
 
virtual void writeParam (std::ostream &out)
 Write all parameters to an output stream. More...
 
virtual void load (Serializable::IArchive &ar)
 Load all parameters from an input archive. More...
 
virtual void loadOptional (Serializable::IArchive &ar)
 Load an optional ParamComposite. More...
 
void saveOptional (Serializable::OArchive &ar)
 Saves isActive flag, and then calls save() iff isActive is true. More...
 
void readParamComposite (std::istream &in, ParamComposite &child, bool next=true)
 Add and read a required child ParamComposite. More...
 
void readParamCompositeOptional (std::istream &in, ParamComposite &child, bool next=true)
 Add and attempt to read an optional child ParamComposite. More...
 
template<typename Type >
ScalarParam< Type > & read (std::istream &in, const char *label, Type &value)
 Add and read a new required ScalarParam < Type > object. More...
 
template<typename Type >
ScalarParam< Type > & readOptional (std::istream &in, const char *label, Type &value)
 Add and read a new optional ScalarParam < Type > object. More...
 
template<typename Type >
CArrayParam< Type > & readCArray (std::istream &in, const char *label, Type *value, int n)
 Add and read a required C array parameter. More...
 
template<typename Type >
CArrayParam< Type > & readOptionalCArray (std::istream &in, const char *label, Type *value, int n)
 Add and read an optional C array parameter. More...
 
template<typename Type >
DArrayParam< Type > & readDArray (std::istream &in, const char *label, DArray< Type > &array, int n)
 Add and read a required DArray < Type > parameter. More...
 
template<typename Type >
DArrayParam< Type > & readOptionalDArray (std::istream &in, const char *label, DArray< Type > &array, int n)
 Add and read an optional DArray < Type > parameter. More...
 
template<typename Type , int N>
FArrayParam< Type, N > & readFArray (std::istream &in, const char *label, FArray< Type, N > &array)
 Add and read a required FArray < Type, N > array parameter. More...
 
template<typename Type , int N>
FArrayParam< Type, N > & readOptionalFArray (std::istream &in, const char *label, FArray< Type, N > &array)
 Add and read an optional FArray < Type, N > array parameter. More...
 
template<typename Type >
CArray2DParam< Type > & readCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np)
 Add and read a required CArray2DParam < Type > 2D C-array. More...
 
template<typename Type >
CArray2DParam< Type > & readOptionalCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np)
 Add and read an optional CArray2DParam < Type > 2D C-array parameter. More...
 
template<typename Type >
DMatrixParam< Type > & readDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and read a required DMatrix < Type > matrix parameter. More...
 
template<typename Type >
DMatrixParam< Type > & readOptionalDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and read an optional DMatrix < Type > matrix parameter. More...
 
template<typename Type >
DSymmMatrixParam< Type > & readDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n)
 Add and read a required symmetrix DMatrix. More...
 
template<typename Type >
DSymmMatrixParam< Type > & readOptionalDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n)
 Add and read an optional DMatrix matrix parameter. More...
 
BeginreadBegin (std::istream &in, const char *label, bool isRequired=true)
 Add and read a class label and opening bracket. More...
 
EndreadEnd (std::istream &in)
 Add and read the closing bracket. More...
 
BlankreadBlank (std::istream &in)
 Add and read a new Blank object, representing a blank line. More...
 
void loadParamComposite (Serializable::IArchive &ar, ParamComposite &child, bool next=true)
 Add and load a required child ParamComposite. More...
 
void loadParamCompositeOptional (Serializable::IArchive &ar, ParamComposite &child, bool next=true)
 Add and load an optional child ParamComposite if isActive. More...
 
template<typename Type >
ScalarParam< Type > & loadParameter (Serializable::IArchive &ar, const char *label, Type &value, bool isRequired)
 Add and load a new ScalarParam < Type > object. More...
 
template<typename Type >
ScalarParam< Type > & loadParameter (Serializable::IArchive &ar, const char *label, Type &value)
 Add and load new required ScalarParam < Type > object. More...
 
template<typename Type >
CArrayParam< Type > & loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n, bool isRequired)
 Add a C array parameter and load its elements. More...
 
template<typename Type >
CArrayParam< Type > & loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n)
 Add and load a required CArrayParam< Type > array parameter. More...
 
template<typename Type >
DArrayParam< Type > & loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n, bool isRequired)
 Add an load a DArray < Type > array parameter. More...
 
template<typename Type >
DArrayParam< Type > & loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n)
 Add and load a required DArray< Type > array parameter. More...
 
template<typename Type , int N>
FArrayParam< Type, N > & loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array, bool isRequired)
 Add and load an FArray < Type, N > fixed-size array parameter. More...
 
template<typename Type , int N>
FArrayParam< Type, N > & loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array)
 Add and load a required FArray < Type > array parameter. More...
 
template<typename Type >
CArray2DParam< Type > & loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np, bool isRequired)
 Add and load a CArray2DParam < Type > C 2D array parameter. More...
 
template<typename Type >
CArray2DParam< Type > & loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np)
 Add and load a required < Type > matrix parameter. More...
 
template<typename Type >
DMatrixParam< Type > & loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired)
 Add and load a DMatrixParam < Type > matrix parameter. More...
 
template<typename Type >
DMatrixParam< Type > & loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and load a required DMatrixParam < Type > matrix parameter. More...
 
template<typename Type >
DSymmMatrixParam< Type > & loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n, bool isRequired)
 Add and load a symmetric DSymmMatrixParam < Type > matrix parameter. More...
 
template<typename Type >
DSymmMatrixParam< Type > & loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n)
 Add and load a required DSymmMatrixParam < Type > matrix parameter. More...
 
void addParamComposite (ParamComposite &child, bool next=true)
 Add a child ParamComposite object to the format array. More...
 
BeginaddBegin (const char *label)
 Add a Begin object representing a class name and bracket. More...
 
EndaddEnd ()
 Add a closing bracket. More...
 
BlankaddBlank ()
 Create and add a new Blank object, representing a blank line. More...
 
std::string className () const
 Get class name string. More...
 
bool isRequired () const
 Is this ParamComposite required in the input file? More...
 
bool isActive () const
 Is this parameter active? More...
 
- Public Member Functions inherited from Util::ParamComponent
virtual ~ParamComponent ()
 Destructor. More...
 
void setIndent (const ParamComponent &parent, bool next=true)
 Set indent level. More...
 
std::string indent () const
 Return indent string for this object (string of spaces). More...
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize this ParamComponent as a string. More...
 
- Public Member Functions inherited from Util::Serializable
virtual ~Serializable ()
 Destructor. More...
 
- Public Member Functions inherited from Util::MpiFileIo
 MpiFileIo ()
 Constructor. More...
 
 MpiFileIo (const MpiFileIo &other)
 Copy constructor. More...
 
bool isIoProcessor () const
 Can this processor do file I/O ? More...
 
void setIoCommunicator (MPI::Intracomm &communicator)
 Set the communicator. More...
 
void clearCommunicator ()
 Clear (nullify) the communicator. More...
 
bool hasIoCommunicator () const
 Does this object have an associated MPI communicator? More...
 
MPI::Intracomm & ioCommunicator () const
 Get the MPI communicator by reference. More...
 

Protected Member Functions

virtual void readSpeciesParam (std::istream &in)
 Read nAtom_ and the loop type. More...
 
virtual void loadSpeciesParam (Serializable::IArchive &ar)
 Load species structure from an Archive. More...
 
virtual int calculateAtomTypeId (int index) const
 Return the same type for any particle in any loop. More...
 
virtual int calculateBondTypeId (int index) const
 Return same bond type for any bond in any loop. More...
 
virtual int calculateAngleTypeId (int index) const
 Return same angle type for any homogeneous ring. More...
 
virtual int calculateDihedralTypeId (int index) const
 Return same dihedral type for any homogeneous ring. More...
 
- Protected Member Functions inherited from Simp::Ring
void buildRing ()
 Build the chemical structure for a ring molecule. More...
 
- Protected Member Functions inherited from Simp::Species
void allocate ()
 Allocate chemical structure arrays. More...
 
void allocateAtoms ()
 Allocate and initialize array of atom type Ids. More...
 
void setAtomType (int atomId, int atomType)
 Set the type for one atom in a generic molecule of this Species. More...
 
void allocateBonds ()
 Allocate arrays associated with Bonds. More...
 
void makeBond (int bondId, int atomId1, int atomId2, int bondType)
 Add a bond to the chemical structure of a generic molecule. More...
 
void allocateAngles ()
 Allocate arrays associated with angles. More...
 
void makeAngle (int angleId, int atomId1, int atomId2, int atomId3, int angleType)
 Add an angle to the chemical structure of a generic molecule. More...
 
void allocateDihedrals ()
 Allocate arrays associated with dihedrals. More...
 
void makeDihedral (int dihedralId, int atomId1, int atomId2, int atomId3, int atomId4, int dihedralType)
 Add a dihedral to the chemical structure of a generic molecule. More...
 
void initializeAtomGroupIdArrays ()
 Initialize all atom groupId arrays (point from atoms to groups). More...
 
void setMutatorPtr (McMd::SpeciesMutator *mutatorPtr)
 Set pointer to associated McMd::SpeciesMutator for a mutable species. More...
 
- Protected Member Functions inherited from Util::ParamComposite
void setClassName (const char *className)
 Set class name string. More...
 
void setIsRequired (bool isRequired)
 Set or unset the isActive flag. More...
 
void setIsActive (bool isActive)
 Set or unset the isActive flag. More...
 
void setParent (ParamComponent &param, bool next=true)
 Set this to the parent of a child component. More...
 
void addComponent (ParamComponent &param, bool isLeaf=true)
 Add a new ParamComponent object to the format array. More...
 
template<typename Type >
ScalarParam< Type > & add (std::istream &in, const char *label, Type &value, bool isRequired=true)
 Add a new required ScalarParam < Type > object. More...
 
template<typename Type >
CArrayParam< Type > & addCArray (std::istream &in, const char *label, Type *value, int n, bool isRequired=true)
 Add (but do not read) a required C array parameter. More...
 
template<typename Type >
DArrayParam< Type > & addDArray (std::istream &in, const char *label, DArray< Type > &array, int n, bool isRequired=true)
 Add (but do not read) a DArray < Type > parameter. More...
 
template<typename Type , int N>
FArrayParam< Type, N > & addFArray (std::istream &in, const char *label, FArray< Type, N > &array, bool isRequired=true)
 Add (but do not read) a FArray < Type, N > array parameter. More...
 
template<typename Type >
CArray2DParam< Type > & addCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np, bool isRequired=true)
 Add (but do not read) a CArray2DParam < Type > 2D C-array. More...
 
template<typename Type >
DMatrixParam< Type > & addDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired=true)
 Add and read a required DMatrix < Type > matrix parameter. More...
 
- Protected Member Functions inherited from Util::ParamComponent
 ParamComponent ()
 Constructor. More...
 
 ParamComponent (const ParamComponent &other)
 Copy constructor. More...
 

Protected Attributes

int type_
 Particle type id for every particle of every molecule of this species. More...
 
- Protected Attributes inherited from Simp::Species
int id_
 Integer index for this Species. More...
 
int moleculeCapacity_
 Number of molecules associated with the species. More...
 
int nAtom_
 Number of atoms per molecule. More...
 
DArray< int > atomTypeIds_
 Array of atom type Ids, indexed by local atom id. More...
 
int nBond_
 Number of bonds per molecule. More...
 
DArray< SpeciesBondspeciesBonds_
 Array of SpeciesBonds for all bonds, indexed by local bond id. More...
 
int nAngle_
 Number of angles per molecule. More...
 
DArray< SpeciesAnglespeciesAngles_
 Array of SpeciesAngles for all angles, indexed by local angle id. More...
 
int nDihedral_
 Number of dihedrals per molecule. More...
 
DArray< SpeciesDihedralspeciesDihedrals_
 Array of SpeciesDihedrals, indexed by local dihedral id. More...
 

Additional Inherited Members

- Public Types inherited from Simp::Species
typedef SpeciesGroup< 2 > SpeciesBond
 A SpeciesBond has the local atom ids and a type id for one bond. More...
 
typedef FSArray< int, MaxBondPerAtomAtomBondIdArray
 An array of local integer bond ids for all bonds containing one atom. More...
 
typedef SpeciesGroup< 3 > SpeciesAngle
 A SpeciesAngle has local atom ids and a type id for one angle. More...
 
typedef FSArray< int, MaxAnglePerAtomAtomAngleIdArray
 An array of local angle ids for all angles containing one atom. More...
 
typedef SpeciesGroup< 4 > SpeciesDihedral
 A SpeciesDihedral has local atom ids and a type id for one dihedral. More...
 
typedef FSArray< int, MaxDihedralPerAtomAtomDihedralIdArray
 An array of local angle ids for all dihedrals containing one atom. More...
 
- Public Types inherited from Util::Serializable
typedef BinaryFileOArchive OArchive
 Type of output archive used by save method. More...
 
typedef BinaryFileIArchive IArchive
 Type of input archive used by load method. More...
 
- Static Public Member Functions inherited from Util::ParamComponent
static void initStatic ()
 Initialize static echo member to false. More...
 
static void setEcho (bool echo=true)
 Enable or disable echoing for all subclasses of ParamComponent. More...
 
static bool echo ()
 Get echo parameter. More...
 
- Static Public Attributes inherited from Simp::Species
static const int MaxBondPerAtom = 4
 Maximum number of bonds that can be connected to one atom. More...
 
static const int MaxAnglePerAtom = 18
 Maximum number of angles groups that can contain one atom. More...
 
static const int MaxDihedralPerAtom = 72
 Maximum number of dihedral groups that can contain one atom. More...
 
- Static Protected Attributes inherited from Simp::Species
static const int NullIndex = -1
 Null (unknown) value for any non-negative index. More...
 

Constructor & Destructor Documentation

Simp::HomoRing::HomoRing ( )

Default constructor.

Definition at line 18 of file HomoRing.cpp.

References Util::ParamComposite::setClassName().

virtual Simp::HomoRing::~HomoRing ( )
inlinevirtual

Destructor.

Definition at line 38 of file HomoRing.h.

References save().

Member Function Documentation

void Simp::HomoRing::save ( Serializable::OArchive ar)
virtual

Save internal state to an archive.

Parameters
aroutput/saving archive

Reimplemented from Simp::Species.

Definition at line 60 of file HomoRing.cpp.

References Simp::Species::id_, Simp::Species::moleculeCapacity_, Simp::Species::nAtom_, and type_.

Referenced by ~HomoRing().

void Simp::HomoRing::readSpeciesParam ( std::istream &  in)
protectedvirtual

Read nAtom_ and the loop type.

Parameters
ininput stream

Reimplemented from Simp::Species.

Definition at line 26 of file HomoRing.cpp.

References Simp::Ring::buildRing(), Simp::Species::nAngle_, Simp::Species::nAtom_, Simp::Species::nBond_, Simp::Species::nDihedral_, and type_.

void Simp::HomoRing::loadSpeciesParam ( Serializable::IArchive ar)
protectedvirtual

Load species structure from an Archive.

Parameters
arinput/loading archive

Reimplemented from Simp::Species.

Definition at line 43 of file HomoRing.cpp.

References Simp::Ring::buildRing(), Simp::Species::nAngle_, Simp::Species::nAtom_, Simp::Species::nBond_, Simp::Species::nDihedral_, and type_.

int Simp::HomoRing::calculateAtomTypeId ( int  index) const
protectedvirtual

Return the same type for any particle in any loop.

Parameters
indexatom index, in range 0, ..., nAtom_ - 1
Returns
atom type index

Implements Simp::Ring.

Definition at line 71 of file HomoRing.cpp.

References type_.

int Simp::HomoRing::calculateBondTypeId ( int  index) const
protectedvirtual

Return same bond type for any bond in any loop.

Parameters
indexbond index, in range 0, ..., nBond_ - 1
Returns
bond type index

Implements Simp::Ring.

Definition at line 77 of file HomoRing.cpp.

int Simp::HomoRing::calculateAngleTypeId ( int  index) const
protectedvirtual

Return same angle type for any homogeneous ring.

Angle i of a ring molecule connects atoms: (i)-(i+1)-(i+2), where atom indices mod to nAtom_.

Parameters
indexlocal angle index, in the range 0, ... , nAngle_ - 1
Returns
type of the specified angle

Implements Simp::Ring.

Definition at line 84 of file HomoRing.cpp.

int Simp::HomoRing::calculateDihedralTypeId ( int  index) const
protectedvirtual

Return same dihedral type for any homogeneous ring.

Angle i of a ring molecule connects atoms: (i)-(i+1)-(i+2)-(i+3), where atom indices mod to nAtom_.

Parameters
indexlocal dihedral index, in the range 0, ... , nDihedral_ - 1
Returns
type of the specified dihedral

Implements Simp::Ring.

Definition at line 92 of file HomoRing.cpp.

Member Data Documentation

int Simp::HomoRing::type_
protected

Particle type id for every particle of every molecule of this species.

Definition at line 53 of file HomoRing.h.

Referenced by calculateAtomTypeId(), loadSpeciesParam(), readSpeciesParam(), and save().


The documentation for this class was generated from the following files: