Changeset 27afbf


Ignore:
Timestamp:
Nov 16, 2012, 2:13:46 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:
fb881a
Parents:
c42a43
git-author:
Frederik Heber <heber@…> (08/03/12 10:09:29)
git-committer:
Frederik Heber <heber@…> (11/16/12 14:13:46)
Message:

FragmentationAutomationAction now prints table of results for energy, force, and times.

  • added template functor writeTable that does what was present before as code in printReceivedMPQCResults().
Location:
src
Files:
1 added
3 edited

Legend:

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

    rc42a43 r27afbf  
    5757#include "Fragmentation/Summation/AllLevelOrthogonalSummator.hpp"
    5858#include "Fragmentation/Summation/AllLevelSummator.hpp"
    59 #include "Fragmentation/Summation/HeaderPrinter.hpp"
    60 #include "Fragmentation/Summation/ValuePrinter.hpp"
     59#include "Fragmentation/Summation/writeTable.hpp"
    6160#include "Graph/DepthFirstSearchAnalysis.hpp"
    6261#include "Helpers/defs.hpp"
     
    425424    boost::mpl::for_each<MPQCDataTimeVector_t>(boost::ref(timeSummer));
    426425
    427     // create header line for energy
    428     HeaderPrinter header("level");
    429     boost::mpl::for_each<MPQCDataEnergyVector_t>(boost::ref(header));
    430     LOG(0, header.get());
    431 
    432     // print values per line
    433     for (size_t level = 1; level <= subsetmap->getMaximumSubsetLevel(); ++level) {
    434       ValuePrinter<MPQCDataEnergyMap_t> values(Result_Energy_fused[level-1], level);
    435       boost::mpl::for_each<MPQCDataEnergyVector_t>(boost::ref(values));
    436       LOG(0, values.get());
    437     }
     426    // print tables
     427    const size_t MaxLevel = subsetmap->getMaximumSubsetLevel();
     428    const std::string energyresult =
     429        writeTable<MPQCDataEnergyMap_t, MPQCDataEnergyVector_t>()(
     430            Result_Energy_fused, MaxLevel);
     431    LOG(0, "Energy table is \n" << energyresult);
     432    const std::string forceresult =
     433        writeTable<MPQCDataForceMap_t, MPQCDataForceVector_t>()(
     434            Result_Force_fused, MaxLevel);
     435    LOG(0, "Force table is \n" << forceresult);
     436    // we don't want to print grid to a table
     437    const std::string timesresult =
     438        writeTable<MPQCDataTimeMap_t, MPQCDataTimeVector_t>()(
     439            Result_Time_fused, MaxLevel);
     440    LOG(0, "Times table is \n" << timesresult);
    438441  }
    439442
  • src/Fragmentation/Summation/Makefile.am

    rc42a43 r27afbf  
    2525        Fragmentation/Summation/Summator.hpp \
    2626        Fragmentation/Summation/ValuePrinter.hpp \
     27        Fragmentation/Summation/writeTable.hpp \
    2728        Fragmentation/Summation/ZeroInstance.hpp
    2829
  • src/Fragmentation/Summation/ValuePrinter.hpp

    rc42a43 r27afbf  
    1616
    1717#include <boost/fusion/container/map.hpp>
     18#include <iomanip>
     19#include <sstream>
    1820#include <string>
    1921
     
    2729 * containing all these keys is present
    2830 */
    29 template <typename MapType>
     31template <typename MapType, int numprecision=5>
    3032struct ValuePrinter {
    3133  ValuePrinter(const MapType &_instance, const size_t level) :
     
    3739  void operator()(MapKey &) {
    3840    //typedef typename boost::fusion::result_of::value_at_key<MapType, MapKey>::type MapValue;
    39     value += std::string("\t") + toString(boost::fusion::at_key<MapKey>(instance));
     41    std::stringstream valuestream;
     42    valuestream << std::setprecision(numprecision) << boost::fusion::at_key<MapKey>(instance);
     43    value += std::string("\t") + valuestream.str();
    4044  }
    4145
Note: See TracChangeset for help on using the changeset viewer.