Gromacs  2016.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Todo List
Member DIR_SEPARATOR
Get rid of this (Redmine #950). It is not necessary for constructing paths on the systems that it currently supports, and is not reliable in parsing input paths either, since Windows needs to accept both instead of only DIR_SEPARATOR. At the very least, we should refactor the clients of this header so that they operate upon path objects rather than raw path strings.
File domdec_network.h
Wrap the raw dd_bcast in md.cpp into a higher-level function in the domdec module, then this file can be module-internal.
Member fit_acf (int ncorr, int fitfn, const gmx_output_env_t *oenv, gmx_bool bVerbose, real tbeginfit, real tendfit, real dt, real c1[], real *fit)
check parameters
Member ftype_is_bonded_potential (int ftype)
This function could go away when idef is not a big bucket of everything.
Class gmx::AbstractAnalysisArrayData
Add support for multiple data sets.
Class gmx::AbstractAnalysisData
Improve the exception-handling semantics. In most cases, it doesn't make much sense to continue data processing after one module fails, but having the alternative would not hurt.
Member gmx::AbstractAnalysisData::addColumnModule (int col, int span, AnalysisDataModulePointer module)

This method doesn't currently work in all cases with multipoint data or with multiple data sets. In particular, if the added module requests storage and uses getDataFrame(), it will behave unpredictably (most likely asserts).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Generalize this method to multiple data sets (e.g., for adding modules that only process a single data set).

Member gmx::AbstractAnalysisData::applyModule (IAnalysisDataModule *module)
Currently, this method may not work correctly if module requests storage (addModule() has the same problem if called after data is started).
Member gmx::AbstractOptionStorage::processSet ()=0
Improve the call semantics.
Class gmx::AnalysisData
Parallel implementation is not complete.
Member gmx::AnalysisDataPlotSettings::plotFormat () const
Use a proper enum.
Class gmx::AnalysisDataStorage
Proper multi-threaded implementation.
Class gmx::AnalysisNeighborhood
Generalize the exclusion machinery to make it easier to use for other cases than atom-atom exclusions from the topology.
Class gmx::AnalysisNeighborhoodSearch

Make it such that reset() is not necessary to call in code that repeatedly assigns the result of AnalysisNeighborhood::initSearch() to the same variable (see sm_distance.cpp).

Consider merging nearestPoint() and minimumDistance() by adding the distance to AnalysisNeighborhoodPair.

Class gmx::ArrayRef< T >
This class is not complete. At least, it should be possible to convert an ArrayRef to a ConstArrayRef. There are likely also methods missing (not required for current usage).
Member gmx::DataFileInfo::bFromDefaultDir
Consider replacing with an enum that identifies the source (current dir, GMXLIB, default).
Class gmx::ExceptionInitializer
With the exception of the reason string, information added with this class is not currently accessible through any public API, except for calling printFatalErrorMessage(), formatExceptionMessageToString() or formatExceptionMessageToFile(). This is not implemented as there is not yet need for it, and it is not clear what would be the best alternative for the access. It should be possible to refactor the internal implementation to suit the needs of such external access without requiring changes in code that throws these exceptions.
Member gmx::FileNameOption::libraryFile (bool bLibrary=true)
Currently, this flag only affects the help output. Callers must take care themselves to actually search the file in the library directories. It would be nicer to do this searching within the file name option implementation.
Class gmx::FileNameOptionManager
Most of the functionality in this class is specific to command line parsing, so it would be cleaner to replace this with an interface, and have the actual code in the commandline module.
Member gmx::GromacsException::prependContext (const std::string &context)
The added information is currently not accessible through what(), nor through any other means except for calling printFatalErrorMessage(), formatExceptionMessageToString() or formatExceptionMessageToFile(). See ExceptionInitializer for more discussion.
Member gmx::HelpWriterContext::setReplacement (const std::string &search, const std::string &replace)
Improve semantics if the same search item is set multiple times.
Member gmx::OptionFlag
The flags related to default values are confusing, consider reorganizing them.
Member gmx::Regex::Regex (const char *value)
Consider whether some other exception type would be better.
Member gmx::Selection::setEvaluateVelocities (bool bEnabled)
Implement it such that in the above case, hasVelocities() will return false for such frames.
Class gmx::SelectionOption

Support for specifying that an option accepts, e.g., two to four selections. Currently, only a fixed count or any number of selections is possible.

Class gmx::test::AnalysisDataTestFixture
Support for arbitrary AnalysisDataValues (errors and missing values).
Class gmx::test::FloatingPointTolerance
The factory methods that take ULP difference could be better formulated as methods that take the acceptable number of incorrect bits and/or the number of accurate bits.
Member gmx::test::IntegrationTestFixture::redirectStderrToDevNull ()
Implement this when the output routines are sufficiently modular to permit it to work.
Member gmx::test::IntegrationTestFixture::redirectStdoutToDevNull ()
Implement this when the output routines are sufficiently modular to permit it to work.
Member gmx::test::throwIfNonEmptyAndOnlyWhitespace (const std::string &s, const char *id)
Eliminate this limitation of TinyXML2. See e.g. https://github.com/leethomason/tinyxml2/issues/432
Member gmx::TextWriter::wrapperSettings ()
Wrapping is not currently implemented for code that writes partial lines with writeString().
Class gmx::TrajectoryAnalysisSettings
Remove plain flags from the public interface.
File handlerestart.h
There may be other code in runner.cpp etc. that can usefully live here
Group module_domdec
Get domdec stuff out of mdtypes/commrec.h
Member ocl_pmalloc (void **h_ptr, size_t nbytes)
This function should allocate page-locked memory to help reduce D2H and H2D transfer times, similar with pmalloc from pmalloc_cuda.cu.
Member set_over_alloc_dd (gmx_bool set)
This is mdrun-specific, so it might be better to put this and over_alloc_dd() much higher up.
File simulationsignal.h
Move this to mdrunutility module alongside gathering multi-simulation communication infrastructure there.
File snprintf.h
When all callers of snprintf compile as C++, perhaps use gmx::formatString() everywhere instead of snprintf.