- Timestamp:
- Oct 13, 2015, 8:14:33 PM (9 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:
- 62d092
- Parents:
- 445ce6
- git-author:
- Frederik Heber <heber@…> (09/07/15 19:03:37)
- git-committer:
- Frederik Heber <heber@…> (10/13/15 20:14:33)
- Location:
- src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/Actions/FragmentationAction/FragmentationAutomationAction.cpp ¶
r445ce6 r17e4fd 260 260 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly, 261 261 params.DoPrintDebug.get(), 262 OpenBoundaryConditions)) { 262 OpenBoundaryConditions, 263 params.DoSmearCharges.get())) { 263 264 STATUS("Could not create long-range jobs for electronic charge distribution."); 264 265 return Action::failure; … … 290 291 params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly, 291 292 params.DoPrintDebug.get(), 292 OpenBoundaryConditions)) { 293 OpenBoundaryConditions, 294 params.DoSmearCharges.get())) { 293 295 STATUS("Could not create long-range jobs for nuclei charge distribution."); 294 296 return Action::failure; -
TabularUnified src/Actions/FragmentationAction/FragmentationAutomationAction.def ¶
r445ce6 r17e4fd 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)(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) 20 #define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool)(bool)(bool) 21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("DoValenceOnly")("DoPrintDebug")("DoSmearElectronicCharges") 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")("whether to smear out electronic charge distributions with bsplines or not") 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"))(PARAM_DEFAULT("0")) 24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly)(DoPrintDebug)(DoSmearCharges) 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 (DummyValidator< bool >()) -
TabularUnified src/Fragmentation/Automation/VMGFragmentController.cpp ¶
r445ce6 r17e4fd 76 76 const MPQCData::DoValenceOnly_t _DoValenceOnly, 77 77 const bool _DoPrintDebug, 78 const bool _OpenBoundaryConditions) 78 const bool _OpenBoundaryConditions, 79 const bool _DoSmearCharges) 79 80 { 80 81 std::vector<FragmentJob::ptr> jobs; … … 99 100 _SampleParticles == DoSampleParticles, 100 101 _DoPrintDebug, 101 _OpenBoundaryConditions) ); 102 _OpenBoundaryConditions, 103 _DoSmearCharges) ); 102 104 jobs.push_back(testJob); 103 105 } … … 147 149 _SampleParticles == DoSampleParticles, 148 150 _DoPrintDebug, 149 _OpenBoundaryConditions) ); 151 _OpenBoundaryConditions, 152 _DoSmearCharges) ); 150 153 jobs.push_back(testJob); 151 154 } -
TabularUnified src/Fragmentation/Automation/VMGFragmentController.hpp ¶
r445ce6 r17e4fd 63 63 * \param _OpenBoundaryConditions whether we have open (true) or periodic (false) 64 64 * boundary conditions 65 * \param _DoSmearCharges whether to smear out electronic charge distributions with bsplines or not 65 66 */ 66 67 bool createLongRangeJobs( … … 73 74 const MPQCData::DoValenceOnly_t _DoValenceOnly, 74 75 const bool _DoPrintDebug, 75 const bool _OpenBoundaryConditions = false); 76 const bool _OpenBoundaryConditions = false, 77 const bool _DoSmearCharges = false); 76 78 77 79 void waitforResults(const size_t NoExpectedResults) -
TabularUnified src/Fragmentation/Interfragmenter.cpp ¶
r445ce6 r17e4fd 270 270 ClosestPair.first = (*setiter)->getId(); 271 271 ClosestPair.second = Walker->getId(); 272 LOG(2, "DEBUG: Found new pair " << ClosestPair << " with distance " << sqrt(Rcut)); 272 273 } 273 274 } 274 275 } 275 276 } 276 LOG(1, "INFO: Largest inter-fragment distance to cause no additional fragments: " << Rcut); 277 278 return Rcut; 279 } 277 const double largest_distance = sqrt(Rcut); 278 LOG(1, "INFO: Largest inter-fragment distance to cause no additional fragments: " 279 << largest_distance); 280 281 return largest_distance; 282 } -
TabularUnified src/Jobs/InterfaceVMGJob.cpp ¶
r445ce6 r17e4fd 59 59 #include "Fragmentation/Summation/SetValues/FragmentForces.hpp" 60 60 #include "Jobs/WindowGrid_converter.hpp" 61 #include "Jobs/ChargeSmearer.hpp" 61 62 62 63 using namespace VMG; … … 75 76 const ImportParticles_t _ImportParticles, 76 77 const bool _DoPrintDebug, 78 const bool _DoSmearCharges, 77 79 int coarseningSteps, 78 80 double alpha) : 79 81 VMG::Interface(boundary, levelMin, levelMax, 80 82 _box_begin, _box_end, coarseningSteps, alpha), 81 spl(near_field_cells, Extent(MaxLevel()).MeshWidth().Max()), 83 nfc(near_field_cells), 84 meshwidth(Extent(MaxLevel()).MeshWidth().Max()), 85 spl(nfc, meshwidth), 82 86 sampled_input(_sampled_input), 83 87 returndata(_returndata), … … 85 89 ImportParticles(_ImportParticles), 86 90 DoPrintDebug(_DoPrintDebug), 87 OpenBoundaryCondition(boundary[0] == VMG::Open) 91 OpenBoundaryCondition(boundary[0] == VMG::Open), 92 DoSmearCharges(_DoSmearCharges) 88 93 { 89 94 for (size_t i=0;i<3;++i) { … … 159 164 160 165 // add sampled electron charge density onto grid 166 if (DoSmearCharges) { 167 ChargeSmearer &smearer = ChargeSmearer::getInstance(); 168 smearer.initializeSplineArray(spl, nfc, meshwidth); 169 } 161 170 WindowGrid_converter::addWindowOntoGrid( 162 171 grid, 163 172 sampled_input, 164 173 1., 165 OpenBoundaryCondition); 174 OpenBoundaryCondition, 175 DoSmearCharges); 166 176 167 177 if (DoPrintDebug) { -
TabularUnified src/Jobs/InterfaceVMGJob.hpp ¶
r445ce6 r17e4fd 53 53 const ImportParticles_t _ImportParticles=DoImportParticles, 54 54 const bool _DoPrintDebug=false, 55 const bool _DoSmearCharges=false, 55 56 int coarseningSteps=9, 56 57 double alpha=1.6 … … 63 64 64 65 protected: 66 unsigned int nfc; 67 const double meshwidth; 65 68 VMG::Particle::BSpline spl; 66 69 … … 88 91 //!> open boundary conditions or not 89 92 const bool OpenBoundaryCondition; 93 94 //!> whether to smear out electronic charge distributions with bsplines or not 95 const bool DoSmearCharges; 90 96 }; 91 97 -
TabularUnified src/Jobs/VMGJob.cpp ¶
r445ce6 r17e4fd 92 92 const bool _DoImportParticles, 93 93 const bool _DoPrintDebug, 94 const bool _OpenBoundaryConditions) : 94 const bool _OpenBoundaryConditions, 95 const bool _DoSmearCharges) : 95 96 FragmentJob(_JobId), 96 97 density_grid(_density_grid), … … 102 103 DoPrintDebug(_DoPrintDebug), 103 104 OpenBoundaryConditions(_OpenBoundaryConditions), 105 DoSmearCharges(_DoSmearCharges), 104 106 returndata(static_cast<const SamplingGridProperties &>(_density_grid)), 105 107 particles() … … 113 115 DoPrintDebug(false), 114 116 OpenBoundaryConditions(false), 117 DoSmearCharges(false), 115 118 particles() 116 119 {} … … 246 249 VMGInterfaces::InterfaceVMGJob::DoImportParticles 247 250 : VMGInterfaces::InterfaceVMGJob::DontImportParticles, 248 DoPrintDebug); 251 DoPrintDebug, 252 DoSmearCharges); 249 253 const int cycle_type = 1; // V-type 250 254 if (OpenBoundaryConditions) { -
TabularUnified src/Jobs/VMGJob.hpp ¶
r445ce6 r17e4fd 44 44 * @param _DoImportParticles whether we import particles (true) or evaluate only 45 45 * @param _DoPrintDebug whether we do print grid for debug visualization or not 46 * @param _OpenBoundaryConditions whether we have open (true) boundary conditions or periodic (false) 47 * @param _DoSmearCharges whether to smear out electronic charge distributions with bsplines or not 46 48 */ 47 49 VMGJob(const JobId_t _JobId, … … 53 55 const bool _DoImportParticles=true, 54 56 const bool _DoPrintDebug=false, 55 const bool _OpenBoundaryConditions=false 57 const bool _OpenBoundaryConditions=false, 58 const bool _DoSmearCharges=false 56 59 ); 57 60 virtual ~VMGJob(); … … 81 84 //!> whether we have open (true) boundary conditions or periodic (false) 82 85 const bool OpenBoundaryConditions; 86 //!> whether to smear out electronic charge distributions with bsplines or not 87 const bool DoSmearCharges; 83 88 84 89 private: … … 134 139 ar & const_cast< bool &>(DoPrintDebug); 135 140 ar & const_cast< bool &>(OpenBoundaryConditions); 141 ar & const_cast< bool &>(DoSmearCharges); 136 142 ar & returndata; 137 143 } -
TabularUnified src/Jobs/WindowGrid_converter.cpp ¶
r445ce6 r17e4fd 50 50 51 51 #include "Fragmentation/Summation/SetValues/SamplingGrid.hpp" 52 #include "Jobs/ChargeSmearer.hpp" 52 53 53 54 void WindowGrid_converter::addGridOntoWindow( … … 178 179 const SamplingGrid &grid, 179 180 const double prefactor, 180 const bool OpenBoundaryConditions) 181 const bool OpenBoundaryConditions, 182 const bool DoSmearCharges) 181 183 { 182 184 #ifndef NDEBUG … … 265 267 griditer = window.Iterators().Local().Begin(); 266 268 SamplingGrid::sampledvalues_t::const_iterator copyiter = grid.sampled_grid.begin(); 269 const ChargeSmearer &smearer = ChargeSmearer::getInstance(); 267 270 // NOTE: GridIterator::operator+=()'s implementation in vmg is broken. DON'T USE! 268 271 // griditer += pre_offset[0] * total[1] * total[2]; … … 293 296 ASSERT( copyiter != grid.sampled_grid.end(), 294 297 "InterfaceVMGJob::addWindowOntoGrid() - griditer is already at end of window."); 295 window(*griditer++) += prefactor*(*copyiter++); 298 // either smear out charges or not. 299 if (DoSmearCharges) { 300 smearer(window, griditer++, prefactor*(*copyiter++)); 301 } else { 302 window(*griditer++) += prefactor*(*copyiter++); 303 } 296 304 } 297 305 // griditer += post_offset[2]; … … 324 332 "InterfaceVMGJob::addWindowOntoGrid() - copyiter is not at end of window."); 325 333 #endif 326 // LOG(2, "DEBUG: Grid after adding other is " << grid << "."); 334 335 // LOG(2, "DEBUG: Grid after adding other is " << grid << "."); 327 336 } -
TabularUnified src/Jobs/WindowGrid_converter.hpp ¶
r445ce6 r17e4fd 49 49 const SamplingGrid &grid, 50 50 const double prefactor, 51 const bool OpenBoundaryConditions = false); 51 const bool OpenBoundaryConditions = false, 52 const bool DoSmearCharges = false); 52 53 53 54 };
Note:
See TracChangeset
for help on using the changeset viewer.