Changeset e3c4c5 for src


Ignore:
Timestamp:
Oct 11, 2015, 7:11:38 AM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
4f8079
Parents:
6c30ab
git-author:
Frederik Heber <heber@…> (09/10/15 14:41:24)
git-committer:
Frederik Heber <heber@…> (10/11/15 07:11:38)
Message:

MpqcParser additionally allows to save optimization jobs.

  • this is enabled via a new flag "jobtype" that can be either Default or Optimization.
  • also storing "checkpoint = no" per default for all mpqc input files. This is a safety measures such that no old checkpoint files are used that reside in the same folder accidentally. This is especially important for fragment files.
  • TESTFIX: changed all regression tests comparing against .in files, added new checkpoint statement.
  • TESTFIX: changed unit test ParserMpqcUnitTest in the same manner.
Location:
src/Parser
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/MpqcParser.cpp

    r6c30ab re3c4c5  
    309309    *file << "% Created by MoleCuilder" << endl;
    310310    *file << "mpqc: (" << endl;
     311    *file << "\tcheckpoint = no" << endl;
    311312    *file << "\tsavestate = " << getParams().getParameter(MpqcParser_Parameters::savestateParam) << endl;
    312313    *file << "\tdo_gradient = " << getParams().getParameter(MpqcParser_Parameters::do_gradientParam) << endl;
     
    374375      ELOG(0, "Unknown level of theory requested for MPQC output file.");
    375376    }
     377    const std::string jobtype = getParams().getParameter(MpqcParser_Parameters::jobtypeParam);
     378    if (jobtype == getParams().getJobtypeName(MpqcParser_Parameters::Optimization)) {
     379      *file << "\t% optimizer object for the molecular geometry" << endl;
     380      *file << "\topt<QNewtonOpt>: (" << endl;
     381      *file << "\t\tfunction = $..:mole" << endl;
     382      *file << "\t\tupdate<BFGSUpdate>: ()" << endl;
     383      *file << "\t\tconvergence<MolEnergyConvergence>: (" << endl;
     384      *file << "\t\t\tcartesian = yes" << endl;
     385      *file << "\t\t\tenergy = $..:..:mole" << endl;
     386      *file << "\t\t)" << endl;
     387      *file << "\t)" << endl;
     388    }
    376389    *file << ")" << endl;
    377390    *file << "molecule<Molecule>: (" << endl;
  • src/Parser/MpqcParser_Parameters.cpp

    r6c30ab re3c4c5  
    6969    ParamNames[integrationParam] = "integration";
    7070    ParamNames[theoryParam] = "theory";
     71    ParamNames[jobtypeParam] = "jobtype";
    7172  }
    7273
     
    8788  //InvertMap<TheoryNamesType,TheoryLookupType>(TheoryNames,TheoryLookup);
    8889
     90  // create Jobs parameter
     91  {
     92    ValidJobtypes.clear();
     93    ValidJobtypes.resize(unknownJob);
     94    ValidJobtypes[Default]="Default";
     95    ValidJobtypes[Optimization]="Optimization";
     96    appendParameter(
     97        new Parameter<std::string>(
     98            ParamNames[jobtypeParam],
     99            ValidJobtypes,
     100            ValidJobtypes[Default]));
     101  }
     102
    89103  // create integration parameter
    90104  {
     
    177191}
    178192
     193/** Getter for name of a specific Parameter.
     194 *
     195 * @param param index among enum Jobtype
     196 * @return name of the desired Jobtype
     197 */
     198const std::string &MpqcParser_Parameters::getJobtypeName(const enum Jobtype jobtype) const
     199{
     200  return ValidJobtypes[jobtype];
     201}
     202
    179203/** Getter for the name of specific of IntegrationMethod.
    180204 *
  • src/Parser/MpqcParser_Parameters.hpp

    r6c30ab re3c4c5  
    5858    integrationParam,//!< integrationParam, integration method to use in MBPT2 R12
    5959    theoryParam,     //!< theoryParam, level of theory to use
     60    jobtypeParam,    //!< jobtypeParam, job type to use
    6061    unknownParam};   //!< unknownParam, designates an unknown parameter
    6162
     
    6970    MBPT2_R12,  //!< Moeller Plesset Perturbation Theory second order with R12 integral
    7071    unknownTheory //!< designates an unknown theory
     72  };
     73
     74  /** Enumeration of all known jobtypes.
     75   *
     76   */
     77  enum Jobtype {
     78    Default,       //!< standard energy and force calculation
     79    Optimization,       //!< additional optimization of geometry
     80    unknownJob //!< designates an unknown job
    7181  };
    7282
     
    93103  const std::string &getParameterName(const enum Parameters param) const;
    94104  const std::string &getTheoryName(const enum Theory theory) const;
     105  const std::string &getJobtypeName(const enum Jobtype jobtype) const;
    95106  const std::string &getIntegrationMethodName(const enum IntegrationMethod integration) const;
    96107
     
    99110  //!> vector with all available theories in same order as enum Theory.
    100111  std::vector<std::string> ValidTheories;
     112
     113  //!> vector with all available jobtypes in same order as enum Jobs.
     114  std::vector<std::string> ValidJobtypes;
    101115
    102116  //!> vector with all available integration methods in same order as enum IntegrationMethod.
  • src/Parser/unittests/ParserMpqcUnitTest.cpp

    r6c30ab re3c4c5  
    6363static string waterMpqc_CLHF ="% Created by MoleCuilder\n\
    6464mpqc: (\n\
     65\tcheckpoint = no\n\
    6566\tsavestate = no\n\
    6667\tdo_gradient = yes\n\
     
    8687static string waterMpqc_CLKS ="% Created by MoleCuilder\n\
    8788mpqc: (\n\
     89\tcheckpoint = no\n\
    8890\tsavestate = no\n\
    8991\tdo_gradient = yes\n\
     
    110112static string waterMpqc_MBPT2 ="% Created by MoleCuilder\n\
    111113mpqc: (\n\
     114\tcheckpoint = no\n\
    112115\tsavestate = no\n\
    113116\tdo_gradient = yes\n\
     
    138141static string waterMpqc_MBPT2_R12 ="% Created by MoleCuilder\n\
    139142mpqc: (\n\
     143\tcheckpoint = no\n\
    140144\tsavestate = no\n\
    141145\tdo_gradient = yes\n\
Note: See TracChangeset for help on using the changeset viewer.