Simpatico
v1.10
|
A Homopolymer species of chain molecules.
A hompolymer is a chemically homogeneous linear chain of nAtom atoms. All atoms are of the same atom type, with all bonds of the same bond type. A Homopolymer may optionally have angle potentials for each sequences of three susbseuqent atoms, in which case all angle potentials must be of the same angle type. A Homopolymer may also optionally have dihedral potentials among all sequences of four subsequent atoms, which (if present) must all be of the same dihedral type.
Definition at line 34 of file Homopolymer.h.
#include <Homopolymer.h>
Public Member Functions | |
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 | 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 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... | |
Protected Member Functions | |
virtual void | readSpeciesParam (std::istream &in) |
Read nAtom_ and the chain 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 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... | |
Protected Attributes | |
int | atomType_ |
Particle type id for every particle of every molecule of this species. More... | |
int | bondType_ |
Bond type id for every bond of this species. More... | |
int | angleType_ |
Angle type id for every angle of this species. More... | |
int | dihedralType_ |
Dihedral type id for every dihedral of this species. 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... | |
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 | NullIndex = -1 |
Null (unknown) value for any non-negative index. More... | |
|
virtual |
Save internal state to an archive.
ar | output/saving archive |
Reimplemented from Simp::Species.
Definition at line 115 of file Homopolymer.cpp.
References Util::Parameter::saveOptional().
|
protectedvirtual |
Read nAtom_ and the chain type.
in | input stream |
Reimplemented from Simp::Species.
Definition at line 33 of file Homopolymer.cpp.
References UTIL_THROW.
|
protectedvirtual |
Load species structure from an Archive.
ar | input/loading archive |
Reimplemented from Simp::Species.
Definition at line 74 of file Homopolymer.cpp.
|
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 138 of file Homopolymer.cpp.
|
protectedvirtual |
Return same bond type for any bond in any chain.
index | bond index, in range 0,...,nBond_ - 1 |
Implements Simp::Linear.
Definition at line 144 of file Homopolymer.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 151 of file Homopolymer.cpp.
|
protectedvirtual |
Return same dihedral type for any dihedral in any chain.
index | angle index, in range 0,...,nDihedral_ - 1 |
Implements Simp::Linear.
Definition at line 159 of file Homopolymer.cpp.
|
protected |
Particle type id for every particle of every molecule of this species.
Definition at line 62 of file Homopolymer.h.
|
protected |
Bond type id for every bond of this species.
Definition at line 67 of file Homopolymer.h.
|
protected |
Angle type id for every angle of this species.
Definition at line 73 of file Homopolymer.h.
|
protected |
Dihedral type id for every dihedral of this species.
Definition at line 80 of file Homopolymer.h.