Changeset b6b21a for src


Ignore:
Timestamp:
May 1, 2013, 7:53:26 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:
10f0cb
Parents:
6ff62c
git-author:
Frederik Heber <heber@…> (03/27/13 12:07:15)
git-committer:
Frederik Heber <heber@…> (05/01/13 07:53:26)
Message:

Added option DoPrintDebug to FragmentationAutomationAction.

  • this controls whether VTK debug grid are printed to file or not and also whether DebugJobs are used.
Location:
src
Files:
8 edited

Legend:

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

    r6ff62c rb6b21a  
    163163        near_field_cells,
    164164        interpolation_degree,
    165         params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly))
     165        params.DoValenceOnly.get() ? MPQCData::DoSampleValenceOnly : MPQCData::DontSampleValenceOnly,
     166        params.DoPrintDebug.get()))
    166167      // can't use the summed up fragment due to saturation hydrogens
    167168//      summedChargeDensity.getFragment(),
     
    178179  }
    179180
    180   std::map<JobId_t, std::string> debugData;
    181   {
    182     if (!full_sample.empty()) {
    183       // create debug jobs for each level to print the summed-up potential to vtk files
    184       VMGDebugGridFragmentController debugcontroller(io_service);
    185       debugcontroller.setHost(params.host.get());
    186       debugcontroller.setPort(params.port.get());
    187       debugcontroller.requestIds(full_sample.size());
    188       if (!debugcontroller.createDebugJobs(full_sample))
    189         return Action::failure;
    190       debugcontroller.waitforResults(full_sample.size());
    191       debugcontroller.getResults(debugData);
    192       Exitflag += debugcontroller.getExitflag();
     181  if (params.DoPrintDebug.get()) {
     182    std::map<JobId_t, std::string> debugData;
     183    {
     184      if (!full_sample.empty()) {
     185        // create debug jobs for each level to print the summed-up potential to vtk files
     186        VMGDebugGridFragmentController debugcontroller(io_service);
     187        debugcontroller.setHost(params.host.get());
     188        debugcontroller.setPort(params.port.get());
     189        debugcontroller.requestIds(full_sample.size());
     190        if (!debugcontroller.createDebugJobs(full_sample))
     191          return Action::failure;
     192        debugcontroller.waitforResults(full_sample.size());
     193        debugcontroller.getResults(debugData);
     194        Exitflag += debugcontroller.getExitflag();
     195      }
    193196    }
    194197  }
  • src/Actions/FragmentationAction/FragmentationAutomationAction.def

    r6ff62c rb6b21a  
    1818// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1919// "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)
    21 #define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("DoValenceOnly")
    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")
    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"))
    24 #define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly)
     20#define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)(bool)(bool)
     21#define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")("DoValenceOnly")("DoPrintDebug")
     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")
     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"))
     24#define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)(DoValenceOnly)(DoPrintDebug)
    2525#define paramvalids \
    2626(DummyValidator< std::string >()) \
     
    3232(DummyValidator< bool >()) \
    3333(DummyValidator< boost::filesystem::path >()) \
     34(DummyValidator< bool >()) \
    3435(DummyValidator< bool >())
    3536
  • src/Fragmentation/Automation/VMGFragmentController.cpp

    r6ff62c rb6b21a  
    7171    const size_t near_field_cells,
    7272    const size_t interpolation_degree,
    73     const MPQCData::DoValenceOnly_t _DoValenceOnly)
     73    const MPQCData::DoValenceOnly_t _DoValenceOnly,
     74    const bool _DoPrintDebug)
    7475{
    7576  std::vector<FragmentJob::ptr> jobs;
    76   // add one job for each fragment as the short-range correction which we need
    77   // to subtract from the obtained full potential to get the long-range part only
     77  /// add one job for each fragment as the short-range correction which we need
     78  /// to subtract from the obtained full potential to get the long-range part only
    7879  for (std::map<JobId_t, MPQCData>::const_iterator iter = fragmentData.begin();
    7980      iter != fragmentData.end(); ++iter) {
     
    8384        << " gridpoints and " << data.charges.size() << " particle charges.");
    8485    FragmentJob::ptr testJob(
    85         new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells, interpolation_degree) );
     86        new VMGJob(
     87            next_id,
     88            data.sampled_grid,
     89            data.positions,
     90            data.charges,
     91            near_field_cells,
     92            interpolation_degree,
     93            _DoPrintDebug) );
    8694    jobs.push_back(testJob);
    8795  }
    8896
    89   // prepare positions and charges of full system
     97  /// prepare positions and charges of full system
     98  /// \note we cannot use the summed up Fragment here, as the saturation hydrogens
     99  /// are in the way and cannot be sorted out properly/in a simple fashion.
    90100  std::vector< std::vector<double> > positions;
    91101  std::vector<double> charges;
     
    108118    }
    109119  }
     120  /// and submit full job
    110121  for(std::vector<SamplingGrid>::const_iterator iter = full_sampled_grid.begin();
    111122      iter != full_sampled_grid.end();
     
    115126        << " gridpoints and " << charges.size() << " particle charges.");
    116127    FragmentJob::ptr testJob(
    117         new VMGJob(next_id, *iter, positions, charges, near_field_cells, interpolation_degree) );
     128        new VMGJob(
     129            next_id,
     130            *iter,
     131            positions,
     132            charges,
     133            near_field_cells,
     134            interpolation_degree,
     135            _DoPrintDebug) );
    118136    jobs.push_back(testJob);
    119137  }
    120138
    121   // then send jobs to controller
     139  /// then send jobs to controller
    122140  addJobs(jobs);
    123141  sendJobs(host, port);
  • src/Fragmentation/Automation/VMGFragmentController.hpp

    r6ff62c rb6b21a  
    4646   * \param interpolation_degree interpolation degree for newton interpolation from grid
    4747   * \param _DoValenceOnly whether to neglect core electron and nuclei charges
     48   * \param _DoPrintDebug whether we do print grid for debug visualization or not
    4849   */
    4950  bool createLongRangeJobs(
     
    5253      const size_t near_field_cells,
    5354      const size_t interpolation_degree,
    54       const MPQCData::DoValenceOnly_t _DoValenceOnly);
     55      const MPQCData::DoValenceOnly_t _DoValenceOnly,
     56      const bool _DoPrintDebug);
    5557
    5658  /** Get results of finished long-range jobs.
  • src/Jobs/InterfaceVMGJob.cpp

    r6ff62c rb6b21a  
    7171    vmg_float _box_end,
    7272    const int& near_field_cells,
     73    const bool _DoPrintDebug,
    7374    int coarseningSteps,
    7475    double alpha) :
     
    7879  sampled_input(_sampled_input),
    7980  returndata(_returndata),
    80   level(levelMax)
     81  level(levelMax),
     82  DoPrintDebug(_DoPrintDebug)
    8183{
    8284  for (size_t i=0;i<3;++i) {
     
    144146  comm.CommFromGhosts(particle_grid);
    145147
    146   // print nuclei grid to vtk
    147   comm.PrintGrid(particle_grid, "Sampled Nuclei Density");
     148  if (DoPrintDebug) {
     149    // print nuclei grid to vtk
     150    comm.PrintGrid(particle_grid, "Sampled Nuclei Density");
     151  }
    148152
    149153  // add sampled electron charge density onto grid
     
    153157      -1.);
    154158
    155   // print electron grid to vtk
    156   comm.PrintGrid(grid, "Sampled Electron Density");
     159  if (DoPrintDebug) {
     160    // print electron grid to vtk
     161    comm.PrintGrid(grid, "Sampled Electron Density");
     162  }
    157163
    158164  // add particle_grid onto grid
     
    180186  comm.PrintStringOnce("Grid charge integral: %e", charge_sum/(4.0 * VMG::Math::pi));
    181187
    182   // print total grid to vtk
    183   comm.PrintGrid(grid, "Total Charge Density");
     188  if (DoPrintDebug) {
     189    // print total grid to vtk
     190    comm.PrintGrid(grid, "Total Charge Density");
     191  }
    184192
    185193//  delete temp_grid;
     
    197205  Index i;
    198206
    199   // print output grid to vtk
    200   comm.PrintGrid(grid, "Potential Solution");
     207  if (DoPrintDebug) {
     208    // print output grid to vtk
     209    comm.PrintGrid(grid, "Potential Solution");
     210  }
    201211
    202212  // obtain sampled potential from grid
  • src/Jobs/InterfaceVMGJob.hpp

    r6ff62c rb6b21a  
    4646      vmg_float _box_end,
    4747      const int& near_field_cells,
     48      const bool _DoPrintDebug=false,
    4849      int coarseningSteps=0,
    49       double alpha=1.6);
     50      double alpha=1.6
     51      );
    5052
    5153  ~InterfaceVMGJob() {}
     
    7173  //!> contains end of grid intervals
    7274  double box_end[3];
     75
     76  //!> whether we do print grid for debug visualization or not
     77  const bool DoPrintDebug;
    7378};
    7479
  • src/Jobs/VMGJob.cpp

    r6ff62c rb6b21a  
    8282    const std::vector< double > &_particle_charges,
    8383    const size_t _near_field_cells,
    84     const size_t _interpolation_degree) :
     84    const size_t _interpolation_degree,
     85    const bool _DoPrintDebug) :
    8586  FragmentJob(_JobId),
    8687  density_grid(_density_grid),
     
    9091  interpolation_degree(_interpolation_degree),
    9192  returndata(static_cast<const SamplingGridProperties &>(_density_grid)),
    92   particles()
     93  particles(),
     94  DoPrintDebug(_DoPrintDebug)
    9395{}
    9496
     
    9799  near_field_cells(3),
    98100  interpolation_degree(3),
    99   particles()
     101  particles(),
     102  DoPrintDebug(false)
    100103{}
    101104
     
    216219      Vector(density_grid.begin),
    217220      density_grid.end[0]-density_grid.begin[0],
    218       near_field_cells);
     221      near_field_cells,
     222      DoPrintDebug);
    219223  new LevelOperatorCS(Stencils::RestrictionFullWeight, Stencils::InterpolationTrilinear);
    220224  new Givens<SolverSingular>();
  • src/Jobs/VMGJob.hpp

    r6ff62c rb6b21a  
    4242   * @param _interpolation_degree degree of interpolation polynomial for getting nuclei
    4343   *        potential from grid
     44   * @param _DoPrintDebug whether we do print grid for debug visualization or not
    4445   */
    4546  VMGJob(const JobId_t _JobId,
     
    4849      const std::vector< double > &_particle_charges,
    4950      const size_t _near_field_cells,
    50       const size_t _interpolation_degree
     51      const size_t _interpolation_degree,
     52      const bool _DoPrintDebug=false
    5153      );
    5254  virtual ~VMGJob();
     
    7072  //!> interpolation degree used in sampling the potential of the nuclei
    7173  const size_t interpolation_degree;
     74  //!> whether we do print grid for debug visualization or not
     75  const bool DoPrintDebug;
    7276
    7377private:
     
    120124    ar & const_cast< size_t &>(near_field_cells);
    121125    ar & const_cast< size_t &>(interpolation_degree);
     126    ar & const_cast< bool &>(DoPrintDebug);
    122127    ar & returndata;
    123128  }
Note: See TracChangeset for help on using the changeset viewer.