22#ifndef VOTCA_XTP_QMPACKAGE_H
23#define VOTCA_XTP_QMPACKAGE_H
62 template <
class MMRegion>
66 using Sitetype =
typename Segmenttype::Atom_Type;
67 for (
const Segmenttype& segment : mmregion) {
68 for (
const Sitetype& site : segment) {
91 spin_ = std::abs(charge) + 1;
95 return options_.get(
"initial_guess").as<std::string>() ==
"orbfile";
194 bool isLinker(std::string name, std::vector<std::string> linker_names);
197 const std::string separators)
const;
Logger is used for thread-safe output of messages.
Container for molecular orbitals and derived one-particle data.
const ewaldcontainer::PotentialData & ewaldBackground() const
virtual ~QMPackage()=default
virtual void WriteChargeOption()=0
void setEwaldgrid(const Vxc_Grid &ewaldgrid)
void setCharge(Index charge)
std::string log_file_name_
ewaldcontainer::PotentialData * ewald_foreground_correction_
void setEwaldShapeCorrection(ewaldcontainer::PotentialData &shape_corr)
ewaldcontainer::PotentialData * ewald_mm1_
void setEwaldBackground(ewaldcontainer::PotentialData &bg)
ewaldcontainer::PotentialData & ewaldShapeCorrection()
virtual Eigen::Matrix3d GetPolarizability() const =0
bool has_ewald_nuclear_energy_
void setEwaldMM1(ewaldcontainer::PotentialData &mm1)
virtual const std::array< Index, 49 > & ShellReorder() const =0
void setLog(Logger *pLog)
ewaldcontainer::PotentialData * ewald_background_
std::vector< std::string > GetLineAndSplit(std::ifstream &input_file, const std::string separators) const
double ewald_nuclear_energy_
bool GuessRequested() const
std::vector< std::unique_ptr< StaticSite > > externalsites_
virtual std::string getPackageName() const =0
Eigen::MatrixXd ReorderMOsBack(const Orbitals &orbitals) const
std::vector< MinimalMMCharge > SplitMultipoles(const StaticSite &site) const
void setLogFileName(const std::string &log_file_name)
ewaldcontainer::PotentialData & ewaldForegroundCorrection()
std::string mo_file_name_
const ewaldcontainer::PotentialData & ewaldShapeCorrection() const
virtual void ParseSpecificOptions(const tools::Property &options)=0
std::string getMOFile() const
const ewaldcontainer::PotentialData & ewaldMM1() const
virtual bool RunActiveDFT()=0
const ewaldcontainer::PotentialData & ewaldForegroundCorrection() const
virtual StaticSegment GetCharges() const =0
void setEwaldNuclearEnergy(double energy)
virtual bool WriteInputFile(const Orbitals &orbitals)=0
writes a coordinate file WITHOUT taking into account PBCs
bool has_ewaldbackground_
void setRunDir(const std::string &run_dir)
void AddRegion(const MMRegion &mmregion)
virtual bool ParseLogFile(Orbitals &orbitals)=0
std::string basisset_name_
bool isLinker(std::string name, std::vector< std::string > linker_names)
void Initialize(const tools::Property &options)
ewaldcontainer::PotentialData & ewaldBackground()
virtual const std::array< Index, 49 > & ShellMulitplier() const =0
ewaldcontainer::PotentialData * ewald_shape_correction_
void setEwaldForegroundCorrection(ewaldcontainer::PotentialData &fg_corr)
virtual bool ParseMOsFile(Orbitals &orbitals)=0
ewaldcontainer::PotentialData & ewaldMM1()
std::string shell_file_name_
void setMOsFileName(const std::string &mo_file)
std::string input_file_name_
void setInputFileName(const std::string &input_file_name)
std::string getLogFile() const
void ReorderOutput(Orbitals &orbitals) const
Class to represent Atom/Site in electrostatic.
ClassicalSegment< StaticSite > StaticSegment
Provides a means for comparing floating point numbers.
MinimalMMCharge(const Eigen::Vector3d &pos, double q)