Simpatico  v1.10
ConfigReader.h
1 #ifndef TOOLS_CONFIG_READER_H
2 #define TOOLS_CONFIG_READER_H
3 
4 /*
5 * Simpatico - Simulation Package for Polymeric and Molecular Liquids
6 *
7 * Copyright 2010 - 2017, The Regents of the University of Minnesota
8 * Distributed under the terms of the GNU General Public License.
9 */
10 
11 #include <util/param/ParamComposite.h> // base class
12 
13 namespace Tools
14 {
15 
16  class Configuration;
17  using namespace Util;
18 
28  {
29 
30  public:
31 
35  ConfigReader();
36 
43  ConfigReader(Configuration& configuration, bool needsAuxiliaryFile = false);
44 
48  virtual ~ConfigReader();
49 
55  virtual void readConfig(std::ifstream& file) = 0;
56 
60  bool needsAuxiliaryFile() const;
61 
69  virtual void readAuxiliaryFile(std::ifstream& file)
70  {}
71 
72  protected:
73 
79  bool setAtomContexts();
80 
84  void addAtomsToSpecies();
85 
90  { return *configurationPtr_; }
91 
92  private:
93 
95  Configuration* configurationPtr_;
96 
98  bool needsAuxiliaryFile_;
99 
100  };
101 
102  /*
103  * Return true if an auxiliary file is needed.
104  */
105  inline
107  { return needsAuxiliaryFile_; }
108 
109 }
110 #endif
Abstract reader/writer for configuration files.
Definition: ConfigReader.h:27
bool needsAuxiliaryFile() const
Return true if an auxiliary file is needed.
Definition: ConfigReader.h:106
virtual void readAuxiliaryFile(std::ifstream &file)
Read auxiliary file.
Definition: ConfigReader.h:69
An instantaneous molecular dynamics configuration.
Definition: Configuration.h:40
Utility classes for scientific computation.
Definition: accumulators.mod:1
Single-processor classes for pre- and post-processing MD trajectories.
An object that can read multiple parameters from file.
Configuration & configuration()
Get parent Configuration by reference.
Definition: ConfigReader.h:89