-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathBasis.h
30 lines (22 loc) · 962 Bytes
/
Basis.h
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
#pragma once
#include <string>
#include <vector>
#include "Atom.h"
namespace Chemistry {
class Basis
{
public:
std::vector<Systems::AtomWithShells> atoms;
void Load(const std::string& fileName);
void Save(const std::string& fileName);
void Normalize();
private:
void SaveAtom(std::ofstream& file, const Systems::AtomWithShells& atom);
void SaveShell(std::ofstream& file, const Orbitals::ContractedGaussianShell& shell);
void CountOrbitals(const Systems::AtomWithShells& atom, int& sNr, int& pNr, int& dNr, int& fNr, int& gNr, int& hNr);
void CountContractedOrbitals(const Systems::AtomWithShells& atom, int& sNr, int& pNr, int& dNr, int& fNr, int& gNr, int& hNr);
void GenerateOrbitalsString(std::stringstream& orbitalsStr, int sNr, int pNr, int dNr, int fNr, int gNr, int hNr);
bool LoadShell(std::string& line, std::string& shellName);
static int GetNumberOfGaussiansInOrbital(const std::string& shellName, int orbital);
};
}