Ignore:
Timestamp:
May 7, 2016, 7:05:19 AM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, 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_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:
a9099d
Parents:
0ba27c9
git-author:
Frederik Heber <heber@…> (02/17/16 18:24:55)
git-committer:
Frederik Heber <heber@…> (05/07/16 07:05:19)
Message:

VMGFragmentController and FragmentationAutomationAction accept UseImplicitCharge.

  • this causes nuclei charges for the full solution to be taken from the ParticleRegistry that contains partial charges table and not the elementary charges.
Location:
src/Actions/FragmentationAction
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp

    r0ba27c9 r666e9e  
    6262
    6363#include "Descriptors/AtomIdDescriptor.hpp"
     64#include "Atom/atom.hpp"
     65#include "Element/element.hpp"
    6466#include "Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp"
    6567#include "Fragmentation/Summation/Containers/FragmentationResultContainer.hpp"
     
    8688#endif
    8789#include "Helpers/defs.hpp"
     90#include "Potentials/Particles/ParticleRegistry.hpp"
    8891#include "World.hpp"
    8992
     
    672675
    673676    // Final phase: sum up and print result
     677    IndexedVectors::indices_t implicit_indices;
     678    if (params.UseImplicitCharges.get()) {
     679      // place all in implicit charges that are not selected but contained in ParticleRegistry
     680      const World &world = const_cast<const World &>(World::getInstance());
     681      const ParticleRegistry &registry = const_cast<const ParticleRegistry &>(ParticleRegistry::getInstance());
     682      const World::ConstAtomComposite &atoms = world.getAllAtoms();
     683      for (World::ConstAtomComposite::const_iterator iter = atoms.begin();
     684          iter != atoms.end(); ++iter) {
     685        const atomId_t atomid = (*iter)->getId();
     686        if (!world.isAtomSelected(atomid)) {
     687          const std::string &symbol = (*iter)->getElement().getSymbol();
     688          if (registry.isPresentByName(symbol))
     689            implicit_indices.push_back(atomid);
     690        }
     691      }
     692      LOG(2, "INFO: We added " << implicit_indices.size() << " indices due to implicit charges.");
     693    }
     694
    674695    FragmentationLongRangeResults longrangeresults(
    675696        shortrangedata,longrangeData,keysets, forcekeysets);
     
    678699        longrangeData,
    679700        fullsolutionData,
    680         full_sample);
     701        full_sample,
     702        implicit_indices);
    681703    printReceivedFullResults(longrangeresults);
    682704
     
    698720    std::map<JobId_t, VMGData> longrangeData;
    699721    FragmentationLongRangeResults longrangeresults(
    700         shortrangedata,longrangeData,keysets, forcekeysets);
     722        shortrangedata, longrangeData, keysets, forcekeysets);
    701723    appendToHomologies(shortrangeresults, longrangeresults, false);
    702724  }
  • src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.def

    r0ba27c9 r666e9e  
    1515// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1616// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    17 #define paramtypes (boost::filesystem::path)(bool)(std::string)
    18 #define paramtokens ("fragment-resultfile")("store-grids")("fragment-prefix")
    19 #define paramdescriptions ("parse fragment results from the given file")("whether to store sampled grids in homology files")("prefix of each fragment file")
    20 #define paramdefaults (NOPARAM_DEFAULT)(PARAM_DEFAULT("0"))(PARAM_DEFAULT("BondFragment"))
    21 #define paramreferences (resultsfile)(DoStoreGrids)(prefix)
     17#define paramtypes (boost::filesystem::path)(bool)(std::string)(bool)
     18#define paramtokens ("fragment-resultfile")("store-grids")("fragment-prefix")("UseImplicitCharges")
     19#define paramdescriptions ("parse fragment results from the given file")("whether to store sampled grids in homology files")("prefix of each fragment file")("whether to model any non-selected atoms by partial charges implicitly")
     20#define paramdefaults (NOPARAM_DEFAULT)(PARAM_DEFAULT("0"))(PARAM_DEFAULT("BondFragment"))(PARAM_DEFAULT("0"))
     21#define paramreferences (resultsfile)(DoStoreGrids)(prefix)(UseImplicitCharges)
    2222#define paramvalids \
    2323(DummyValidator< boost::filesystem::path >()) \
    2424(DummyValidator< bool >()) \
    25 (DummyValidator< std::string >())
     25(DummyValidator< std::string >()) \
     26(DummyValidator< bool >())
    2627
    2728#undef statetypes
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    r0ba27c9 r666e9e  
    261261        params.DoPrintDebug.get(),
    262262        OpenBoundaryConditions,
    263         params.DoSmearCharges.get())) {
     263        params.DoSmearCharges.get(),
     264        false)) {
    264265      STATUS("Could not create long-range jobs for electronic charge distribution.");
    265266      return Action::failure;
     
    292293          params.DoPrintDebug.get(),
    293294          OpenBoundaryConditions,
    294           params.DoSmearCharges.get())) {
     295          params.DoSmearCharges.get(),
     296          params.UseImplicitCharges.get())) {
    295297        STATUS("Could not create long-range jobs for nuclei charge distribution.");
    296298        return Action::failure;
  • src/Actions/FragmentationAction/FragmentationAutomationAction.def

    r0ba27c9 r666e9e  
    1818// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1919// "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)(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)
     20#define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool)(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")("UseImplicitCharges")
     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")("whether to model any non-selected atoms by partial charges implicitly")
     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"))(PARAM_DEFAULT("0"))
     24#define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly)(DoPrintDebug)(DoSmearCharges)(UseImplicitCharges)
    2525#define paramvalids \
    2626(DummyValidator< std::string >()) \
     
    3232(DummyValidator< bool >()) \
    3333(DummyValidator< boost::filesystem::path >()) \
     34(DummyValidator< bool >()) \
    3435(DummyValidator< bool >()) \
    3536(DummyValidator< bool >()) \
Note: See TracChangeset for help on using the changeset viewer.