-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Milestone
Description
The Dissolve2 ToDo!
A dynamic list of small jobs that will need doing in Dissolve2 towards the end of the transition to Nodes, but that we don't want to (or can't) do while the old system is still present.
-
Serialisablehas a virtualserialise(value, context)but a non-virtualserialise(value)function which causes warnings about hidden functions in the code. Once complete,contextshould no longer be required? - Clarify usage of
MoleculeandLocalMolecule, particularly use ofsetSpecies()which also creates arrays. - Remove
Forcefield *forcefield_member fromSpecies. - Remove
Function1DWrapperin favour of an object more compatible with the new system (e.g. remove need for template specialisation when addingParameters etc.) -
PartialSetaveraging is performed (i.e.GRNode::process) by obtaining processing module data from aGenericListitem. Instead do this work on an ownedPartialSetobject. - Energy saves a flag via
processingModuleDataidentifying the configuration as a target for the module (i.e.dissolve().processingModuleData().realise<bool>("IsEnergyModuleTarget", targetConfiguration_->niceName(), GenericItem::ProtectedFlag) = true;) - how do we rework this in the graph/node framework? (see) - Testing dissolve2, previously we used keywords (see)
- Nodes should pass on their configuration after processing for use by subsequent nodes, therefore the addition of a
addPointerOutput<configuration *>is required for relevant nodes, where they don't already do this - Implement
CollectorNode: this is a hypothetical node that exists to collect node outputs of a given typeTorT*into a container memberstd::vector<T>orstd::vector<T *>. This is particularly relevant for theGRNodewhich should ideally mimic the behaviour ofGRModulein which a vector ofConfigurationbecomes an input. Note: we'd require anisFiniteflag forNodesince we'd effectively be introducing unrestricted edge connections into a node i.e.CollectorNode<Configuration *>taking any number of configurations. - We are littering the code with multiple instances of
getEnumOptionsfor the same underlyingenumnow that we've moved to a concept for this particular solution. We may want to revisit / tidy this a bit. - We can remove the unsightly
operator==code inimport/data1D.h(see) when we have implemented aData1DNode -
BoundedOptionalParameterandaddBoundedOptionalParameterno longer required since the introduction of theNumbertype - feat: Generalise method for node data serialisation #2203
- feat: Node data serialisation #2242
- Clarify (or completely remove) the use of
fingerprint_s in various classes (e.g.PartialSet) - Remove storage of
tag_s inData1Dand friends - these previously existed to allow lazy specification / location of data inprocessingModuleData_by the graphing functions, but this will no longer be relevant / possible. - When and where to generate cells as required
- Check / change behaviour of IsotopologueSetModel since it allows changing of the Isotopologue to another Isotopologue for a given weight. When we had a vector of IsotopologueWeights this made sense, but now we have a map it can lead to unintentional user error.
- Call
CellArray::generate()from node process only when the box has fundamentally changed (excluding scalings) - see - Refactoring the
ScatteringMatrixdisabled saving of estimated S(Q) and g(r) to the restart file since their storage moved toDoubleKeyedMap. This needs to be reinstated. - Refactoring EPSRModule into EPSRNode will require some thought as it requires a lot of different bits of data for each dataset: scattering weights, unweighted and weighted structure factors (although the former can probably become a separate input)
- Saving output files
- File selector type
- Implications for correct behaviour of
Data1Dwith regards to file loading and project folder structure - Once old modules are removed
PartialSet'sinitialisefunctions can be turned into constructors to tidy up code in various places. - Can / should we be passing
const *as outputs and receiveconst *as inputs in specific places (e.g. NeutronSQ receiving the unweightedSQ and GR)? - Split
template/algorithms.hup into more specific, smaller units so we don't bloat recompile requirements. - Serialisation of data to input file is handled type-specifically by
SerialisableParameter<T>(inparameter.h) but is basically implementing what has been written for restart file serialisation (addSerialisable()creatingSerialisableData) so merging / reusing the two should be investigated. - Move simple test functions out of
DissolveSystemTest, and remove any test functions relying on the old processingdata object. -
Data1DImportFileFormatshould takestd::optional<Number> - Add test case to ensure proper functioning of node edge pulling when a new, intermediary node that pulls an
OptionalPointerParameteris inserted in place of an existing edge between two other nodes (this situation is already covered by a test case for parameters passed by value) - Specifying ranges for quantities should be done through a general
QuantityRangeclass with specifically-named_min,_max, and_deltavariables, rather than a straightVector3. This is used in many analysis node options, as well as ctor to theHistogramNDclasses. The newRangedVector3is sort of a step towards it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels