Changeset 2bc560 for src/Jobs


Ignore:
Timestamp:
Nov 16, 2012, 2:13:47 PM (12 years ago)
Author:
Frederik Heber <heber@…>
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:
4adef7
Parents:
fb881a
git-author:
Frederik Heber <heber@…> (08/06/12 17:14:07)
git-committer:
Frederik Heber <heber@…> (11/16/12 14:13:47)
Message:

Added VMGData as container for data returned from VMGJob::Work().

Location:
src/Jobs
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • src/Jobs/InterfaceVMGJob.cpp

    rfb881a r2bc560  
    5959
    6060InterfaceVMGJob::InterfaceVMGJob(const std::vector< double > &_sampled_input,
    61     std::vector< double > &_sampled_output,
     61    VMGData &_returndata,
    6262    const std::vector< std::vector<double> > &_particle_positions,
    6363    const std::vector< double > &_particle_charges,
     
    7474  spl(near_field_cells, Extent(MaxLevel()).MeshWidth().Max()),
    7575  sampled_input(_sampled_input),
    76   sampled_output(_sampled_output),
     76  returndata(_returndata),
    7777  level(levelMax)
    7878{
     
    179179  Index i;
    180180
    181   sampled_output.clear();
     181  returndata.sampled_potential.sampled_grid.clear();
    182182  for (i.X()=grid.Local().Begin().X(); i.X()<grid.Local().End().X(); ++i.X())
    183183    for (i.Y()=grid.Local().Begin().Y(); i.Y()<grid.Local().End().Y(); ++i.Y())
    184184      for (i.Z()=grid.Local().Begin().Z(); i.Z()<grid.Local().End().Z(); ++i.Z()) {
    185         sampled_output.push_back(grid(i));
     185        returndata.sampled_potential.sampled_grid.push_back(grid(i));
    186186      }
    187187
     
    195195
    196196  //Particle::CommMPI& comm = *dynamic_cast<Particle::CommMPI*>(MG::GetComm());
    197   //e_long = comm.GlobalSumRoot(e_long);
     197  returndata.e_long = VMG::MG::GetComm()->GlobalSumRoot(returndata.e_long);
    198198
    199199}
  • src/Jobs/InterfaceVMGJob.hpp

    rfb881a r2bc560  
    2020#include "units/particle/particle.hpp"
    2121
     22#include "Jobs/VMGData.hpp"
     23
    2224namespace VMG
    2325{
     
    3335public:
    3436  InterfaceVMGJob(const std::vector< double > &_sampled_input,
    35       std::vector< double > &_sampled_output,
     37      VMGData &returndata,
    3638      const std::vector< std::vector< double > > &_particle_positions,
    3739      const std::vector< double > &_particle_charges,
     
    5759  const std::vector< double > sampled_input;
    5860  //!> sampled potential on the grid as output
    59   std::vector< double > &sampled_output;
     61  VMGData &returndata;
    6062  //!> number of grid points per axis as \f$2^{\text{level}}\f$
    6163  const int level;
  • src/Jobs/Makefile.am

    rfb881a r2bc560  
    99JOBSSOURCE += \
    1010        Jobs/InterfaceVMGJob.cpp \
     11        Jobs/VMGData.cpp \
    1112        Jobs/VMGJob.cpp
    1213endif
     
    2223JOBSHEADER += \
    2324        Jobs/InterfaceVMGJob.hpp \
     25        Jobs/VMGData.hpp \
    2426        Jobs/VMGJob.hpp
    2527endif
  • src/Jobs/VMGJob.cpp

    rfb881a r2bc560  
    8181  FragmentJob(_JobId),
    8282  density_grid(_density_grid),
    83   potential_grid(static_cast<const SamplingGridProperties &>(_density_grid)),
    8483  particle_positions(_particle_positions),
    85   particle_charges(_particle_charges)
     84  particle_charges(_particle_charges),
     85  returndata(static_cast<const SamplingGridProperties &>(_density_grid))
    8686{}
    8787
     
    107107  std::stringstream returnstream;
    108108  boost::archive::text_oarchive oa(returnstream);
    109   oa << potential_grid;
     109  oa << returndata;
    110110
    111111  FragmentResult::ptr ptr( new FragmentResult(getId(), returnstream.str()) );
     
    142142  new VMGInterfaces::InterfaceVMGJob(
    143143      density_grid.sampled_grid,
    144       potential_grid.sampled_grid,
     144      returndata,
    145145      particle_positions,
    146146      particle_charges,
  • src/Jobs/VMGJob.hpp

    rfb881a r2bc560  
    2020#include "JobMarket/Jobs/FragmentJob.hpp"
    2121#include "Jobs/Grid/SamplingGrid.hpp"
     22#include "Jobs/VMGData.hpp"
    2223
    2324#include <vector>
     
    5455  //!> sampled density required as input
    5556  const SamplingGrid density_grid;
    56   //!> sampled potential as output of the job
    57   SamplingGrid potential_grid;
    5857  //!> positions of all nuclei
    5958  const std::vector< std::vector< double > > particle_positions;
    6059  //!> charges of all nuclei
    6160  const std::vector< double > particle_charges;
     61
     62private:
     63  //!> temporary instance to hold return data
     64  VMGData returndata;
    6265
    6366private:
     
    7376    ar & boost::serialization::base_object<FragmentJob>(*this);
    7477    ar & const_cast< SamplingGrid &>(density_grid);
    75     ar & potential_grid;
    7678    ar & const_cast< std::vector< std::vector< double > > &>(particle_positions);
    7779    ar & const_cast< std::vector< double > &>(particle_charges);
     80    ar & returndata;
    7881  }
    7982};
Note: See TracChangeset for help on using the changeset viewer.