1 /* 2 * PCMSolver, an API for the Polarizable Continuum Model 3 * Copyright (C) 2020 Roberto Di Remigio, Luca Frediani and contributors. 4 * 5 * This file is part of PCMSolver. 6 * 7 * PCMSolver is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU Lesser General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * PCMSolver is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public License 18 * along with PCMSolver. If not, see <http://www.gnu.org/licenses/>. 19 * 20 * For information on the complete list of contributors to the 21 * PCMSolver API, see: <http://pcmsolver.readthedocs.io/> 22 */ 23 24 #pragma once 25 26 #include <string> 27 28 #include "Config.hpp" 29 30 namespace pcm { 31 /*! @struct SolverData 32 * @brief Contains all data defined from user input in the solver section. 33 */ 34 struct SolverData { 35 /*! The type of solver */ 36 std::string solverType; 37 /*! The correction factor to be use in a CPCM calculation */ 38 double correction; 39 /*! Triggers hermitivitization of the PCM matrix obtained by collocation */ 40 bool hermitivitize; 41 SolverDatapcm::SolverData42 SolverData(const std::string & type, double corr, bool symm = true) 43 : solverType(type), correction(corr), hermitivitize(symm) {} 44 }; 45 } // namespace pcm 46