Reference¶
This is the reference for the classes and functions defined in the nodefinder module.
Search¶
Run function¶
Submodule for searching the nodal features given a gap function. The result is given as a “point-cloud” of nodes.
-
async
nodefinder.search.run_async(gap_fct, *, limits=((0, 1), (0, 1), (0, 1)), periodic=True, initial_state=None, save_file=None, save_delay=5.0, load=False, load_quiet=True, initial_mesh_size=10, force_initial_mesh=False, refinement_stencil='auto', gap_threshold=1e-06, feature_size=0.002, use_fake_potential=False, nelder_mead_kwargs=mappingproxy({}), num_minimize_parallel=50, recheck_pos_dist=True, recheck_count_cutoff=0, simplex_check_cutoff=0)[source]¶ Run the nodal point search.
- Parameters
gap_fct (collections.abc.Callable) – Function or coroutine describing the potential of which nodes should be found.
limits (tuple(tuple(float))) – The limits of the box where nodes are searched, given as tuple for each dimension.
periodic (bool) – Indicates whether periodic boundary conditions are used for the coordinate system.
save_file (str) – Path to the file where the intermediate results are stored.
save_delay (float) – Minimum delay (in seconds) between saving the results.
load (bool) – Enable or disable loading the initial state from
save_file.load_quiet (bool) – When set to
True, ignore errors when loading the initial state.initial_mesh_size (int or tuple(int)) – Size of the initial mesh of starting points. Can be given either as a single integer or as a list of integers corresponding to the different dimensions.
force_initial_mesh (bool) – If
True, add the initial mesh also when restarting the calculation from an intermediate result.refinement_stencil (np.array) – The stencil of simplices used in the refinement. Normalized such that the starting point is at the origin, and the dist_cutoff is one. The array must have dimensions (N, dim + 1, dim), where dim is the dimension of the problem, and N can be chosen to be the number of refinement minimization runs.
gap_threshold (float) – Threshold for the function value for which a given point is considered to be a node.
feature_size (float) – Threshold for the distance between two nodes where they are considered distinct.
use_fake_potential (bool) – If
True, the minimization for a given simplex is performed in two steps, first adding a fake potential to repel the minimization from existing nodes.nelder_mead_kwargs (collections.abc.Mapping) – Keyword arguments passed to the Nelder-Mead algorithm.
num_minimize_parallel (int) – Maximum number of minimization calculations which are launched in parallel.
recheck_pos_dist (bool) – Indicates whether the position of a refinement box is checked again before launching the corresponding refinement.
recheck_count_cutoff (int) – Number of positions which are allowed to be within the cutoff distance when re-checking the position.
simplex_check_cutoff (int) – Number of vertices which are allowed to be within the cutoff distance when re-checking the simplex.
- Returns
The result of the search algorithm.
- Return type
-
nodefinder.search.run(*args, **kwargs)[source]¶ Wrapper around
run_async()that runs the node search synchronously.- Parameters
args (tuple) – Positional arguments passed to
run_async().kwargs (collections.abc.Mapping) – Keyword arguments passed to
run_async().
Result classes¶
Submodule defining the result classes of the search step.
-
class
nodefinder.search.result.JoinedMinimizationResult(*, child, ancestor)[source]¶ Wrapper for minimization results that result from two steps.
-
ancestor¶ Result of the first minimization run.
- Type
-
child¶ Result of the second minimization run.
- Type
-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
-
class
nodefinder.search.result.MinimizationResult[source]¶ Represents the optimization result.
-
pos¶ The solution of the optimization.
- Type
ndarray
-
value¶ Value of objective function.
- Type
ndarray
-
status¶ Termination status of the optimizer. Its value depends on the underlying solver. Refer to message for details.
- Type
-
simplex_history¶ History of simplex values.
- Type
ndarray, optional
-
fun_simplex_history¶ History of function values of the simplex.
- Type
ndarray, optional
-
-
class
nodefinder.search.result.SearchResultContainer(*, coordinate_system, minimization_results=(), gap_threshold, dist_cutoff, refined_results=())[source]¶ Container for the results of a search run.
-
coordinate_system¶ Coordinate system used.
- Type
-
nodes¶ Minimization results which fulfill the gap threshold criterion.
- Type
-
add_result(res)[source]¶ Add a minimization result to the container.
- Parameters
res (MinimizationResult) – Minimization result to add.
-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
get_all_neighbour_distances(pos)[source]¶ Calculate the distances to neighbouring nodes from a given position. Only neighbours within
dist_cutoffare taken into account.- Parameters
pos (numpy.ndarray) – Position for which to calculate the distances.
-
get_neighbour_distance_iterator(pos)[source]¶ Returns an iterator over the distance to neighbouring nodes from a given position. Only neighbours within
dist_cutoffare taken into account.- Parameters
pos (numpy.ndarray) – Position for which to calculate the distances.
-
get_refined_neighbour_distance_iterator(pos)[source]¶ Returns an iterator over the distance to neighboring nodes which have been used as a starting point in a refinement procedure.
- Parameters
pos (numpy.ndarray) – Position for which to calculate the distances.
-
property
minimization_results¶ list(MinimizationResult): All minimization results, including rejected points.
-
-
class
nodefinder.search.result.ControllerState(*, result, simplex_queue, position_queue)[source]¶ Container class for the current result and queue of the
search.run()function.-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
classmethod
Plotting¶
Defines functions for plotting the results of the search step.
-
nodefinder.search.plot.points(result, *, axis=None)[source]¶ Plot the nodal points of a given result.
- Parameters
result (SearchResultContainer) – Result whose nodal points should be plotted.
axis (matplotlib.axes.Axes, optional) – Axes on which the points should be plotted.
-
nodefinder.search.plot.simplices(result, *, nodes=(), axis=None, line_settings=mappingproxy({'color': 'C0'}))[source]¶ Plot the simplices used in the minimization for a given node.
- Parameters
result (SearchResultContainer) – Result of the search step.
nodes (list(MinimizationResult)) – Nodes for which the simplex history should be plotted.
axis (matplotlib.axes.Axes, optional) – Axes on which the points should be plotted.
line_settings (dict) – Keyword arguments passed to
matplotlib.axes.Axes.plot().
Identify¶
Run function¶
Submodule for identifying nodal features such as points and lines from a
point-cloud of nodes as created by the search submodule.
-
nodefinder.identify.run(result, feature_size=None, evaluate_line_method='ballistic')[source]¶ Identify the nodal clusters from a
search.run()result.- Parameters
result (SearchResultContainer) – Result of the search step.
feature_size (float, optional) – Distance between two nodal points at which they are considered distinct. Uses the
feature_sizeused in the search step by default.
-
nodefinder.identify.run_from_positions(positions, *, coordinate_system, feature_size, evaluate_line_method='shortest_path')[source]¶ Identify the nodal clusters from a list of positions.
- Parameters
positions (list(tuple(float))) – The list of nodal positions.
coordinate_system (CoordinateSystem) – Coordinate system used to calculate distances.
feature_size (float) – Distance between two nodal points at which they are considered distinct.
Result classes¶
Define the result classes for the identification step.
-
class
nodefinder.identify.result.IdentificationResultContainer(*, coordinate_system, feature_size, results=())[source]¶ Container class for the result of the identification step.
-
coordinate_system¶ The coordinate system of the problem.
- Type
-
results¶ List of identified objects.
- Type
-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
-
class
nodefinder.identify.result.IdentificationResult(positions, dimension, shape=None)[source]¶ Contains the attributes of an identified object.
-
shape¶ Shape of the identified object. If the shape could not be identified, it is set to
None.- Type
Noneor NodalPoint or NodalLine
-
dimension¶ Dimension of the identified object. Is set to
Noneif the dimension is ambiguous.- Type
-
-
class
nodefinder.identify.result.NodalPoint(position)[source]¶ Shape class defining a nodal point.
-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
classmethod
Plotting¶
Defines functions for plotting the results of the identify step.
-
nodefinder.identify.plot.result(res, *, axis=None)[source]¶ Plot the result of the identify step.
- Parameters
res (IdentificationResultContainer) – Result of the identify step.
axis (matplotlib.axes.Axes, optional) – Axes on which the result is plotted.
-
nodefinder.identify.plot.nodal_point(shape, *, axis, color, feature_size=None)[source]¶ Plot a nodal point.
- Parameters
shape (NodalPoint) – Nodal point to be plotted.
axis (matplotlib.axes.Axes) – Axes on which to plot.
color (str) – Color of the point.
feature_size (float) – Distance between two nodal points at which they are considered distinct. This argument is not used in this function.
-
nodefinder.identify.plot.nodal_line(shape, *, axis, color, feature_size=None)[source]¶ Plot a nodal line.
- Parameters
shape (NodalLine) – Nodal line to be plotted.
axis (matplotlib.axes.Axes) – Axes on which to plot.
color (str) – Color of the nodal line.
feature_size (float) – Distance between two nodal points at which they are considered distinct. Used for cutting the line when it goes across periodic boundaries.
Coordinate System¶
Defines the coordinate system class.
-
class
nodefinder.coordinate_system.CoordinateSystem(*, limits, periodic=True)[source]¶ Defines a “box” coordinate system, which is used to calculate the distances between points, and map between fractional and real coordinates.
-
limits¶ Limits of the coordinates, given as a the minimum and maximum value for each dimension.
- Type
-
size¶ Size of the coordinate system in each dimension.
- Type
-
classmethod
from_hdf5(hdf5_handle)¶ Deserializes the object stored in HDF5 format.
-
Saving and Loading¶
Defines free functions to serialize / deserialize nodefinder objects to HDF5.
These are aliases for the functions defined in fsc.hdf5_io, meaning that
they can also handle other objects which are registered with the same system.
-
nodefinder.io.save(obj, hdf5_file)¶ Alias for
to_hdf5_file().
-
nodefinder.io.load(hdf5_file)¶ Alias for
from_hdf5_file().