Ignore:
Timestamp:
Apr 15, 2013, 6:13:22 PM (12 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:
658485
Parents:
a3427f
git-author:
Frederik Heber <heber@…> (04/11/13 11:04:34)
git-committer:
Frederik Heber <heber@…> (04/15/13 18:13:22)
Message:

FragmentationResultContainer is serializable.

Location:
src/Actions/FragmentationAction
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp

    ra3427f r55e1bc  
    283283Action::state_ptr FragmentationAnalyseFragmentationResultsAction::performCall() {
    284284
    285   // TODO: Get data and keysets from ResultsContainer
     285  // if file is given, parse from file into resultscontainer
    286286  FragmentationResultContainer& container = FragmentationResultContainer::getInstance();
     287  if (!params.resultsfile.get().empty()) {
     288    boost::filesystem::path resultsfile = params.resultsfile.get();
     289    if (boost::filesystem::exists(resultsfile)) {
     290      LOG(1, "INFO: Parsing results from " << resultsfile.string() << ".");
     291      std::ifstream returnstream(resultsfile.string().c_str());
     292      if (returnstream.good()) {
     293        boost::archive::text_iarchive ia(returnstream);
     294        ia >> container;
     295      }
     296    } else {
     297      ELOG(1, "Given file" << resultsfile.string() << " does not exist.");
     298    }
     299  }
     300
     301  // get data and keysets from ResultsContainer
    287302  const std::map<JobId_t, MPQCData> &shortrangedata = container.getShortRangeResults();
    288303  const KeySetsContainer &keysets = container.getKeySets();
    289304  const KeySetsContainer &forcekeysets = container.getForceKeySets();
    290305  const bool DoLongrange = container.areFullRangeResultsPresent();
     306
     307  if (keysets.KeySets.empty()) {
     308    ELOG(2, "There are no results in the container.");
     309    return Action::failure;
     310  }
    291311
    292312  FragmentationShortRangeResults shortrangeresults(shortrangedata, keysets, forcekeysets);
  • src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.def

    ra3427f r55e1bc  
    1010
    1111#include "Parameters/Validators/DummyValidator.hpp"
     12#include "Parameters/Validators/Specific/FilePresentValidator.hpp"
    1213
    1314// i.e. there is an integer with variable name Z that can be found in
    1415// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1516// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    16 #define paramtypes (boost::filesystem::path)
    17 #define paramtokens ("homology-file")
    18 #define paramdescriptions ("path to file containing homology containerto append to")
    19 #define paramdefaults (PARAM_DEFAULT(""))
    20 #define paramreferences (homology_file)
     17#define paramtypes (boost::filesystem::path)(boost::filesystem::path)
     18#define paramtokens ("homology-file")("fragment-resultfile")
     19#define paramdescriptions ("path to file containing homology container to append to")("parse fragment results from the given file")
     20#define paramdefaults (PARAM_DEFAULT(""))(PARAM_DEFAULT(""))
     21#define paramreferences (homology_file)(resultsfile)
    2122#define paramvalids \
     23(DummyValidator< boost::filesystem::path >()) \
    2224(DummyValidator< boost::filesystem::path >())
    2325
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    ra3427f r55e1bc  
    4040
    4141//// include headers that implement a archive in simple text format
    42 //#include <boost/archive/text_oarchive.hpp>
    43 //#include <boost/archive/text_iarchive.hpp>
     42#include <boost/archive/text_oarchive.hpp>
     43#include <boost/archive/text_iarchive.hpp>
    4444
    4545//
     
    200200  FragmentJobQueue::getInstance().clear();
    201201
     202  // if file is given, advise results container to store to file
     203  if (!params.resultsfile.get().empty()) {
     204    boost::filesystem::path resultsfile = params.resultsfile.get();
     205    std::ofstream returnstream(resultsfile.string().c_str());
     206    if (returnstream.good()) {
     207      boost::archive::text_oarchive oa(returnstream);
     208      oa << container;
     209    }
     210    Exitflag += (int)(!returnstream.good());
     211    returnstream.close();
     212  }
     213
    202214  return (Exitflag == 0) ? Action::success : Action::failure;
    203215}
  • src/Actions/FragmentationAction/FragmentationAutomationAction.def

    ra3427f r55e1bc  
    1818// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1919// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    20 #define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)
    21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")
    22 #define paramdescriptions ("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("interpolation degree for getting the nuclei potential from the grid")("whether to calculate long-range contributions")
    23 #define paramdefaults (PARAM_DEFAULT("127.0.0.1"))(NOPARAM_DEFAULT)(PARAM_DEFAULT("mpqc"))(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))
    24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)
     20#define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)
     21#define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")
     22#define paramdescriptions ("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("interpolation degree for getting the nuclei potential from the grid")("whether to calculate long-range contributions")("parse fragment results from the given file")
     23#define paramdefaults (PARAM_DEFAULT("127.0.0.1"))(NOPARAM_DEFAULT)(PARAM_DEFAULT("mpqc"))(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))(PARAM_DEFAULT(""))
     24#define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)
    2525#define paramvalids \
    2626(DummyValidator< std::string >()) \
     
    3030(RangeValidator< unsigned int >(1, 20)) \
    3131(RangeValidator< unsigned int >(1, 10)) \
    32 (DummyValidator< bool >())
     32(DummyValidator< bool >()) \
     33(DummyValidator< boost::filesystem::path >())
    3334
    3435#undef statetypes
Note: See TracChangeset for help on using the changeset viewer.