/usr/include/BALL/FORMAT/GAMESSLogFile.h is in libball1.4-dev 1.4.3~beta1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_FORMAT_GAMESSLOGFILE_H
#define BALL_FORMAT_GAMESSLOGFILE_H
#ifndef BALL_FORMAT_GENERICMOLFILE_H
# include <BALL/FORMAT/genericMolFile.h>
#endif
#ifndef BALL_STRUCTURE_QMBASISSET_H
# include <BALL/STRUCTURE/QMBasisSet.h>
#endif
#ifndef BALL_STRUCTURE_SPLITVALENCESET_H
# include <BALL/STRUCTURE/splitValenceSet.h>
#endif
namespace BALL
{
/** GAMESSLog file class.
* This class enables BALL to read and write input and output .log files for
* the GAMESS quantum chemistry application.
*
* \ingroup StructureFormats
*/
class BALL_EXPORT GAMESSLogFile
: public GenericMolFile
{
public:
BALL_CREATE(GAMESSLogFile)
/** State of the parser **/
struct State
{
GAMESSLogFile* current_parser;
};
/** @name Constructors and Destructors
*/
//@{
/** Default constructor
*/
GAMESSLogFile();
/** Copy constructor
* @throw Exception::FileNotFound if the file could not be opened
*/
GAMESSLogFile(const GAMESSLogFile& file);
/** Detailed constructor
* @throw Exception::FileNotFound if the file could not be opened
*/
GAMESSLogFile(const String& filename, File::OpenMode open_mode = std::ios::in);
/** Destructor
*/
virtual ~GAMESSLogFile();
//@}
/** @name Assignment.
*/
//@{
/** Assignment operator.
* @throw Exception::FileNotFound if the file could not be opened
*/
const GAMESSLogFile& operator = (const GAMESSLogFile& rhs);
//@}
/** @name Reading and Writing of Kernel Logastructures
*/
//@{
/** Write a molecule to a GAMESSLogFile.
* If additional GAMESS - keywords are stored in this class, they
* will be written as well.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const Molecule& molecule);
/** Write a system to a GAMESSLogFile.
* If additional GAMESS - keywords are stored in this class, they
* will be written as well.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const System& molecule);
/** Read a Molecule from the GAMESSLogFile.
* If the GAMESS .log - file contains additional lines apart from the
* molecule itself, they are stored in this class.
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual Molecule* read();
/** Read a System from the GAMESSLogFile.
* If the GAMESS .log - file contains additional lines apart from the
* molecule itself, they are stored in this class.
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual bool read(System& system);
//@}
/** @name Accessors
*/
//@{
void newMolecule();
void setMoleculeName(char* name);
void insertAtom(const String& element, float charge, float x, float y, float z);
void insertBond(Index a1, Index a2);
void clearBonds();
void setCurrentCharge(float charge);
void setUnitConversionFactor(float factor);
void addCoefficient(float coefficient);
void initializeBasisSet();
QMBasisSet& getBasisSet();
const QMBasisSet& getBasisSet() const;
void addBasisOption(const String& key, const String& value);
String getBasisOption(const String& key);
//@}
static State state;
Index current_atom;
Index current_set;
Index current_coefficient_line;
Size basis_size;
bool molecule_already_defined;
/** All of this stuff should not really be placed _here_...
* we need a data structure for QM data sets that stores
* all the stuff here.
*/
System *system; // needed for the datasetControl stuff
protected:
virtual void initRead_();
Molecule* molecule_;
float factor_;
//QMBasisSet qmbs_;
splitValenceSet qmbs_;
StringHashMap<String> basis_options_;
};
}
#endif // BALL_FORMAT_GAMESSLOGFILE_H
|