Changeset 240c3e for src/Actions/FragmentationAction
- Timestamp:
- Dec 14, 2012, 5:39:40 PM (12 years ago)
- 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:
- 07266b
- Parents:
- 37ce5d
- git-author:
- Frederik Heber <heber@…> (09/27/12 14:42:38)
- git-committer:
- Frederik Heber <heber@…> (12/14/12 17:39:40)
- Location:
- src/Actions/FragmentationAction
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
r37ce5d r240c3e 39 39 #include "CodePatterns/MemDebug.hpp" 40 40 41 // include headers that implement a archive in simple text format 42 #include <boost/archive/text_oarchive.hpp> 43 #include <boost/archive/text_iarchive.hpp> 44 45 41 46 #include <boost/mpl/remove.hpp> 42 47 #include <boost/lambda/lambda.hpp> 48 49 #include <iostream> 43 50 44 51 #include "CodePatterns/Assert.hpp" … … 57 64 #include "Fragmentation/ForceMatrix.hpp" 58 65 #include "Fragmentation/Fragmentation.hpp" 66 #include "Fragmentation/Homology/HomologyContainer.hpp" 67 #include "Fragmentation/Homology/HomologyGraph.hpp" 59 68 #include "Fragmentation/SetValues/Fragment.hpp" 60 69 #include "Fragmentation/SetValues/Histogram.hpp" … … 379 388 } 380 389 390 bool appendToHomologyFile(const boost::filesystem::path &homology_file) 391 { 392 // read homology container (if present) 393 HomologyContainer homology_container; 394 if (boost::filesystem::exists(homology_file)) { 395 std::ifstream returnstream(homology_file.string().c_str()); 396 if (returnstream.good()) { 397 boost::archive::text_iarchive ia(returnstream); 398 ia >> homology_container; 399 } else { 400 ELOG(2, "Failed to parse from " << homology_file.string() << "."); 401 } 402 returnstream.close(); 403 } else { 404 LOG(2, "Could not open " << homology_file.string() 405 << ", creating empty container."); 406 } 407 408 // append all fragments to a HomologyContainer 409 HomologyContainer::container_t values; 410 // TODO: prepare HomologyGraphs ... 411 homology_container.insert(values); 412 413 // store homology container again 414 std::ofstream outputstream(homology_file.string().c_str()); 415 if (outputstream.fail()) { // check if opened 416 boost::archive::text_oarchive oa(outputstream); 417 oa << homology_container; 418 if (outputstream.fail()) { // check if correctly written 419 LOG(1, "Failed to write to file " << homology_file.string() << "."); 420 return false; 421 } else 422 outputstream.close(); 423 } else { 424 LOG(1, "Failed to open file " << homology_file.string() 425 << " for writing."); 426 return false; 427 } 428 return true; 429 } 381 430 382 431 Action::state_ptr FragmentationFragmentationAutomationAction::performCall() { … … 475 524 LOG(1, "INFO: Parsing fragment files from " << params.path.get() << "."); 476 525 printReceivedFullResults(results); 526 } 527 528 // append all keysets to homology file 529 if (Exitflag != 0) { 530 const boost::filesystem::path &homology_file = params.homology_file.get(); 531 if (!appendToHomologyFile(homology_file)) 532 Exitflag = 1; 477 533 } 478 534 -
src/Actions/FragmentationAction/FragmentationAutomationAction.def
r37ce5d r240c3e 21 21 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 22 22 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value 23 #define paramtypes (std::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool) 24 #define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange") 25 #define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("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") 26 #define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0")) 27 #define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange) 23 #define paramtypes (std::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path) 24 #define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("homology-file") 25 #define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("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")("path to file containing homology containerto append to") 26 #define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("")) 27 #define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(homology_file) 28 28 #define paramvalids \ 29 29 (STLVectorValidator< std::vector< boost::filesystem::path > >(ParserFileValidator() && FilePresentValidator())) \ … … 35 35 (RangeValidator< unsigned int >(1, 20)) \ 36 36 (RangeValidator< unsigned int >(1, 10)) \ 37 (DummyValidator< bool >()) 37 (DummyValidator< bool >()) \ 38 (DummyValidator< boost::filesystem::path >()) 38 39 39 40 #undef statetypes
Note:
See TracChangeset
for help on using the changeset viewer.