class pd3::System
Class that contains information about the given dislocation system, and provides topological operators to manipulate the system.
Summary
Members | Descriptions |
---|---|
auto size () const |
The number of nodes currently in the system. |
auto segment_size () const |
The number of segments currently in the system. |
auto node (Eigen::Matrix< double, 1, 3 >, NodeType) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
template<typename P, typename, typename...> inline auto precipitate (Args &&...) |
Like node, precipitates are only constructable through a system. |
void for_each_precipitate (const std::function< void(const Precipitate_ &)> &) const |
Provides copied lookup of precipitates. |
template<typename T, int, typename Itr> auto for_some_segment (Itr, std::function< Eigen::Matrix< T, 1, i >(const Segment)>) const |
Run a function against a set of segments. See for_some_node. |
template<typename T, int> auto for_each_node (std::function< Eigen::Matrix< T, 1, i >(Node_)>) const |
Runs the function accross all the nodes in the system. See for_some_node. |
void for_each_segment_pair (const std::function< void(const Segment &, const Segment &)> &) const |
Provides the n^2 examination between all segment pairs. |
template<typename T> auto reduce_segments (std::function< T(const Segment)>, std::function< T(const T, const T)>, T) const |
Apply a reducable function against each segment. |
template<typename T> auto reduce_segments (std::function< T(const Segment)>, std::function< T(const T, const T)>) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
template<typename T> auto for_each_segment (std::function< T(const Segment)>) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
template<typename Itr> void for_some_segment (Itr, const std::function< void(Segment)> &) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
void for_each_node (const std::function< void(Node_)> &) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
void for_each_segment (const std::function< void(Segment)> &) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto state () |
Produces a pd3::State with displacements set from the given system. |
auto find_segment (const Node_ &, const Node_ &) const |
Find the segment object with system information attached to it. |
auto find_segment (Segment &) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto burgers (const Node_ &, const Node_ &) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto merge_node (const Node_ &, const State_ &) |
Provided a virtual dislocation node, coarsen it out of the system. |
auto split_segment (const Segment &, const State_ &) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto update_shear (const Segment &, const Miller &, double) |
Update a segment based on changes to its shearing state. |
auto flip_segments (const Node_ &, int) |
Applies flip_segment to all of a given node's connections. |
auto cleanup (const Node_ &, const Node_ &) |
Hook to release a segment from the system. |
auto cleanup (const Segment &) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto cleanup (Node *) |
Hook to release a node from the system. |
auto __attribute__ ((used)) |
Hook to remove a segment from the system given the connecting nodes. |
absl::flat_hash_set< Node_ > nodes |
Set of all given nodes for easy lookup. |
absl::flat_hash_set< Segment > segments |
Set of all given segments for easy lookup. |
absl::flat_hash_set< Precipitate_ > precipitates |
Collection of precipitates for system interaction. |
auto combine_nodes (Node_ &, Node_ &, const State_ &) |
Creates a new node from 2 existing nodes. |
auto combine_nodes (const Node_ &, const Eigen::RowVector3d &, absl::flat_hash_set< Miller > &, const State_ &) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
auto extract_planes (const Node_ &, absl::flat_hash_set< Miller > &) const |
Gets the list of planes that a node is on. |
auto merge_hinge (const Triangle &, Segment &, Segment &, const State_ &) |
Or explicitly dictating which arms to fold. |
Members
size
auto
size
() const
The number of nodes currently in the system.
segment_size
auto
segment_size
() const
The number of segments currently in the system.
node
auto
node
(Eigen::Matrix< double, 1, 3 >, NodeType)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
precipitate
template<typename P, typename, typename... Args>
inline auto
precipitate
(Args &&... args)
Like node, precipitates are only constructable through a system.
for_each_precipitate
void
for_each_precipitate
(const std::function< void(const Precipitate_ &)> & fn) const
Provides copied lookup of precipitates.
for_some_segment
template<typename T, int i, typename Itr>
auto
for_some_segment
(Itr itr, std::function< Eigen::Matrix< T, 1, i >(const Segment)> fn) const
Run a function against a set of segments. See for_some_node.
for_each_node
template<typename T, int i>
auto
for_each_node
(std::function< Eigen::Matrix< T, 1, i >(Node_)> fn) const
Runs the function accross all the nodes in the system. See for_some_node.
for_each_segment_pair
void
for_each_segment_pair
(const std::function< void(const Segment &, const Segment &)> & fn) const
Provides the n^2 examination between all segment pairs.
reduce_segments
template<typename T>
auto
reduce_segments
(std::function< T(const Segment)> fn, std::function< T(const T, const T)> reduce, T) const
Apply a reducable function against each segment.
reduce_segments
template<typename T>
auto
reduce_segments
(std::function< T(const Segment)> fn, std::function< T(const T, const T)> reduction) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
for_each_segment
template<typename T>
auto
for_each_segment
(std::function< T(const Segment)> fn) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
for_some_segment
template<typename Itr>
void
for_some_segment
(Itr, const std::function< void(Segment)> & fn) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
for_each_node
void
for_each_node
(const std::function< void(Node_)> & fn) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
for_each_segment
void
for_each_segment
(const std::function< void(Segment)> & fn) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
state
auto
state
()
Produces a pd3::State with displacements set from the given system.
find_segment
auto
find_segment
(const Node_ &, const Node_ &) const
Find the segment object with system information attached to it.
find_segment
auto
find_segment
(Segment & segment) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
burgers
auto
burgers
(const Node_ & a, const Node_ & b) const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
merge_node
auto
merge_node
(const Node_ & node, const State_ & state)
Provided a virtual dislocation node, coarsen it out of the system.
split_segment
auto
split_segment
(const Segment &, const State_ &)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
update_shear
auto
update_shear
(const Segment &, const
Miller
&, double)
Update a segment based on changes to its shearing state.
flip_segments
auto
flip_segments
(const Node_ &, int flip)
Applies flip_segment
to all of a given node's connections.
cleanup
auto
cleanup
(const Node_ &, const Node_ &)
Hook to release a segment from the system.
cleanup
auto
cleanup
(const Segment &)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
cleanup
auto
cleanup
(Node * unsafe_node)
Hook to release a node from the system.
__attribute__
auto
__attribute__
((used))
Hook to remove a segment from the system given the connecting nodes.
nodes
protected absl::flat_hash_set< Node_ >
nodes
Set of all given nodes for easy lookup.
segments
protected absl::flat_hash_set< Segment >
segments
Set of all given segments for easy lookup.
precipitates
protected absl::flat_hash_set< Precipitate_ >
precipitates
Collection of precipitates for system interaction.
combine_nodes
protected auto
combine_nodes
(Node_ & a, Node_ & b, const State_ & state)
Creates a new node from 2 existing nodes.
combine_nodes
protected auto
combine_nodes
(const Node_ &, const Eigen::RowVector3d &, absl::flat_hash_set<
Miller
> &, const State_ &)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
extract_planes
protected auto
extract_planes
(const Node_ & node, absl::flat_hash_set<
Miller
> &) const
Gets the list of planes that a node is on.
merge_hinge
protected auto
merge_hinge
(const Triangle &, Segment &, Segment &, const State_ &)
Or explicitly dictating which arms to fold.