Changeset 012240 for src/Actions


Ignore:
Timestamp:
Jun 9, 2016, 4:53:49 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Children:
e3569c
Parents:
b7e16e
git-author:
Frederik Heber <heber@…> (03/11/16 00:17:35)
git-committer:
Frederik Heber <heber@…> (06/09/16 16:53:49)
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

    rb7e16e r012240  
    411411      ExportGraph_ToJobs exporter(TotalGraph, treatment, saturation, globalsaturationpositions);
    412412      exporter.setLevel(params.level.get());
     413      exporter.setMaximumMeshWidth(params.max_meshwidth.get());
    413414      if (!exporter())
    414415        return Action::failure;
  • src/Actions/FragmentationAction/FragmentationAction.def

    rb7e16e r012240  
    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)
    24 #define paramtokens ("fragment-molecule")("distance")("order")("DoSaturate")("ExcludeHydrogen")("output-types")("grid-level")("inter-order")("DoCyclesFull")
    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")
    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))
    27 #define paramreferences (prefix)(distance)(order)(DoSaturation)(HowtoTreatHydrogen)(types)(level)(InterOrder)(DoCyclesFull)
     23#define paramtypes (std::string)(double)(int)(bool)(bool)(std::vector<std::string>)(double)(unsigned int)(unsigned int)(bool)
     24#define paramtokens ("fragment-molecule")("distance")("order")("DoSaturate")("ExcludeHydrogen")("output-types")("max-meshwidth")("grid-level")("inter-order")("DoCyclesFull")
     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 multigrid for total domain")("up to which order distinct fragments are combined")("always calculate (aromatic) rings fully, even beyond desired order")
     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))
     27#define paramreferences (prefix)(distance)(order)(DoSaturation)(HowtoTreatHydrogen)(types)(max_meshwidth)(level)(InterOrder)(DoCyclesFull)
    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

    rb7e16e r012240  
    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

    rb7e16e r012240  
    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)(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)
     21#define paramtypes (std::string)(std::string)(boost::filesystem::path)(double)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool)(bool)(bool)(bool)
     22#define paramtokens ("server-address")("server-port")("fragment-executable")("max-meshwidth")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("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 for total domain")("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")
     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(""))(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)(resultsfile)(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.