source: src/documentation/constructs/descriptors.dox@ b49568

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
Last change on this file since b49568 was b49568, checked in by Frederik Heber <heber@…>, 13 years ago

Added new descriptor AtomOfMolecule.

  • also added new unit test function.
  • Property mode set to 100644
File size: 2.7 KB
Line 
1/*
2 * Project: MoleCuilder
3 * Description: creates and alters molecular systems
4 * Copyright (C) 2010 University of Bonn. All rights reserved.
5 * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
6 */
7
8/**
9 * \file descriptors.dox
10 *
11 * Created on: Oct 28, 2011
12 * Author: heber
13 */
14
15/** \page descriptors Descriptors
16 *
17 * Descriptors help you to select a specific subset of a given array of
18 * elements. For the moment these elements are either instances of atom
19 * or molecule that the \ref world offers.
20 *
21 * They mostly work as an argument to either obtain a specific iterator
22 * over the elements (that silently skips all non-matching ones) or
23 * a subset.
24 *
25 * Note that the following boolean operators on descriptors work:
26 * - or
27 * - and
28 * - not
29 *
30 * Hence, these descriptors are very mighty. A typical use would be as follows:
31 * \code
32 * World::getInstance().getAllAtoms(AtomByType(1) && AtomByShape(Sphere(Vector(0,0,0), 2.)));
33 * \endcode
34 * which would return an AtomComposite of all hydrogen (Z=1) atoms within a
35 * sphere of radius 2. centered at (0,0,0).
36 *
37 * Or you may obtain iterators over a selection and use them in a loop as this:
38 * \code
39 * World::MoleculeIterator iter = World::getInstance().getMoleculeIter(MoleculeByFormula(Formula("H2O")));
40 * World::MoleculeIterator enditer = World::getInstance().moleculeEnd();
41 * std::cout << "List of all water molecules:" << std::endl;
42 * for (; iter != enditer; ++iter)
43 * std:cout << (*iter)->getId() << std::endl;
44 * \endcode
45 *
46 * \note There is difference between Selection and Descriptor. A
47 * Descriptor is just a predicate() that selects among a given list. The current
48 * Selection (of atoms/molecules) is a Descriptor \a applied to a the total
49 * list of all atoms/molecules. Hence, a selection refers to a subset where
50 * the Descriptor is just the condition that selects such a subset.
51 *
52 * \subsection descriptors-atom Atom Descriptors
53 *
54 * The following descriptors are present for atoms:
55 * - by id: AtomById()
56 * - of currently selected molecule(s): AtomsByMoleculeSelection()
57 * - of molecule: AtomOfMolecule()
58 * - currently selected atoms: AtomsBySelection()
59 * - within a Shape: AtomByShape()
60 * - of specific element: AtomByType()
61 *
62 * \subsection descriptors-molecule Molecule Descriptors
63 *
64 * The following descriptors are present for molecules:
65 * - by formula: MoleculeByFormula()
66 * - by id: MoleculeById()
67 * - by name: MoleculeByName()
68 * - of currently selected atoms: MoleculesByAtomSelection()
69 * - by order of creation: MoleculeByOrder() (i.e. -1 is the last one, 1 is the
70 * first ever created, ...)
71 * - by pointer: MoleculeByPtr MoleculeByPtr()
72 * - currently selected molecules: MoleculesBySelection()
73 *
74 *
75 * \date 2011-10-31
76 *
77 */
Note: See TracBrowser for help on using the repository browser.