Ignore:
Timestamp:
Oct 31, 2011, 11:49:19 AM (13 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:
870b4b
Parents:
505d05
git-author:
Frederik Heber <heber@…> (05/18/11 19:55:05)
git-committer:
Frederik Heber <heber@…> (10/31/11 11:49:19)
Message:

Selection is now done inside DipoleAngularCorrelation.

  • as molecules may change over time it makes more sense to select molecules internally right now.
  • DipoleAngularCorrelation() now takes Formula instead of std::vector<atom *>.
  • also adjusted const'ness of some parameters.
Location:
src/Actions/AnalysisAction
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/AnalysisAction/DipoleAngularCorrelationAction.cpp

    r505d05 re65878  
    2424#include "linkedcell.hpp"
    2525#include "CodePatterns/Log.hpp"
     26#include "Descriptors/AtomOfMoleculeSelectionDescriptor.hpp"
     27#include "Descriptors/MoleculeFormulaDescriptor.hpp"
    2628#include "Element/element.hpp"
    27 #include "molecule.hpp"
    2829#include "Element/periodentafel.hpp"
    2930#include "LinearAlgebra/Vector.hpp"
     31#include "molecule.hpp"
    3032#include "World.hpp"
    3133#include "WorldTime.hpp"
     
    5355
    5456  // get selected atoms
    55   std::vector<atom*> atoms = World::getInstance().getSelectedAtoms();
    56   ASSERT(atoms.size() != 0, "AnalysisDipoleAngularCorrelationAction() - not atoms selected.");
     57  std::vector<atom*> old_atom_selection = World::getInstance().getSelectedAtoms();
     58  std::vector<molecule*> old_molecule_selection = World::getInstance().getSelectedMolecules();
    5759
    5860  // get current time step
    5961  const unsigned int oldtime = WorldTime::getTime();
    6062
    61   // obtain zero dipole orientation
     63  // select atoms and obtain zero dipole orientation
     64  Formula DipoleFormula(params.DipoleFormula);
    6265  World::getInstance().setTime(0);
    63   std::map<atomId_t, Vector> ZeroVector = CalculateZeroAngularDipole(atoms);
     66  World::getInstance().clearMoleculeSelection(); // TODO: This should be done in setTime or where molecules are re-done
     67  World::getInstance().selectAllMolecules(MoleculeByFormula(DipoleFormula));
     68  std::vector<molecule *> molecules = World::getInstance().getSelectedMolecules();
     69  std::map<atomId_t, Vector> ZeroVector = CalculateZeroAngularDipole(molecules);
    6470
    6571  // go through each step of common trajectory of all atoms in set
     72  World::getInstance().clearAtomSelection();
     73  World::getInstance().selectAllAtoms(AtomsByMoleculeSelection());
     74  std::vector<atom *> atoms = World::getInstance().getSelectedAtoms();
    6675  range<size_t> timesteps = getMaximumTrajectoryBounds(atoms);
    6776  for (size_t step = 0; step < timesteps.first; ++step) {
    6877    // calculate dipoles relative to zero orientation
    6978    DipoleAngularCorrelationMap *correlationmap = NULL;
    70     correlationmap = DipoleAngularCorrelation(atoms, step, ZeroVector, DontResetTime);
     79    correlationmap = DipoleAngularCorrelation(DipoleFormula, step, ZeroVector, DontResetTime);
    7180
    7281    // prepare step string in filename
     
    102111  World::getInstance().setTime(oldtime);
    103112
     113  // reset to old selections
     114  World::getInstance().clearAtomSelection();
     115  BOOST_FOREACH(atom *_atom, old_atom_selection) {
     116    World::getInstance().selectAtom(_atom);
     117  }
     118  World::getInstance().clearMoleculeSelection();
     119  BOOST_FOREACH(molecule *_mol, old_molecule_selection) {
     120    World::getInstance().selectMolecule(_mol);
     121  }
     122
    104123  // exit
    105124  return Action::success;
  • src/Actions/AnalysisAction/DipoleAngularCorrelationAction.def

    r505d05 re65878  
    1313// ValueStorage by the token "Z" -> first column: int, Z, "Z"
    1414// "undefine" if no parameters are required, use (NODEFAULT) for each (undefined) default value
    15 #define paramtypes (double)(double)(double)(boost::filesystem::path)(boost::filesystem::path)(bool)
    16 #define paramreferences (BinStart)(BinWidth)(BinEnd)(outputname)(binoutputname)(periodic)
    17 #define paramtokens ("bin-start")("bin-width")("bin-end")("output-file")("bin-output-file")("periodic")
    18 #define paramdescriptions ("start of the first bin")("width of the bins")("start of the last bin")("name of the output file")("name of the bin output file")("system is constraint to periodic boundary conditions")
    19 #define paramdefaults (NODEFAULT)("0.5")(NODEFAULT)(NODEFAULT)(NODEFAULT)("0")
     15#define paramtypes (std::string)(double)(double)(double)(boost::filesystem::path)(boost::filesystem::path)(bool)
     16#define paramreferences (DipoleFormula)(BinStart)(BinWidth)(BinEnd)(outputname)(binoutputname)(periodic)
     17#define paramtokens ("dipole-angular-correlation")("bin-start")("bin-width")("bin-end")("output-file")("bin-output-file")("periodic")
     18#define paramdescriptions ("formula of molecules to calculate dipole of")("start of the first bin")("width of the bins")("start of the last bin")("name of the output file")("name of the bin output file")("system is constraint to periodic boundary conditions")
     19#define paramdefaults (NODEFAULT)(NODEFAULT)("0.5")(NODEFAULT)(NODEFAULT)(NODEFAULT)("0")
    2020
    2121// some defines for all the names, you may use ACTION, STATE and PARAMS
Note: See TracChangeset for help on using the changeset viewer.