# Reaction Path Diagrams (jl-type-reactionpathdiagram)= ::::{describe} ReactionPathDiagram(gas::Solution, element::AbstractString) Reaction-path diagram tracing the flow of a chemical `element` (e.g. `"C"`, `"H"`, `"O"`, `"N"`) through the reaction network of `gas` at its current state. Set options (see [`set_threshold!`](#jl-function-set-threshold-bang), [`set_flow_type!`](#jl-function-set-flow-type-bang), ...), then call [`build!`](#jl-function-build-bang) and retrieve the result with [`get_dot`](#jl-function-get-dot) (Graphviz), [`get_data`](#jl-function-get-data) or [`get_log`](#jl-function-get-log). ```julia gas = Solution("gri30.yaml") set_TPX!(gas, 2000.0, one_atm, "CH4:1, O2:2, N2:7.52") d = ReactionPathDiagram(gas, "C") set_threshold!(d, 0.01) set_flow_type!(d, "NetFlow") build!(d) print(get_dot(d)) ``` :::: (jl-function-build-bang)= ::::{describe} build!(d::ReactionPathDiagram) Build (or rebuild) the diagram from the current state of the owning Solution. Call after setting options and before retrieving output. :::: (jl-function-get-dot)= ::::{describe} get_dot(d::ReactionPathDiagram) Graphviz `dot` description of the diagram (call [`build!`](#jl-function-build-bang) first). :::: (jl-function-get-data)= ::::{describe} get_data(d::ReactionPathDiagram) Raw flow data underlying the diagram (call [`build!`](#jl-function-build-bang) first). :::: (jl-function-get-log)= ::::{describe} get_log(d::ReactionPathDiagram) Diagnostic log accumulated while building the diagram. :::: (jl-function-normal-threshold)= ::::{describe} normal_threshold(d::ReactionPathDiagram) Maximum relative flux for dashed lines. :::: (jl-function-arrow-width)= ::::{describe} arrow_width(d::ReactionPathDiagram) Arrow width; if negative, arrows scale with the flux value instead. :::: (jl-function-scale)= ::::{describe} scale(d::ReactionPathDiagram) Scaling factor for the fluxes; -1 normalizes by the maximum net flux. :::: (jl-function-threshold)= ::::{describe} threshold(d::ReactionPathDiagram) Minimum relative flux value that will be plotted. :::: (jl-function-label-threshold)= ::::{describe} label_threshold(d::ReactionPathDiagram) Minimum relative flux for labels. :::: (jl-function-bold-threshold)= ::::{describe} bold_threshold(d::ReactionPathDiagram) Minimum relative flux for bold lines. :::: (jl-function-set-scale-bang)= ::::{describe} set_scale!(d::ReactionPathDiagram, v::Real) Set [`scale`](#jl-function-scale). :::: (jl-function-set-threshold-bang)= ::::{describe} set_threshold!(d::ReactionPathDiagram, v::Real) Set [`threshold`](#jl-function-threshold). :::: (jl-function-set-label-threshold-bang)= ::::{describe} set_label_threshold!(d::ReactionPathDiagram, v::Real) Set [`label_threshold`](#jl-function-label-threshold). :::: (jl-function-set-bold-threshold-bang)= ::::{describe} set_bold_threshold!(d::ReactionPathDiagram, v::Real) Set [`bold_threshold`](#jl-function-bold-threshold). :::: (jl-function-set-normal-threshold-bang)= ::::{describe} set_normal_threshold!(d::ReactionPathDiagram, v::Real) Set [`normal_threshold`](#jl-function-normal-threshold). :::: (jl-function-set-arrow-width-bang)= ::::{describe} set_arrow_width!(d::ReactionPathDiagram, v::Real) Set [`arrow_width`](#jl-function-arrow-width). :::: (jl-function-font)= ::::{describe} font(d::ReactionPathDiagram) Font used for the diagram. :::: (jl-function-dot-options)= ::::{describe} dot_options(d::ReactionPathDiagram) Options passed through to the `dot` program. :::: (jl-function-flow-type)= ::::{describe} flow_type(d::ReactionPathDiagram) Way flows are drawn: `"NetFlow"` or `"OneWayFlow"`. :::: (jl-function-bold-color)= ::::{describe} bold_color(d::ReactionPathDiagram) Color for bold lines. :::: (jl-function-normal-color)= ::::{describe} normal_color(d::ReactionPathDiagram) Color for normal-weight lines. :::: (jl-function-dashed-color)= ::::{describe} dashed_color(d::ReactionPathDiagram) Color for dashed lines. :::: (jl-function-title)= ::::{describe} title(d::ReactionPathDiagram) Reaction path diagram title. :::: (jl-function-set-title-bang)= ::::{describe} set_title!(d::ReactionPathDiagram, v::AbstractString) Set [`title`](#jl-function-title). :::: (jl-function-set-bold-color-bang)= ::::{describe} set_bold_color!(d::ReactionPathDiagram, v::AbstractString) Set [`bold_color`](#jl-function-bold-color). :::: (jl-function-set-dot-options-bang)= ::::{describe} set_dot_options!(d::ReactionPathDiagram, v::AbstractString) Set [`dot_options`](#jl-function-dot-options). :::: (jl-function-set-flow-type-bang)= ::::{describe} set_flow_type!(d::ReactionPathDiagram, v::AbstractString) Set [`flow_type`](#jl-function-flow-type). :::: (jl-function-set-font-bang)= ::::{describe} set_font!(d::ReactionPathDiagram, v::AbstractString) Set [`font`](#jl-function-font). :::: (jl-function-set-normal-color-bang)= ::::{describe} set_normal_color!(d::ReactionPathDiagram, v::AbstractString) Set [`normal_color`](#jl-function-normal-color). :::: (jl-function-set-dashed-color-bang)= ::::{describe} set_dashed_color!(d::ReactionPathDiagram, v::AbstractString) Set [`dashed_color`](#jl-function-dashed-color). :::: (jl-function-show-details)= ::::{describe} show_details(d::ReactionPathDiagram) Whether reaction details are shown as edge labels. :::: (jl-function-set-show-details-bang)= ::::{describe} set_show_details!(d::ReactionPathDiagram, v::Bool) Enable or disable showing reaction details as edge labels. :::: (jl-function-display-only-bang)= ::::{describe} display_only!(d::ReactionPathDiagram, species_index) Restrict the diagram to flows into/out of a single species (1-based index), or pass `:all` (or a negative index) to show all species again. ::::