Simpatico
v1.10
|
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>
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... | |
![]() | |
Linear () | |
Constructor. More... | |
virtual | ~Linear () |
Destructor. More... | |
![]() | |
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 SpeciesBond & | speciesBond (int iBond) const |
Get a specific SpeciesBond object, by local bond index. More... | |
const AtomBondIdArray & | atomBondIds (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 SpeciesAngle & | speciesAngle (int iAngle) const |
Get a specific SpeciesAngle object, by local angle index. More... | |
const AtomAngleIdArray & | atomAngleIds (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 SpeciesDihedral & | speciesDihedral (int iDihedral) const |
Get a specific SpeciesDihedral object, by local angle index. More... | |
const AtomDihedralIdArray & | atomDihedralIds (int atomId) const |
Get array of ids for dihedrals that contain one Atom. More... | |
bool | isMutable () const |
Is this a mutable Species? More... | |
McMd::SpeciesMutator & | mutator () |
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... | |
![]() | |
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... | |
Begin & | readBegin (std::istream &in, const char *label, bool isRequired=true) |
Add and read a class label and opening bracket. More... | |
End & | readEnd (std::istream &in) |
Add and read the closing bracket. More... | |
Blank & | readBlank (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... | |
Begin & | addBegin (const char *label) |
Add a Begin object representing a class name and bracket. More... | |
End & | addEnd () |
Add a closing bracket. More... | |
Blank & | addBlank () |
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... | |
![]() | |
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... | |
![]() | |
virtual | ~Serializable () |
Destructor. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
void | buildLinear () |
Build the chemical structure for a linear molecule. More... | |
![]() | |
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... | |
![]() | |
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 ¶m, bool next=true) |
Set this to the parent of a child component. More... | |
void | addComponent (ParamComponent ¶m, 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... | |
![]() | |
ParamComponent () | |
Constructor. More... | |
ParamComponent (const ParamComponent &other) | |
Copy constructor. More... | |
![]() | |
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 | |
![]() | |
typedef SpeciesGroup< 2 > | SpeciesBond |
A SpeciesBond has the local atom ids and a type id for one bond. More... | |
typedef FSArray< int, MaxBondPerAtom > | AtomBondIdArray |
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, MaxAnglePerAtom > | AtomAngleIdArray |
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, MaxDihedralPerAtom > | AtomDihedralIdArray |
An array of local angle ids for all dihedrals containing one atom. More... | |
![]() | |
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 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 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 const int | NullStateId = -1 |
Null value for a state index. More... | |
![]() | |
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... | |
![]() | |
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< SpeciesBond > | speciesBonds_ |
Array of SpeciesBonds for all bonds, indexed by local bond id. More... | |
int | nAngle_ |
Number of angles per molecule. More... | |
DArray< SpeciesAngle > | speciesAngles_ |
Array of SpeciesAngles for all angles, indexed by local angle id. More... | |
int | nDihedral_ |
Number of dihedrals per molecule. More... | |
DArray< SpeciesDihedral > | speciesDihedrals_ |
Array of SpeciesDihedrals, indexed by local dihedral id. More... | |
![]() | |
static const int | NullIndex = -1 |
Null (unknown) value for any non-negative index. More... | |
McMd::HomopolymerSG::HomopolymerSG | ( | ) |
Constructor.
Definition at line 22 of file HomopolymerSG.cpp.
References Util::ParamComposite::setClassName(), and Simp::Species::setMutatorPtr().
|
virtual |
Destructor.
Definition at line 40 of file HomopolymerSG.cpp.
|
virtual |
Read parameters and initialize.
Reimplemented from Simp::Species.
Definition at line 46 of file HomopolymerSG.cpp.
References Simp::Species::readParameters().
|
virtual |
Set the type of all atoms in the molecule.
molecule | reference to molecule of interest. |
stateId | atom 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().
|
virtual |
Save internal state to an archive.
ar | output/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().
|
protectedvirtual |
Read nAtom, a pair of atom type ids and weightRatio.
in | input stream |
Reimplemented from Simp::Species.
Definition at line 54 of file HomopolymerSG.cpp.
References McMd::SpeciesMutator::allocateSpeciesMutator(), Simp::Linear::buildLinear(), Simp::Species::capacity(), Simp::Linear::hasAngles_, Simp::Linear::hasDihedrals_, Simp::Species::mutator(), Simp::Species::nAngle_, Simp::Species::nAtom_, Simp::Species::nBond_, Simp::Species::nDihedral_, McMd::SpeciesMutator::setWeight(), and UTIL_THROW.
|
protectedvirtual |
Load species structure from an Archive.
ar | input/loading archive |
Reimplemented from Simp::Species.
Definition at line 102 of file HomopolymerSG.cpp.
References McMd::SpeciesMutator::allocateSpeciesMutator(), Simp::Linear::buildLinear(), Simp::Species::capacity(), Simp::Linear::hasAngles_, Simp::Linear::hasDihedrals_, Simp::Species::mutator(), Simp::Species::nAngle_, Simp::Species::nAtom_, Simp::Species::nBond_, Simp::Species::nDihedral_, and McMd::SpeciesMutator::setWeight().
|
protectedvirtual |
Return the same type for any particle in any chain.
index | atom index, in range 0,...,nAtom_ - 1 |
Implements Simp::Linear.
Definition at line 180 of file HomopolymerSG.cpp.
References Simp::Species::NullIndex.
|
protectedvirtual |
Return same bond type for any bond in any chain.
index | bond index, in range 0,...,nAtom_ - 1 |
Implements Simp::Linear.
Definition at line 188 of file HomopolymerSG.cpp.
|
protectedvirtual |
Return same angle type for any angle in any chain.
index | angle index, in range 0, ..., nAngle_ - 1 |
Implements Simp::Linear.
Definition at line 197 of file HomopolymerSG.cpp.
|
protectedvirtual |
Return same dihedral type for any dihedral in any chain.
index | dihedral index, in range 0, ..., nDihedral_ - 1 |
Implements Simp::Linear.
Definition at line 207 of file HomopolymerSG.cpp.