Changeset 28c025 for src


Ignore:
Timestamp:
Nov 14, 2012, 10:02:51 AM (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:
442cee
Parents:
d12d621
git-author:
Frederik Heber <heber@…> (07/26/12 08:45:44)
git-committer:
Frederik Heber <heber@…> (11/14/12 10:02:51)
Message:

Added SamplingGrid and SamplingGridProperties to contain information about sampled 3D function.

  • MPQCData, MPQCJob, and VMGJob now contain instances of SamplingGrid (Properties).
Location:
src
Files:
4 added
8 edited

Legend:

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

    rd12d621 r28c025  
    495495    LOG(1, "INFO: Creating VMGJob.");
    496496    FragmentJob::ptr testJob(
    497         new VMGJob(next_id, iter->density.begin, iter->density.size, iter->density.level, iter->density.sampled_grid) );
     497        new VMGJob(next_id, iter->sampled_grid) );
    498498    jobs.push_back(testJob);
    499499  }
     
    504504    const int level = LEVEL;
    505505    const int GRID = pow(2, level);
    506     std::vector<double> full_sampled_grid(GRID*GRID*GRID, 0.);
     506    std::vector<double> full_sample(GRID*GRID*GRID, 0.);
    507507    double begin[NDIM] = { 0., 0., 0. };
    508508    const RealSpaceMatrix& M = World::getInstance().getDomain().getM();
     
    510510    ASSERT( M.determinant() == size*size*size,
    511511        "createLongRangeJobs() - current domain matrix "+toString(M)+" is not cubic.");
     512    const SamplingGrid full_sampled_grid(begin, size, level, full_sample);
    512513    const JobId_t next_id = controller.getAvailableId();
    513514    FragmentJob::ptr testJob(
    514         new VMGJob(next_id, begin, size, level, full_sampled_grid) );
     515        new VMGJob(next_id, full_sampled_grid) );
    515516    jobs.push_back(testJob);
    516517  }
  • src/Jobs/MPQCData.cpp

    rd12d621 r28c025  
    4242#include "CodePatterns/Log.hpp"
    4343#include "LinearAlgebra/defs.hpp"
     44
     45MPQCData::MPQCData(const SamplingGridProperties &_props) :
     46  sampled_grid(_props)
     47{}
     48
     49MPQCData::MPQCData()
     50{}
    4451
    4552MPQCData::energy_t::energy_t() :
  • src/Jobs/MPQCData.hpp

    rd12d621 r28c025  
    2020#include <vector>
    2121
     22#include "Jobs/Grid/SamplingGrid.hpp"
     23
    2224class MPQCCommandJob;
    2325class MPQCCommandJobTest;
     
    3739  friend std::ostream & operator<<(std::ostream &ost, const MPQCData &data);
    3840public:
     41  /** Constructor for class MPQCData with full sampling information.
     42   *
     43   * \param _props properties of the grid
     44   */
     45  MPQCData(const SamplingGridProperties &_props);
     46
     47  /** Default Constructor for class MPQCData.
     48   *
     49   */
     50  MPQCData();
     51
    3952  bool operator==(const MPQCData &other) const;
    4053
     
    6780
    6881  /// Density
    69   struct density_t {
    70     //!> Begin (min coordinates) of grid in real space
    71     double begin[3];
    72     //!> edge length of cubic(!) domain
    73     double size;
    74     //!> level of the grid, hence \f$2^\text{level}\f$
    75     int level;
    76 
    77     //!> typedef for vector of samples grids
    78     typedef std::vector<double> grid_type;
    79     //!> vector of sample points in order x, y, z
    80     grid_type sampled_grid;
    81   } density;
     82  SamplingGrid sampled_grid;
    8283
    8384  /// Timing structure
     
    109110    ar & energies.eigenvalues;
    110111    ar & forces;
    111     int i;
    112     for (int i=0; i<3; ++i)
    113       ar & density.begin[i];
    114     ar & density.size;
    115     ar & density.level;
    116     ar & density.sampled_grid;
     112    ar & sampled_grid;
    117113    ar & times.walltime;
    118114    ar & times.cputime;
  • src/Jobs/MPQCJob.cpp

    rd12d621 r28c025  
    5454  FragmentJob(_JobId),
    5555  inputfile(_inputfile),
    56   size(_size),
    57   level(_level)
    58 {
    59   for (int i=0; i<3; ++i)
    60     begin[i] = _begin[i];
    61 }
     56  grid(_begin, _size, _level)
     57{}
    6258
    6359MPQCJob::MPQCJob() :
    64   FragmentJob(JobId::IllegalJob),
    65   size(0.),
    66   level(0)
     60  FragmentJob(JobId::IllegalJob)
    6761{}
    6862
  • src/Jobs/MPQCJob.hpp

    rd12d621 r28c025  
    1919#include "JobMarket/Jobs/FragmentJob.hpp"
    2020
     21#include "Jobs/Grid/SamplingGridProperties.hpp"
     22
    2123#include <string>
    2224
     
    3840
    3941private:
    40   //!> contents of the input file
     42  //!> contents of inputfile
    4143  const std::string inputfile;
    42   //!> offset of grid
    43   double begin[3];
    44   //!> size of grid, i.e. edge length of cubic(!) domain
    45   const double size;
    46   //!> level, i.e. \f$2^{\text{level}}\f$ grid points per axis
    47   const int level;
     44  //!> information for how to sample the density
     45  const SamplingGridProperties grid;
    4846
    4947private:
     
    5957    ar & boost::serialization::base_object<FragmentJob>(*this);
    6058    ar & const_cast<std::string &>(inputfile);
    61     int i;
    62     for (i=0; i<3; ++i)
    63       ar & begin[i];
    64     ar & const_cast<double &>(size);
    65     ar & const_cast<int &>(level);
     59    ar & const_cast<SamplingGridProperties &>(grid);
    6660  }
    6761};
  • src/Jobs/Makefile.am

    rd12d621 r28c025  
    99JOBSSOURCE += \
    1010        Jobs/InterfaceVMGJob.cpp \
    11         Jobs/VMGJob.cpp
     11        Jobs/VMGJob.cpp \
     12        Jobs/Grid/SamplingGrid.cpp \
     13        Jobs/Grid/SamplingGridProperties.cpp
    1214endif
    1315
     
    2224JOBSHEADER += \
    2325        Jobs/InterfaceVMGJob.hpp \
    24         Jobs/VMGJob.hpp
     26        Jobs/VMGJob.hpp \
     27        Jobs/Grid/SamplingGrid.hpp \
     28        Jobs/Grid/SamplingGridProperties.hpp
    2529endif
    2630
  • src/Jobs/VMGJob.cpp

    rd12d621 r28c025  
    7676VMGJob::VMGJob(
    7777    const JobId_t _JobId,
    78     const double _begin[3],
    79     const double _size,
    80     const int _level,
    81     const std::vector< double > &_sampled_input) :
     78    const SamplingGrid _density_grid) :
    8279  FragmentJob(_JobId),
    83   size(_size),
    84   level(_level),
    85   sampled_input(_sampled_input)
    86 {
    87   for (size_t i=0; i<3; ++i)
    88     begin[i] = _begin[i];
    89 }
     80  density_grid(_density_grid)
     81{}
    9082
    9183VMGJob::VMGJob() :
    92   FragmentJob(JobId::IllegalJob),
    93   size(0.),
    94   level(0)
     84  FragmentJob(JobId::IllegalJob)
    9585{}
    9686
     
    141131  new DiscretizationPoissonFD(4);
    142132  new VMGInterfaces::InterfaceVMGJob(
    143       sampled_input,
     133      density_grid.sampled_grid,
    144134      boundary,
    145135      2,
    146       level,
    147       Vector(begin),
    148       size);
     136      density_grid.level,
     137      Vector(density_grid.begin),
     138      density_grid.size);
    149139  new LevelOperatorCS(Stencils::RestrictionFullWeight, Stencils::InterpolationTrilinear);
    150140  new Givens<SolverSingular>();
  • src/Jobs/VMGJob.hpp

    rd12d621 r28c025  
    1919
    2020#include "JobMarket/Jobs/FragmentJob.hpp"
     21#include "Jobs/Grid/SamplingGrid.hpp"
    2122
    2223#include <vector>
     
    4041   */
    4142  VMGJob(const JobId_t _JobId,
    42       const double _begin[3],
    43       const double _size,
    44       const int _level,
    45       const std::vector< double > &_sampled_input);
     43      const SamplingGrid density_grid);
    4644  virtual ~VMGJob();
    4745
     
    5250
    5351private:
    54   double begin[3];
    55   const double size;
    56   const int level;
    57   //!> contents of the input file
    58   const std::vector< double > sampled_input;
     52  //!> sampled density required as input
     53  const SamplingGrid density_grid;
    5954
    6055private:
     
    6964  {
    7065    ar & boost::serialization::base_object<FragmentJob>(*this);
    71     int i;
    72     for (i=0; i< 3; ++i)
    73       ar & begin[i];
    74     ar & const_cast< double &>(size);
    75     ar & const_cast< int &>(level);
    76     ar & const_cast< std::vector< double > &>(sampled_input);
     66    ar & const_cast< SamplingGrid &>(density_grid);
    7767  }
    7868};
Note: See TracChangeset for help on using the changeset viewer.