Changeset e3e4ce


Ignore:
Timestamp:
Jun 9, 2016, 6:32:24 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Children:
e2fd2c
Parents:
634db9
git-author:
Frederik Heber <heber@…> (05/29/16 17:05:43)
git-committer:
Frederik Heber <heber@…> (06/09/16 18:32:24)
Message:

AnalyseFragmentationResultsAction now uses downsampled charge grids from results container.

File:
1 edited

Legend:

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

    r634db9 re3e4ce  
    6464#include "Atom/atom.hpp"
    6565#include "Element/element.hpp"
     66#include "Fragmentation/Exporters/ExportGraph_ToJobs.hpp"
    6667#include "Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp"
    6768#include "Fragmentation/Summation/Containers/FragmentationResultContainer.hpp"
     
    8283#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    8384#include "Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp"
     85#include "Fragmentation/Summation/Containers/GridDownsampler.hpp"
    8486#include "Fragmentation/Summation/Containers/VMGData.hpp"
    8587#include "Fragmentation/Summation/Containers/VMGDataFused.hpp"
     
    660662    }
    661663
    662     FragmentationChargeDensity summedChargeDensity(shortrangedata,keysets);
     664    std::map<JobId_t, VMGData> longrangeData = container.getLongRangeResults();
     665
     666    const std::map<JobId_t, MPQCData> *shortrangedata_downsampled =
     667        &container.getDownsampledShortRangeResults();
     668    if (shortrangedata_downsampled->empty()) {
     669      ELOG(2, "Downsampled charge grids are missing, probably an older version result file? Downsampling ourselves.");
     670      static std::map<JobId_t, MPQCData> downsampled_shortrangedata;
     671      downsampled_shortrangedata.clear();
     672      ASSERT( !longrangeData.empty(),
     673          "FragmentationAnalyseFragmentationResultsAction::performCall() - longrangeData is empty?");
     674      // get required level from longrange full potential solution
     675      const int level = longrangeData.rbegin()->second.sampled_potential.level;
     676      SamplingGridProperties domain(ExportGraph_ToJobs::getDomainGrid(level));
     677      GridDownsampler::downsample(shortrangedata, domain, downsampled_shortrangedata);
     678      shortrangedata_downsampled = &downsampled_shortrangedata;
     679      ASSERT( !shortrangedata_downsampled->empty(),
     680          "FragmentationAnalyseFragmentationResultsAction::performCall() - downsampled data still empty?");
     681    }
     682    FragmentationChargeDensity summedChargeDensity(*shortrangedata_downsampled, keysets);
    663683    const std::vector<SamplingGrid> full_sample = summedChargeDensity.getFullSampledGrid();
    664684
    665     std::map<JobId_t, VMGData> longrangeData = container.getLongRangeResults();
    666685    // remove full solution corresponding to full_sample from map (must be highest ids), has to be treated extra
    667686    std::map<JobId_t, VMGData>::iterator iter = longrangeData.end();
     
    694713
    695714    FragmentationLongRangeResults longrangeresults(
    696         shortrangedata,longrangeData,keysets, forcekeysets);
     715        shortrangedata, longrangeData, keysets, forcekeysets);
    697716    longrangeresults(
    698717        shortrangedata,
Note: See TracChangeset for help on using the changeset viewer.