source: src/documentation/future.dox@ 47d041

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 47d041 was f11c23, checked in by Frederik Heber <heber@…>, 13 years ago

Added documentation on how to understand the code and its (maybe) future extensions.

  • Property mode set to 100644
File size: 2.9 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 future.dox
10 *
11 * Created on: Nov 03, 2011
12 * Author: heber
13 */
14
15/**
16 * \page future What's to come up next code-wise
17 *
18 * \section future-refactoring Refactoring the code
19 *
20 * Here is a list of what pieces of the code should be refactored to make them
21 * easier to use:
22 * - Fragmentation and related classes: Just generate the keysets and have a
23 * pool of hydrogen atoms that are re-used when creating and writing
24 * fragments. Add and re-add messes up the Id's of the Atom's.
25 * - Tesselation and related classes: Especially, the removing and adding of
26 * nodes is not fully (and correctly) implemented, see the regression tests
27 * on convex(!) envelopes (non-convex are working).
28 * - all internal, non-atom related information of FormatParser's should be
29 * stored in FormatParserParameters (e.g. AtomData line of tremolo)
30 *
31 * \section future-extension Extending the code
32 *
33 * Here the list of what should be implemented to make the code more powerful
34 * and just makes sense given the current constructs.
35 * - LinkedCell should be owned by the World and internally, such that one
36 * simply may access nearest neighbors (e.g. via Selection of a sphere) but in
37 * \f$ {\cal O}(N) \f$ and not naively \f${\cal} (N^2)\f$.
38 * - LinkedCell should be updateable. Thus it could listen to World's
39 * notifications when World::AtomInserted or World::AtomRemoved and update.
40 * Hence, it would always be up-to-date. Combined with the Cachable pattern in
41 * CodePatterns realizing lazy evaluation (http://en.wikipedia.org/wiki/Lazy_evaluation),
42 * i.e. when many updates have gathered, we rather re-create the linked cell
43 * structure, this can easily be made very convenient, fast, and powerful.
44 * - BondGraph should be updataeable. As above it should listen the Worlds'
45 * notifications and so on (also Cachable ...)
46 * - Tesselation should be a Shape: Such that it can be used for Fillings.
47 * - Tesselation should be loadable/storable from/to file: One the one hand
48 * this could mean \ref serialization but rather \b .3ds or another file
49 * format such that structures can filled with some external program and
50 * filled with a certain algorithm later-on.
51 * - Tesselation: Extend such that the created surface can be pushed away from
52 * the atoms to resemble the molecular surface (http://en.wikipedia.org/wiki/Molecular_surface)
53 * - all Actions regarding Filling: Filling should be generalized as to get a
54 * shape and vector of atoms and to do something with it. Especially, not a
55 * new Action but a token that just tells how to fill and a factory pattern
56 * behind it that spits out the algorithm how to do it.
57 *
58 *
59 * \date 2011-11-03
60 *
61 */
Note: See TracBrowser for help on using the repository browser.