- Timestamp:
- May 1, 2013, 7:52:55 AM (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:
- b6b21a
- Parents:
- 53c579
- git-author:
- Frederik Heber <heber@…> (03/27/13 11:26:13)
- git-committer:
- Frederik Heber <heber@…> (05/01/13 07:52:55)
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
r53c579 r6ff62c 118 118 // Phase Two: add MPQCJobs and send 119 119 const size_t NoJobs = mpqccontroller.addJobsFromQueue( 120 params.DoLongrange.get() ? MPQCData::DoSampleDensity : MPQCData::DontSampleDensity); 120 params.DoLongrange.get() ? MPQCData::DoSampleDensity : MPQCData::DontSampleDensity, 121 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly 122 ); 121 123 LOG(1, "INFO: Added " << NoJobs << " from FragmentJobsQueue."); 122 124 mpqccontroller.run(); … … 160 162 full_sample, 161 163 near_field_cells, 162 interpolation_degree)) 164 interpolation_degree, 165 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly)) 163 166 // can't use the summed up fragment due to saturation hydrogens 164 167 // summedChargeDensity.getFragment(), -
src/Actions/FragmentationAction/FragmentationAutomationAction.def
r53c579 r6ff62c 18 18 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 19 19 // "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)(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) 20 #define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool) 21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("DoValenceOnly") 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")("whether the sampling uses only the valence electron and nuclei charge") 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(""))(PARAM_DEFAULT("0")) 24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly) 25 25 #define paramvalids \ 26 26 (DummyValidator< std::string >()) \ … … 31 31 (RangeValidator< unsigned int >(1, 10)) \ 32 32 (DummyValidator< bool >()) \ 33 (DummyValidator< boost::filesystem::path >()) 33 (DummyValidator< boost::filesystem::path >()) \ 34 (DummyValidator< bool >()) 34 35 35 36 #undef statetypes -
src/Fragmentation/Automation/MPQCFragmentController.cpp
r53c579 r6ff62c 51 51 #include "World.hpp" 52 52 53 bool MPQCFragmentController::addJobsFromQueue(const MPQCData::DoLongrange_t _DoLongrange) 53 bool MPQCFragmentController::addJobsFromQueue( 54 const MPQCData::DoLongrange_t _DoLongrange, 55 const MPQCData::DoValenceOnly_t _DoValenceOnly 56 ) 54 57 { 55 58 // give them all valid ids … … 60 63 MPQCJob *job = boost::polymorphic_downcast<MPQCJob *>(jobiter->get()); 61 64 job->DoLongrange = _DoLongrange; 65 job->DoValenceOnly = _DoValenceOnly; 62 66 changeJobId((*jobiter), getAvailableId()); 63 67 } -
src/Fragmentation/Automation/MPQCFragmentController.hpp
r53c579 r6ff62c 42 42 * 43 43 * \param _DoSampleDensity whether to actually sample the resulting electronic density 44 * \param _DoValenceOnly whether to sample just the valence or the total elctron and nuclei density 44 45 * \return true - jobs obtained, false - queue empty 45 46 */ 46 bool addJobsFromQueue(const MPQCData::DoLongrange_t _DoLongrange); 47 bool addJobsFromQueue( 48 const MPQCData::DoLongrange_t _DoLongrange, 49 const MPQCData::DoValenceOnly_t _DoValenceOnly 50 ); 47 51 48 52 /** Get results map of calculated jobs. -
src/Fragmentation/Automation/VMGFragmentController.cpp
r53c579 r6ff62c 48 48 #include "World.hpp" 49 49 50 /** Helper function for the number of core electrons of a given element \a z. 51 * 52 * \param z atomic number of element 53 * \return number of core electrons for this element 54 */ 55 static int getCoreElectrons(const int z) 56 { 57 int n=0; 58 if (z > 2) n += 2; 59 if (z > 10) n += 8; 60 if (z > 18) n += 8; 61 if (z > 30) n += 10; 62 if (z > 36) n += 8; 63 if (z > 48) n += 10; 64 if (z > 54) n += 8; 65 return n; 66 } 67 50 68 bool VMGFragmentController::createLongRangeJobs( 51 69 const std::map<JobId_t, MPQCData> &fragmentData, 52 70 const std::vector<SamplingGrid> &full_sampled_grid, 53 71 const size_t near_field_cells, 54 const size_t interpolation_degree) 72 const size_t interpolation_degree, 73 const MPQCData::DoValenceOnly_t _DoValenceOnly) 55 74 { 56 75 std::vector<FragmentJob::ptr> jobs; … … 82 101 for (size_t i=0;i<3;++i) position[i] = pos[i]/AtomicLengthToAngstroem; 83 102 positions.push_back(position); 84 charges.push_back((double)((*iter)->getElement().getAtomicNumber())); 103 int charge = (*iter)->getElement().getAtomicNumber(); 104 // subtract core electron charge from nuclei charge if only valence sampled 105 if (_DoValenceOnly == MPQCData::DoSampleValenceOnly) 106 charge -= getCoreElectrons(charge); 107 charges.push_back((double)charge); 85 108 } 86 109 } -
src/Fragmentation/Automation/VMGFragmentController.hpp
r53c579 r6ff62c 39 39 {} 40 40 41 /** Creates the long range jobs from finished short-range jobs. 42 * 43 * \param fragmentData finished short-range results 44 * \param full_sampled_grid sampled electron densities from finished short-range jobs 45 * \param near_field_cells radius of b-splines for interpolation charges onto grid 46 * \param interpolation_degree interpolation degree for newton interpolation from grid 47 * \param _DoValenceOnly whether to neglect core electron and nuclei charges 48 */ 41 49 bool createLongRangeJobs( 42 50 const std::map<JobId_t, MPQCData> &fragmentData, 43 51 const std::vector<SamplingGrid> &full_sampled_grid, 44 52 const size_t near_field_cells, 45 const size_t interpolation_degree); 53 const size_t interpolation_degree, 54 const MPQCData::DoValenceOnly_t _DoValenceOnly); 55 56 /** Get results of finished long-range jobs. 57 * 58 * \param fragmentData contains results on return 59 */ 46 60 void getResults(std::map<JobId_t, VMGData> &fragmentData) { 47 61 SpecificFragmentController::getResults<VMGData>(fragmentData); -
src/Fragmentation/Summation/Containers/MPQCData.cpp
r53c579 r6ff62c 45 45 MPQCData::MPQCData(const SamplingGridProperties &_props) : 46 46 DoLongrange(DontSampleDensity), 47 DoValenceOnly(DoSampleValenceOnly), 47 48 sampled_grid(_props) 48 49 {} 49 50 50 51 MPQCData::MPQCData() : 51 DoLongrange(DontSampleDensity) 52 DoLongrange(DontSampleDensity), 53 DoValenceOnly(DoValenceOnly) 52 54 {} 53 55 -
src/Fragmentation/Summation/Containers/MPQCData.hpp
r53c579 r6ff62c 86 86 DoLongrange_t DoLongrange; 87 87 88 //!> whether to sample just the valence or the total electron and nuclei density 89 enum DoValenceOnly_t { 90 DontSampleValenceOnly=0, 91 DoSampleValenceOnly=1 92 }; 93 DoValenceOnly_t DoValenceOnly; 94 88 95 /// Density 89 96 SamplingGrid sampled_grid; … … 126 133 ar & sampled_grid; 127 134 ar & DoLongrange; 135 if (version > 0) 136 ar & DoValenceOnly; 128 137 ar & positions; 129 138 ar & charges; … … 137 146 }; 138 147 148 BOOST_CLASS_VERSION(MPQCData, 1) 149 139 150 std::ostream & operator<<(std::ostream &ost, const MPQCData &data); 140 151 -
src/Jobs/MPQCJob.hpp
r53c579 r6ff62c 43 43 MPQCData::DoLongrange_t DoLongrange; 44 44 45 //!> whether to sample just the valence or the total electron and nuclei density 46 MPQCData::DoValenceOnly_t DoValenceOnly; 47 45 48 private: 46 49 //!> contents of inputfile … … 61 64 ar & boost::serialization::base_object<FragmentJob>(*this); 62 65 ar & DoLongrange; 66 ar & DoValenceOnly; 63 67 ar & const_cast<std::string &>(inputfile); 64 68 ar & const_cast<SamplingGridProperties &>(grid);
Note:
See TracChangeset
for help on using the changeset viewer.