Changeset 4a3df8 for src/Actions


Ignore:
Timestamp:
Sep 14, 2016, 6:42:53 PM (8 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, 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_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
Children:
11edf0
Parents:
2ebfd7
git-author:
Frederik Heber <heber@…> (03/11/16 00:17:35)
git-committer:
Frederik Heber <heber@…> (09/14/16 18:42:53)
Message:

Fragmentation.. and ..AutomationAction accept a desired maximum mesh-width.

  • this mesh width gives the greatest mesh width that is still acceptable for the fragment grids and if unequal to 0 initiates fragment grids calculated at a possibly higher grid-level than the full solution.
Location:
src/Actions/FragmentationAction
Files:
4 edited

Legend:

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

    r2ebfd7 r4a3df8  
    444444      ExportGraph_ToJobs exporter(TotalGraph, treatment, saturation, globalsaturationpositions);
    445445      exporter.setLevel(params.level.get());
     446      exporter.setMaximumMeshWidth(params.max_meshwidth.get());
    446447      if (!exporter())
    447448        return Action::failure;
  • src/Actions/FragmentationAction/FragmentationAction.def

    r2ebfd7 r4a3df8  
    2121// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    2222// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
    23 #define paramtypes (std::string)(double)(int)(bool)(bool)(std::vector<std::string>)(unsigned int)(unsigned int)(bool)(bool)
    24 #define paramtokens ("fragment-molecule")("distance")("order")("DoSaturate")("ExcludeHydrogen")("output-types")("grid-level")("inter-order")("DoCyclesFull")("parse-state-files")
    25 #define paramdescriptions ("prefix of each fragment file")("distance in space up to which fragments are combined")("order of a discretization, dissection, ...")("do saturate dangling bonds with hydrogen")("whether to exclude hydrogen in the bond graph dissection or not")("type(s) of parsers that output fragment config files")("resolution of density sampling multigrid")("up to which order distinct fragments are combined")("always calculate (aromatic) rings fully, even beyond desired order")("whether to parse keysets, orderatsite, adjacency from state files")
    26 #define paramdefaults (PARAM_DEFAULT("BondFragment"))(PARAM_DEFAULT(3.))(PARAM_DEFAULT(3))(PARAM_DEFAULT(true))(PARAM_DEFAULT(true))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(0))(PARAM_DEFAULT(false))(PARAM_DEFAULT(false))
    27 #define paramreferences (prefix)(distance)(order)(DoSaturation)(HowtoTreatHydrogen)(types)(level)(InterOrder)(DoCyclesFull)(ParseStateFiles)
     23#define paramtypes (std::string)(double)(int)(bool)(bool)(std::vector<std::string>)(double)(unsigned int)(unsigned int)(bool)(bool)
     24#define paramtokens ("fragment-molecule")("distance")("order")("DoSaturate")("ExcludeHydrogen")("output-types")("max-meshwidth")("grid-level")("inter-order")("DoCyclesFull")("parse-state-files")
     25#define paramdescriptions ("prefix of each fragment file")("distance in space up to which fragments are combined")("order of a discretization, dissection, ...")("do saturate dangling bonds with hydrogen")("whether to exclude hydrogen in the bond graph dissection or not")("type(s) of parsers that output fragment config files")("maximum allowed mesh width, i.e. discrete points may be at most that far apart on the fragment grids")("resolution of density sampling multigrid")("up to which order distinct fragments are combined")("always calculate (aromatic) rings fully, even beyond desired order")("whether to parse keysets, orderatsite, adjacency from state files")
     26#define paramdefaults (PARAM_DEFAULT("BondFragment"))(PARAM_DEFAULT(3.))(PARAM_DEFAULT(3))(PARAM_DEFAULT(true))(PARAM_DEFAULT(true))(NOPARAM_DEFAULT)(PARAM_DEFAULT(0.))(PARAM_DEFAULT(5))(PARAM_DEFAULT(0))(PARAM_DEFAULT(false))(PARAM_DEFAULT(false))
     27#define paramreferences (prefix)(distance)(order)(DoSaturation)(HowtoTreatHydrogen)(types)(max_meshwidth)(level)(InterOrder)(DoCyclesFull)(ParseStateFiles)
    2828#define paramvalids \
    2929(DummyValidator< std::string >()) \
     
    3333(DummyValidator< bool >()) \
    3434(STLVectorValidator< std::vector<std::string> >(0, 10, ParserTypeValidator())) \
     35(BoxLengthValidator()) \
    3536(RangeValidator< unsigned int >(1, 10)) \
    3637(DummyValidator< unsigned int >()) \
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    r2ebfd7 r4a3df8  
    6666#include "Fragmentation/Automation/MPQCCommandFragmentController.hpp"
    6767#endif
     68#include "Fragmentation/Exporters/ExportGraph_ToJobs.hpp"
    6869#include "Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp"
    6970#include "Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp"
     
    151152}
    152153
     154static void downsampleChargeData(
     155    const std::map<JobId_t, MPQCData> &_shortrangedata,
     156    const SamplingGridProperties &_domain,
     157    std::map<JobId_t, MPQCData> &_shortrangedata_downsampled
     158    )
     159{
     160  for (std::map<JobId_t, MPQCData>::const_iterator iter = _shortrangedata.begin();
     161      iter != _shortrangedata.end(); ++iter) {
     162    LOG(2, "INFO: Downsampling charge data from job " << iter->first);
     163    MPQCData downsampled(_domain);
     164    MPQCData::assignWithDownsampledGrid(downsampled, iter->second);
     165    _shortrangedata_downsampled.insert( std::make_pair( iter->first, downsampled ) );
     166  }
     167}
     168
    153169ActionState::ptr FragmentationFragmentationAutomationAction::performCall() {
    154170  boost::asio::io_service io_service;
     
    270286
    271287  // obtain combined charge density
     288  std::map<JobId_t, MPQCData> shortrangedata_downsampled;
     289  SamplingGridProperties domain(ExportGraph_ToJobs::getDomainGrid(params.level.get()));
     290  downsampleChargeData(shortrangedata, domain, shortrangedata_downsampled);
    272291  FragmentationChargeDensity summedChargeDensity(
    273       shortrangedata,
     292      shortrangedata_downsampled,
    274293      FragmentJobQueue::getInstance().getKeySets());
    275294  const std::vector<SamplingGrid> full_sample = summedChargeDensity.getFullSampledGrid();
  • src/Actions/FragmentationAction/FragmentationAutomationAction.def

    r2ebfd7 r4a3df8  
    1414#include "Parameters/Validators/Ops_Validator.hpp"
    1515#include "Parameters/Validators/RangeValidator.hpp"
     16#include "Parameters/Validators/Specific/BoxLengthValidator.hpp"
    1617
    1718// i.e. there is an integer with variable name Z that can be found in
    1819// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1920// "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)(bool)(bool)(bool)(bool)
    21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("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")("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("0"))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))
    24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(DoValenceOnly)(DoPrintDebug)(DoSmearCharges)(UseImplicitCharges)
     21#define paramtypes (std::string)(std::string)(boost::filesystem::path)(double)(unsigned int)(unsigned int)(unsigned int)(bool)(bool)(bool)(bool)(bool)
     22#define paramtokens ("server-address")("server-port")("fragment-executable")("max-meshwidth")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("DoValenceOnly")("DoPrintDebug")("DoSmearElectronicCharges")("UseImplicitCharges")
     23#define paramdescriptions ("hostname of server")("controller port of server")("executable to launch on clients")("maximum allowed mesh width, i.e. discrete points may be at most that far apart on the fragment grids")("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")("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")
     24#define paramdefaults (PARAM_DEFAULT("127.0.0.1"))(NOPARAM_DEFAULT)(PARAM_DEFAULT("mpqc"))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))(PARAM_DEFAULT("0"))
     25#define paramreferences (host)(port)(executable)(max_meshwidth)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(DoValenceOnly)(DoPrintDebug)(DoSmearCharges)(UseImplicitCharges)
    2526#define paramvalids \
    2627(DummyValidator< std::string >()) \
    2728(DummyValidator< std::string >()) \
    2829(DummyValidator< boost::filesystem::path >()) \
     30(BoxLengthValidator()) \
    2931(RangeValidator< unsigned int >(1, 10)) \
    3032(RangeValidator< unsigned int >(1, 20)) \
Note: See TracChangeset for help on using the changeset viewer.