1 #ifndef DDMD_CONFIG_IO_H 2 #define DDMD_CONFIG_IO_H 11 #include <util/param/ParamComposite.h> 13 #include <ddMd/storage/AtomStorage.h> 15 #include <ddMd/storage/BondStorage.h> 18 #include <ddMd/storage/AngleStorage.h> 21 #include <ddMd/storage/DihedralStorage.h> 23 #include <simp/boundary/Boundary.h> 24 #include <util/containers/DArray.h> 26 #include <ddMd/chemistry/MaskPolicy.h> 34 template <
int N>
class GroupStorage;
35 template <
int N>
class GroupDistributor;
36 template <
int N>
class GroupCollector;
129 virtual void readConfig(std::ifstream& file,
MaskPolicy maskPolicy) = 0;
160 virtual void writeConfig(std::ofstream& file) = 0;
265 int readGroups(std::ifstream& file,
266 const char* sectionLabel,
const char* nGroupLabel,
273 int writeGroups(std::ofstream& file,
274 const char* sectionLabel,
const char* nGroupLabel,
282 {
return *domainPtr_; }
285 {
return *boundaryPtr_; }
288 {
return *atomStoragePtr_; }
291 {
return atomStoragePtr_->distributor(); }
294 {
return atomStoragePtr_->collector(); }
299 assert(bondStoragePtr_);
300 return *bondStoragePtr_;
304 {
return bondStorage().distributor(); }
307 {
return bondStorage().collector(); }
313 assert(angleStoragePtr_);
314 return *angleStoragePtr_;
318 {
return angleStorage().distributor(); }
321 {
return angleStorage().collector(); }
327 assert(dihedralStoragePtr_);
328 return *dihedralStoragePtr_;
332 {
return dihedralStorage().distributor(); }
335 {
return dihedralStorage().collector(); }
GroupDistributor< 2 > & bondDistributor()
Get the bondDistributor by reference.
GroupCollector< 4 > & dihedralCollector()
Get the dihedral collector by reference.
AtomStorage & atomStorage()
Get AtomStorage by reference.
BondStorage & bondStorage()
Get BondStorage by reference.
Domain & domain()
Get the Domain by reference.
An orthorhombic periodic unit cell.
AtomCollector & atomCollector()
Get the AtomCollector by reference.
GroupDistributor< 3 > & angleDistributor()
Get the angle distributor by reference.
Parallel domain decomposition (DD) MD simulation.
Classes used by all simpatico molecular simulations.
Main object for a domain-decomposition MD simulation.
Class for collecting Atoms from processors to master processor.
AtomDistributor & atomDistributor()
Get the AtomDistributor by reference.
Class for collecting Groups from processors to master processor.
Utility classes for scientific computation.
GroupDistributor< 4 > & dihedralDistributor()
Get the dihedral distributor by reference.
MaskPolicy
Enumeration of policies for suppressing ("masking") some pair interactions.
Boundary & boundary()
Get Boundary by reference.
A container for all the Group<N> objects on this processor.
A container for all the atoms and ghost atoms on this processor.
GroupCollector< 2 > & bondCollector()
Get the bond collector by reference.
Buffer for interprocessor communication.
Decomposition of the system into domains associated with processors.
Abstract reader/writer for configuration files.
Container for Group<3> (angle) objects.
AngleStorage & angleStorage()
Get AngleStorage by reference.
GroupCollector< 3 > & angleCollector()
Get the angle collector by reference.
Container for Group<4> (dihedral) objects.
DihedralStorage & dihedralStorage()
Get DihedralStorage by reference.
An object that can read multiple parameters from file.
Container for for Group<2> (bond) objects.
Class for distributing Atoms among processors.
Class template for distributing Group<N> objects among processors.