- Timestamp:
- May 1, 2013, 7:53:26 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:
- 10f0cb
- Parents:
- 6ff62c
- git-author:
- Frederik Heber <heber@…> (03/27/13 12:07:15)
- git-committer:
- Frederik Heber <heber@…> (05/01/13 07:53:26)
- Location:
- src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
r6ff62c rb6b21a 163 163 near_field_cells, 164 164 interpolation_degree, 165 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly)) 165 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly, 166 params.DoPrintDebug.get())) 166 167 // can't use the summed up fragment due to saturation hydrogens 167 168 // summedChargeDensity.getFragment(), … … 178 179 } 179 180 180 std::map<JobId_t, std::string> debugData; 181 { 182 if (!full_sample.empty()) { 183 // create debug jobs for each level to print the summed-up potential to vtk files 184 VMGDebugGridFragmentController debugcontroller(io_service); 185 debugcontroller.setHost(params.host.get()); 186 debugcontroller.setPort(params.port.get()); 187 debugcontroller.requestIds(full_sample.size()); 188 if (!debugcontroller.createDebugJobs(full_sample)) 189 return Action::failure; 190 debugcontroller.waitforResults(full_sample.size()); 191 debugcontroller.getResults(debugData); 192 Exitflag += debugcontroller.getExitflag(); 181 if (params.DoPrintDebug.get()) { 182 std::map<JobId_t, std::string> debugData; 183 { 184 if (!full_sample.empty()) { 185 // create debug jobs for each level to print the summed-up potential to vtk files 186 VMGDebugGridFragmentController debugcontroller(io_service); 187 debugcontroller.setHost(params.host.get()); 188 debugcontroller.setPort(params.port.get()); 189 debugcontroller.requestIds(full_sample.size()); 190 if (!debugcontroller.createDebugJobs(full_sample)) 191 return Action::failure; 192 debugcontroller.waitforResults(full_sample.size()); 193 debugcontroller.getResults(debugData); 194 Exitflag += debugcontroller.getExitflag(); 195 } 193 196 } 194 197 } -
src/Actions/FragmentationAction/FragmentationAutomationAction.def
r6ff62c rb6b21a 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)(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) 20 #define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool)(bool) 21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("DoValenceOnly")("DoPrintDebug") 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")("whether to print grids for debug visualization") 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"))(PARAM_DEFAULT("0")) 24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly)(DoPrintDebug) 25 25 #define paramvalids \ 26 26 (DummyValidator< std::string >()) \ … … 32 32 (DummyValidator< bool >()) \ 33 33 (DummyValidator< boost::filesystem::path >()) \ 34 (DummyValidator< bool >()) \ 34 35 (DummyValidator< bool >()) 35 36 -
src/Fragmentation/Automation/VMGFragmentController.cpp
r6ff62c rb6b21a 71 71 const size_t near_field_cells, 72 72 const size_t interpolation_degree, 73 const MPQCData::DoValenceOnly_t _DoValenceOnly) 73 const MPQCData::DoValenceOnly_t _DoValenceOnly, 74 const bool _DoPrintDebug) 74 75 { 75 76 std::vector<FragmentJob::ptr> jobs; 76 // add one job for each fragment as the short-range correction which we need77 // to subtract from the obtained full potential to get the long-range part only77 /// add one job for each fragment as the short-range correction which we need 78 /// to subtract from the obtained full potential to get the long-range part only 78 79 for (std::map<JobId_t, MPQCData>::const_iterator iter = fragmentData.begin(); 79 80 iter != fragmentData.end(); ++iter) { … … 83 84 << " gridpoints and " << data.charges.size() << " particle charges."); 84 85 FragmentJob::ptr testJob( 85 new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells, interpolation_degree) ); 86 new VMGJob( 87 next_id, 88 data.sampled_grid, 89 data.positions, 90 data.charges, 91 near_field_cells, 92 interpolation_degree, 93 _DoPrintDebug) ); 86 94 jobs.push_back(testJob); 87 95 } 88 96 89 // prepare positions and charges of full system 97 /// prepare positions and charges of full system 98 /// \note we cannot use the summed up Fragment here, as the saturation hydrogens 99 /// are in the way and cannot be sorted out properly/in a simple fashion. 90 100 std::vector< std::vector<double> > positions; 91 101 std::vector<double> charges; … … 108 118 } 109 119 } 120 /// and submit full job 110 121 for(std::vector<SamplingGrid>::const_iterator iter = full_sampled_grid.begin(); 111 122 iter != full_sampled_grid.end(); … … 115 126 << " gridpoints and " << charges.size() << " particle charges."); 116 127 FragmentJob::ptr testJob( 117 new VMGJob(next_id, *iter, positions, charges, near_field_cells, interpolation_degree) ); 128 new VMGJob( 129 next_id, 130 *iter, 131 positions, 132 charges, 133 near_field_cells, 134 interpolation_degree, 135 _DoPrintDebug) ); 118 136 jobs.push_back(testJob); 119 137 } 120 138 121 // then send jobs to controller139 /// then send jobs to controller 122 140 addJobs(jobs); 123 141 sendJobs(host, port); -
src/Fragmentation/Automation/VMGFragmentController.hpp
r6ff62c rb6b21a 46 46 * \param interpolation_degree interpolation degree for newton interpolation from grid 47 47 * \param _DoValenceOnly whether to neglect core electron and nuclei charges 48 * \param _DoPrintDebug whether we do print grid for debug visualization or not 48 49 */ 49 50 bool createLongRangeJobs( … … 52 53 const size_t near_field_cells, 53 54 const size_t interpolation_degree, 54 const MPQCData::DoValenceOnly_t _DoValenceOnly); 55 const MPQCData::DoValenceOnly_t _DoValenceOnly, 56 const bool _DoPrintDebug); 55 57 56 58 /** Get results of finished long-range jobs. -
src/Jobs/InterfaceVMGJob.cpp
r6ff62c rb6b21a 71 71 vmg_float _box_end, 72 72 const int& near_field_cells, 73 const bool _DoPrintDebug, 73 74 int coarseningSteps, 74 75 double alpha) : … … 78 79 sampled_input(_sampled_input), 79 80 returndata(_returndata), 80 level(levelMax) 81 level(levelMax), 82 DoPrintDebug(_DoPrintDebug) 81 83 { 82 84 for (size_t i=0;i<3;++i) { … … 144 146 comm.CommFromGhosts(particle_grid); 145 147 146 // print nuclei grid to vtk 147 comm.PrintGrid(particle_grid, "Sampled Nuclei Density"); 148 if (DoPrintDebug) { 149 // print nuclei grid to vtk 150 comm.PrintGrid(particle_grid, "Sampled Nuclei Density"); 151 } 148 152 149 153 // add sampled electron charge density onto grid … … 153 157 -1.); 154 158 155 // print electron grid to vtk 156 comm.PrintGrid(grid, "Sampled Electron Density"); 159 if (DoPrintDebug) { 160 // print electron grid to vtk 161 comm.PrintGrid(grid, "Sampled Electron Density"); 162 } 157 163 158 164 // add particle_grid onto grid … … 180 186 comm.PrintStringOnce("Grid charge integral: %e", charge_sum/(4.0 * VMG::Math::pi)); 181 187 182 // print total grid to vtk 183 comm.PrintGrid(grid, "Total Charge Density"); 188 if (DoPrintDebug) { 189 // print total grid to vtk 190 comm.PrintGrid(grid, "Total Charge Density"); 191 } 184 192 185 193 // delete temp_grid; … … 197 205 Index i; 198 206 199 // print output grid to vtk 200 comm.PrintGrid(grid, "Potential Solution"); 207 if (DoPrintDebug) { 208 // print output grid to vtk 209 comm.PrintGrid(grid, "Potential Solution"); 210 } 201 211 202 212 // obtain sampled potential from grid -
src/Jobs/InterfaceVMGJob.hpp
r6ff62c rb6b21a 46 46 vmg_float _box_end, 47 47 const int& near_field_cells, 48 const bool _DoPrintDebug=false, 48 49 int coarseningSteps=0, 49 double alpha=1.6); 50 double alpha=1.6 51 ); 50 52 51 53 ~InterfaceVMGJob() {} … … 71 73 //!> contains end of grid intervals 72 74 double box_end[3]; 75 76 //!> whether we do print grid for debug visualization or not 77 const bool DoPrintDebug; 73 78 }; 74 79 -
src/Jobs/VMGJob.cpp
r6ff62c rb6b21a 82 82 const std::vector< double > &_particle_charges, 83 83 const size_t _near_field_cells, 84 const size_t _interpolation_degree) : 84 const size_t _interpolation_degree, 85 const bool _DoPrintDebug) : 85 86 FragmentJob(_JobId), 86 87 density_grid(_density_grid), … … 90 91 interpolation_degree(_interpolation_degree), 91 92 returndata(static_cast<const SamplingGridProperties &>(_density_grid)), 92 particles() 93 particles(), 94 DoPrintDebug(_DoPrintDebug) 93 95 {} 94 96 … … 97 99 near_field_cells(3), 98 100 interpolation_degree(3), 99 particles() 101 particles(), 102 DoPrintDebug(false) 100 103 {} 101 104 … … 216 219 Vector(density_grid.begin), 217 220 density_grid.end[0]-density_grid.begin[0], 218 near_field_cells); 221 near_field_cells, 222 DoPrintDebug); 219 223 new LevelOperatorCS(Stencils::RestrictionFullWeight, Stencils::InterpolationTrilinear); 220 224 new Givens<SolverSingular>(); -
src/Jobs/VMGJob.hpp
r6ff62c rb6b21a 42 42 * @param _interpolation_degree degree of interpolation polynomial for getting nuclei 43 43 * potential from grid 44 * @param _DoPrintDebug whether we do print grid for debug visualization or not 44 45 */ 45 46 VMGJob(const JobId_t _JobId, … … 48 49 const std::vector< double > &_particle_charges, 49 50 const size_t _near_field_cells, 50 const size_t _interpolation_degree 51 const size_t _interpolation_degree, 52 const bool _DoPrintDebug=false 51 53 ); 52 54 virtual ~VMGJob(); … … 70 72 //!> interpolation degree used in sampling the potential of the nuclei 71 73 const size_t interpolation_degree; 74 //!> whether we do print grid for debug visualization or not 75 const bool DoPrintDebug; 72 76 73 77 private: … … 120 124 ar & const_cast< size_t &>(near_field_cells); 121 125 ar & const_cast< size_t &>(interpolation_degree); 126 ar & const_cast< bool &>(DoPrintDebug); 122 127 ar & returndata; 123 128 }
Note:
See TracChangeset
for help on using the changeset viewer.