diff --git a/.gitignore b/.gitignore index 4cb29e4f039fdd6247cb014cf4b26685fc6ed574..13bbe5b9112f9828a4f0eae28e0eb34e5fdb58d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -<<<<<<< HEAD .idea/ -======= -.idea ->>>>>>> origin/WorkingBranch__Andreas + diff --git a/pyKADMOS/AGILE_EY01_DEMO.py b/pyKADMOS/AGILE_EY01_DEMO.py index 0e40125c197ec78e13db3a911bf2b0fab9b1f004..db645bb7a867d4908f522189d407d34c11ec3a0a 100644 --- a/pyKADMOS/AGILE_EY01_DEMO.py +++ b/pyKADMOS/AGILE_EY01_DEMO.py @@ -13,7 +13,7 @@ fig_size_laptop = (13,6) fig_size_screen = (12,11) fig_size = fig_size_laptop -demo_step = 8 +demo_step = 7 ''' DEMO STEPS @@ -108,7 +108,7 @@ FPG.node['/data_schema/MDO_data/obj']['PSG role'] = 'objective' MDA_type = 'Gauss-Seidel' analysis_order = ['Q3D_LOAD','EMWET','MASS'] -PSG = exampleProblem.get_PSG_for_MDF(FPG, MDA_type, analysis_order) +PSG = exampleProblem.get_PSG(FPG, 'MDF', analysis_order, MDA_type) file_name = 'AGILE_EY01_DEMO_small' create_XDSM(PSG,file_name) @@ -176,7 +176,7 @@ else: MDA_type = 'Gauss-Seidel' analysis_order = ['Q3D_LOAD','EMWET','MASS','Q3D_PERF','MISSION','ACAERO','PHALANX','EMISSION'] -PSG2 = exampleProblem.get_PSG_for_MDF(FPG2, MDA_type, analysis_order) +PSG2 = exampleProblem.get_PSG(FPG2, 'MDF', analysis_order, MDA_type) file_name2 = 'AGILE_EY01_DEMO_big' create_XDSM(PSG2,file_name2) diff --git a/pyKADMOS/AGILE_EY01_DEMO_big.log b/pyKADMOS/AGILE_EY01_DEMO_big.log index 52b74a294bbb8d629bc76932629cede175c5a51a..e176ed70064a99dc7b82faa098c28d7880c10539 100644 --- a/pyKADMOS/AGILE_EY01_DEMO_big.log +++ b/pyKADMOS/AGILE_EY01_DEMO_big.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 6 JUL 2016 17:19 +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 8 JUL 2016 14:09 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -635,10 +635,10 @@ Preview: Tightpage -327680 -327680 327680 327680 [1{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./AGILE_EY01_DEMO_big.aux) ) Here is how much of TeX's memory you used: - 15004 strings out of 493089 - 309424 string characters out of 6134841 - 410332 words of memory out of 5000000 - 18205 multiletter control sequences out of 15000+600000 + 15007 strings out of 493089 + 309491 string characters out of 6134841 + 411349 words of memory out of 5000000 + 18208 multiletter control sequences out of 15000+600000 5339 words of font info for 22 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 55i,17n,82p,439b,952s stack positions out of 5000i,500n,10000p,200000b,80000s @@ -649,7 +649,7 @@ c/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/ amsfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/ams fonts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsf onts/cm/cmsy7.pfb> -Output written on AGILE_EY01_DEMO_big.pdf (1 page, 70218 bytes). +Output written on AGILE_EY01_DEMO_big.pdf (1 page, 70219 bytes). PDF statistics: 59 PDF objects out of 1000 (max. 8388607) 33 compressed objects within 1 object stream diff --git a/pyKADMOS/AGILE_EY01_DEMO_big.pdf b/pyKADMOS/AGILE_EY01_DEMO_big.pdf index cd177783ae21595594241826f91e6945df334612..69ac161f1abc7605ebfdeaa30c313a088cb7a4dd 100644 Binary files a/pyKADMOS/AGILE_EY01_DEMO_big.pdf and b/pyKADMOS/AGILE_EY01_DEMO_big.pdf differ diff --git a/pyKADMOS/AGILE_EY01_DEMO_big.tex b/pyKADMOS/AGILE_EY01_DEMO_big.tex index 0f4829870e82d9ed70ba4e96dab0972eda019ef1..4975a3fa2cbeecade4cd72fe5e13fe6738178164 100644 --- a/pyKADMOS/AGILE_EY01_DEMO_big.tex +++ b/pyKADMOS/AGILE_EY01_DEMO_big.tex @@ -16,7 +16,7 @@ \matrix[MatrixSetup] { %Row 1 - \node [Initiator] (Initiator) {$0,8$:\\INI}; & + \node [Initiator] (Initiator) {$0,14$:\\INI}; & \node [DataIO] (Optimizer-Initiator) {1: $range^0$\\\\[-10pt] $eng\_T^0$}; & \node [DataIO] (MDA-Initiator) {2: $C\_D^{c0}$\\\\[-10pt] $C\_L^{c0}$\\\\[-10pt] $m\_MTOW^{c0}$\\\\[-10pt] $flight\_data^{c0}$\\\\[-10pt] $m\_fuel^{c0}$}; & \node [DataIO] (Q3D_LOAD-Initiator) {3: $wing\_MAC$\\\\[-10pt] $wing\_AR$\\\\[-10pt] $wing\_span$}; & @@ -30,7 +30,7 @@ & & \\ - \node [DataIO] (Initiator-Optimizer) {8: $eng\_T^*$\\\\[-10pt] $range^*$}; & + \node [DataIO] (Initiator-Optimizer) {14: $eng\_T^*$\\\\[-10pt] $range^*$}; & \node [Optimization] (Optimizer) {$1,13\to2$:\\OPT}; & & & @@ -58,7 +58,7 @@ & & \\ - \node [DataIO] (Initiator-Q3D_LOAD) {8: $aero\_loads^*$}; & + \node [DataIO] (Initiator-Q3D_LOAD) {14: $aero\_loads^*$}; & & & \node [Analysis] (Q3D_LOAD) {$3$:\\Q3D\_LOAD}; & @@ -72,7 +72,7 @@ & & \\ - \node [DataIO] (Initiator-EMWET) {8: $m\_wing^*$\\\\[-10pt] $max\_load\_fac^*$}; & + \node [DataIO] (Initiator-EMWET) {14: $m\_wing^*$\\\\[-10pt] $max\_load\_fac^*$}; & & & & @@ -87,7 +87,7 @@ & \node [DataInter] (CON_FD-EMWET) {12: $max\_load\_fac$}; \\ %Row 6 - \node [DataIO] (Initiator-MASS) {8: $m\_MTOW^*$\\\\[-10pt] $max\_load\_fac^*$\\\\[-10pt] $inertia\_MTOW^*$}; & + \node [DataIO] (Initiator-MASS) {14: $m\_MTOW^*$\\\\[-10pt] $max\_load\_fac^*$\\\\[-10pt] $inertia\_MTOW^*$}; & & \node [DataInter] (MDA-MASS) {11: $m\_MTOW$}; & & @@ -102,7 +102,7 @@ & \node [DataInter] (CON_FD-MASS) {12: $max\_load\_fac$}; \\ %Row 7 - \node [DataIO] (Initiator-Q3D_PERF) {8: $C\_D\_w^*$\\\\[-10pt] $C\_L\_w^*$}; & + \node [DataIO] (Initiator-Q3D_PERF) {14: $C\_D\_w^*$\\\\[-10pt] $C\_L\_w^*$}; & & & & @@ -116,7 +116,7 @@ & & \\ - \node [DataIO] (Initiator-MISSION) {8: $flight\_data^*$\\\\[-10pt] $m\_fuel^*$}; & + \node [DataIO] (Initiator-MISSION) {14: $flight\_data^*$\\\\[-10pt] $m\_fuel^*$}; & & \node [DataInter] (MDA-MISSION) {11: $flight\_data$\\\\[-10pt] $m\_fuel$}; & & @@ -130,7 +130,7 @@ & & \\ - \node [DataIO] (Initiator-ACAERO) {8: $C\_L^*$\\\\[-10pt] $cntrl\_der^*$\\\\[-10pt] $C\_D^*$}; & + \node [DataIO] (Initiator-ACAERO) {14: $C\_L^*$\\\\[-10pt] $cntrl\_der^*$\\\\[-10pt] $C\_D^*$}; & & \node [DataInter] (MDA-ACAERO) {11: $C\_L$\\\\[-10pt] $C\_D$}; & & @@ -144,7 +144,7 @@ & & \\ - \node [DataIO] (Initiator-PHALANX) {8: $char\_OEI^*$\\\\[-10pt] $max\_load\_fac^*$}; & + \node [DataIO] (Initiator-PHALANX) {14: $char\_OEI^*$\\\\[-10pt] $max\_load\_fac^*$}; & & & & @@ -159,7 +159,7 @@ & \node [DataInter] (CON_FD-PHALANX) {12: $char\_OEI$\\\\[-10pt] $max\_load\_fac$}; \\ %Row 11 - \node [DataIO] (Initiator-EMISSION) {8: $em\_CO2^*$\\\\[-10pt] $em\_NOX^*$}; & + \node [DataIO] (Initiator-EMISSION) {14: $em\_CO2^*$\\\\[-10pt] $em\_NOX^*$}; & & & & diff --git a/pyKADMOS/AGILE_EY01_DEMO_small.log b/pyKADMOS/AGILE_EY01_DEMO_small.log index a8c20f54d82350c4058710b3ccff2fb8b1c79183..e64dcc1ebe87420a40c837e6cfc3c689d56d99fd 100644 --- a/pyKADMOS/AGILE_EY01_DEMO_small.log +++ b/pyKADMOS/AGILE_EY01_DEMO_small.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 6 JUL 2016 17:19 +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 8 JUL 2016 14:09 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -649,7 +649,7 @@ lic/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publi c/amsfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/a msfonts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/am sfonts/cm/cmsy7.pfb> -Output written on AGILE_EY01_DEMO_small.pdf (1 page, 63182 bytes). +Output written on AGILE_EY01_DEMO_small.pdf (1 page, 63422 bytes). PDF statistics: 59 PDF objects out of 1000 (max. 8388607) 33 compressed objects within 1 object stream diff --git a/pyKADMOS/AGILE_EY01_DEMO_small.pdf b/pyKADMOS/AGILE_EY01_DEMO_small.pdf index 4b07bfa8d7674965c643e092f52896c90e1a2385..4a167184b56d187c749f3948b47da7e8812afccd 100644 Binary files a/pyKADMOS/AGILE_EY01_DEMO_small.pdf and b/pyKADMOS/AGILE_EY01_DEMO_small.pdf differ diff --git a/pyKADMOS/AGILE_EY01_DEMO_small.tex b/pyKADMOS/AGILE_EY01_DEMO_small.tex index 593f3b696432a24a88221480f6f032ffb94fd7d1..2c4039c723cde66fe7afa673a93acb8abae6c113 100644 --- a/pyKADMOS/AGILE_EY01_DEMO_small.tex +++ b/pyKADMOS/AGILE_EY01_DEMO_small.tex @@ -16,7 +16,7 @@ \matrix[MatrixSetup] { %Row 1 - \node [Initiator] (Initiator) {$0,7$:\\INI}; & + \node [Initiator] (Initiator) {$0,9$:\\INI}; & \node [DataIO] (Optimizer-Initiator) {1: $wing\_MAC^0$\\\\[-10pt] $wing\_span^0$}; & \node [DataIO] (MDA-Initiator) {2: $m\_MTOW^{c0}$}; & \node [DataIO] (Q3D_LOAD-Initiator) {3: $flight\_data$\\\\[-10pt] $wing\_AR$}; & @@ -25,7 +25,7 @@ & \node [DataIO] (Q3D_PERF-Initiator) {7: $flight\_data$\\\\[-10pt] $wing\_AR$}; \\ %Row 2 - \node [DataIO] (Initiator-Optimizer) {7: $wing\_MAC^*$\\\\[-10pt] $wing\_span^*$}; & + \node [DataIO] (Initiator-Optimizer) {9: $wing\_MAC^*$\\\\[-10pt] $wing\_span^*$}; & \node [Optimization] (Optimizer) {$1,8\to2$:\\OPT}; & & \node [DataInter] (Q3D_LOAD-Optimizer) {3: $wing\_MAC$\\\\[-10pt] $wing\_span$}; & @@ -42,7 +42,7 @@ & & \\ - \node [DataIO] (Initiator-Q3D_LOAD) {7: $aero\_loads^*$}; & + \node [DataIO] (Initiator-Q3D_LOAD) {9: $aero\_loads^*$}; & & & \node [Analysis] (Q3D_LOAD) {$3$:\\Q3D\_LOAD}; & @@ -50,7 +50,7 @@ & & \\ - \node [DataIO] (Initiator-EMWET) {7: $m\_wing^*$}; & + \node [DataIO] (Initiator-EMWET) {9: $m\_wing^*$}; & & & & @@ -58,7 +58,7 @@ \node [DataInter] (MASS-EMWET) {5: $m\_wing$}; & & \\ - \node [DataIO] (Initiator-MASS) {7: $m\_MTOW^*$}; & + \node [DataIO] (Initiator-MASS) {9: $m\_MTOW^*$}; & & \node [DataInter] (MDA-MASS) {6: $m\_MTOW$}; & & diff --git a/pyKADMOS/CPACSdummyProblem.py b/pyKADMOS/CPACSdummyProblem.py index bb329fe4c5759da9a88f77da81cd8d8c18af3906..ea32997d85bd1f2dc661ef29bbbd5837a6b2f068 100644 --- a/pyKADMOS/CPACSdummyProblem.py +++ b/pyKADMOS/CPACSdummyProblem.py @@ -136,7 +136,7 @@ FPG.node['/data_schema/MDO_data/obj']['PSG role'] = 'objective' MDA_type = 'Gauss-Seidel' analysis_order = ['Q3D_LOAD','EMWET','MASS','Q3D_PERF','MISSION','ACAERO','PHALANX','EMISSION'] -PSG = exampleProblem.get_PSG_for_MDF(FPG, MDA_type, analysis_order) +PSG = exampleProblem.get_PSG(FPG, MDA_type, analysis_order) plot_graph(PSG['process flow'], 10, color_setting='default', fig_size=fig_size, show_now=False) plot_graph(PSG['data flow'], 11, color_setting='default', fig_size=fig_size, show_now=False) diff --git a/pyKADMOS/MDOproblem.py b/pyKADMOS/MDOproblem.py index 584577ae9c22b4bbfe798d946c172d2157d30a0e..a57bde4984dc6abe326a2e51d615e46fd74c85ec 100644 --- a/pyKADMOS/MDOproblem.py +++ b/pyKADMOS/MDOproblem.py @@ -4,9 +4,10 @@ import pprint from os.path import join, isfile import metis import networkx as nx +import sys from lxml import etree from pyKADMOS import MDOvisualization -from pyKADMOS.MDOstatic import find_all_nodes +from pyKADMOS.MDOstatic import find_all_nodes, print_graph import re @@ -779,12 +780,14 @@ class MDOproblem: i += 1 return G_out - def get_PSG_for_MDF(self, FPG, MDA_type, analysis_order): + def get_PSG(self, FPG, MDO_architecture, analysis_order, MDA_type=None): """ Create the PSG graph for the MDF method. :param FPG: fundamental problem graph with required node properties :type FPG: DiGraph + :param MDO_architecture: MDO architecture to be used to wrap around the problem (MDF, IDF) + :type MDO_architecture: str :param MDA_type: type of multidisciplinary analysis to be implemented ('Gauss-Seidel' or 'Jacobi') :type MDA_type: str :param analysis_order: list with the order of the analyses in the MDA @@ -800,6 +803,10 @@ class MDOproblem: # Find all function nodes function_nodes = set(find_all_nodes(FPG, attr_cond=['category', '==', 'function'])) + # Assert MDO architecture input + assert set([MDO_architecture]).intersection(['MDF', 'IDF']), \ + "Invalid MDA type ('%s') specified." % MDA_type + # Select design variables, parameters, constraint and objective functions des_var_nodes = find_all_nodes(FPG, attr_cond=['PSG role', '==', 'design variable']) assert len(des_var_nodes) > 0, "No design variables are specified. Use the 'PSG role' attribute for this." @@ -808,7 +815,6 @@ class MDOproblem: constraint_nodes = find_all_nodes(FPG, attr_cond=['PSG role', '==', 'constraint']) assert len( constraint_nodes) > 0, "No constraint variables are specified. Use the 'PSG role' attribute for this." - objective_node = find_all_nodes(FPG, attr_cond=['PSG role', '==', 'objective']) assert len(objective_node) == 1, "%d design variables are specified. Only one objective node is allowed." \ "Use the 'PSG role' attribute for this." % len(objective_node) @@ -825,6 +831,11 @@ class MDOproblem: constraint_functions.append(FPG.in_edges(node)[0][0]) optimizer_functions = [objective_function] + constraint_functions + # Add constraint function for consistency constraints + if MDO_architecture == 'IDF': + constraint_functions.append('Gc') + optimizer_functions.append('Gc') + # Select analysis order functions for node in analysis_order: assert set([node]).intersection(function_nodes), \ @@ -838,38 +849,67 @@ class MDOproblem: "There are undefined functions present in the FPG, namely %s! These should be added to the analysis order" \ " or become objective/constraints functions." % MDA_analysis_nodes.difference(set(analysis_order)) + # Assert the MDA type and determine the amount of separate MDA steps (based on MDA type) + if MDO_architecture == 'MDF': + assert set([MDA_type]).intersection(['Gauss-Seidel','Jacobi']), \ + "Invalid MDA type ('%s') specified." % MDA_type + if MDA_type == 'Gauss-Seidel': + MDA_steps = len(analysis_order) + elif MDA_type == 'Jacobi': + MDA_steps = 1 + elif MDO_architecture == 'IDF': + assert MDA_type is None, \ + "Invalid MDA type ('%s') specified for IDF. MDA_type should be unspecified or None." % MDA_type + MDA_steps = 0 + + # Set the amount of start blocks before the first disciplinary analysis + # (used for block positioning and process step determination) + if MDO_architecture == 'MDF': + n_start_blocks = 3 # INI + OPT + MDA + elif MDO_architecture == 'IDF': + n_start_blocks = 2 # INI + OPT + #------------------# # PSG process flow # #------------------# # Set up PSG process graph PSG_process = nx.DiGraph() - PSG_process.graph['architecture'] = 'MDF' - PSG_process.graph['number_of_diagonal_blocks'] = 3 + len(analysis_order) + 1 + len(constraint_functions) + PSG_process.graph['architecture'] = MDO_architecture + PSG_process.graph['number_of_diagonal_blocks'] = n_start_blocks+len(analysis_order)+1+len(constraint_functions) PSG_process.graph['number_of_MDA_analyses'] = len(analysis_order) PSG_process.graph['number_of_OPT_functions'] = 1 + len(constraint_functions) - # Add MDA block - PSG_process.add_node('MDA', - category='architecture element', - subcategory='MDA', - shape='8', - label='MDA', - level=None, - diagonal_position=2, - process_step=2, - converger_step=3+len(analysis_order)) - - # Connect MDA + analyses - if MDA_type == 'Gauss-Seidel': - from_node = 'MDA' - for idx, node in enumerate(analysis_order): - PSG_process.add_node(node,FPG.node[node],diagonal_position=3+idx) - PSG_process.node[node]['category'] = 'architecture element' - PSG_process.node[node]['subcategory'] = 'MDA analysis' - PSG_process.node[node]['process_step'] = idx+3 - PSG_process.add_edge(from_node, node, process_step=idx+3) - from_node = node - PSG_process.add_edge(from_node,'MDA',process_step=idx+4) + if MDO_architecture == 'MDF': + # Add MDA block + PSG_process.add_node('MDA', + category='architecture element', + subcategory='MDA', + shape='8', + label='MDA', + level=None, + diagonal_position=2, + process_step=2, + converger_step=n_start_blocks+MDA_steps) + + # Connect MDA + analyses + if MDA_type == 'Gauss-Seidel': + from_node = 'MDA' + for idx, node in enumerate(analysis_order): + PSG_process.add_node(node,FPG.node[node],diagonal_position=n_start_blocks+idx) + PSG_process.node[node]['category'] = 'architecture element' + PSG_process.node[node]['subcategory'] = 'MDA analysis' + PSG_process.node[node]['process_step'] = idx+n_start_blocks + PSG_process.add_edge(from_node, node, process_step=idx+n_start_blocks) + from_node = node + PSG_process.add_edge(from_node,'MDA',process_step=idx+n_start_blocks+1) + elif MDA_type == 'Jacobi': + for idx, node in enumerate(analysis_order): + PSG_process.add_node(node, FPG.node[node], diagonal_position=n_start_blocks + idx) + PSG_process.node[node]['category'] = 'architecture element' + PSG_process.node[node]['subcategory'] = 'MDA analysis' + PSG_process.node[node]['process_step'] = n_start_blocks + PSG_process.add_edge('MDA', node, process_step= n_start_blocks) + PSG_process.add_edge(node, 'MDA', process_step= n_start_blocks+1) # Add optimization block PSG_process.add_node('Optimizer', @@ -880,19 +920,58 @@ class MDOproblem: level=None, diagonal_position=1, process_step=1, - converger_step=3+len(analysis_order)+2) + converger_step=n_start_blocks+MDA_steps+2) - # Connect optimization with MDA - PSG_process.add_edge('Optimizer', 'MDA', process_step=2) + if MDO_architecture == 'MDF': + # Connect optimization with MDA + PSG_process.add_edge('Optimizer', 'MDA', process_step=2) + elif MDO_architecture == 'IDF': + # Connect optimization with disciplinary analyses + for idx, node in enumerate(analysis_order): + PSG_process.add_node(node, FPG.node[node], diagonal_position=n_start_blocks + idx) + PSG_process.node[node]['category'] = 'architecture element' + PSG_process.node[node]['subcategory'] = 'MDA analysis' + PSG_process.node[node]['process_step'] = n_start_blocks + PSG_process.add_edge('Optimizer', node, process_step=n_start_blocks) - # Connect MDA with functions and functions with optimizer + # Connect start section (MDA or optimizer) with functions and functions with optimizer + Gc_all_in_nodes = [] for idx, node in enumerate(optimizer_functions): - PSG_process.add_node(node, FPG.node[node],diagonal_position=3+len(analysis_order)+idx) + if node == 'Gc': + node_data = {'label':'Gc','execution time':1,'weight': 10, 'level': None, 'shape' : '8'} + # TODO: ADJUST AND RECONSIDER THE COPYING OF FPG ATTRIBUTES + else: + node_data = FPG.node[node] + PSG_process.add_node(node, node_data,diagonal_position=n_start_blocks+len(analysis_order)+idx) PSG_process.node[node]['category'] = 'architecture element' PSG_process.node[node]['subcategory'] = 'optimizer function' - PSG_process.node[node]['process_step'] = 4+len(analysis_order) - PSG_process.add_edge('MDA',node, process_step=4+len(analysis_order)) - PSG_process.add_edge(node,'Optimizer', process_step=5+len(analysis_order)) + PSG_process.node[node]['process_step'] = n_start_blocks+1+MDA_steps + if MDO_architecture == 'MDF': + PSG_process.add_edge('MDA', node, process_step=n_start_blocks+1+MDA_steps) + elif MDO_architecture == 'IDF': + # Get all the disciplinary analyses that are coupled as incoming edges to the node + opt_func_in_nodes = map((lambda x: x[0]), FPG.in_edges(node)) + ana_func_out_nodes = [map((lambda x: x[1]), FPG.out_edges(item)) for item in analysis_order] + + for idx2,item in enumerate(analysis_order): + # Determine the coupled node(s) between the blocks + coupled_nodes = set(opt_func_in_nodes).intersection(set(ana_func_out_nodes[idx2])) + # Make process edge if there is a coupled node between the blocks + if coupled_nodes: + PSG_process.add_edge(item, node, process_step=n_start_blocks + 1) + + if node == 'Gc': + # Determine if the disciplinary analysis has coupling variables and, if so, then connect the + # disciplinary analysis to the consistency constraint block + coupling_nodes = find_all_nodes(FPG, category='variable', subcategory='all couplings') + analysis_out_edges = map((lambda x: x[1]), FPG.out_edges(item)) + Gc_in_nodes = list(set(coupling_nodes).intersection(set(analysis_out_edges))) + Gc_all_in_nodes = Gc_all_in_nodes+Gc_in_nodes + if Gc_in_nodes: + PSG_process.add_edge(item,node,process_step=n_start_blocks + 1 + MDA_steps) + + # Add edge between optimizer function and Optimizer + PSG_process.add_edge(node, 'Optimizer', process_step=n_start_blocks + 1 + MDA_steps + 1) # Add Initiator block PSG_process.add_node('Initiator', @@ -903,29 +982,31 @@ class MDOproblem: level=None, diagonal_position=0, process_step = 0, - converger_step = 6+len(constraint_functions)) + converger_step = n_start_blocks+3+MDA_steps) + # Connect initiator with optimizer PSG_process.add_edge('Initiator', 'Optimizer', process_step=1) - PSG_process.add_edge('Optimizer', 'Initiator', process_step=6+len(constraint_functions)) + PSG_process.add_edge('Optimizer', 'Initiator', process_step=n_start_blocks+3+MDA_steps) # ------------------# # PSG data flow # # ------------------# # Set up PSG process graph PSG_data = nx.compose(nx.DiGraph(),FPG) - PSG_data.graph['architecture'] = 'MDF' - PSG_data.graph['number_of_diagonal_blocks'] = 2 + len(analysis_order) + 1 + len(constraint_functions) + PSG_data.graph['architecture'] = MDO_architecture + PSG_data.graph['number_of_diagonal_blocks'] = n_start_blocks+len(analysis_order) + 1 + len(constraint_functions) PSG_data.graph['number_of_MDA_analyses'] = len(analysis_order) PSG_data.graph['number_of_OPT_functions'] = 1 + len(constraint_functions) - # Add MDA block - PSG_data.add_node('MDA', - category='architecture element', - subcategory='MDA', - shape='8', - label='MDA', - level=None, - diagonal_position=2) + if MDO_architecture == 'MDF': + # Add MDA block + PSG_data.add_node('MDA', + category='architecture element', + subcategory='MDA', + shape='8', + label='MDA', + level=None, + diagonal_position=2) # Add Initiator block PSG_data.add_node('Initiator', @@ -937,63 +1018,74 @@ class MDOproblem: diagonal_position=0) # Loop over MDA analyses, add copy variables and adjust edges - if MDA_type == 'Gauss-Seidel': - for idx, analysis in enumerate(analysis_order): - PSG_data.node[analysis]['category'] = 'architecture element' - PSG_data.node[analysis]['subcategory'] = 'MDA analysis' - PSG_data.node[analysis]['diagonal_position'] = 3+idx - - # Check incoming edges - in_edges = FPG.in_edges(analysis) - for edge in in_edges: - # Check if edge is an input - in_node = edge[0] - if not set([in_node]).intersection(set(find_all_nodes(FPG,subcategory='all inputs'))): - if set([in_node]).intersection(set(find_all_nodes(FPG, subcategory='all problematic nodes'))): - raise IOError("A problematic node is still present in the FPG.") - elif set([in_node]).intersection(set(find_all_nodes(FPG, subcategory='all couplings'))): - # Check if the node is coupled to a future analysis - coupled_functions = map((lambda x: x[0]), FPG.in_edges(in_node)) - if set(coupled_functions).intersection(set(analysis_order[idx:])): - # Add variable copy node between MDA and function - new_node = '/PSG/coupling_variables/MDA/' + FPG.node[in_node]['label'] + str('^c') - PSG_data.add_node(new_node, - category='architecture element', - subcategory='MDA coupling variable', - shape='o', - label=FPG.node[in_node]['label'] + '^c', - level=3) - PSG_data.add_edge('MDA',new_node) - PSG_data.add_edge(new_node, analysis) - PSG_data.remove_edge(in_node,edge[1]) - # Add edge between the coupling variable and the MDA - PSG_data.add_edge(in_node,'MDA') - # Add initial guess MDA coupling variable - new_node = '/PSG/coupling_variables/MDA/' + FPG.node[in_node]['label'] + str('^{c0}') - PSG_data.add_node(new_node, - category='architecture element', - subcategory='initial guess MDA coupling variable', - shape='o', - label=FPG.node[in_node]['label'] + '^{c0}', - level=3) - PSG_data.add_edge(new_node, 'MDA') - PSG_data.add_edge('Initiator', new_node) - # Check outcoming edges - out_edges = FPG.out_edges(analysis) - for edge in out_edges: - # Check if edge is a coupling variable - out_node = edge[1] - if set([out_node]).intersection(set(find_all_nodes(FPG, subcategory='all couplings'))): - # Add final coupling variable node and connect to analysis function and initiator - new_node = '/PSG/coupling_variables/MDA/' + FPG.node[out_node]['label'] + str('^*') - PSG_data.add_node(new_node, - category='architecture element', - subcategory='final MDA coupling variable', - shape='o', - label=FPG.node[out_node]['label'] + '^*', - level=3) - PSG_data.add_edge(analysis,new_node) - PSG_data.add_edge(new_node,'Initiator') + for idx, analysis in enumerate(analysis_order): + PSG_data.node[analysis]['category'] = 'architecture element' + PSG_data.node[analysis]['subcategory'] = 'MDA analysis' + PSG_data.node[analysis]['diagonal_position'] = n_start_blocks+idx + + # Check incoming edges + in_edges = FPG.in_edges(analysis) + for edge in in_edges: + # Check if edge is an input + in_node = edge[0] + if not set([in_node]).intersection(set(find_all_nodes(FPG,subcategory='all inputs'))): + if set([in_node]).intersection(set(find_all_nodes(FPG, subcategory='all problematic nodes'))): + raise IOError("A problematic node is still present in the FPG.") + elif set([in_node]).intersection(set(find_all_nodes(FPG, subcategory='all couplings'))): + # Check if the node is coupled to a any critical analyses + if MDA_type == 'Gauss-Seidel': # For Gauss-Seidel, only check for future analyses + analysis_checklist = analysis_order[idx:] + elif MDA_type == 'Jacobi' or MDO_architecture == 'IDF': # For Jacobi and IDF, check for all + # analyses in the MDA + analysis_checklist = analysis_order + # Set the node to which copy variables should be linked + if MDO_architecture == 'MDF': + copy_var_block = 'MDA' + elif MDO_architecture == 'IDF': + copy_var_block = 'Optimizer' + # Get all the functions that are coupled as incoming edges to the node + coupled_functions = map((lambda x: x[0]), FPG.in_edges(in_node)) + if set(coupled_functions).intersection(set(analysis_checklist)): + # Add variable copy node between MDA and function + new_node = '/PSG/coupling_variables/MDA/' + FPG.node[in_node]['label'] + str('^c') + PSG_data.add_node(new_node, + category='architecture element', + subcategory='MDA coupling variable', + shape='o', + label=FPG.node[in_node]['label'] + '^c', + level=3) + PSG_data.add_edge(copy_var_block,new_node) + PSG_data.add_edge(new_node, analysis) + PSG_data.remove_edge(in_node,edge[1]) + # Add edge between the coupling variable and the MDA if architecture is MDF + if MDO_architecture == 'MDF': + PSG_data.add_edge(in_node,copy_var_block) + # Add initial guess MDA coupling variable + new_node = '/PSG/coupling_variables/MDA/' + FPG.node[in_node]['label'] + str('^{c0}') + PSG_data.add_node(new_node, + category='architecture element', + subcategory='initial guess MDA coupling variable', + shape='o', + label=FPG.node[in_node]['label'] + '^{c0}', + level=3) + PSG_data.add_edge(new_node, copy_var_block) + PSG_data.add_edge('Initiator', new_node) + # Check outcoming edges + out_edges = FPG.out_edges(analysis) + for edge in out_edges: + # Check if edge is a coupling variable + out_node = edge[1] + if set([out_node]).intersection(set(find_all_nodes(FPG, subcategory='all couplings'))): + # Add final coupling variable node and connect to analysis function and initiator + new_node = '/PSG/coupling_variables/MDA/' + FPG.node[out_node]['label'] + str('^*') + PSG_data.add_node(new_node, + category='architecture element', + subcategory='final MDA coupling variable', + shape='o', + label=FPG.node[out_node]['label'] + '^*', + level=3) + PSG_data.add_edge(analysis,new_node) + PSG_data.add_edge(new_node,'Initiator') # Recategorize design variables and connect to optimizer and initiator # Add optimization block @@ -1036,9 +1128,33 @@ class MDOproblem: # Connect parameter node to initiator PSG_data.add_edge('Initiator', node) + # For IDF, add the consistency constraint calculation block and create the necessary connections + if MDO_architecture == 'IDF': + node_data = {'label': 'Gc', 'level': None, 'category' : 'architecture element', + 'subcategory' : 'optimizer function', 'shape' : '8'} + PSG_data.add_node('Gc', node_data, diagonal_position=n_start_blocks + len(analysis_order) + + len(optimizer_functions)-1) + PSG_data.node[node]['category'] = 'architecture element' + PSG_data.node[node]['subcategory'] = 'optimizer function' + + for node in Gc_all_in_nodes: + # Connect the coupling node to the consistency constraint function + PSG_data.add_edge(node,'Gc') + # Add variable node for each consistency constraint value + new_node = '/PSG/coupling_variables/consistency_constraint/'+str('g_')+PSG_data.node[node]['label']+'^c' + PSG_data.add_node(new_node, + category='architecture element', + subcategory='consistency constraint value', + shape='o', + label=str('g_')+PSG_data.node[node]['label'] + '^c', + level=3) + # Add edge between new nodes + PSG_data.add_edge('Gc',new_node) + PSG_data.add_edge(new_node,'Optimizer') + # Adjust and connect optimizer functions output to optimizer for idx, node in enumerate(optimizer_functions): - PSG_data.node[node]['diagonal_position']= 3 + len(analysis_order) + idx + PSG_data.node[node]['diagonal_position']= n_start_blocks + len(analysis_order) + idx PSG_data.node[node]['category'] = 'architecture element' PSG_data.node[node]['subcategory'] = 'optimizer function' for node in optimizer_nodes_in: diff --git a/pyKADMOS/MDOproblem.pyc b/pyKADMOS/MDOproblem.pyc index d492bca0d1054f80b496480157ed0c4439f7e391..e78169404accfd510b74d2f7365409a0e82a817b 100644 Binary files a/pyKADMOS/MDOproblem.pyc and b/pyKADMOS/MDOproblem.pyc differ diff --git a/pyKADMOS/MDOstatic.py b/pyKADMOS/MDOstatic.py index e41cc6edb29bc29e60270f0471f432e95807367a..2609c16e07cfd82f7ad808ccb0df80afa9e9a791 100644 --- a/pyKADMOS/MDOstatic.py +++ b/pyKADMOS/MDOstatic.py @@ -4,6 +4,7 @@ Collection of static functions import pprint import networkx as nx +import sys def get_graph_nodes_indegree(graph): @@ -150,24 +151,24 @@ def get_categorized_nodes(graph, print_in_log=True): graph = add_nodes_subcategory(graph) # Write keywords in plural by adding an 's' at the end result = {'variable': {'hole': [], - 'supplied input': [], - 'supplied shared input': [], - 'output': [], - 'collision': [], - 'coupling': [], - 'shared coupling': [], - 'collided coupling': [], - 'collided shared coupling': []}, + 'supplied input': [], + 'supplied shared input': [], + 'output': [], + 'collision': [], + 'coupling': [], + 'shared coupling': [], + 'collided coupling': [], + 'collided shared coupling': []}, 'variable group': {'hole group': [], - 'supplied input group': [], - 'supplied shared input group': [], - 'output group': [], - 'coupling group': [], - 'shared coupling group': []}, + 'supplied input group': [], + 'supplied shared input group': [], + 'output group': [], + 'coupling group': [], + 'shared coupling group': []}, 'function': {'hole': [], - 'inputless': [], - 'outputless': [], - 'complete': []}, + 'inputless': [], + 'outputless': [], + 'complete': []}, 'architecture element': {'initiator': [], 'optimizer': [], 'MDA': [], @@ -177,7 +178,8 @@ def get_categorized_nodes(graph, print_in_log=True): 'final design variable': [], 'MDA coupling variable': [], 'initial guess MDA coupling variable': [], - 'final MDA coupling variable': []}} + 'final MDA coupling variable': [], + 'consistency constraint value':[]}} for node, data in graph.nodes_iter(data=True): for key1 in result: @@ -263,6 +265,7 @@ def find_all_nodes(graph, category='all', subcategory='all', attr_cond=None, pri * MDA coupling variable * initial guess MDA coupling variable * final MDA coupling variable + * consistency constraint value Example usage: Just get all nodes of a graph in a list: @@ -288,7 +291,7 @@ def find_all_nodes(graph, category='all', subcategory='all', attr_cond=None, pri 'shared coupling group','hole','inputless','outputless','complete','initiator', 'optimizer','MDA','optimizer function','MDA analysis','initial guess design variable', 'final design variable','MDA coupling variable','initial guess MDA coupling variable', - 'final MDA coupling variable'] + 'final MDA coupling variable','consistency constraint value'] assert isinstance(graph,type(nx.DiGraph())) assert isinstance(category, str) assert isinstance(subcategory, str) @@ -463,3 +466,39 @@ def get_adjacency_matrix(graph, print_in_log=True): return {'dict of dicts': nx.convert.to_dict_of_dicts(graph, edge_data=1), 'SciPy sparse matrix': nx.adjacency_matrix(graph)} + + +def print_graph(graph,exit_after_print=False): + """ + Function to print the full graph in the log. + + :param graph: NetworkX graph + :type graph: graph + :param exit_after_print: Boolean on whether to exit after printing + :type exit_after_print: bool + :return: print in log + :rtype: print + """ + + print '- - - - - - - - - - - - - -' + print '\n GRAPH PRINT-OUT \n' + print '- - - - - - - - - - - - - -' + print 'GRAPH ATTRIBUTES\n----------------' + print graph.graph + + print '\nNODES\n-----' + + for node, data in graph.nodes_iter(data=True): + print node + print data + print '- - -' + + print '\nEDGES\n-----' + for edge in graph.edges_iter(data=True): + print edge[0] + print edge[1] + print edge[2] + print '- - -' + + if exit_after_print: + sys.exit() \ No newline at end of file diff --git a/pyKADMOS/MDOstatic.pyc b/pyKADMOS/MDOstatic.pyc index f462c24690455ba175006ad2fc55371f4563db76..69bf39038064d85126352471ec719cbdf9962a7b 100644 Binary files a/pyKADMOS/MDOstatic.pyc and b/pyKADMOS/MDOstatic.pyc differ diff --git a/pyKADMOS/doc/KADMOS.html b/pyKADMOS/doc/KADMOS.html index 2e90c70135a0c4c71c730dc64b418e5d8214e461..912de3d25c08395e4bbfd0a8b837940bb3f94248 100644 --- a/pyKADMOS/doc/KADMOS.html +++ b/pyKADMOS/doc/KADMOS.html @@ -165,7 +165,7 @@ dictionary with the nodes that have a value.</p> <dl class="method"> <dt id="pyKADMOS.MDOproblem.MDOproblem.get_PSG_for_MDF"> -<code class="descname">get_PSG_for_MDF</code><span class="sig-paren">(</span><em>FPG</em>, <em>MDA_type</em>, <em>analysis_order</em><span class="sig-paren">)</span><a class="headerlink" href="#pyKADMOS.MDOproblem.MDOproblem.get_PSG_for_MDF" title="Permalink to this definition">¶</a></dt> +<code class="descname">get_PSG</code><span class="sig-paren">(</span><em>FPG</em>, <em>MDA_type</em>, <em>analysis_order</em><span class="sig-paren">)</span><a class="headerlink" href="#pyKADMOS.MDOproblem.MDOproblem.get_PSG_for_MDF" title="Permalink to this definition">¶</a></dt> <dd><p>Create the PSG graph for the MDF method.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> diff --git a/pyKADMOS/doc/genindex.html b/pyKADMOS/doc/genindex.html index 42d5a02c90af8366e761b735aedd9f931236cc89..3faf8b30906d81e9b6de7a75fa26310f828b17f8 100644 --- a/pyKADMOS/doc/genindex.html +++ b/pyKADMOS/doc/genindex.html @@ -182,7 +182,7 @@ </dt> - <dt><a href="KADMOS.html#pyKADMOS.MDOproblem.MDOproblem.get_PSG_for_MDF">get_PSG_for_MDF() (pyKADMOS.MDOproblem.MDOproblem method)</a> + <dt><a href="KADMOS.html#pyKADMOS.MDOproblem.MDOproblem.get_PSG_for_MDF">get_PSG() (pyKADMOS.MDOproblem.MDOproblem method)</a> </dt> </dl></td> diff --git a/pyKADMOS/sellarProblem.py b/pyKADMOS/sellarProblem.py index eed8f4308908704030dd0839c16178319e67da92..c38fcd657383891b1a7a5c004629ddb2bbbd1e26 100644 --- a/pyKADMOS/sellarProblem.py +++ b/pyKADMOS/sellarProblem.py @@ -1,6 +1,10 @@ +import os import pprint import networkx as nx +import sys + +import matplotlib as plt from pyKADMOS.MDOproblem import MDOproblem from pyKADMOS.MDOstatic import get_adjacency_matrix, find_all_nodes @@ -72,23 +76,62 @@ MCG_part = sellarProblem.get_partitioned_graph(MCG,3,output='Graph',recursive=Fa plot_graph(MCG_part, 9, color_setting='partitions', fig_size=fig_size, show_now=False) # Get the PSG for an MDF approach with Gauss-Seidel -FPG_MDF = MCG.copy() +FPG = MCG.copy() + +# Set the key nodes for the optimization +FPG.node['/data_schema/geometry/z1']['PSG role'] = 'design variable' +FPG.node['/data_schema/geometry/z2']['PSG role'] = 'design variable' +FPG.node['/data_schema/geometry/x1']['PSG role'] = 'design variable' +FPG.node['/data_schema/analyses/g1']['PSG role'] = 'constraint' +FPG.node['/data_schema/analyses/g2']['PSG role'] = 'constraint' +FPG.node['/data_schema/analyses/f']['PSG role'] = 'objective' + +# Create MDO architectures +# MDF with Gauss-Seidel +MDO_architecture = 'MDF' +MDA_type = 'Gauss-Seidel' +analysis_order = ['D1', 'D2'] -find_all_nodes(FPG_MDF, print_in_log=True) +PSG_MDF_GS = sellarProblem.get_PSG(FPG, MDO_architecture, analysis_order, MDA_type) -FPG_MDF.node['/data_schema/geometry/z1']['PSG role'] = 'design variable' -FPG_MDF.node['/data_schema/geometry/z2']['PSG role'] = 'design variable' -#FPG_MDF.node['/data_schema/geometry/x1']['PSG role'] = 'design variable' -FPG_MDF.node['/data_schema/analyses/g1']['PSG role'] = 'constraint' -FPG_MDF.node['/data_schema/analyses/g2']['PSG role'] = 'constraint' -FPG_MDF.node['/data_schema/analyses/f']['PSG role'] = 'objective' +plot_graph(PSG_MDF_GS['process flow'], 10, color_setting='default', fig_size=fig_size, show_now=False) +plot_graph(PSG_MDF_GS['data flow'], 11, color_setting='default', fig_size=fig_size, show_now=False) -MDA_type = 'Gauss-Seidel' -analysis_order = ['D1','D2'] +file_name = 'sellarProblemXDSM_MDF_GS' +create_XDSM(PSG_MDF_GS,file_name) +print '' +print 'XDSM file created.' +os.system('open '+file_name+'.pdf') + +# MDF with Jacobi +MDO_architecture = 'MDF' +MDA_type = 'Jacobi' + +PSG_MDF_J = sellarProblem.get_PSG(FPG, MDO_architecture, analysis_order, MDA_type) + +plot_graph(PSG_MDF_J['process flow'], 12, color_setting='default', fig_size=fig_size, show_now=False) +plot_graph(PSG_MDF_J['data flow'], 13, color_setting='default', fig_size=fig_size, show_now=False) + +file_name = 'sellarProblemXDSM_MDF_Jac' +create_XDSM(PSG_MDF_J,file_name) +print '' +print 'XDSM file created.' +os.system('open '+file_name+'.pdf') + +# IDF +MDO_architecture = 'IDF' +MDA_type = None + +PSG_IDF = sellarProblem.get_PSG(FPG, MDO_architecture, analysis_order, MDA_type) -PSG = sellarProblem.get_PSG_for_MDF(FPG_MDF, MDA_type, analysis_order) +plot_graph(PSG_IDF['process flow'], 12, color_setting='default', fig_size=fig_size, show_now=False) +plot_graph(PSG_IDF['data flow'], 13, color_setting='default', fig_size=fig_size, show_now=False) -plot_graph(PSG['process flow'], 10, color_setting='default', fig_size=fig_size, show_now=False) -plot_graph(PSG['data flow'], 11, color_setting='default', fig_size=fig_size, show_now=False) +file_name = 'sellarProblemXDSM_IDF' +create_XDSM(PSG_IDF,file_name) +print '' +print 'XDSM file created.' +os.system('open '+file_name+'.pdf') -create_XDSM(PSG,'sellarProblemXDSM') \ No newline at end of file +# Exit script +sys.exit() \ No newline at end of file diff --git a/pyKADMOS/sellarProblemXDSM.aux b/pyKADMOS/sellarProblemXDSM_IDF.aux similarity index 100% rename from pyKADMOS/sellarProblemXDSM.aux rename to pyKADMOS/sellarProblemXDSM_IDF.aux diff --git a/pyKADMOS/sellarProblemXDSM.log b/pyKADMOS/sellarProblemXDSM_IDF.log similarity index 95% rename from pyKADMOS/sellarProblemXDSM.log rename to pyKADMOS/sellarProblemXDSM_IDF.log index 9f1b7beb0c459d96e9d835c42dfaf7b5ba1e684b..3dcd49c9d81bd4f30f4142a4d213631a646db3c8 100644 --- a/pyKADMOS/sellarProblemXDSM.log +++ b/pyKADMOS/sellarProblemXDSM_IDF.log @@ -1,9 +1,9 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 6 JUL 2016 17:24 +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 11 JUL 2016 11:05 entering extended mode restricted \write18 enabled. %&-line parsing enabled. -**sellarProblemXDSM.tex -(./sellarProblemXDSM.tex +**sellarProblemXDSM_IDF.tex +(./sellarProblemXDSM_IDF.tex LaTeX2e <2015/01/01> Babel <3.9l> and hyphenation patterns for 79 languages loaded. (/usr/local/texlive/2015/texmf-dist/tex/latex/base/article.cls @@ -500,8 +500,8 @@ Package: preview 2010/02/14 11.88 (AUCTeX/preview-latex) \pr@box=\box39 \pr@output=\toks34 )) -(./sellarProblemXDSM.aux) -\openout1 = `sellarProblemXDSM.aux'. +(./sellarProblemXDSM_IDF.aux) +\openout1 = `sellarProblemXDSM_IDF.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 10. LaTeX Font Info: ... okay on input line 10. @@ -627,29 +627,29 @@ LaTeX Font Info: Try loading font information for U+msb on input line 19. (/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2013/01/14 v3.01 AMS symbols B ) -Overfull \hbox (28.94588pt too wide) in paragraph at lines 195--195 +Overfull \hbox (87.5447pt too wide) in paragraph at lines 210--210 [][] [] Preview: Tightpage -327680 -327680 327680 327680 [1{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] -(./sellarProblemXDSM.aux) ) +(./sellarProblemXDSM_IDF.aux) ) Here is how much of TeX's memory you used: - 14579 strings out of 493089 - 298228 string characters out of 6134841 - 359792 words of memory out of 5000000 - 17780 multiletter control sequences out of 15000+600000 + 14552 strings out of 493089 + 297609 string characters out of 6134841 + 357415 words of memory out of 5000000 + 17753 multiletter control sequences out of 15000+600000 5339 words of font info for 22 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 55i,15n,82p,437b,952s stack positions out of 5000i,500n,10000p,200000b,80000s -</usr/local/texlive/2015/texmf-dist/fonts/type1/publ -ic/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publi -c/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/ -amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/am -sfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfo -nts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfon -ts/cm/cmsy7.pfb> -Output written on sellarProblemXDSM.pdf (1 page, 55471 bytes). + 55i,17n,82p,441b,952s stack positions out of 5000i,500n,10000p,200000b,80000s +</usr/local/texlive/2015/texmf-dist/fonts/type1/ +public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/p +ublic/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/pub +lic/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publi +c/amsfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/a +msfonts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/am +sfonts/cm/cmsy7.pfb> +Output written on sellarProblemXDSM_IDF.pdf (1 page, 54657 bytes). PDF statistics: 59 PDF objects out of 1000 (max. 8388607) 33 compressed objects within 1 object stream diff --git a/pyKADMOS/sellarProblemXDSM_IDF.pdf b/pyKADMOS/sellarProblemXDSM_IDF.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1ddd0f993484c2a4be47c5f559284843292fe92 Binary files /dev/null and b/pyKADMOS/sellarProblemXDSM_IDF.pdf differ diff --git a/pyKADMOS/sellarProblemXDSM_IDF.tex b/pyKADMOS/sellarProblemXDSM_IDF.tex new file mode 100644 index 0000000000000000000000000000000000000000..6a32393f1bffcc84489b8c9fb2e3a0c7214781fe --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_IDF.tex @@ -0,0 +1,212 @@ +\documentclass{article} +\usepackage{geometry} +\usepackage{amsfonts} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{tikz} + +\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_border} + +\begin{document} + +\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_styles} + +\begin{tikzpicture} + + \matrix[MatrixSetup] + { + %Row 1 + \node [Initiator] (Initiator) {$0,5$:\\INI}; & + \node [DataIO] (Optimizer-Initiator) {1: $y2^{c0}$\\\\[-10pt] $z1^0$\\\\[-10pt] $z2^0$\\\\[-10pt] $y1^{c0}$\\\\[-10pt] $x1^0$}; & + & + & + & + & + & + \\ + \node [DataIO] (Initiator-Optimizer) {5: $z1^*$\\\\[-10pt] $z2^*$\\\\[-10pt] $x1^*$}; & + \node [Optimization] (Optimizer) {$1,4\to2$:\\OPT}; & + \node [DataInter] (D1-Optimizer) {2: $x1$\\\\[-10pt] $z2$\\\\[-10pt] $z1$\\\\[-10pt] $y2^c$}; & + \node [DataInter] (D2-Optimizer) {2: $y1^c$\\\\[-10pt] $z2$\\\\[-10pt] $z1$}; & + \node [DataInter] (F-Optimizer) {3: $x1$\\\\[-10pt] $z2$}; & + & + & + \\ + \node [DataIO] (Initiator-D1) {5: $y1^*$}; & + & + \node [Analysis] (D1) {$2$:\\D1}; & + & + \node [DataInter] (F-D1) {3: $y1$}; & + & + \node [DataInter] (G1-D1) {3: $y1$}; & + \node [DataInter] (Gc-D1) {3: $y1$}; \\ + %Row 4 + \node [DataIO] (Initiator-D2) {5: $y2^*$}; & + & + & + \node [Analysis] (D2) {$2$:\\D2}; & + \node [DataInter] (F-D2) {3: $y2$}; & + \node [DataInter] (G2-D2) {3: $y2$}; & + & + \node [DataInter] (Gc-D2) {3: $y2$}; \\ + %Row 5 + & + \node [DataInter] (Optimizer-F) {4: $f$}; & + & + & + \node [Function] (F) {$3$:\\F}; & + & + & + \\ + & + \node [DataInter] (Optimizer-G2) {4: $g2$}; & + & + & + & + \node [Function] (G2) {$3$:\\G2}; & + & + \\ + & + \node [DataInter] (Optimizer-G1) {4: $g1$}; & + & + & + & + & + \node [Function] (G1) {$3$:\\G1}; & + \\ + & + \node [DataInter] (Optimizer-Gc) {4: $g\_y1^c$\\\\[-10pt] $g\_y2^c$}; & + & + & + & + & + & + \node [Function] (Gc) {$3$:\\Gc}; \\ + %Row 9 + }; + + % XDSM_writer process chains + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Initiator); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Optimizer); + \chainin (Initiator) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Optimizer); + \chainin (D2) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Optimizer); + \chainin (D1) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (G2); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (G1); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (F); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Gc); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D2); + \chainin (Gc) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D2); + \chainin (G2) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D2); + \chainin (F) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D1); + \chainin (Gc) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D1); + \chainin (G1) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D1); + \chainin (F) [join=by ProcessHV]; + \end{pgfonlayer} + } + + \begin{pgfonlayer}{data} + \path + % Horizontal edges + (Initiator) edge [DataLine] (Optimizer-Initiator) + (Initiator-Optimizer) edge [DataLine] (F-Optimizer) + (Initiator-D1) edge [DataLine] (Gc-D1) + (Initiator-D2) edge [DataLine] (Gc-D2) + (Optimizer-F) edge [DataLine] (F) + (Optimizer-G2) edge [DataLine] (G2) + (Optimizer-G1) edge [DataLine] (G1) + (Optimizer-Gc) edge [DataLine] (Gc) + % Vertical edges + (Initiator) edge [DataLine] (Initiator-D2) + (Optimizer-Initiator) edge [DataLine] (Optimizer-Gc) + (D1-Optimizer) edge [DataLine] (D1) + (D2-Optimizer) edge [DataLine] (D2) + (F-Optimizer) edge [DataLine] (F) + (G2-D2) edge [DataLine] (G2) + (G1-D1) edge [DataLine] (G1) + (Gc-D1) edge [DataLine] (Gc) + ; + \end{pgfonlayer} + +\end{tikzpicture} + +\end{document} diff --git a/pyKADMOS/sellarProblemXDSM_MDF_GS.aux b/pyKADMOS/sellarProblemXDSM_MDF_GS.aux new file mode 100644 index 0000000000000000000000000000000000000000..f23e54680b733bda6c050da350d99bdea7fb9933 --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_MDF_GS.aux @@ -0,0 +1 @@ +\relax diff --git a/pyKADMOS/sellarProblemXDSM_MDF_GS.log b/pyKADMOS/sellarProblemXDSM_MDF_GS.log new file mode 100644 index 0000000000000000000000000000000000000000..56c6d62ddc622e512487044e3f6b2ce2195b613f --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_MDF_GS.log @@ -0,0 +1,658 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 11 JUL 2016 11:05 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**sellarProblemXDSM_MDF_GS.tex +(./sellarProblemXDSM_MDF_GS.tex +LaTeX2e <2015/01/01> +Babel <3.9l> and hyphenation patterns for 79 languages loaded. +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count87 +\Gm@cntv=\count88 +\c@Gm@tempcnt=\count89 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks15 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks16 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2013/01/14 v2.14 AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks17 +\ex@=\dimen111 +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen112 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 210. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 306. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 378. +LaTeX Info: Redefining \dots on input line 381. +LaTeX Info: Redefining \cdots on input line 466. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen113 +LaTeX Font Info: Redeclaring font encoding OML on input line 566. +LaTeX Font Info: Redeclaring font encoding OMS on input line 567. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks18 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks19 +\eqnshift@=\dimen114 +\alignsep@=\dimen115 +\tagshift@=\dimen116 +\tagwidth@=\dimen117 +\totwidth@=\dimen118 +\lineht@=\dimen119 +\@envbody=\toks20 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks21 +LaTeX Info: Redefining \[ on input line 2665. +LaTeX Info: Redefining \] on input line 2666. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks22 +\pgfutil@tempdima=\dimen120 +\pgfutil@tempdimb=\dimen121 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li +sts.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box28 +(/usr/local/texlive/2015/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2013/12/20 v3.0.0 (rcs-revision 1.28) +)) +Package: pgf 2013/12/18 v3.0.0 (rcs-revision 1.14) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 94. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count102 +)) +\Gin@req@height=\dimen122 +\Gin@req@width=\dimen123 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2013/11/30 v3.0.0 (rcs-revision 1.47) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks23 +\pgfkeys@temptoks=\toks24 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c +ode.tex +\pgfkeys@tmptoks=\toks25 +)) +\pgf@x=\dimen124 +\pgf@y=\dimen125 +\pgf@xa=\dimen126 +\pgf@ya=\dimen127 +\pgf@xb=\dimen128 +\pgf@yb=\dimen129 +\pgf@xc=\dimen130 +\pgf@yc=\dimen131 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count103 +\c@pgf@countb=\count104 +\c@pgf@countc=\count105 +\c@pgf@countd=\count106 +\t@pgf@toka=\toks26 +\t@pgf@tokb=\toks27 +\t@pgf@tokc=\toks28 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/05/14 (rcs-revision 1.7) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2013/07/18 (rcs-revision 1.33) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2013/10/10 (rcs-revision 1.13) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9) +\pgfsyssoftpath@smallbuffer@items=\count107 +\pgfsyssoftpath@bigbuffer@items=\count108 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2015/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2010/04/11 v3.0.0 (rcs-revision 1.7) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen132 +\pgfmath@count=\count109 +\pgfmath@box=\box29 +\pgfmath@toks=\toks29 +\pgfmath@stack@operand=\toks30 +\pgfmath@stack@operation=\toks31 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code. +tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo +nometric.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando +m.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa +rison.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ +erarithmetics.code.tex))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count110 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27) +\pgf@picminx=\dimen133 +\pgf@picmaxx=\dimen134 +\pgf@picminy=\dimen135 +\pgf@picmaxy=\dimen136 +\pgf@pathminx=\dimen137 +\pgf@pathmaxx=\dimen138 +\pgf@pathminy=\dimen139 +\pgf@pathmaxy=\dimen140 +\pgf@xx=\dimen141 +\pgf@xy=\dimen142 +\pgf@yx=\dimen143 +\pgf@yy=\dimen144 +\pgf@zx=\dimen145 +\pgf@zy=\dimen146 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29) +\pgf@path@lastx=\dimen147 +\pgf@path@lasty=\dimen148 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2013/12/13 (rcs-revision 1.23) +\pgf@shorten@end@additional=\dimen149 +\pgf@shorten@start@additional=\dimen150 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2013/10/09 (rcs-revision 1.44) +\pgfpic=\box30 +\pgf@hbox=\box31 +\pgf@layerbox@main=\box32 +\pgf@picture@serial@count=\count111 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2013/09/19 (rcs-revision 1.11) +\pgflinewidth=\dimen151 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2013/10/10 (rcs-revision 1.17) +\pgf@pt@x=\dimen152 +\pgf@pt@y=\dimen153 +\pgf@pt@temp=\dimen154 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2013/11/07 (rcs-revision 1.40) +\pgfarrowsep=\dimen155 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15) +\pgf@max=\dimen156 +\pgf@sys@shading@range@num=\count112 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal. +code.tex +File: pgfcoreexternal.code.tex 2013/07/15 (rcs-revision 1.20) +\pgfexternal@startupbox=\box33 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2013/10/31 (rcs-revision 1.34) +\pgfnodeparttextbox=\box34 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2013/07/31 (rcs-revision 1.12) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v3.0.0 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen157 +\pgf@nodesepend=\dimen158 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v3.0.0 (rcs-revision 1.1) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex) +) (/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2013/12/13 v3.0.0 (rcs-revision 1.25) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen159 +\pgffor@skip=\dimen160 +\pgffor@stack=\toks32 +\pgffor@toks=\toks33 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2013/12/13 v3.0.0 (rcs-revision 1.142) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2013/08/31 v3.0.0 (rcs-revision 1.20) +\pgf@plot@mark@count=\count113 +\pgfplotmarksize=\dimen161 +) +\tikz@lastx=\dimen162 +\tikz@lasty=\dimen163 +\tikz@lastxsaved=\dimen164 +\tikz@lastysaved=\dimen165 +\tikzleveldistance=\dimen166 +\tikzsiblingdistance=\dimen167 +\tikz@figbox=\box35 +\tikz@figbox@bg=\box36 +\tikz@tempbox=\box37 +\tikz@tempbox@bg=\box38 +\tikztreelevel=\count114 +\tikznumberofchildren=\count115 +\tikznumberofcurrentchild=\count116 +\tikz@fig@count=\count117 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8) +\pgfmatrixcurrentrow=\count118 +\pgfmatrixcurrentcolumn=\count119 +\pgf@matrix@numberofcolumns=\count120 +) +\tikz@expandcount=\count121 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/06/17 v3.0.0 (rcs-revision 1.2) +))) +(/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_ +border.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryarrows.code.tex +File: tikzlibraryarrows.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows. +code.tex +File: pgflibraryarrows.code.tex 2013/09/23 v3.0.0 (rcs-revision 1.16) +\arrowsize=\dimen168 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarychains.code.tex +File: tikzlibrarychains.code.tex 2013/07/15 v3.0.0 (rcs-revision 1.6) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarypositioning.code.tex +File: tikzlibrarypositioning.code.tex 2008/10/06 v3.0.0 (rcs-revision 1.7) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryscopes.code.tex +File: tikzlibraryscopes.code.tex 2008/06/27 v3.0.0 (rcs-revision 1.2) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshapes.geometric.code.tex +File: tikzlibraryshapes.geometric.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibrary +shapes.geometric.code.tex +File: pgflibraryshapes.geometric.code.tex 2008/06/26 v3.0.0 (rcs-revision 1.1) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshapes.misc.code.tex +File: tikzlibraryshapes.misc.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibrary +shapes.misc.code.tex +File: pgflibraryshapes.misc.code.tex 2013/07/18 v3.0.0 (rcs-revision 1.5) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshadows.code.tex +File: tikzlibraryshadows.code.tex 2008/01/13 v3.0.0 (rcs-revision 1.3) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryfadings.code.tex +File: tikzlibraryfadings.code.tex 2009/11/15 v3.0.0 (rcs-revision 1.2) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryfadings +.code.tex +File: pgflibraryfadings.code.tex 2008/02/07 v3.0.0 (rcs-revision 1.3) +))) (/usr/local/texlive/2015/texmf-dist/tex/latex/preview/preview.sty +Package: preview 2010/02/14 11.88 (AUCTeX/preview-latex) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/preview/prtightpage.def +\PreviewBorder=\dimen169 +) +\pr@snippet=\count122 +\pr@box=\box39 +\pr@output=\toks34 +)) +(./sellarProblemXDSM_MDF_GS.aux) +\openout1 = `sellarProblemXDSM_MDF_GS.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: <default> +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(92.14519pt, 430.00462pt, 92.14519pt) +* v-part:(T,H,B)=(95.39737pt, 556.47656pt, 143.09605pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=430.00462pt +* \textheight=556.47656pt +* \oddsidemargin=19.8752pt +* \evensidemargin=19.8752pt +* \topmargin=-13.87262pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=65.0pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +ABD: EveryShipout initializing macros +(/usr/local/texlive/2015/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count123 +\scratchdimen=\dimen170 +\scratchbox=\box40 +\nofMPsegments=\count124 +\nofMParguments=\count125 +\everyMPshowfont=\toks35 +\MPscratchCnt=\count126 +\MPscratchDim=\dimen171 +\MPnumerator=\count127 +\makeMPintoPDFobject=\count128 +\everyMPtoPDFconversion=\toks36 +) (/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Preview: Fontsize 10pt +Preview: PDFoutput 1 + +(/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_ +styles.tex +\pgf@layerbox@data=\box41 +\pgf@layerboxsaved@data=\box42 +\pgf@layerbox@process=\box43 +\pgf@layerboxsaved@process=\box44 +) +LaTeX Font Info: Try loading font information for U+msa on input line 19. + (/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 19. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +Overfull \hbox (58.99065pt too wide) in paragraph at lines 174--174 +[][] + [] + +Preview: Tightpage -327680 -327680 327680 327680 +[1{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +(./sellarProblemXDSM_MDF_GS.aux) ) +Here is how much of TeX's memory you used: + 14563 strings out of 493089 + 297891 string characters out of 6134841 + 356988 words of memory out of 5000000 + 17764 multiletter control sequences out of 15000+600000 + 5339 words of font info for 22 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 55i,15n,82p,444b,952s stack positions out of 5000i,500n,10000p,200000b,80000s +</usr/local/texlive/2015/texmf-dist/fonts/typ +e1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type +1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/ +public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/pu +blic/amsfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publi +c/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public +/amsfonts/cm/cmsy7.pfb> +Output written on sellarProblemXDSM_MDF_GS.pdf (1 page, 55401 bytes). +PDF statistics: + 59 PDF objects out of 1000 (max. 8388607) + 33 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 109 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/pyKADMOS/sellarProblemXDSM.pdf b/pyKADMOS/sellarProblemXDSM_MDF_GS.pdf similarity index 92% rename from pyKADMOS/sellarProblemXDSM.pdf rename to pyKADMOS/sellarProblemXDSM_MDF_GS.pdf index f97c93e55c6bb60464e1e1bb884134afbfa9a9f7..700c0473b4b14ad66e1a90651697858c4596c24f 100644 Binary files a/pyKADMOS/sellarProblemXDSM.pdf and b/pyKADMOS/sellarProblemXDSM_MDF_GS.pdf differ diff --git a/pyKADMOS/sellarProblemXDSM.tex b/pyKADMOS/sellarProblemXDSM_MDF_GS.tex similarity index 82% rename from pyKADMOS/sellarProblemXDSM.tex rename to pyKADMOS/sellarProblemXDSM_MDF_GS.tex index 19fbfc587dcfb76769e72b3dccebf4f4a671063c..403f6c8cdec7b4b8787fa975ec8b442321bd4108 100644 --- a/pyKADMOS/sellarProblemXDSM.tex +++ b/pyKADMOS/sellarProblemXDSM_MDF_GS.tex @@ -17,19 +17,19 @@ { %Row 1 \node [Initiator] (Initiator) {$0,8$:\\INI}; & - \node [DataIO] (Optimizer-Initiator) {1: $z1^0$\\\\[-10pt] $z2^0$}; & + \node [DataIO] (Optimizer-Initiator) {1: $z1^0$\\\\[-10pt] $z2^0$\\\\[-10pt] $x1^0$}; & \node [DataIO] (MDA-Initiator) {2: $y2^{c0}$}; & - \node [DataIO] (D1-Initiator) {3: $x1$}; & & - \node [DataIO] (F-Initiator) {6: $x1$}; & + & + & & \\ - \node [DataIO] (Initiator-Optimizer) {8: $z1^*$\\\\[-10pt] $z2^*$}; & + \node [DataIO] (Initiator-Optimizer) {8: $z1^*$\\\\[-10pt] $z2^*$\\\\[-10pt] $x1^*$}; & \node [Optimization] (Optimizer) {$1,7\to2$:\\OPT}; & & - \node [DataInter] (D1-Optimizer) {3: $z2$\\\\[-10pt] $z1$}; & + \node [DataInter] (D1-Optimizer) {3: $x1$\\\\[-10pt] $z2$\\\\[-10pt] $z1$}; & \node [DataInter] (D2-Optimizer) {4: $z2$\\\\[-10pt] $z1$}; & - \node [DataInter] (F-Optimizer) {6: $z2$}; & + \node [DataInter] (F-Optimizer) {6: $x1$\\\\[-10pt] $z2$}; & & \\ & @@ -106,27 +106,6 @@ \end{pgfonlayer} } - { [start chain=process] - \begin{pgfonlayer}{process} - \chainin (G2); - \chainin (Optimizer) [join=by ProcessHV]; - \end{pgfonlayer} - } - - { [start chain=process] - \begin{pgfonlayer}{process} - \chainin (G1); - \chainin (Optimizer) [join=by ProcessHV]; - \end{pgfonlayer} - } - - { [start chain=process] - \begin{pgfonlayer}{process} - \chainin (F); - \chainin (Optimizer) [join=by ProcessHV]; - \end{pgfonlayer} - } - { [start chain=process] \begin{pgfonlayer}{process} \chainin (MDA); @@ -172,7 +151,7 @@ \begin{pgfonlayer}{data} \path % Horizontal edges - (Initiator) edge [DataLine] (F-Initiator) + (Initiator) edge [DataLine] (MDA-Initiator) (Initiator-Optimizer) edge [DataLine] (F-Optimizer) (MDA) edge [DataLine] (D1-MDA) (Initiator-D1) edge [DataLine] (G1-D1) @@ -184,9 +163,9 @@ (Initiator) edge [DataLine] (Initiator-D2) (Optimizer-Initiator) edge [DataLine] (Optimizer-G1) (MDA-Initiator) edge [DataLine] (MDA-D2) - (D1-Initiator) edge [DataLine] (D1) + (D1-Optimizer) edge [DataLine] (D1) (D2-Optimizer) edge [DataLine] (D2) - (F-Initiator) edge [DataLine] (F) + (F-Optimizer) edge [DataLine] (F) (G2-D2) edge [DataLine] (G2) (G1-D1) edge [DataLine] (G1) ; diff --git a/pyKADMOS/sellarProblemXDSM_MDF_Jac.aux b/pyKADMOS/sellarProblemXDSM_MDF_Jac.aux new file mode 100644 index 0000000000000000000000000000000000000000..f23e54680b733bda6c050da350d99bdea7fb9933 --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_MDF_Jac.aux @@ -0,0 +1 @@ +\relax diff --git a/pyKADMOS/sellarProblemXDSM_MDF_Jac.log b/pyKADMOS/sellarProblemXDSM_MDF_Jac.log new file mode 100644 index 0000000000000000000000000000000000000000..0bedcc6b7b9a9317b253744a6c7185f915bad16e --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_MDF_Jac.log @@ -0,0 +1,658 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.10.20) 11 JUL 2016 11:05 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**sellarProblemXDSM_MDF_Jac.tex +(./sellarProblemXDSM_MDF_Jac.tex +LaTeX2e <2015/01/01> +Babel <3.9l> and hyphenation patterns for 79 languages loaded. +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count87 +\Gm@cntv=\count88 +\c@Gm@tempcnt=\count89 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks15 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks16 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2013/01/14 v2.14 AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks17 +\ex@=\dimen111 +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen112 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 210. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 306. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 378. +LaTeX Info: Redefining \dots on input line 381. +LaTeX Info: Redefining \cdots on input line 466. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen113 +LaTeX Font Info: Redeclaring font encoding OML on input line 566. +LaTeX Font Info: Redeclaring font encoding OMS on input line 567. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks18 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks19 +\eqnshift@=\dimen114 +\alignsep@=\dimen115 +\tagshift@=\dimen116 +\tagwidth@=\dimen117 +\totwidth@=\dimen118 +\lineht@=\dimen119 +\@envbody=\toks20 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks21 +LaTeX Info: Redefining \[ on input line 2665. +LaTeX Info: Redefining \] on input line 2666. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks22 +\pgfutil@tempdima=\dimen120 +\pgfutil@tempdimb=\dimen121 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li +sts.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box28 +(/usr/local/texlive/2015/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2013/12/20 v3.0.0 (rcs-revision 1.28) +)) +Package: pgf 2013/12/18 v3.0.0 (rcs-revision 1.14) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 94. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count102 +)) +\Gin@req@height=\dimen122 +\Gin@req@width=\dimen123 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2013/11/30 v3.0.0 (rcs-revision 1.47) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks23 +\pgfkeys@temptoks=\toks24 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c +ode.tex +\pgfkeys@tmptoks=\toks25 +)) +\pgf@x=\dimen124 +\pgf@y=\dimen125 +\pgf@xa=\dimen126 +\pgf@ya=\dimen127 +\pgf@xb=\dimen128 +\pgf@yb=\dimen129 +\pgf@xc=\dimen130 +\pgf@yc=\dimen131 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count103 +\c@pgf@countb=\count104 +\c@pgf@countc=\count105 +\c@pgf@countd=\count106 +\t@pgf@toka=\toks26 +\t@pgf@tokb=\toks27 +\t@pgf@tokc=\toks28 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/05/14 (rcs-revision 1.7) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2013/07/18 (rcs-revision 1.33) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2013/10/10 (rcs-revision 1.13) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9) +\pgfsyssoftpath@smallbuffer@items=\count107 +\pgfsyssoftpath@bigbuffer@items=\count108 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2015/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2010/04/11 v3.0.0 (rcs-revision 1.7) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen132 +\pgfmath@count=\count109 +\pgfmath@box=\box29 +\pgfmath@toks=\toks29 +\pgfmath@stack@operand=\toks30 +\pgfmath@stack@operation=\toks31 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code. +tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo +nometric.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando +m.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa +rison.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ +erarithmetics.code.tex))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count110 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27) +\pgf@picminx=\dimen133 +\pgf@picmaxx=\dimen134 +\pgf@picminy=\dimen135 +\pgf@picmaxy=\dimen136 +\pgf@pathminx=\dimen137 +\pgf@pathmaxx=\dimen138 +\pgf@pathminy=\dimen139 +\pgf@pathmaxy=\dimen140 +\pgf@xx=\dimen141 +\pgf@xy=\dimen142 +\pgf@yx=\dimen143 +\pgf@yy=\dimen144 +\pgf@zx=\dimen145 +\pgf@zy=\dimen146 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29) +\pgf@path@lastx=\dimen147 +\pgf@path@lasty=\dimen148 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2013/12/13 (rcs-revision 1.23) +\pgf@shorten@end@additional=\dimen149 +\pgf@shorten@start@additional=\dimen150 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2013/10/09 (rcs-revision 1.44) +\pgfpic=\box30 +\pgf@hbox=\box31 +\pgf@layerbox@main=\box32 +\pgf@picture@serial@count=\count111 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2013/09/19 (rcs-revision 1.11) +\pgflinewidth=\dimen151 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2013/10/10 (rcs-revision 1.17) +\pgf@pt@x=\dimen152 +\pgf@pt@y=\dimen153 +\pgf@pt@temp=\dimen154 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2013/11/07 (rcs-revision 1.40) +\pgfarrowsep=\dimen155 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15) +\pgf@max=\dimen156 +\pgf@sys@shading@range@num=\count112 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal. +code.tex +File: pgfcoreexternal.code.tex 2013/07/15 (rcs-revision 1.20) +\pgfexternal@startupbox=\box33 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2013/10/31 (rcs-revision 1.34) +\pgfnodeparttextbox=\box34 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2013/07/31 (rcs-revision 1.12) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v3.0.0 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen157 +\pgf@nodesepend=\dimen158 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v3.0.0 (rcs-revision 1.1) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex) +) (/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2013/12/13 v3.0.0 (rcs-revision 1.25) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen159 +\pgffor@skip=\dimen160 +\pgffor@stack=\toks32 +\pgffor@toks=\toks33 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2013/12/13 v3.0.0 (rcs-revision 1.142) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2013/08/31 v3.0.0 (rcs-revision 1.20) +\pgf@plot@mark@count=\count113 +\pgfplotmarksize=\dimen161 +) +\tikz@lastx=\dimen162 +\tikz@lasty=\dimen163 +\tikz@lastxsaved=\dimen164 +\tikz@lastysaved=\dimen165 +\tikzleveldistance=\dimen166 +\tikzsiblingdistance=\dimen167 +\tikz@figbox=\box35 +\tikz@figbox@bg=\box36 +\tikz@tempbox=\box37 +\tikz@tempbox@bg=\box38 +\tikztreelevel=\count114 +\tikznumberofchildren=\count115 +\tikznumberofcurrentchild=\count116 +\tikz@fig@count=\count117 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8) +\pgfmatrixcurrentrow=\count118 +\pgfmatrixcurrentcolumn=\count119 +\pgf@matrix@numberofcolumns=\count120 +) +\tikz@expandcount=\count121 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/06/17 v3.0.0 (rcs-revision 1.2) +))) +(/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_ +border.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryarrows.code.tex +File: tikzlibraryarrows.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows. +code.tex +File: pgflibraryarrows.code.tex 2013/09/23 v3.0.0 (rcs-revision 1.16) +\arrowsize=\dimen168 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarychains.code.tex +File: tikzlibrarychains.code.tex 2013/07/15 v3.0.0 (rcs-revision 1.6) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarypositioning.code.tex +File: tikzlibrarypositioning.code.tex 2008/10/06 v3.0.0 (rcs-revision 1.7) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryscopes.code.tex +File: tikzlibraryscopes.code.tex 2008/06/27 v3.0.0 (rcs-revision 1.2) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshapes.geometric.code.tex +File: tikzlibraryshapes.geometric.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibrary +shapes.geometric.code.tex +File: pgflibraryshapes.geometric.code.tex 2008/06/26 v3.0.0 (rcs-revision 1.1) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshapes.misc.code.tex +File: tikzlibraryshapes.misc.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibrary +shapes.misc.code.tex +File: pgflibraryshapes.misc.code.tex 2013/07/18 v3.0.0 (rcs-revision 1.5) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshadows.code.tex +File: tikzlibraryshadows.code.tex 2008/01/13 v3.0.0 (rcs-revision 1.3) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryfadings.code.tex +File: tikzlibraryfadings.code.tex 2009/11/15 v3.0.0 (rcs-revision 1.2) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryfadings +.code.tex +File: pgflibraryfadings.code.tex 2008/02/07 v3.0.0 (rcs-revision 1.3) +))) (/usr/local/texlive/2015/texmf-dist/tex/latex/preview/preview.sty +Package: preview 2010/02/14 11.88 (AUCTeX/preview-latex) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/preview/prtightpage.def +\PreviewBorder=\dimen169 +) +\pr@snippet=\count122 +\pr@box=\box39 +\pr@output=\toks34 +)) +(./sellarProblemXDSM_MDF_Jac.aux) +\openout1 = `sellarProblemXDSM_MDF_Jac.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 10. +LaTeX Font Info: ... okay on input line 10. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: <default> +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(92.14519pt, 430.00462pt, 92.14519pt) +* v-part:(T,H,B)=(95.39737pt, 556.47656pt, 143.09605pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=430.00462pt +* \textheight=556.47656pt +* \oddsidemargin=19.8752pt +* \evensidemargin=19.8752pt +* \topmargin=-13.87262pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=65.0pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +ABD: EveryShipout initializing macros +(/usr/local/texlive/2015/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count123 +\scratchdimen=\dimen170 +\scratchbox=\box40 +\nofMPsegments=\count124 +\nofMParguments=\count125 +\everyMPshowfont=\toks35 +\MPscratchCnt=\count126 +\MPscratchDim=\dimen171 +\MPnumerator=\count127 +\makeMPintoPDFobject=\count128 +\everyMPtoPDFconversion=\toks36 +) (/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Preview: Fontsize 10pt +Preview: PDFoutput 1 + +(/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_ +styles.tex +\pgf@layerbox@data=\box41 +\pgf@layerboxsaved@data=\box42 +\pgf@layerbox@process=\box43 +\pgf@layerboxsaved@process=\box44 +) +LaTeX Font Info: Try loading font information for U+msa on input line 19. + (/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 19. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +Overfull \hbox (64.86882pt too wide) in paragraph at lines 181--181 +[][] + [] + +Preview: Tightpage -327680 -327680 327680 327680 +[1{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +(./sellarProblemXDSM_MDF_Jac.aux) ) +Here is how much of TeX's memory you used: + 14571 strings out of 493089 + 298065 string characters out of 6134841 + 358861 words of memory out of 5000000 + 17772 multiletter control sequences out of 15000+600000 + 5339 words of font info for 22 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 55i,15n,82p,445b,952s stack positions out of 5000i,500n,10000p,200000b,80000s +</usr/local/texlive/2015/texmf-dist/fonts/ty +pe1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2015/texmf-dist/fonts/typ +e1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1 +/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/p +ublic/amsfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publ +ic/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publi +c/amsfonts/cm/cmsy7.pfb> +Output written on sellarProblemXDSM_MDF_Jac.pdf (1 page, 55238 bytes). +PDF statistics: + 59 PDF objects out of 1000 (max. 8388607) + 33 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 109 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/pyKADMOS/sellarProblemXDSM_MDF_Jac.pdf b/pyKADMOS/sellarProblemXDSM_MDF_Jac.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a4f2e6587cd75eb5182e33a7a1f3abb8c0f253d5 Binary files /dev/null and b/pyKADMOS/sellarProblemXDSM_MDF_Jac.pdf differ diff --git a/pyKADMOS/sellarProblemXDSM_MDF_Jac.tex b/pyKADMOS/sellarProblemXDSM_MDF_Jac.tex new file mode 100644 index 0000000000000000000000000000000000000000..fec29a95142519af92ac7e6b30f7af79d8319fe8 --- /dev/null +++ b/pyKADMOS/sellarProblemXDSM_MDF_Jac.tex @@ -0,0 +1,183 @@ +\documentclass{article} +\usepackage{geometry} +\usepackage{amsfonts} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{tikz} + +\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_border} + +\begin{document} + +\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/pyKADMOS/XDSM_writer/diagram_styles} + +\begin{tikzpicture} + + \matrix[MatrixSetup] + { + %Row 1 + \node [Initiator] (Initiator) {$0,7$:\\INI}; & + \node [DataIO] (Optimizer-Initiator) {1: $z1^0$\\\\[-10pt] $z2^0$\\\\[-10pt] $x1^0$}; & + \node [DataIO] (MDA-Initiator) {2: $y2^{c0}$\\\\[-10pt] $y1^{c0}$}; & + & + & + & + & + \\ + \node [DataIO] (Initiator-Optimizer) {7: $z1^*$\\\\[-10pt] $z2^*$\\\\[-10pt] $x1^*$}; & + \node [Optimization] (Optimizer) {$1,6\to2$:\\OPT}; & + & + \node [DataInter] (D1-Optimizer) {3: $x1$\\\\[-10pt] $z2$\\\\[-10pt] $z1$}; & + \node [DataInter] (D2-Optimizer) {3: $z2$\\\\[-10pt] $z1$}; & + \node [DataInter] (F-Optimizer) {5: $x1$\\\\[-10pt] $z2$}; & + & + \\ + & + & + \node [MDA] (MDA) {$2,4\to3$:\\MDA}; & + \node [DataInter] (D1-MDA) {3: $y2^c$}; & + \node [DataInter] (D2-MDA) {3: $y1^c$}; & + & + & + \\ + \node [DataIO] (Initiator-D1) {7: $y1^*$}; & + & + \node [DataInter] (MDA-D1) {4: $y1$}; & + \node [Analysis] (D1) {$3$:\\D1}; & + & + \node [DataInter] (F-D1) {5: $y1$}; & + & + \node [DataInter] (G1-D1) {5: $y1$}; \\ + %Row 5 + \node [DataIO] (Initiator-D2) {7: $y2^*$}; & + & + \node [DataInter] (MDA-D2) {4: $y2$}; & + & + \node [Analysis] (D2) {$3$:\\D2}; & + \node [DataInter] (F-D2) {5: $y2$}; & + \node [DataInter] (G2-D2) {5: $y2$}; & + \\ + & + \node [DataInter] (Optimizer-F) {6: $f$}; & + & + & + & + \node [Function] (F) {$5$:\\F}; & + & + \\ + & + \node [DataInter] (Optimizer-G2) {6: $g2$}; & + & + & + & + & + \node [Function] (G2) {$5$:\\G2}; & + \\ + & + \node [DataInter] (Optimizer-G1) {6: $g1$}; & + & + & + & + & + & + \node [Function] (G1) {$5$:\\G1}; \\ + %Row 9 + }; + + % XDSM_writer process chains + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Initiator); + \chainin (Optimizer) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Optimizer); + \chainin (Initiator) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (Optimizer); + \chainin (MDA) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (MDA); + \chainin (F) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (MDA); + \chainin (D2) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (MDA); + \chainin (G2) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (MDA); + \chainin (G1) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (MDA); + \chainin (D1) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D2); + \chainin (MDA) [join=by ProcessHV]; + \end{pgfonlayer} + } + + { [start chain=process] + \begin{pgfonlayer}{process} + \chainin (D1); + \chainin (MDA) [join=by ProcessHV]; + \end{pgfonlayer} + } + + \begin{pgfonlayer}{data} + \path + % Horizontal edges + (Initiator) edge [DataLine] (MDA-Initiator) + (Initiator-Optimizer) edge [DataLine] (F-Optimizer) + (MDA) edge [DataLine] (D2-MDA) + (Initiator-D1) edge [DataLine] (G1-D1) + (Initiator-D2) edge [DataLine] (G2-D2) + (Optimizer-F) edge [DataLine] (F) + (Optimizer-G2) edge [DataLine] (G2) + (Optimizer-G1) edge [DataLine] (G1) + % Vertical edges + (Initiator) edge [DataLine] (Initiator-D2) + (Optimizer-Initiator) edge [DataLine] (Optimizer-G1) + (MDA-Initiator) edge [DataLine] (MDA-D2) + (D1-Optimizer) edge [DataLine] (D1) + (D2-Optimizer) edge [DataLine] (D2) + (F-Optimizer) edge [DataLine] (F) + (G2-D2) edge [DataLine] (G2) + (G1-D1) edge [DataLine] (G1) + ; + \end{pgfonlayer} + +\end{tikzpicture} + +\end{document}