Did a bit more for this one:
a) Got rid of warning messages that came from setting the root universe's ID to 0.
b) Moved source building to above the settings definition (rather than in the middle of it.)
c) Removed `bracketed_method='bisect'` as this is the default argument.
Perhaps there should be a default tolerance as well? And is there a good reason to default `print_iterations` to false?
Custom sources are now created only through the new class-based method,
which supports parameterization.
New method also slightly adjusted to create the source as managed by a
unique_ptr.
Examples and tests updated to align with this approach.
Documentation updated.
Updates to examples and tests to refer to parameterized sources rather
than serialized sources.
Small update to source.h to remove reference to serialized parameters.
In the existing custom_source implementation, the source will only be
created once. This is much more efficient than the custom serialized
source, where each sampling will create a new instance of the class.
As there could be many samples, this introduces an overhead,
particularly if the operations to instantiate the class are not trivial.
This implementation defines an abstract class, which is then used by the
custom classes to allow the custom serialized class to be created based
on the plugin, sampled from, and then destroyed.
Update documentation and test to reflect this.
Changes the implementation of the serialization to be on an attribute of
the source XML element within settings.xml. This removes the need for a
new file containing the serialization.
Parameters are provided as a key-value string, separated by a comma and
a space, although the implementation can change this is required.
Change example values to align with existing custom_source to make
comparisons easier.
Update documentation to be consistent.
The previous implementation had each sampling run reading from the
serialized file. This introduced a large I/O overhead and the
performance was much slower than the equivalent run with the
unserialized source.
Generates a source ring in a similar manner to the existing
custom_source example.
Allows the radius and energy to be defined via a serialized
representation of the source.
Builds using CMake.
File is largely based on the existing custom_source example.
Uses the serialization attribute on the source to
point to an XML file
containing the serialized representation of the source.
Also builds the serialized_source.xml file with some default values.
Uses a new name for the library containing the serializable source.