Simpatico  v1.10
List of all members | Public Member Functions | Protected Member Functions
McMd::HomopolymerSG Class Reference

Detailed Description

A Homopolymer with a mutable type, for semigrand ensemble.

A HomopolymerSG molecule is a Linear chain in which all atoms are of the same type, as are all bonds, but in which the type index for all atoms can be toggled between two values.

Definition at line 30 of file HomopolymerSG.h.

#include <HomopolymerSG.h>

Inheritance diagram for McMd::HomopolymerSG:
Simp::Linear McMd::SpeciesMutator Simp::Species Util::ParamComposite Util::ParamComponent Util::Serializable Util::MpiFileIo

Public Member Functions

 HomopolymerSG ()
 Constructor. More...
 
virtual ~HomopolymerSG ()
 Destructor. More...
 
virtual void readParameters (std::istream &in)
 Read parameters and initialize. More...
 
virtual void setMoleculeState (Molecule &molecule, int stateId)
 Set the type of all atoms in the molecule. More...
 
virtual void save (Serializable::OArchive &ar)
 Save internal state to an archive. More...
 
- Public Member Functions inherited from Simp::Linear
 Linear ()
 Constructor. More...
 
virtual ~Linear ()
 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 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...
 
- Public Member Functions inherited from McMd::SpeciesMutator
 SpeciesMutator ()
 Constructor. More...
 
virtual ~SpeciesMutator ()
 Destructor. More...
 
virtual void readMoleculeState (std::istream &in, Molecule &molecule)
 Read the state id for one molecule from a configuration file stream. More...
 
virtual void writeMoleculeState (std::ostream &out, const Molecule &molecule) const
 Write the state id for one molecule to a configuration file stream. More...
 
void setWeight (int stateId, double weight)
 Set the statistical weight associated with a specific state. More...
 
int moleculeStateId (const Molecule &molecule) const
 Get the state id for a specific molecule. More...
 
int nState () const
 Get the number of possible molecule states. More...
 
int stateOccupancy (int stateId) const
 Get the number of molecules with a specified state. More...
 
double stateWeight (int stateId) const
 Get the statistical weight for a specfic molecular state. More...
 

Protected Member Functions

virtual void readSpeciesParam (std::istream &in)
 Read nAtom, a pair of atom type ids and weightRatio. 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 chain. More...
 
virtual int calculateBondTypeId (int index) const
 Return same bond type for any bond in any chain. More...
 
virtual int calculateAngleTypeId (int index) const
 Return same angle type for any angle in any chain. More...
 
virtual int calculateDihedralTypeId (int index) const
 Return same dihedral type for any dihedral in any chain. More...
 
- Protected Member Functions inherited from Simp::Linear
void buildLinear ()
 Build the chemical structure for a linear 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 Member Functions inherited from McMd::SpeciesMutator
void allocateSpeciesMutator (int nMolecule, int nState)
 Allocate arrays of molecule state ids and statistical weights. More...
 
void setMoleculeStateId (const Molecule &molecule, int stateId)
 Set the state id of a specific molecule. 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 Public Attributes inherited from McMd::SpeciesMutator
static const int NullStateId = -1
 Null value for a state index. More...
 
- Protected Attributes inherited from Simp::Linear
int hasAngles_
 Does this chain have angle potentials (0 = false, 1 = true). More...
 
int hasDihedrals_
 Does this chain have dihedral potentials (0 = false, 1 = true). 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...
 
- Static Protected Attributes inherited from Simp::Species
static const int NullIndex = -1
 Null (unknown) value for any non-negative index. More...
 

Constructor & Destructor Documentation

McMd::HomopolymerSG::HomopolymerSG ( )

Constructor.

Definition at line 22 of file HomopolymerSG.cpp.

References Util::ParamComposite::setClassName(), and Simp::Species::setMutatorPtr().

McMd::HomopolymerSG::~HomopolymerSG ( )
virtual

Destructor.

Definition at line 40 of file HomopolymerSG.cpp.

Member Function Documentation

void McMd::HomopolymerSG::readParameters ( std::istream &  in)
virtual

Read parameters and initialize.

Reimplemented from Simp::Species.

Definition at line 46 of file HomopolymerSG.cpp.

References Simp::Species::readParameters().

void McMd::HomopolymerSG::setMoleculeState ( Molecule molecule,
int  stateId 
)
virtual

Set the type of all atoms in the molecule.

Parameters
moleculereference to molecule of interest.
stateIdatom type id.

Implements McMd::SpeciesMutator.

Definition at line 214 of file HomopolymerSG.cpp.

References McMd::Molecule::atom(), Simp::Species::nAtom(), McMd::Molecule::nAtom(), McMd::SpeciesMutator::setMoleculeStateId(), and McMd::Atom::setTypeId().

void McMd::HomopolymerSG::save ( Serializable::OArchive ar)
virtual

Save internal state to an archive.

Parameters
aroutput/saving archive

Reimplemented from Simp::Species.

Definition at line 154 of file HomopolymerSG.cpp.

References Simp::Linear::hasAngles_, Simp::Linear::hasDihedrals_, Simp::Species::moleculeCapacity_, Simp::Species::nAngle_, Simp::Species::nAtom_, Simp::Species::nDihedral_, and Util::Parameter::saveOptional().

void McMd::HomopolymerSG::readSpeciesParam ( std::istream &  in)
protectedvirtual
void McMd::HomopolymerSG::loadSpeciesParam ( Serializable::IArchive ar)
protectedvirtual
int McMd::HomopolymerSG::calculateAtomTypeId ( int  index) const
protectedvirtual

Return the same type for any particle in any chain.

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

Implements Simp::Linear.

Definition at line 180 of file HomopolymerSG.cpp.

References Simp::Species::NullIndex.

int McMd::HomopolymerSG::calculateBondTypeId ( int  index) const
protectedvirtual

Return same bond type for any bond in any chain.

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

Implements Simp::Linear.

Definition at line 188 of file HomopolymerSG.cpp.

int McMd::HomopolymerSG::calculateAngleTypeId ( int  index) const
protectedvirtual

Return same angle type for any angle in any chain.

Parameters
indexangle index, in range 0, ..., nAngle_ - 1
Returns
angle type index

Implements Simp::Linear.

Definition at line 197 of file HomopolymerSG.cpp.

int McMd::HomopolymerSG::calculateDihedralTypeId ( int  index) const
protectedvirtual

Return same dihedral type for any dihedral in any chain.

Parameters
indexdihedral index, in range 0, ..., nDihedral_ - 1
Returns
dihedral type index

Implements Simp::Linear.

Definition at line 207 of file HomopolymerSG.cpp.


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