iccsa-16-factory-extended

git clone https://git.igankevich.com/iccsa-16-factory-extended.git
Log | Files | Refs

commit 2419fe2f3e9795348a809b42879b7dde979d855e
parent 96ce4a106de16ece475dc51188da9241cecde92f
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Tue, 31 Jan 2017 18:06:15 +0300

Add pipeline diagram.

Diffstat:
Makefile | 8++++++--
dot/ppl.dot | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,5 +1,9 @@ -build/iccsa-16-factory.pdf: build *.tex src/* - latexmk -interaction=nonstopmode -output-directory=build -pdf -bibtex -shell-escape -quiet -f main.tex +build/iccsa-16-factory.pdf: build *.tex src/* build/ppl.pdf + latexmk -interaction=nonstopmode -output-directory=build \ + -pdf -bibtex -shell-escape -quiet -f main.tex + +build/ppl.pdf: dot/ppl.dot + dot -Tpdf -o $@ $< build: mkdir -p build diff --git a/dot/ppl.dot b/dot/ppl.dot @@ -0,0 +1,98 @@ +digraph { + + node [fontsize=14,margin="0.055,0"] + graph [nodesep="0.25",ranksep="0.25",rankdir="TB"] + edge [arrowsize=0.66] + + # data + subgraph xcluster_linear { + label="Линейная модель" + + start [label="",shape=circle,style=filled,fillcolor=black,width=0.23] + spectrum [label="S(ω,θ)",shape=box] + acf [label="K(i,j,k)",shape=box] + phi [label="Φ(i,j,k)",shape=box] + + # transformations + fourier_transform [label="Преобразование Фурье",shape=box,style=rounded] + solve_yule_walker [label="Решение уравнений\nЮла—Уокера",shape=box,style=rounded] + + subgraph cluster_nonlinear_1 { + label="Моделир. нелинейности\l" + labeljust=left + style=filled + color=lightgrey + acf2 [label="K*(i,j,k)",shape=box] + transform_acf [label="Преобразование АКФ",shape=box,style=rounded] + } + } + + subgraph xcluster_linear2 { + + eps_parts [label="<e1> ε₁|<e2> ε₂|<e3> …|<e4> εₙ|<e> ε(t,x,y)",shape=record] + end [label="",shape=doublecircle,style=filled,fillcolor=black,width=0.23] + + generate_white_noise [label="<g1> g₁|<g2> g₂|<g3> …|<g4> gₙ|<gen> Генерация\lбелого шума",shape=record,style=rounded] + generate_zeta [label="<g1> g₁|<g2> g₂|<g3> …|<g4> gₙ|<gen> Генерация частей\lвзволнованной мор-\lской поверхности\l",shape=record,style=rounded] + + zeta_parts [label="<g1> ζ₁|<g2> ζ₂|<g3> …|<g4> ζₙ|<gen> Несшитые части реализации",shape=record] + overlap_add [label="<g1> ζ₁|<g2> ζ₂|<g3> …|<g4> ζₙ|<gen> Сшивание час-\lтей реализации\l",shape=record,style=rounded] + + zeta_parts:g1->overlap_add:g1 + zeta_parts:g2->overlap_add:g2 + zeta_parts:g3->overlap_add:g3 + zeta_parts:g4->overlap_add:g4 + + zeta_parts:g2->overlap_add:g1 [constraint=false] + zeta_parts:g3->overlap_add:g2 [constraint=false] + zeta_parts:g4->overlap_add:g3 [constraint=false] + + overlap_add:g1->zeta2_parts:g1 + overlap_add:g2->zeta2_parts:g2 + overlap_add:g3->zeta2_parts:g3 + overlap_add:g4->zeta2_parts:g4 + + zeta2_parts:g1->transform_zeta:g1->zeta3_parts:g1->write_zeta:g1->eps_end + zeta2_parts:g2->transform_zeta:g2->zeta3_parts:g2->write_zeta:g2->eps_end + zeta2_parts:g3->transform_zeta:g3->zeta3_parts:g3->write_zeta:g3->eps_end + zeta2_parts:g4->transform_zeta:g4->zeta3_parts:g4->write_zeta:g4->eps_end + + } + + subgraph part3 { + + zeta2_parts [label="<g1> ζ₁|<g2> ζ₂|<g3> …|<g4> ζₙ|<gen> Поверхность с нормаль-\lным законом распреде-\lления\l",shape=record] + + subgraph cluster_nonlinear_2 { + label="Моделир. нелинейности\r" + labeljust=right + style=filled + color=lightgrey + zeta3_parts [label="<g1> ζ₁|<g2> ζ₂|<g3> …|<g4> ζₙ|<gen> ζ(t,x,y)",shape=record] + transform_zeta [label="<g1> g₁|<g2> g₂|<g3> …|<g4> gₙ|<gen> Преобразование за-\lкона распределения\lвзволнованной мор-\lской поверхности\l",shape=record,style=rounded] + } + + # barriers + eps_start [label="",shape=box,style=filled,fillcolor=black,height=0.05] + eps_end [label="",shape=box,style=filled,fillcolor=black,height=0.05] + + write_zeta [label="<g1> g₁|<g2> g₂|<g3> …|<g4> gₙ|<gen> Запись готовых\lчастей в файл\l",shape=record,style=rounded] + } + + # edges + start->spectrum->fourier_transform->acf->transform_acf + transform_acf->acf2 + acf2->solve_yule_walker + solve_yule_walker->phi + phi->eps_start [constraint=false] + eps_start->generate_white_noise:g1 + eps_start->generate_white_noise:g2 + eps_start->generate_white_noise:g3 + eps_start->generate_white_noise:g4 + generate_white_noise:g1->eps_parts:e1->generate_zeta:g1->zeta_parts:g1 + generate_white_noise:g2->eps_parts:e2->generate_zeta:g2->zeta_parts:g2 + generate_white_noise:g3->eps_parts:e3->generate_zeta:g3->zeta_parts:g3 + generate_white_noise:g4->eps_parts:e4->generate_zeta:g4->zeta_parts:g4 + + eps_end->end +}