Skip to content

class pd3::precipitate::CircularPrecipitate

class pd3::precipitate::CircularPrecipitate
  : public pd3::precipitate::Precipitate

Collision with circular precipitates is resolved in the direction of motion. Shearing occurs by a 'guess and check' method by which a segment will attempt to shear the precipitate and be rejected if resultant stacking fault force is greater than the net force on the given segment. The following diagram outlines the general algorithm:

digraph shearing { label="Algorithm for precipitate shearing with partials"; rankdir=TB; size="8,8" node[shape="diamond", style=""]; criterion; inside; next [label = "has next?\nSegment=\nnext Segment"] inside [label = "Change in Precipitate\n containment?"] criterion [label = "(Segment.force - OldFaultForce(Segment) + FaultForce(Segment)) dot Segment.force > 0"] split [label = "Untried disassociation?"] node[shape="box"] recalculate [label = "Recalculate Displacement\non others"] revert [label = "Move Segment\nback" ] attempt [label = "Change topology" ] Start -> next; next -> recalculate [ label = "no" ]; recalculate -> end; next -> inside [ label = "yes" ]; inside -> criterion [ label = "yes" ]; criterion -> Continue [ label = "yes" ]; criterion -> split [ label = "no" ]; split -> attempt [ label = "yes" ]; attempt -> criterion; split -> revert [ label = "no" ]; revert -> Continue; Continue -> next; }

In this case, OldFaultForce is the recorded stacking fault force from the previous steps, while FaultForce is the stacking fault force due to the new position. We note that the corresponding stacking fault energy can be found by referring to the diagram outlined in Precipitate.

Summary

Members Descriptions
virtual autoresolve_interaction(const System_ &, const Eigen::Matrix3d &, const State_ &) Resolve the entire state.
virtual autoresolve_interaction(const System_ &, const Eigen::Matrix3d &, const State_ &, const Node_ &) Resolve for a given node.
virtual automaybe_mark(const Node_ &) On state reconstruction, mark a node if it's in the precipitate.

Members

resolve_interaction

virtual auto resolve_interaction(const System_ &, const Eigen::Matrix3d & stress, const State_ &)

Resolve the entire state.

resolve_interaction

virtual auto resolve_interaction(const System_ &, const Eigen::Matrix3d & stress, const State_ &, const Node_ &)

Resolve for a given node.

maybe_mark

virtual auto maybe_mark(const Node_ &)

On state reconstruction, mark a node if it's in the precipitate.