Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/Psi3Parser_Parameters.cpp

    re45c1d r0aa122  
    2929#include "Psi3Parser_Parameters.hpp"
    3030
    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
     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
    3436template <>
    35 inline const std::string Value<bool>::getAsString() const throw(ParameterValueException)
    36 {
    37   if(!ValueSet)
    38     throw ParameterValueException();
     37inline const std::string ContinuousValue<bool>::get() const
     38{
     39  ASSERT(ValueSet,
     40      "ContinuousValue<bool>::get() - requesting unset value.");
    3941  if (value)
    4042    return std::string("yes");
     
    4345}
    4446
    45 // TODO: Value<bool>::setAsString must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
     47// TODO: ContinuousValue<bool>::set must be defined inline otherwise we get multiple definition of virtual thunk compilation errors
    4648template <>
    47 inline void Value<bool>::setAsString(const std::string _value) throw(ParameterException)
     49inline void ContinuousValue<bool>::set(const std::string _value)
    4850{
    4951  if (_value == std::string("yes")) {
    50     set(true);
     52    setValue(true);
    5153  } else if (_value == std::string("no")) {
    52     set(false);
     54    setValue(false);
    5355  } else {
    54     throw ParameterValueException();
     56    ASSERT(0,
     57        "void ContinuousValue<bool>::set() - value "+_value+" is neither yes or no.");
    5558  }
    5659}
     
    100103    ValidFreezeCore[LARGE]="large";
    101104    appendParameter(
    102         new Parameter<std::string>(
     105        new DiscreteParameter<std::string>(
    103106            ParamNames[freeze_coreParam],
    104107            ValidFreezeCore,
     
    113116    ValidUnits[bohr]="bohr";
    114117    appendParameter(
    115         new Parameter<std::string>(
     118        new DiscreteParameter<std::string>(
    116119            ParamNames[unitsParam],
    117120            ValidUnits,
     
    125128    ValidDerivativeType[NONE]="none";
    126129    appendParameter(
    127         new Parameter<std::string>(
     130        new DiscreteParameter<std::string>(
    128131            ParamNames[dertypeParam],
    129132            ValidDerivativeType,
     
    139142    ValidUniqueAxis[Z]="z";
    140143    appendParameter(
    141         new Parameter<std::string>(
     144        new DiscreteParameter<std::string>(
    142145            ParamNames[unique_axisParam],
    143146            ValidUniqueAxis,
     
    157160    ValidJobtypes[RESPONSE]="response";
    158161    appendParameter(
    159         new Parameter<std::string>(
     162        new DiscreteParameter<std::string>(
    160163            ParamNames[jobtypeParam],
    161164            ValidJobtypes,
     
    181184    ValidWavefunction[ZAPTN]="zaptn";
    182185    appendParameter(
    183         new Parameter<std::string>(
     186        new DiscreteParameter<std::string>(
    184187            ParamNames[wavefunctionParam],
    185188            ValidWavefunction,
     
    196199    ValidReference[TWOCON]="twocon";
    197200    appendParameter(
    198         new Parameter<std::string>(
     201        new DiscreteParameter<std::string>(
    199202            ParamNames[referenceParam],
    200203            ValidReference,
     
    204207  // add all continuous parameters
    205208  {
    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("")));
     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("")));
    215218 }
    216219}
     
    226229const std::string Psi3Parser_Parameters::getParameter(const enum Parameters param) const
    227230{
    228   return FormatParser_Parameters::getParameter(ParamNames[param])->getAsString();
     231  return FormatParser_Parameters::getParameter(ParamNames[param])->get();
    229232}
    230233
     
    237240{
    238241  const std::string &name = getParameterName(param);
    239   FormatParser_Parameters::getParameter(name)->setAsString(_value);
     242  FormatParser_Parameters::getParameter(name)->set(_value);
    240243}
    241244
Note: See TracChangeset for help on using the changeset viewer.