Changeset 237f93 for src/Actions
- Timestamp:
- Apr 29, 2014, 12:42:43 PM (11 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:
- f47e00b
- Parents:
- ec7511
- git-author:
- Frederik Heber <heber@…> (02/04/14 20:32:08)
- git-committer:
- Frederik Heber <heber@…> (04/29/14 12:42:43)
- Location:
- src/Actions
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/ActionSequence.cpp
rec7511 r237f93 55 55 void ActionSequence::addAction(Action* _action){ 56 56 actions.push_back(_action); 57 } 58 59 bool ActionSequence::removeAction(const std::string &name){ 60 actionSet::iterator it=actions.begin(); 61 for(; it!=actions.end(); it++){ 62 if ((*it)->getName() == name) { 63 actions.erase(it); 64 break; 65 } 66 } 67 return it!=actions.end(); 57 68 } 58 69 -
src/Actions/ActionSequence.hpp
rec7511 r237f93 48 48 49 49 protected: 50 /** removes the first occurence of an action name \a name from sequence. 51 * 52 * \param name name of action 53 * \return true - action removed, false - action not found 54 */ 55 bool removeAction(const std::string &name); 56 50 57 stateSet callAll(bool); // Dummy parameter to allow overloading 51 58 Dialog* fillAllDialogs(Dialog *dialog); -
src/Actions/FragmentationAction/MolecularDynamicsAction.cpp
rec7511 r237f93 59 59 void FragmentationMolecularDynamicsAction::prepare(ActionRegistry &AR) 60 60 { 61 isPrepared = false; 61 // perform a verlet-integration first, if there are already forces or velocities 62 // present. If not, we still copy the position cleanly into a new step where then 63 // forces are set according to summed fragmentary contributions. This is much cleaner. 64 actions.addAction(AR.getActionByName(std::string("verlet-integration"))); 65 actions.addAction(AR.getActionByName(std::string("output"))); 66 actions.addAction(AR.getActionByName(std::string("fragment-molecule"))); 67 actions.addAction(AR.getActionByName(std::string("fragment-automation"))); 68 actions.addAction(AR.getActionByName(std::string("analyse-fragment-results"))); 69 isPrepared = true; 62 70 } 63 71 … … 70 78 71 79 ActionState::ptr FragmentationMolecularDynamicsAction::performCall(){ 72 // now we can truely prepare 73 ActionQueue &AQ = ActionQueue::getInstance(); 74 // perform a verlet-integration first, if there are already forces or velocities 75 // present. If not, we still copy the position cleanly into a new step where then 76 // forces are set according to summed fragmentary contributions. This is much cleaner. 77 actions.addAction(AQ.getActionByName(std::string("verlet-integration"))); 78 if (params.DoOutput.get()) 79 actions.addAction(AQ.getActionByName(std::string("output"))); 80 actions.addAction(AQ.getActionByName(std::string("fragment-molecule"))); 81 actions.addAction(AQ.getActionByName(std::string("fragment-automation"))); 82 actions.addAction(AQ.getActionByName(std::string("analyse-fragment-results"))); 80 81 // set number of steps 83 82 setLoop(params.steps.get()); 84 isPrepared = true; 85 83 // remove output from sequence if not desired. 84 if (!params.DoOutput.get()) { 85 #ifndef NDEBUG 86 bool status = 87 #endif 88 removeAction(std::string("output")); 89 ASSERT( status, 90 "FragmentationMolecularDynamicsAction::performCall() - output not found in ActionSequence."); 91 } 92 // and call 86 93 ActionState::ptr state(MakroAction::performCall()); 87 94 -
src/Actions/MakroAction.cpp
rec7511 r237f93 87 87 } 88 88 89 bool MakroAction::removeAction(const std::string &name) 90 { 91 actions.removeAction(name); 92 } 93 94 Dialog* MakroAction::fillOwnDialog(Dialog *dialog) { 95 return dialog; 96 } 97 89 98 Dialog* MakroAction::fillDialog(Dialog *dialog) { 99 dialog = fillOwnDialog(dialog); 90 100 return actions.fillAllDialogs(dialog); 91 101 } 92 102 93 103 ActionState::ptr MakroAction::performCall(){ 94 {95 // create and run our dialog and also of all members of the sequence96 Dialog* dialog = actions.fillAllDialogs(createDialog());97 if (dialog->hasQueries()) {98 if (!dialog->display())99 // dialog error or aborted -> throw exception100 throw ActionFailureException() << ActionNameString(getName());101 }102 delete(dialog);103 }104 // { 105 // // create and run our dialog and also of all members of the sequence 106 // Dialog* dialog = actions.fillAllDialogs(createDialog()); 107 // if (dialog->hasQueries()) { 108 // if (!dialog->display()) 109 // // dialog error or aborted -> throw exception 110 // throw ActionFailureException() << ActionNameString(getName()); 111 // } 112 // delete(dialog); 113 // } 104 114 ActionSequence::stateSet states = actions.callAll(true); 105 115 return ActionState::ptr(new MakroActionState(states)); -
src/Actions/MakroAction.hpp
rec7511 r237f93 46 46 47 47 protected: 48 virtual Dialog *fillDialog(Dialog *dialog); 48 /** 49 * MakroAction requires an own dialog for global options such as number of loop 50 * iterations, ... besides the dialog from each action in the sequence. 51 * 52 * However, fillDialog() calls ActionSequence::fillAllDialog(). Hence, the dialog 53 * for specific global options must be requested in an distinct function. 54 */ 55 virtual Dialog * fillOwnDialog(Dialog*); 56 57 /** Pass-thru for removeAction to allow all derived MakroActions to manipulate action sequence. 58 * 59 * \param name name of action to remove 60 * \return true - action removed, false - action not found 61 * \sa ActionSequence::removeAction() 62 */ 63 bool removeAction(const std::string &name); 49 64 50 65 virtual ActionState::ptr performCall(); … … 55 70 56 71 private: 72 /** fillDialog is used to spawn sequence queries, hence must not be modified by 73 * derived MakroActions. 74 */ 75 Dialog *fillDialog(Dialog *dialog); 76 57 77 ActionSequence &actions; 58 78 }; -
src/Actions/MakroAction_impl_header.hpp
rec7511 r237f93 234 234 235 235 protected: 236 virtual Dialog * fill Dialog(Dialog*);236 virtual Dialog * fillOwnDialog(Dialog*); 237 237 238 238 void startTimer() const; -
src/Actions/MakroAction_impl_pre.hpp
rec7511 r237f93 292 292 293 293 // =========== fill a dialog =========== 294 Dialog* ACTION::fill Dialog(Dialog *dialog) {294 Dialog* ACTION::fillOwnDialog(Dialog *dialog) { 295 295 ASSERT(dialog,"No Dialog given when filling actionname's dialog"); 296 296 #if BOOST_PP_EQUAL(MAXPARAMTYPES,0)
Note:
See TracChangeset
for help on using the changeset viewer.