Skip to content

class pd3::precipitate::Precipitate

Class to apply given system conditions and manipulate a given system. For a given alloy we can expect dislocation interactions of the following flow chart:

digraph precipitates { label="Flowchart for Da + aB partials states in a precipitate."; rankdir=LR; size="8,5" node[shape="diamond", style=""]; "Leading\nOrder"; combines; node[shape="box"] flip; combine; combined; Disassociates; "trailing\ninteracts"; node [shape = doublecircle]; node [shape = circle]; Partials -> "Shear" [ label = "SF/APB" ]; Partials -> Bow [ label = "SF/X" ]; Bow -> "Wrap\nAround" [ label = "SF/X" ]; Bow -> Perfect [ label = "SF/X" ]; Bow -> "Leading\nPartial\nEscapes" [ label = "SF/X" ]; Perfect -> Disassociates; Disassociates -> "Leading\nShear" [ label = "SF/CF" ]; "Shear" -> "combines" [ label = "both shear" ]; "Shear" -> "Leading\nShear" [ label = "single shear" ]; "combines" -> "APB\nleft" [ label = "yes" ]; "combines" -> "Leading\nOrder" [ label = "no" ]; "Leading\nOrder" -> flip [ label = "B \alpha" ]; "Leading\nOrder" -> combine [ label = "\alpha D" ]; combine -> "Ca +\n2Da" [ label = "SESF" ]; flip -> "aC +\n2aD" [ label = "SISF" ]; "Leading\nShear" -> "Da=\naD+\n2Da" [ label = "SF/SESF" ]; "Da=\naD+\n2Da" -> "trailing\ninteracts" "trailing\ninteracts" -> "Ca +\n2Da" [ label = "SESF" ]; edge [color=red]; // so is this "APB\nleft" -> "Partials\nfollows" [ label = "SISF/SISF/APB" ]; "Partials\nfollows" -> "combined" "combined" -> "Super\nDisloc." [ label = "X" ]; "combined" -> "Super\nPartials" [ label = "SISF" ]; }

Here, we note that circles represent a given state of the system, while blocks denote a potential change. Where the resulting stacking faults come from theory of atomic reordering. A single plane for shearing can be expressed in a truncated Fourier series as seen below:

Summary

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

Members

resolve_interaction

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

Resolve the entire state.

resolve_interaction

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

Resolve for a given node.

maybe_mark

auto maybe_mark(const Node_ &)

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