Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/Psi3Parser_Parameters.cpp

    r0aa122 re45c1d  
    2929#include "Psi3Parser_Parameters.hpp"
    3030
    31 #include "Parser/Parameters/ContinuousParameter.hpp"
    32 #include "Parser/Parameters/DiscreteParameter.hpp"
    33 #include "Parser/Parameters/StringParameter.hpp"
    34 
    35 // TODO: ContinuousValue<bool>::get() must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
     31#include "Parameters/Parameter.hpp"
     32
     33// TODO: Value<bool>::getAsString() must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
    3634template <>
    37 inline const std::string ContinuousValue<bool>::get() const
    38 {
    39   ASSERT(ValueSet,
    40       "ContinuousValue<bool>::get() - requesting unset value.");
     35inline const std::string Value<bool>::getAsString() const throw(ParameterValueException)
     36{
     37  if(!ValueSet)
     38    throw ParameterValueException();
    4139  if (value)
    4240    return std::string("yes");
     
    4543}
    4644
    47 // TODO: ContinuousValue<bool>::set must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
     45// TODO: Value<bool>::setAsString must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
    4846template <>
    49 inline void ContinuousValue<bool>::set(const std::string _value)
     47inline void Value<bool>::setAsString(const std::string _value) throw(ParameterException)
    5048{
    5149  if (_value == std::string("yes")) {
    52     setValue(true);
     50    set(true);
    5351  } else if (_value == std::string("no")) {
    54     setValue(false);
     52    set(false);
    5553  } else {
    56     ASSERT(0,
    57         "void ContinuousValue<bool>::set() - value "+_value+" is neither yes or no.");
     54    throw ParameterValueException();
    5855  }
    5956}
     
    103100    ValidFreezeCore[LARGE]="large";
    104101    appendParameter(
    105         new DiscreteParameter<std::string>(
     102        new Parameter<std::string>(
    106103            ParamNames[freeze_coreParam],
    107104            ValidFreezeCore,
     
    116113    ValidUnits[bohr]="bohr";
    117114    appendParameter(
    118         new DiscreteParameter<std::string>(
     115        new Parameter<std::string>(
    119116            ParamNames[unitsParam],
    120117            ValidUnits,
     
    128125    ValidDerivativeType[NONE]="none";
    129126    appendParameter(
    130         new DiscreteParameter<std::string>(
     127        new Parameter<std::string>(
    131128            ParamNames[dertypeParam],
    132129            ValidDerivativeType,
     
    142139    ValidUniqueAxis[Z]="z";
    143140    appendParameter(
    144         new DiscreteParameter<std::string>(
     141        new Parameter<std::string>(
    145142            ParamNames[unique_axisParam],
    146143            ValidUniqueAxis,
     
    160157    ValidJobtypes[RESPONSE]="response";
    161158    appendParameter(
    162         new DiscreteParameter<std::string>(
     159        new Parameter<std::string>(
    163160            ParamNames[jobtypeParam],
    164161            ValidJobtypes,
     
    184181    ValidWavefunction[ZAPTN]="zaptn";
    185182    appendParameter(
    186         new DiscreteParameter<std::string>(
     183        new Parameter<std::string>(
    187184            ParamNames[wavefunctionParam],
    188185            ValidWavefunction,
     
    199196    ValidReference[TWOCON]="twocon";
    200197    appendParameter(
    201         new DiscreteParameter<std::string>(
     198        new Parameter<std::string>(
    202199            ParamNames[referenceParam],
    203200            ValidReference,
     
    207204  // add all continuous parameters
    208205  {
    209     appendParameter(new StringParameter(ParamNames[labelParam], std::string("unknown job")));
    210     appendParameter(new ContinuousParameter<int>(ParamNames[maxiterParam], 80));
    211     appendParameter(new StringParameter(ParamNames[basisParam], std::string("cc-pVTZ")));
    212     appendParameter(new StringParameter(ParamNames[originParam], std::string("(0.0\t0.0\t0.0)"))); // TODO: this should be a vector
    213     appendParameter(new ContinuousParameter<int>(ParamNames[multiplicityParam], 1));
    214     appendParameter(new ContinuousParameter<int>(ParamNames[chargeParam], 0));
    215     appendParameter(new StringParameter(ParamNames[soccParam], std::string("()")));
    216     appendParameter(new StringParameter(ParamNames[doccParam], std::string("()")));
    217     appendParameter(new StringParameter(ParamNames[subgroupParam], std::string("")));
     206    appendParameter(new Parameter<string>(ParamNames[labelParam], std::string("unknown job")));
     207    appendParameter(new Parameter<int>(ParamNames[maxiterParam], 80));
     208    appendParameter(new Parameter<string>(ParamNames[basisParam], std::string("cc-pVTZ")));
     209    appendParameter(new Parameter<string>(ParamNames[originParam], std::string("(0.0\t0.0\t0.0)"))); // TODO: this should be a vector
     210    appendParameter(new Parameter<int>(ParamNames[multiplicityParam], 1));
     211    appendParameter(new Parameter<int>(ParamNames[chargeParam], 0));
     212    appendParameter(new Parameter<string>(ParamNames[soccParam], std::string("()")));
     213    appendParameter(new Parameter<string>(ParamNames[doccParam], std::string("()")));
     214    appendParameter(new Parameter<string>(ParamNames[subgroupParam], std::string("")));
    218215 }
    219216}
     
    229226const std::string Psi3Parser_Parameters::getParameter(const enum Parameters param) const
    230227{
    231   return FormatParser_Parameters::getParameter(ParamNames[param])->get();
     228  return FormatParser_Parameters::getParameter(ParamNames[param])->getAsString();
    232229}
    233230
     
    240237{
    241238  const std::string &name = getParameterName(param);
    242   FormatParser_Parameters::getParameter(name)->set(_value);
     239  FormatParser_Parameters::getParameter(name)->setAsString(_value);
    243240}
    244241
Note: See TracChangeset for help on using the changeset viewer.