2#ifndef STORMM_NML_SOLVENT_H
3#define STORMM_NML_SOLVENT_H
6#include "Constants/behavior.h"
7#include "Parsing/textfile.h"
8#include "Topology/atomgraph_enumerators.h"
10#include "namelist_emulator.h"
15using constants::ExceptionResponse;
16using parse::WrapTextSearch;
17using topology::ImplicitSolventModel;
18using topology::AtomicRadiusSet;
22constexpr int default_solvent_igb = 0;
23constexpr double default_solvent_rgbmax = 1000.0;
24constexpr double default_solvent_intdiel = 1.0;
25constexpr double default_solvent_extdiel = 78.5;
26constexpr double default_solvent_saltcon = 0.0;
27constexpr double default_surface_area_energy = 0.0;
28constexpr char default_solvent_pbradii[] =
"none";
50 WrapTextSearch wrap = WrapTextSearch::NO);
52 ExceptionResponse policy_in = ExceptionResponse::DIE,
53 WrapTextSearch wrap = WrapTextSearch::NO);
141 ExceptionResponse policy;
146 ImplicitSolventModel gb_style;
148 double born_radii_cutoff;
150 double internal_dielectric;
154 double external_dielectric;
156 double salt_concentration;
158 AtomicRadiusSet pb_radii;
168 void validateBornRadiiCutoff();
171 void validateInternalDielectric();
174 void validateExternalDielectric();
177 void validateSaltConcentration();
194 ExceptionResponse policy = ExceptionResponse::DIE,
195 WrapTextSearch wrap = WrapTextSearch::NO);
Collection of variables to transcribe information contained within a namelist.
Definition namelist_emulator.h:30
void setSaltConcentration(double saltcon_in)
Set the salt concentration, the concentration of 1:1 monovalent ion pairs in the implicit solvent.
Definition nml_solvent.cpp:145
double getSurfaceAreaScalingFactor() const
Get the surface area scaling factor, in units of kcal/mol per square Angstrom.
Definition nml_solvent.cpp:107
AtomicRadiusSet getPBRadiiSet() const
Get the Poisson-Boltzmann radii set.
Definition nml_solvent.cpp:102
double getBornRadiiCutoff() const
Get the Born radius calculation cutoff.
Definition nml_solvent.cpp:82
double getSaltConcentration() const
Get the salt concentration.
Definition nml_solvent.cpp:97
void setSurfaceAreaScalingFactor(double sa_scaling_in)
Set the surface area scaling factor. Any value is accepted, even negative values, as it may be favora...
Definition nml_solvent.cpp:161
double getInternalDielectric() const
Get the internal dielectric constant.
Definition nml_solvent.cpp:87
ImplicitSolventModel getImplicitSolventModel() const
Get the type of implicit solvent (some flavor of Generalized Born).
Definition nml_solvent.cpp:77
SolventControls(ExceptionResponse policy_in=ExceptionResponse::DIE, WrapTextSearch wrap=WrapTextSearch::NO)
The constructor can prepare an object with default settings or read the corresponding namelist to acc...
Definition nml_solvent.cpp:17
void setInternalDielectric(double idiel_in)
Set the internal dielectric.
Definition nml_solvent.cpp:133
void setBornRadiiCutoff(double rgbmax_in)
Set the Born radius calculation cutoff.
Definition nml_solvent.cpp:127
void setImplicitSolventModel(int ism_in)
Set the implicit solvent model.
Definition nml_solvent.cpp:117
double getExternalDielectric() const
Get the external dielectric constant.
Definition nml_solvent.cpp:92
void choosePBRadiiSet(const std::string &pbrad_in)
Choose the Poisson-Boltzmann radii set.
Definition nml_solvent.cpp:151
SolventControls(const SolventControls &original)=default
As with other control objects, copy and move constructors, plus copy and move assignment operators,...
void setExternalDielectric(double ediel_in)
Set the external dielectric.
Definition nml_solvent.cpp:139
const NamelistEmulator & getTranscript() const
Get the original namelist emulator object as a transcript of the user input.
Definition nml_solvent.cpp:112
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45