Changeset cd2591


Ignore:
Timestamp:
Dec 10, 2012, 10:11:00 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:
db6f7d
Parents:
67fec1
git-author:
Frederik Heber <heber@…> (09/13/12 08:26:14)
git-committer:
Frederik Heber <heber@…> (12/10/12 10:11:00)
Message:

Added interpolation-degree as parameter to FragmentationAutomationAction.

  • this allows setting the interpolation-degree without recompilation.
  • this is now required as we have to calculate the nuclei energy whose precision depends on the interpolation degree from the potential grid.
Files:
7 edited

Legend:

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

    r67fec1 rcd2591  
    432432    // Phase Five: create VMGJobs
    433433    const size_t near_field_cells = params.near_field_cells.get();
     434    const size_t interpolation_degree = params.interpolation_degree.get();
    434435    if (!vmgcontroller.createLongRangeJobs(
    435436        fragmentData,
    436437        full_sample,
    437         summedChargeDensity.getFragment(), near_field_cells))
     438        summedChargeDensity.getFragment(),
     439        near_field_cells,
     440        interpolation_degree))
    438441      return Action::failure;
    439442
  • src/Actions/FragmentationAction/FragmentationAutomationAction.def

    r67fec1 rcd2591  
    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::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(bool)
    24 #define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("DoLongrange")
    25 #define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("whether to calculate long-range contributions")
    26 #define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(5))(PARAM_DEFAULT("0"))
    27 #define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(DoLongrange)
     23#define paramtypes (std::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)
     24#define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")
     25#define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("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")
     26#define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))
     27#define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)
    2828#define paramvalids \
    2929(STLVectorValidator< std::vector< boost::filesystem::path > >(ParserFileValidator() && FilePresentValidator())) \
     
    3333(DummyValidator< boost::filesystem::path >()) \
    3434(RangeValidator< unsigned int >(1, 10)) \
    35 (RangeValidator< unsigned int >(0, 20)) \
     35(RangeValidator< unsigned int >(1, 20)) \
     36(RangeValidator< unsigned int >(1, 10)) \
    3637(DummyValidator< bool >())
    3738
  • src/Fragmentation/Automation/VMGFragmentController.cpp

    r67fec1 rcd2591  
    5252    const std::vector<SamplingGrid> &full_sampled_grid,
    5353    const Fragment &full_fragment,
    54     const size_t near_field_cells)
     54    const size_t near_field_cells,
     55    const size_t interpolation_degree)
    5556{
    5657  std::vector<FragmentJob::ptr> jobs;
     
    6465        << " gridpoints and " << data.charges.size() << " particle charges.");
    6566    FragmentJob::ptr testJob(
    66         new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells) );
     67        new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells, interpolation_degree) );
    6768    jobs.push_back(testJob);
    6869  }
     
    9293        << " gridpoints and " << charges.size() << " particle charges.");
    9394    FragmentJob::ptr testJob(
    94         new VMGJob(next_id, *iter, positions, charges, near_field_cells) );
     95        new VMGJob(next_id, *iter, positions, charges, near_field_cells, interpolation_degree) );
    9596    jobs.push_back(testJob);
    9697  }
  • src/Fragmentation/Automation/VMGFragmentController.hpp

    r67fec1 rcd2591  
    4343      const std::vector<SamplingGrid> &full_sampled_grid,
    4444      const Fragment &full_fragment,
    45       const size_t near_field_cells);
     45      const size_t near_field_cells,
     46      const size_t interpolation_degree);
    4647  void getResults(std::map<JobId_t, VMGData> &fragmentData) {
    4748    SpecificFragmentController::getResults<VMGData>(fragmentData);
  • src/Jobs/VMGJob.cpp

    r67fec1 rcd2591  
    8181    const std::vector< std::vector< double > > &_particle_positions,
    8282    const std::vector< double > &_particle_charges,
    83     const size_t _near_field_cells) :
     83    const size_t _near_field_cells,
     84    const size_t _interpolation_degree) :
    8485  FragmentJob(_JobId),
    8586  density_grid(_density_grid),
     
    8788  particle_charges(_particle_charges),
    8889  near_field_cells(_near_field_cells),
     90  interpolation_degree(_interpolation_degree),
    8991  returndata(static_cast<const SamplingGridProperties &>(_density_grid)),
    9092  num_particles(0),
     
    9799VMGJob::VMGJob() :
    98100  FragmentJob(JobId::IllegalJob),
    99   near_field_cells(5),
     101  near_field_cells(3),
     102  interpolation_degree(3),
    100103  num_particles(0),
    101104  f(NULL),
     
    218221  new ObjectStorage<int>("MAX_ITERATION", 15);
    219222  new ObjectStorage<int>("PARTICLE_NEAR_FIELD_CELLS", near_field_cells);
    220   new ObjectStorage<int>("PARTICLE_INTERPOLATION_DEGREE", 3);
     223  new ObjectStorage<int>("PARTICLE_INTERPOLATION_DEGREE", interpolation_degree);
    221224
    222225  // first initialize f,x,p,q,... from STL vectors
  • src/Jobs/VMGJob.hpp

    r67fec1 rcd2591  
    4040   * @param _particle_charges charges per nuclei
    4141   * @param _near_field_cells number of grid-points used to smear our nuclei charge
     42   * @param _interpolation_degree degree of interpolation polynomial for getting nuclei
     43   *        potential from grid
    4244   */
    4345  VMGJob(const JobId_t _JobId,
     
    4547      const std::vector< std::vector< double > > &_particle_positions,
    4648      const std::vector< double > &_particle_charges,
    47       const size_t _near_field_cells);
     49      const size_t _near_field_cells,
     50      const size_t _interpolation_degree
     51      );
    4852  virtual ~VMGJob();
    4953
     
    6468  //!> near field cells used in smearing out core charge density
    6569  const size_t near_field_cells;
     70  //!> interpolation degree used in sampling the potential of the nuclei
     71  const size_t interpolation_degree;
    6672
    6773private:
     
    95101    ar & const_cast< std::vector< double > &>(particle_charges);
    96102    ar & const_cast< size_t &>(near_field_cells);
     103    ar & const_cast< size_t &>(interpolation_degree);
    97104    ar & returndata;
    98105  }
  • tests/Python/AllActions/options.dat

    r67fec1 rcd2591  
    7878id-mapping      "1"
    7979input   "test.data"
     80interpolation-degree    "5"
    8081interpolation-steps     "9"
    8182keep-fixed-CenterOfMass "0"
Note: See TracChangeset for help on using the changeset viewer.