From 008cdf7d295a789b7d6398d1d42d961b62d3dd66 Mon Sep 17 00:00:00 2001
From: imcovangent <I.vanGent@tudelft.nl>
Date: Wed, 24 Jan 2018 20:29:40 +0100
Subject: [PATCH] Commit before rebase.

Former-commit-id: 6e6d52c235e954090e2bcb91f23e5834778203f9
---
 examples/knowledgebases/__init__.py           |   0
 .../knowledgebases/ssbj/Cnstrnt_sigmas.py     | 116 +++++++++
 examples/knowledgebases/ssbj/Cnstrnt_theta.py |  96 ++++++++
 examples/knowledgebases/ssbj/Structures.py    | 120 +++++++++
 examples/knowledgebases/ssbj/__init__.py      | 121 ++++++++++
 examples/knowledgebases/ssbj/common.py        | 124 ++++++++++
 examples/knowledgebases/ssbj/data-schema.xsd  |  24 +-
 ...o_cmdows.xml => ssbj_toolrepo_cmdolds.xml} |   0
 .../knowledgebases/ssbj/structure-input.xml   |  19 --
 .../knowledgebases/ssbj/structure-output.xml  |  15 --
 .../scripts/sellar_problem/(X)DSM/Mdao_CO.pdf | Bin 0 -> 59986 bytes
 .../sellar_problem/(X)DSM/Test_XDSM.pdf       | Bin 51386 -> 0 bytes
 .../sellar_problem/(X)DSM/Test_XDSM.tex       | 227 ------------------
 .../scripts/sellar_problem/KDMS/Mdao_CO.kdms  | Bin 0 -> 16054 bytes
 .../sellar_problem/KDMS/Mdao_CO_mpg.kdms      | Bin 0 -> 5494 bytes
 examples/scripts/sellar_problem_dev_CO.py     |   4 -
 examples/scripts/ssbj_update.py               | 185 ++++++++++++++
 kadmos/graph/graph_data.py                    |  60 +++--
 kadmos/graph/graph_kadmos.py                  |   8 +-
 kadmos/graph/graph_process.py                 | 205 ++++++++++++----
 kadmos/graph/mixin_equation.py                |   3 -
 21 files changed, 994 insertions(+), 333 deletions(-)
 create mode 100644 examples/knowledgebases/__init__.py
 create mode 100644 examples/knowledgebases/ssbj/Cnstrnt_sigmas.py
 create mode 100644 examples/knowledgebases/ssbj/Cnstrnt_theta.py
 create mode 100644 examples/knowledgebases/ssbj/Structures.py
 create mode 100644 examples/knowledgebases/ssbj/__init__.py
 create mode 100644 examples/knowledgebases/ssbj/common.py
 rename examples/knowledgebases/ssbj/{ssbj_toolrepo_cmdows.xml => ssbj_toolrepo_cmdolds.xml} (100%)
 delete mode 100644 examples/knowledgebases/ssbj/structure-input.xml
 delete mode 100644 examples/knowledgebases/ssbj/structure-output.xml
 create mode 100644 examples/scripts/sellar_problem/(X)DSM/Mdao_CO.pdf
 delete mode 100644 examples/scripts/sellar_problem/(X)DSM/Test_XDSM.pdf
 delete mode 100644 examples/scripts/sellar_problem/(X)DSM/Test_XDSM.tex
 create mode 100644 examples/scripts/sellar_problem/KDMS/Mdao_CO.kdms
 create mode 100644 examples/scripts/sellar_problem/KDMS/Mdao_CO_mpg.kdms
 create mode 100644 examples/scripts/ssbj_update.py

diff --git a/examples/knowledgebases/__init__.py b/examples/knowledgebases/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/examples/knowledgebases/ssbj/Cnstrnt_sigmas.py b/examples/knowledgebases/ssbj/Cnstrnt_sigmas.py
new file mode 100644
index 000000000..63e8e24f6
--- /dev/null
+++ b/examples/knowledgebases/ssbj/Cnstrnt_sigmas.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+SSBJ test case - http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980234657.pdf
+Original Python implementation for OpenMDAO integration developed by
+Sylvain Dubreuil and Remi Lafage of ONERA, the French Aerospace Lab.
+Orignal files taken from: https://github.com/OneraHub/SSBJ-OpenMDAO
+The files were adjusted for optimal use in KADMOS by Imco van Gent.
+"""
+from __future__ import absolute_import, division, print_function
+
+import numpy as np
+from lxml import etree
+
+from examples.knowledgebases.ssbj import root_tag, x_tc, x_AR, x_Sref, x_lambda, x_section, x_L, \
+    x_sigma1, x_sigma2, x_sigma3, x_sigma4, x_sigma5
+from examples.knowledgebases.ssbj.common import PolynomialFunction, add_discipline_to_cmdows
+from openlego.api import AbstractDiscipline
+from openlego.utils.xml_utils import xml_safe_create_element
+
+
+class Cnstrnt_sigmas(AbstractDiscipline):
+
+    @property
+    def creator(self):
+        return u'S. Dubreuil and R. Lafage'
+
+    @property
+    def owner(self):
+        return u'J. Sobieszczanski-Sobieski'
+
+    @property
+    def operator(self):
+        return u'I. van Gent'
+
+    @property
+    def description(self):
+        return u'Structural stress constraint of the SSBJ test case.'
+
+    @property
+    def description(self):
+        return u'First discipline of the Sellar problem'
+
+    def generate_input_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_tc, 0.05)
+        xml_safe_create_element(doc, x_AR, 5.5)
+        xml_safe_create_element(doc, x_Sref, 1000.0)
+        xml_safe_create_element(doc, x_lambda, 0.25)
+        xml_safe_create_element(doc, x_section, 1.0)
+        xml_safe_create_element(doc, x_L, 49909.58578)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def generate_output_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_sigma1, 1.12255)
+        xml_safe_create_element(doc, x_sigma2, 1.08170213)
+        xml_safe_create_element(doc, x_sigma3, 1.0612766)
+        xml_safe_create_element(doc, x_sigma4, 1.04902128)
+        xml_safe_create_element(doc, x_sigma5, 1.04085106)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def deploy(self):
+        """Deploy this discipline's template in-/output XML files and its information in the CMDOWS file."""
+        with open(self.in_file, 'w') as f:
+            f.write(self.generate_input_xml())
+        with open(self.out_file, 'w') as f:
+            f.write(self.generate_output_xml())
+        add_discipline_to_cmdows(self)
+
+    @staticmethod
+    def execute(in_file, out_file):
+        doc = etree.parse(in_file)
+        z0 = float(doc.xpath(x_tc)[0].text)
+        z3 = float(doc.xpath(x_AR)[0].text)
+        z5 = float(doc.xpath(x_Sref)[0].text)
+        x0 = float(doc.xpath(x_lambda)[0].text)
+        x1 = float(doc.xpath(x_section)[0].text)
+        L = float(doc.xpath(x_L)[0].text)
+
+        pf = PolynomialFunction()
+
+        b = np.sqrt(abs(z5 * z3)) / 2.0
+        R = (1.0 + 2.0 * x0) / (3.0 * (1.0 + x0))
+
+        Sigma0 = pf.eval([z0, L, x1, b, R], [4, 1, 4, 1, 1], [0.1] * 5, "sigma[1]")
+        Sigma1 = pf.eval([z0, L, x1, b, R], [4, 1, 4, 1, 1], [0.15] * 5, "sigma[2]")
+        Sigma2 = pf.eval([z0, L, x1, b, R], [4, 1, 4, 1, 1], [0.2] * 5, "sigma[3]")
+        Sigma3 = pf.eval([z0, L, x1, b, R], [4, 1, 4, 1, 1], [0.25] * 5, "sigma[4]")
+        Sigma4 = pf.eval([z0, L, x1, b, R], [4, 1, 4, 1, 1], [0.30] * 5, "sigma[5]")
+
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+        xml_safe_create_element(doc, x_sigma1, Sigma0)
+        xml_safe_create_element(doc, x_sigma2, Sigma1)
+        xml_safe_create_element(doc, x_sigma3, Sigma2)
+        xml_safe_create_element(doc, x_sigma4, Sigma3)
+        xml_safe_create_element(doc, x_sigma5, Sigma4)
+        doc.write(out_file, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+
+if __name__ == "__main__":
+
+    cnstrnt_sigmas_analysis = Cnstrnt_sigmas()
+
+    in_file = '__test__cnstrnt_sigmas_input.xml'
+    out_file = '__test__cnstrnt_sigmas_output.xml'
+    with open(in_file, 'w') as f:
+        f.write(cnstrnt_sigmas_analysis.generate_input_xml())
+    cnstrnt_sigmas_analysis.execute(in_file, out_file)
diff --git a/examples/knowledgebases/ssbj/Cnstrnt_theta.py b/examples/knowledgebases/ssbj/Cnstrnt_theta.py
new file mode 100644
index 000000000..e46e5dfd6
--- /dev/null
+++ b/examples/knowledgebases/ssbj/Cnstrnt_theta.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+SSBJ test case - http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980234657.pdf
+Original Python implementation for OpenMDAO integration developed by
+Sylvain Dubreuil and Remi Lafage of ONERA, the French Aerospace Lab.
+Orignal files taken from: https://github.com/OneraHub/SSBJ-OpenMDAO
+The files were adjusted for optimal use in KADMOS by Imco van Gent.
+"""
+from __future__ import absolute_import, division, print_function
+
+import numpy as np
+from lxml import etree
+
+from examples.knowledgebases.ssbj import root_tag, x_AR, x_Sref, x_lambda, x_section, x_L, x_Theta
+from examples.knowledgebases.ssbj.common import PolynomialFunction, add_discipline_to_cmdows
+from openlego.api import AbstractDiscipline
+from openlego.utils.xml_utils import xml_safe_create_element
+
+
+class Cnstrnt_theta(AbstractDiscipline):
+
+    @property
+    def creator(self):
+        return u'S. Dubreuil and R. Lafage'
+
+    @property
+    def owner(self):
+        return u'J. Sobieszczanski-Sobieski'
+
+    @property
+    def operator(self):
+        return u'I. van Gent'
+
+    @property
+    def description(self):
+        return u'Structural constraint of the SSBJ test case.'
+
+    def generate_input_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_AR, 5.5)
+        xml_safe_create_element(doc, x_Sref, 1000.0)
+        xml_safe_create_element(doc, x_lambda, 0.25)
+        xml_safe_create_element(doc, x_section, 1.0)
+        xml_safe_create_element(doc, x_L, 49909.58578)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def generate_output_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_Theta, 0.950978)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def deploy(self):
+        """Deploy this discipline's template in-/output XML files and its information in the CMDOWS file."""
+        with open(self.in_file, 'w') as f:
+            f.write(self.generate_input_xml())
+        with open(self.out_file, 'w') as f:
+            f.write(self.generate_output_xml())
+        add_discipline_to_cmdows(self)
+
+    @staticmethod
+    def execute(in_file, out_file):
+        doc = etree.parse(in_file)
+        z3 = float(doc.xpath(x_AR)[0].text)
+        z5 = float(doc.xpath(x_Sref)[0].text)
+        x0 = float(doc.xpath(x_lambda)[0].text)
+        x1 = float(doc.xpath(x_section)[0].text)
+        L = float(doc.xpath(x_L)[0].text)
+
+        pf = PolynomialFunction()
+
+        b = np.sqrt(abs(z5 * z3)) / 2.0
+        R = (1.0 + 2.0 * x0) / (3.0 * (1.0 + x0))
+        Theta = pf.eval([abs(x1), b, R, L], [2, 4, 4, 3], [0.25] * 4, "twist")
+
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+        xml_safe_create_element(doc, x_Theta, Theta)
+        doc.write(out_file, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+
+if __name__ == "__main__":
+
+    cnstrnt_theta = Cnstrnt_theta()
+
+    in_file = '__test__cnstrnt_theta_input.xml'
+    out_file = '__test__cnstrnt_theta_output.xml'
+    with open(in_file, 'w') as f:
+        f.write(cnstrnt_theta.generate_input_xml())
+    cnstrnt_theta.execute(in_file, out_file)
diff --git a/examples/knowledgebases/ssbj/Structures.py b/examples/knowledgebases/ssbj/Structures.py
new file mode 100644
index 000000000..3f5ef91e0
--- /dev/null
+++ b/examples/knowledgebases/ssbj/Structures.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+SSBJ test case - http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980234657.pdf
+Original Python implementation for OpenMDAO integration developed by
+Sylvain Dubreuil and Remi Lafage of ONERA, the French Aerospace Lab.
+Orignal files taken from: https://github.com/OneraHub/SSBJ-OpenMDAO
+The files were adjusted for optimal use in KADMOS by Imco van Gent.
+"""
+from __future__ import absolute_import, division, print_function
+
+import numpy as np
+from lxml import etree
+
+from examples.knowledgebases.ssbj import root_tag, x_tc, x_AR, x_Lambda, x_Sref, x_lambda, x_section, x_WO, x_WE, x_WFO, \
+    x_L, x_Nz, x_WT, x_WF
+from examples.knowledgebases.ssbj.common import PolynomialFunction, add_discipline_to_cmdows
+from openlego.api import AbstractDiscipline
+from openlego.utils.xml_utils import xml_safe_create_element
+
+
+class Structures(AbstractDiscipline):
+
+    @property
+    def creator(self):
+        return u'S. Dubreuil and R. Lafage'
+
+    @property
+    def owner(self):
+        return u'J. Sobieszczanski-Sobieski'
+
+    @property
+    def operator(self):
+        return u'I. van Gent'
+
+    @property
+    def description(self):
+        return u'Structural analysis discipline of the SSBJ test case.'
+
+    def generate_input_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_tc, 0.05)
+        xml_safe_create_element(doc, x_AR, 5.5)
+        xml_safe_create_element(doc, x_Lambda, 55.0)
+        xml_safe_create_element(doc, x_Sref, 1000.0)
+        xml_safe_create_element(doc, x_lambda, 0.25)
+        xml_safe_create_element(doc, x_section, 1.0)
+        xml_safe_create_element(doc, x_WO, 25000.)
+        xml_safe_create_element(doc, x_WE, 5748.915355)
+        xml_safe_create_element(doc, x_WFO, 2000.)
+        xml_safe_create_element(doc, x_L, 49909.58578)
+        xml_safe_create_element(doc, x_Nz, 6.0)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def generate_output_xml(self):
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+
+        xml_safe_create_element(doc, x_WT, 49909.58578)
+        xml_safe_create_element(doc, x_WF, 7306.20261)
+
+        return etree.tostring(doc, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+    def deploy(self):
+        """Deploy this discipline's template in-/output XML files and its information in the CMDOWS file."""
+        with open(self.in_file, 'w') as f:
+            f.write(self.generate_input_xml())
+        with open(self.out_file, 'w') as f:
+            f.write(self.generate_output_xml())
+        add_discipline_to_cmdows(self)
+
+    @staticmethod
+    def execute(in_file, out_file):
+        doc = etree.parse(in_file)
+        z0 = float(doc.xpath(x_tc)[0].text)
+        z3 = float(doc.xpath(x_AR)[0].text)
+        z4 = float(doc.xpath(x_Lambda)[0].text)
+        z5 = float(doc.xpath(x_Sref)[0].text)
+        x0 = float(doc.xpath(x_lambda)[0].text)
+        x1 = float(doc.xpath(x_section)[0].text)
+        L = float(doc.xpath(x_L)[0].text)
+        WE = float(doc.xpath(x_WE)[0].text)
+        NZ = float(doc.xpath(x_Nz)[0].text)
+        WO = float(doc.xpath(x_WO)[0].text)
+        WFO = float(doc.xpath(x_WFO)[0].text)
+
+        pf = PolynomialFunction()
+
+        t = z0 * z5 / (np.sqrt(abs(z5 * z3)))
+
+        Fo1 = pf.eval([x1], [1], [.008], "Fo1")
+
+        WT_hat = L
+        WW = Fo1 * (0.0051 * abs(WT_hat * NZ) ** 0.557 * \
+                    abs(z5) ** 0.649 * abs(z3) ** 0.5 * abs(z0) ** (-0.4) \
+                    * abs(1.0 + x0) ** 0.1 * (0.1875 * abs(z5)) ** 0.1 \
+                    / abs(np.cos(z4 * np.pi / 180.)))
+        WFW = 5.0 / 18.0 * abs(z5) * 2.0 / 3.0 * t * 42.5
+        WF = WFW + WFO
+        WT = WO + WW + WF + WE
+
+        root = etree.Element(root_tag)
+        doc = etree.ElementTree(root)
+        xml_safe_create_element(doc, x_WF, WF)
+        xml_safe_create_element(doc, x_WT, WT)
+        doc.write(out_file, encoding='utf-8', pretty_print=True, xml_declaration=True)
+
+
+if __name__ == "__main__":
+
+    structural_analysis = Structures()
+
+    in_file = '__test__structures_core_input.xml'
+    out_file = '__test__structures_core_output.xml'
+    with open(in_file, 'w') as f:
+        f.write(structural_analysis.generate_input_xml())
+    structural_analysis.execute(in_file, out_file)
diff --git a/examples/knowledgebases/ssbj/__init__.py b/examples/knowledgebases/ssbj/__init__.py
new file mode 100644
index 000000000..58679895c
--- /dev/null
+++ b/examples/knowledgebases/ssbj/__init__.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+Copyright 2017 D. de Vries
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+This file contains code to clean and deploy the knowledge base of the test Sellar case.
+"""
+from __future__ import absolute_import, division, print_function
+
+import os
+import sys
+from shutil import copyfile
+
+from openlego.utils.xml_utils import xml_merge
+
+dir_path = os.path.dirname(os.path.realpath(__file__))
+base_file_path = os.path.join(dir_path, 'sellar-base.xml')
+
+root_tag = 'data_schema'
+cat1 = 'aircraft/geometry'
+cat2 = 'aircraft/weight'
+cat3 = 'aircraft/other'
+cat4 = 'aircraft/reference'
+x_root = '/' + root_tag
+
+x_tc = '/'.join([x_root, cat1, 'tc'])
+x_AR = '/'.join([x_root, cat1, 'AR'])
+x_Lambda = '/'.join([x_root, cat1, 'Lambda'])
+x_Sref = '/'.join([x_root, cat1, 'Sref'])
+x_Theta = '/'.join([x_root, cat1, 'Theta'])
+x_lambda = '/'.join([x_root, cat1, 'lambda'])
+x_section = '/'.join([x_root, cat1, 'section'])
+
+x_WT = '/'.join([x_root, cat2, 'WT'])
+x_WBE = '/'.join([x_root, cat2, 'WBE'])
+x_WE = '/'.join([x_root, cat2, 'WE'])
+x_WF = '/'.join([x_root, cat2, 'WF'])
+x_WFO = '/'.join([x_root, cat2, 'WFO'])
+x_WO = '/'.join([x_root, cat2, 'WO'])
+
+x_D = '/'.join([x_root, cat3, 'D'])
+x_L = '/'.join([x_root, cat3, 'L'])
+x_Cf = '/'.join([x_root, cat3, 'Cf'])
+x_CDmin = '/'.join([x_root, cat3, 'CDmin'])
+x_T = '/'.join([x_root, cat3, 'T'])
+x_DT = '/'.join([x_root, cat3, 'DT'])
+x_fin = '/'.join([x_root, cat3, 'fin'])
+x_SFC = '/'.join([x_root, cat3, 'SFC'])
+x_dpdx = '/'.join([x_root, cat3, 'dpdx'])
+x_R = '/'.join([x_root, cat3, 'R'])
+x_Nz = '/'.join([x_root, cat3, 'Nz'])
+x_sigma1 = '/'.join([x_root, cat3, 'sigma1'])
+x_sigma2 = '/'.join([x_root, cat3, 'sigma2'])
+x_sigma3 = '/'.join([x_root, cat3, 'sigma3'])
+x_sigma4 = '/'.join([x_root, cat3, 'sigma4'])
+x_sigma5 = '/'.join([x_root, cat3, 'sigma5'])
+
+x_h = '/'.join([x_root, cat4, 'h'])
+x_M = '/'.join([x_root, cat4, 'M'])
+x_ESF = '/'.join([x_root, cat4, 'ESF'])
+x_Temp = '/'.join([x_root, cat4, 'Temp'])
+
+from examples.knowledgebases.ssbj.Cnstrnt_sigmas import Cnstrnt_sigmas
+from examples.knowledgebases.ssbj.Cnstrnt_theta import Cnstrnt_theta
+from examples.knowledgebases.ssbj.Structures import Structures
+
+
+def list_disciplines():
+    return [Structures(), Cnstrnt_theta(), Cnstrnt_sigmas()]
+
+def try_to_remove(file):
+    try:
+        os.remove(file)
+    except:
+        pass
+
+def clean():
+    for discipline in list_disciplines():
+        try_to_remove(discipline.in_file)
+        try_to_remove(discipline.out_file)
+        try_to_remove(discipline.json_file)
+    try_to_remove(base_file_path)
+
+    dir = os.path.dirname(os.path.realpath(__file__))
+    for file in os.listdir(dir):
+        if '__test__' in file:
+            os.remove(file)
+        if '__cmdows__' in file:
+            os.remove(file)
+
+
+def deploy():
+    _copy = True
+    for discipline in list_disciplines():
+        discipline.deploy()
+        if _copy:
+            _copy = False
+            copyfile(discipline.in_file, base_file_path)
+        else:
+            xml_merge(base_file_path, discipline.in_file)
+
+        xml_merge(base_file_path, discipline.out_file)
+
+
+if __name__ == '__main__':
+    if len(sys.argv) == 1:
+        deploy()
+    elif len(sys.argv) == 2 and sys.argv[1] == 'clean':
+        clean()
diff --git a/examples/knowledgebases/ssbj/common.py b/examples/knowledgebases/ssbj/common.py
new file mode 100644
index 000000000..5de52730b
--- /dev/null
+++ b/examples/knowledgebases/ssbj/common.py
@@ -0,0 +1,124 @@
+"""
+SSBJ test case - http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980234657.pdf
+Python implementation and OpenMDAO integration developed by
+Sylvain Dubreuil and Remi Lafage of ONERA, the French Aerospace Lab.
+"""
+import os
+import numpy as np
+# pylint: disable=C0103
+from kadmos.cmdows import CMDOWS
+
+
+# TODO: This function should be part of OpenLEGO
+def add_discipline_to_cmdows(Discipline):
+    # Database files
+    files = os.listdir(os.path.dirname(os.path.realpath(__file__)))
+    cmdows_files = [file for file in files if '__cmdows__' in file]
+    assert len(cmdows_files) <= 1, 'Multiple CMDOWS files were found {}.'.format(cmdows_files)
+    if cmdows_files:
+        cmdows = CMDOWS(cmdows_files[0])
+    else:
+        cmdows_files = ['__cmdows__SSBJ.xml']
+        cmdows = CMDOWS()
+        cmdows.add_header()
+    cmdows.add_dc(Discipline.name, Discipline.name, 'main', 1, Discipline.version, Discipline.name)
+    cmdows.save(cmdows_files[0], pretty_print=True)
+
+
+class PolynomialFunction(object):
+
+    R = [[0.2736, 0.3970, 0.8152, 0.9230, 0.1108],
+         [0.4252, 0.4415, 0.6357, 0.7435, 0.1138],
+         [0.0329, 0.8856, 0.8390, 0.3657, 0.0019],
+         [0.0878, 0.7248, 0.1978, 0.0200, 0.0169],
+         [0.8955, 0.4568, 0.8075, 0.9239, 0.2525]]
+
+    d = dict()
+
+    def eval(self, S_new, flag, S_bound, var, deriv=False):
+        if len(S_new) > 1:
+            res = np.array([])
+            S_new = np.append(res, S_new)
+
+        if var not in self.d:
+            self.d[var] = list(S_new)
+
+        S = self.d[var]
+        S_norm = []
+        S_shifted = []
+        Ai = []
+        Aij = [[0.0]*len(S_new) for i in range(len(S_new))]
+
+        assert len(S) == len(S_new)
+
+        for i in range(len(S)):
+            S_norm.append(S_new[i] / S[i])
+
+            if S_norm[i] > 1.25:
+                S_norm[i] = 1.25
+            elif S_norm[i] < 0.75:
+                S_norm[i] = 0.75
+
+            S_shifted.append(S_norm[i]-1)
+
+            a = 0.1
+            b = a
+
+            if flag[i] == 3:
+                a = -a
+                b = a
+            elif flag[i] == 2:
+                b = 2*a
+            elif flag[i] == 4:
+                a = -a
+                b = 2*a
+
+            So = 0.0
+            Sl = So - S_bound[i]
+            Su = So + S_bound[i]
+            Mtx_shifted = np.array([[1.0, Sl, Sl**2],
+                                    [1.0, So, So**2],
+                                    [1.0, Su, Su**2]])
+
+            if flag[i] == 5:
+                F_bound = np.array([[1+(0.5*a)**2], [1.0], [1+(0.5*b)**2]])
+            else:
+                F_bound = np.array([[1-(0.5*a)], [1.0], [1+(0.5*b)]])
+
+            A = np.linalg.solve(Mtx_shifted, F_bound)
+
+            Ao = A[0]
+            B = A[1]
+
+            if var == "Fo1":
+                Ai.append(B)
+            else:
+                Ai.append(A[1])
+
+            Aij[i][i] = A[2]
+
+        for i in range(len(S)):
+            for j in range(i+1, len(S)):
+                Aij[i][j] = Aij[i][i] * self.R[i][j]
+                Aij[j][i] = Aij[i][j]
+
+        Ai = np.matrix(np.array(Ai))
+        Aij = np.matrix(np.array(Aij))
+        S_shifted = np.matrix(np.array(S_shifted))
+
+        if deriv:
+            return S_shifted, Ai, Aij
+        else:
+            return float((Ao + Ai.T * S_shifted.T + 0.5 * S_shifted * Aij * S_shifted.T)[0])
+
+
+if __name__ == '__main__':
+
+    p = PolynomialFunction()
+
+    init = [1.0, 37.080992435478315, 0.4, 1000.0]
+    b = [1.0, 37.080992435478315, 0.4, 26315.848165047268]
+    a = [1.0, 37.080992435478315, 0.4, -12243.514743699088]
+
+    print("it 1", p.eval([1.0], [1], [0.008], "Fo1"))
+    print("it 2", p.eval([0.766], [1], [0.008], "Fo1"))
diff --git a/examples/knowledgebases/ssbj/data-schema.xsd b/examples/knowledgebases/ssbj/data-schema.xsd
index fe4896065..0c72e93dd 100644
--- a/examples/knowledgebases/ssbj/data-schema.xsd
+++ b/examples/knowledgebases/ssbj/data-schema.xsd
@@ -9,10 +9,14 @@
     <xs:element name="Lambda" type="xs:decimal"/>
     <xs:element name="Sref" type="xs:decimal"/>
     <xs:element name="Cf" type="xs:decimal"/>
+    <xs:element name="CDmin" type="xs:decimal"/>
     <xs:element name="T" type="xs:decimal"/>
     <xs:element name="WT" type="xs:decimal"/>
     <xs:element name="WF" type="xs:decimal"/>
     <xs:element name="WE" type="xs:decimal"/>
+    <xs:element name="WFO" type="xs:decimal"/>
+    <xs:element name="WBE" type="xs:decimal"/>
+    <xs:element name="WO" type="xs:decimal"/>
     <xs:element name="D" type="xs:decimal"/>
     <xs:element name="L" type="xs:decimal"/>
     <xs:element name="Theta" type="xs:decimal"/>
@@ -23,9 +27,14 @@
     <xs:element name="section" type="xs:decimal"/>
     <xs:element name="dpdx" type="xs:decimal"/>
     <xs:element name="R" type="xs:decimal"/>
+    <xs:element name="Nz" type="xs:decimal"/>
     <xs:element name="DT" type="xs:decimal"/>
     <xs:element name="Temp" type="xs:decimal"/>
-    <xs:element name="sigma" type="xs:string"/>
+    <xs:element name="sigma1" type="xs:decimal"/>
+    <xs:element name="sigma2" type="xs:decimal"/>
+    <xs:element name="sigma3" type="xs:decimal"/>
+    <xs:element name="sigma4" type="xs:decimal"/>
+    <xs:element name="sigma5" type="xs:decimal"/>
 
     <!-- definition of complex elements -->
     <xs:element name="geometry">
@@ -45,9 +54,12 @@
     <xs:element name="weight">
       <xs:complexType>
         <xs:all>
-            <xs:element ref="WE" minOccurs="0"/>
             <xs:element ref="WT" minOccurs="0"/>
+            <xs:element ref="WBE" minOccurs="0"/>
+            <xs:element ref="WE" minOccurs="0"/>
             <xs:element ref="WF" minOccurs="0"/>
+            <xs:element ref="WFO" minOccurs="0"/>
+            <xs:element ref="WO" minOccurs="0"/>
         </xs:all>
       </xs:complexType>
     </xs:element>
@@ -58,13 +70,19 @@
             <xs:element ref="D" minOccurs="0"/>
             <xs:element ref="L" minOccurs="0"/>
             <xs:element ref="Cf" minOccurs="0"/>
+            <xs:element ref="CDmin" minOccurs="0"/>
             <xs:element ref="T" minOccurs="0"/>
             <xs:element ref="DT" minOccurs="0"/>
             <xs:element ref="fin" minOccurs="0"/>
             <xs:element ref="SFC" minOccurs="0"/>
             <xs:element ref="dpdx" minOccurs="0"/>
             <xs:element ref="R" minOccurs="0"/>
-            <xs:element ref="sigma" minOccurs="0"/>
+            <xs:element ref="Nz" minOccurs="0"/>
+            <xs:element ref="sigma1" minOccurs="0"/>
+            <xs:element ref="sigma2" minOccurs="0"/>
+            <xs:element ref="sigma3" minOccurs="0"/>
+            <xs:element ref="sigma4" minOccurs="0"/>
+            <xs:element ref="sigma5" minOccurs="0"/>
         </xs:all>
       </xs:complexType>
     </xs:element>
diff --git a/examples/knowledgebases/ssbj/ssbj_toolrepo_cmdows.xml b/examples/knowledgebases/ssbj/ssbj_toolrepo_cmdolds.xml
similarity index 100%
rename from examples/knowledgebases/ssbj/ssbj_toolrepo_cmdows.xml
rename to examples/knowledgebases/ssbj/ssbj_toolrepo_cmdolds.xml
diff --git a/examples/knowledgebases/ssbj/structure-input.xml b/examples/knowledgebases/ssbj/structure-input.xml
deleted file mode 100644
index ce1d83d4d..000000000
--- a/examples/knowledgebases/ssbj/structure-input.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data_schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="data-schema.xsd">
-    <aircraft>
-        <geometry>
-            <tc>0.05</tc>
-            <AR>5.5</AR>
-            <Lambda>55.0</Lambda>
-            <Sref>1000.0</Sref>
-            <lambda>0.25</lambda>
-            <section>1.0</section>
-        </geometry>
-        <weight>
-            <WE>5748.915355</WE>
-        </weight>
-        <other>
-            <L>49909.58578</L>
-        </other>
-    </aircraft>
-</data_schema>
\ No newline at end of file
diff --git a/examples/knowledgebases/ssbj/structure-output.xml b/examples/knowledgebases/ssbj/structure-output.xml
deleted file mode 100644
index 692b72555..000000000
--- a/examples/knowledgebases/ssbj/structure-output.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<data_schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="data-schema.xsd">
-    <aircraft>
-        <geometry>
-            <Theta>0.950978</Theta>
-        </geometry>
-        <weight>
-            <WT>49909.58578</WT>
-            <WF>7306.20261</WF>
-        </weight>
-        <other>
-            <sigma>1.12255, 1.08170213, 1.0612766, 1.04902128, 1.04085106</sigma>
-        </other>
-    </aircraft>
-</data_schema>
\ No newline at end of file
diff --git a/examples/scripts/sellar_problem/(X)DSM/Mdao_CO.pdf b/examples/scripts/sellar_problem/(X)DSM/Mdao_CO.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..cbe115e25faa50bb9760d4c5d953032784b7d6b7
GIT binary patch
literal 59986
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
N2cgl?Nh?Fp{tZOCM(Y3o

literal 0
HcmV?d00001

diff --git a/examples/scripts/sellar_problem/(X)DSM/Test_XDSM.pdf b/examples/scripts/sellar_problem/(X)DSM/Test_XDSM.pdf
deleted file mode 100644
index 10f356bfb948d73001b4faa82e756750cef4cd4c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 51386
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
X-qF?mcg>mU*jd@2h>3+|MWFsaI>TRF

diff --git a/examples/scripts/sellar_problem/(X)DSM/Test_XDSM.tex b/examples/scripts/sellar_problem/(X)DSM/Test_XDSM.tex
deleted file mode 100644
index ed2916529..000000000
--- a/examples/scripts/sellar_problem/(X)DSM/Test_XDSM.tex
+++ /dev/null
@@ -1,227 +0,0 @@
-\documentclass{article}
-\usepackage{geometry}
-\usepackage{amsfonts}
-\usepackage{amsmath}
-\usepackage{amssymb}
-\usepackage{tikz}
-
-\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/kadmos/external/XDSM_writer/diagram_border}
-
-\begin{document}
-
-\input{/Users/imcovangent/Documents/PhD/Software/KADMOS/kadmos/external/XDSM_writer/diagram_styles}
-
-\begin{tikzpicture}
-
-  \matrix[MatrixSetup]
-  {
-    %Row 1
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    \\
-    &
-    \node [Coordinator] (436f6f7264696e61746f72) {COOR}; &
-    \node [DataIO] (41-436f6f7264696e61746f72) {$a$}; &
-    \node [DataIO] (53797374656d2d4f7074696d697a6572-436f6f7264696e61746f72) {$x1^{c,0}$\\[1pt] $y2^{c,0}$\\[1pt] $y1^{c,0}$\\[1pt] $z1^{0}$\\[1pt] $z2^{0}$}; &
-    &
-    \node [DataIO] (5375624f7074696d697a65722d30-436f6f7264696e61746f72) {$z2^{c,0}$\\[1pt] $z1^{c,0}$\\[1pt] $x1^{0}$}; &
-    &
-    &
-    &
-    \node [DataIO] (5375624f7074696d697a65722d31-436f6f7264696e61746f72) {$z1^{c,i2,0}$\\[1pt] $z2^{c,i2,0}$}; &
-    &
-    &
-    \\
-    &
-    &
-    \node [PreAnalysis] (41) {A}; &
-    &
-    &
-    &
-    \node [DataInter] (4431-41) {$c$}; &
-    &
-    &
-    &
-    \node [DataInter] (4432-41) {$c$}; &
-    &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-53797374656d2d4f7074696d697a6572) {$y1^{c,*}$\\[1pt] $x1^{c,*}$\\[1pt] $y2^{c,*}$\\[1pt] $z2^{*}$\\[1pt] $z1^{*}$}; &
-    &
-    \node [Optimization] (53797374656d2d4f7074696d697a6572) {System-OPT}; &
-    \node [DataInter] (4631-53797374656d2d4f7074696d697a6572) {$z2$\\[1pt] $x1^{c}$\\[1pt] $y1^{c}$\\[1pt] $y2^{c}$}; &
-    &
-    \node [DataInter] (4431-53797374656d2d4f7074696d697a6572) {$y2^{c}$}; &
-    &
-    \node [DataInter] (5f5f4a305f5f-53797374656d2d4f7074696d697a6572) {$z2$\\[1pt] $z1$\\[1pt] $y1^{c}$\\[1pt] $x1^{c}$}; &
-    &
-    \node [DataInter] (4432-53797374656d2d4f7074696d697a6572) {$y1^{c}$}; &
-    &
-    \node [DataInter] (5f5f4a315f5f-53797374656d2d4f7074696d697a6572) {$z2$\\[1pt] $z1$\\[1pt] $y2^{c}$}; \\
-    %Row 5
-    &
-    \node [DataIO] (436f6f7264696e61746f72-4631) {$f^{*}$}; &
-    &
-    \node [DataInter] (53797374656d2d4f7074696d697a6572-4631) {$f$}; &
-    \node [PostAnalysis] (4631) {F1}; &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-5375624f7074696d697a65722d30) {$x1^{*}$\\[1pt] $z1^{c,*}$\\[1pt] $z2^{c,*}$}; &
-    &
-    &
-    &
-    \node [Optimization] (5375624f7074696d697a65722d30) {SubOPT-0}; &
-    \node [DataInter] (4431-5375624f7074696d697a65722d30) {$x1$\\[1pt] $z1^{c}$\\[1pt] $z2^{c}$}; &
-    &
-    \node [DataInter] (5f5f4a305f5f-5375624f7074696d697a65722d30) {$x1$\\[1pt] $z1^{c}$\\[1pt] $z2^{c}$}; &
-    &
-    &
-    &
-    \\
-    &
-    &
-    &
-    &
-    &
-    &
-    \node [CoupledAnalysis] (4431) {D1}; &
-    \node [DataInter] (4731-4431) {$y1$}; &
-    \node [DataInter] (5f5f4a305f5f-4431) {$y1$}; &
-    &
-    &
-    &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-4731) {$g1^{*}$}; &
-    &
-    &
-    &
-    \node [DataInter] (5375624f7074696d697a65722d30-4731) {$g1$}; &
-    &
-    \node [PostAnalysis] (4731) {G1}; &
-    &
-    &
-    &
-    &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-5f5f4a305f5f) {$J0^{*,*}$}; &
-    &
-    \node [DataInter] (53797374656d2d4f7074696d697a6572-5f5f4a305f5f) {$J0^{*}$}; &
-    &
-    \node [DataInter] (5375624f7074696d697a65722d30-5f5f4a305f5f) {$J0$}; &
-    &
-    &
-    \node [PostAnalysis] (5f5f4a305f5f) {J0}; &
-    &
-    &
-    &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-5375624f7074696d697a65722d31) {$z1^{c,i2,*}$\\[1pt] $z2^{c,i2,*}$}; &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    \node [Optimization] (5375624f7074696d697a65722d31) {SubOPT-1}; &
-    \node [DataInter] (4432-5375624f7074696d697a65722d31) {$z1^{c,i2}$\\[1pt] $z2^{c,i2}$}; &
-    &
-    \node [DataInter] (5f5f4a315f5f-5375624f7074696d697a65722d31) {$z1^{c,i2}$\\[1pt] $z2^{c,i2}$}; \\
-    %Row 11
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    \node [CoupledAnalysis] (4432) {D2}; &
-    \node [DataInter] (4732-4432) {$y2$}; &
-    \node [DataInter] (5f5f4a315f5f-4432) {$y2$}; \\
-    %Row 12
-    &
-    \node [DataIO] (436f6f7264696e61746f72-4732) {$g2^{*}$}; &
-    &
-    &
-    &
-    &
-    &
-    &
-    &
-    \node [DataInter] (5375624f7074696d697a65722d31-4732) {$g2$}; &
-    &
-    \node [PostAnalysis] (4732) {G2}; &
-    \\
-    &
-    \node [DataIO] (436f6f7264696e61746f72-5f5f4a315f5f) {$J1^{*,*}$}; &
-    &
-    \node [DataInter] (53797374656d2d4f7074696d697a6572-5f5f4a315f5f) {$J1^{*}$}; &
-    &
-    &
-    &
-    &
-    &
-    \node [DataInter] (5375624f7074696d697a65722d31-5f5f4a315f5f) {$J1$}; &
-    &
-    &
-    \node [PostAnalysis] (5f5f4a315f5f) {J1}; \\
-    %Row 14
-  };
-
-  \begin{pgfonlayer}{data}
-    \path
-    % Horizontal edges
-    (436f6f7264696e61746f72) edge [DataLine] (5375624f7074696d697a65722d31-436f6f7264696e61746f72)
-    (41) edge [DataLine] (4432-41)
-    (436f6f7264696e61746f72-53797374656d2d4f7074696d697a6572) edge [DataLine] (5f5f4a315f5f-53797374656d2d4f7074696d697a6572)
-    (436f6f7264696e61746f72-4631) edge [DataLine] (4631)
-    (436f6f7264696e61746f72-5375624f7074696d697a65722d30) edge [DataLine] (5f5f4a305f5f-5375624f7074696d697a65722d30)
-    (4431) edge [DataLine] (5f5f4a305f5f-4431)
-    (436f6f7264696e61746f72-4731) edge [DataLine] (4731)
-    (436f6f7264696e61746f72-5f5f4a305f5f) edge [DataLine] (5f5f4a305f5f)
-    (436f6f7264696e61746f72-5375624f7074696d697a65722d31) edge [DataLine] (5f5f4a315f5f-5375624f7074696d697a65722d31)
-    (4432) edge [DataLine] (5f5f4a315f5f-4432)
-    (436f6f7264696e61746f72-4732) edge [DataLine] (4732)
-    (436f6f7264696e61746f72-5f5f4a315f5f) edge [DataLine] (5f5f4a315f5f)
-    % Vertical edges
-    (436f6f7264696e61746f72) edge [DataLine] (436f6f7264696e61746f72-5f5f4a315f5f)
-    (41-436f6f7264696e61746f72) edge [DataLine] (41)
-    (53797374656d2d4f7074696d697a6572-436f6f7264696e61746f72) edge [DataLine] (53797374656d2d4f7074696d697a6572-5f5f4a315f5f)
-    (4631-53797374656d2d4f7074696d697a6572) edge [DataLine] (4631)
-    (5375624f7074696d697a65722d30-436f6f7264696e61746f72) edge [DataLine] (5375624f7074696d697a65722d30-5f5f4a305f5f)
-    (4431-41) edge [DataLine] (4431)
-    (4731-4431) edge [DataLine] (4731)
-    (5f5f4a305f5f-53797374656d2d4f7074696d697a6572) edge [DataLine] (5f5f4a305f5f)
-    (5375624f7074696d697a65722d31-436f6f7264696e61746f72) edge [DataLine] (5375624f7074696d697a65722d31-5f5f4a315f5f)
-    (4432-41) edge [DataLine] (4432)
-    (4732-4432) edge [DataLine] (4732)
-    (5f5f4a315f5f-53797374656d2d4f7074696d697a6572) edge [DataLine] (5f5f4a315f5f)
-    ;
-  \end{pgfonlayer}
-
-\end{tikzpicture}
-
-\end{document}
diff --git a/examples/scripts/sellar_problem/KDMS/Mdao_CO.kdms b/examples/scripts/sellar_problem/KDMS/Mdao_CO.kdms
new file mode 100644
index 0000000000000000000000000000000000000000..1a5c361d95aa34d67cd325732225cc55d6d2366c
GIT binary patch
literal 16054
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

literal 0
HcmV?d00001

diff --git a/examples/scripts/sellar_problem/KDMS/Mdao_CO_mpg.kdms b/examples/scripts/sellar_problem/KDMS/Mdao_CO_mpg.kdms
new file mode 100644
index 0000000000000000000000000000000000000000..1d252429c6aa5987421119f60a336b244ece89af
GIT binary patch
literal 5494
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

literal 0
HcmV?d00001

diff --git a/examples/scripts/sellar_problem_dev_CO.py b/examples/scripts/sellar_problem_dev_CO.py
index 969e8492c..f781b43d3 100644
--- a/examples/scripts/sellar_problem_dev_CO.py
+++ b/examples/scripts/sellar_problem_dev_CO.py
@@ -200,10 +200,6 @@ fpg.add_function_problem_roles()
 
 # Get Mdao graphs
 mdg = fpg.get_mdg(name='mdg Sellar problem')
-
-mdg.create_dsm(file_name='Test_XDSM', include_system_vars=True, destination_folder=pdf_dir,
-               function_order=['Coordinator', 'A', 'System-Optimizer', 'F1', 'SubOptimizer-0', 'D1', 'G1', '__J0__', 'SubOptimizer-1', 'D2', 'G2', '__J1__'], keep_tex_file=True, open_pdf=True)
-
 mpg = mdg.get_mpg(name='mpg Sellar problem')
 mdg.graph['name'] = 'XDSM - ' + mdao_definition
 mdg.graph['description'] = 'Solution strategy to solve the Sellar problem using the strategy: ' \
diff --git a/examples/scripts/ssbj_update.py b/examples/scripts/ssbj_update.py
new file mode 100644
index 000000000..fbc8a30c9
--- /dev/null
+++ b/examples/scripts/ssbj_update.py
@@ -0,0 +1,185 @@
+# Imports
+import os
+import logging
+
+from collections import OrderedDict
+
+from kadmos.graph import FundamentalProblemGraph, load
+from kadmos.utilities.general import get_mdao_setup
+
+
+# Settings for logging
+logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG)
+
+# List of MDAO definitions that can be wrapped around the problem
+mdao_definitions = ['MDF-GS',              # 0
+                    'MDF-J',               # 1
+                    'IDF']                 # 2
+
+# Settings for scripting
+mdao_definitions_loop_all = True      # Option for looping through all MDAO definitions
+mdao_definition_id = 2                # Option for selecting a MDAO definition (in case mdao_definitions_loop_all=False)
+
+# Settings for creating the CMDOWS files
+create_rcg_cmdows = True              # Option for creating the RCG CMDOWS file, set to False to save time
+
+# Settings for creating visualizations
+create_vis = True                     # Create visualisations
+create_rcg_vis = True                 # Create RCG visualizations, set to False after first execution to save time
+
+# Settings for loading and saving
+kb_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../knowledgebases')
+pdf_dir = 'ssbj/(X)DSM'
+cmdows_dir = 'ssbj/CMDOWS'
+kdms_dir = 'ssbj/KDMS'
+vistoms_dir = 'ssbj/VISTOMS'
+
+print 'Loading repository connectivity graph...'
+
+rcg = load(os.path.join(kb_dir, 'ssbj', '__cmdows__SSBJ.xml'), io_xsd_check=True)
+
+print 'Scripting RCG...'
+
+# A name and a description are added to the graph
+rcg.graph['name'] = 'RCG'
+rcg.graph['description'] = 'Repository of the super-sonic business jet test case optimization problem'
+
+# Add some (optional) organization information
+contacts = [{'attrib': {'uID': 'ivangent'}, 'name': 'Imco van Gent', 'email': 'i.vangent@tudelft.nl', 'company': 'TU Delft'},
+            {'attrib': {'uID': 'lmuller'}, 'name': 'Lukas Muller', 'email': 'l.muller@student.tudelft.nl', 'company': 'TU Delft'}]
+architects = [{'contactUID': 'ivangent'}, {'contactUID': 'lmuller'}]
+integrators = [{'contactUID': 'lmuller'}]
+rcg.graph['organization'] = OrderedDict([('contacts', contacts),
+                                         ('organigram', {'architects': architects,
+                                                         'integrators': integrators})])
+
+# Add the objective
+rcg.add_node('objective', category='function')
+rcg.add_node('/data_schema/aircraft/other/objective', category='variable', label='obj')
+rcg.add_edge('/data_schema/aircraft/other/R', 'objective')
+rcg.add_edge('objective', '/data_schema/aircraft/other/objective')
+rcg.add_equation_labels(rcg.get_function_nodes())
+rcg.add_equation('objective', '-R', 'Python')
+rcg.add_equation('objective', '-R', 'LaTeX')
+
+# Define function order for visualization (otherwise the functions will be placed randomly on the diagonal)
+functions = ['structure[main][1][1.0]',
+             'aerodynamics[main][1][1.0]',
+             'propulsion[main][1][1.0]',
+             'performance[main][1][1.0]',
+             'objective']
+
+# Create a DSM and a VISTOMS visualization of the RCG
+if create_vis and create_rcg_vis:
+    rcg.create_dsm('RCG', include_system_vars=True, function_order=functions,
+                   destination_folder=pdf_dir)
+    rcg.vistoms_create(vistoms_dir, function_order=functions)
+
+# Save CMDOWS file
+if create_rcg_cmdows:
+    rcg.save('RCG',
+             file_type='cmdows',
+             description='RCG CMDOWS file of the super-sonic business jet test case optimization problem',
+             creator='Lukas Mueller',
+             version='0.1',
+             destination_folder=cmdows_dir,
+             pretty_print=True,
+             integrity=True)
+
+
+# On to the wrapping of the MDAO architectures
+# Get iterator (all or single one)
+if not mdao_definitions_loop_all:
+    mdao_definitions = [mdao_definitions[mdao_definition_id]]
+
+for mdao_definition in mdao_definitions:
+
+    print 'Scripting ' + str(mdao_definition) + '...'
+
+    # Reset FPG
+    fpg = FundamentalProblemGraph(rcg)
+    fpg.graph['name'] = rcg.graph['name'] + ' - ' + mdao_definition + ' - FPG'
+    fpg.graph['description'] = 'Fundamental problem graph to solve the super-sonic business jet test case optimization problem using the strategy: ' \
+                               + mdao_definition + '.'
+
+    # Determine the three main settings: architecture, convergence type and unconverged coupling setting
+    mdao_architecture, convergence_type, allow_unconverged_couplings = get_mdao_setup(mdao_definition)
+
+    # Define settings of the problem formulation
+    fpg.graph['problem_formulation'] = dict()
+    fpg.graph['problem_formulation']['function_order'] = functions
+    fpg.graph['problem_formulation']['mdao_architecture'] = mdao_architecture
+    fpg.graph['problem_formulation']['convergence_type'] = convergence_type
+    fpg.graph['problem_formulation']['allow_unconverged_couplings'] = allow_unconverged_couplings
+
+    # Depending on the architecture, different additional node attributes have to be specified. This is automated here
+    # to allow direct execution of all different options.
+    if mdao_architecture in ['IDF', 'MDF']:
+        fpg.nodes['/data_schema/aircraft/other/objective']['problem_role'] = 'objective'
+        fpg.nodes['/data_schema/aircraft/geometry/tc']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/reference/h']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/reference/M']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/geometry/AR']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/geometry/Lambda']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/geometry/Sref']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/geometry/lambda']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/geometry/section']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/other/Cf']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/other/T']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/aircraft/geometry/Theta']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/aircraft/other/L']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/aircraft/weight/WE']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/aircraft/weight/WT']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/reference/ESF']['problem_role'] = 'design variable'
+        #fpg.nodes['/data_schema/aircraft/other/D']['problem_role'] = 'design variable'
+        fpg.nodes['/data_schema/aircraft/other/DT']['problem_role'] = 'constraint'
+        fpg.nodes['/data_schema/aircraft/other/sigma']['problem_role'] = 'constraint'
+        fpg.nodes['/data_schema/aircraft/other/dpdx']['problem_role'] = 'constraint'
+        fpg.nodes['/data_schema/reference/Temp']['problem_role'] = 'constraint'
+
+    # Search for problem roles
+    fpg.add_function_problem_roles()
+
+    # Create a DSM visualization of the FPG
+    fpg.create_dsm(file_name='FPG_' + mdao_definition, function_order=functions, include_system_vars=True,
+                   destination_folder=pdf_dir)
+    # Create a VISTOMS visualization of the FPG (and add it to the existing directory)
+    fpg.vistoms_add(vistoms_dir, function_order=functions)
+
+    # Save the FPG as kdms
+    fpg.save('FPG_' + mdao_definition, destination_folder=kdms_dir)
+    # Save the FPG as cmdows (and do an integrity check)
+    fpg.save('FPG_' + mdao_definition, file_type='cmdows', destination_folder=cmdows_dir,
+             description='FPG CMDOWS file of the super-sonic business jet test case optimization problem',
+             creator='Imco van Gent',
+             version='0.1',
+             pretty_print=True,
+             integrity=True)
+
+    # Get Mdao graphs
+    mpg = fpg.get_mpg(name='mpg Sellar problem')
+    mdg = fpg.get_mdg(name='mdg Sellar problem')
+    mdg.graph['name'] = rcg.graph['name'] + ' - ' + mdao_definition + ' - Mdao'
+    mdg.graph['description'] = 'Solution strategy to solve the super-sonic business jet test case optimization problem using the strategy: ' \
+                               + str(mdao_architecture) + (
+                               '_' + str(convergence_type) if convergence_type else '') + '.'
+
+    # Create a DSM visualization of the Mdao
+    mdg.create_dsm(file_name='Mdao_' + mdao_definition, include_system_vars=True, destination_folder=pdf_dir,
+                   mpg=mpg)
+    # Create a VISTOMS visualization of the Mdao (and add it to the existing directory)
+    mdg.vistoms_add(vistoms_dir, mpg=mpg)
+
+    # Save the Mdao as kdms
+    mdg.save('Mdao_' + mdao_definition, destination_folder=kdms_dir, mpg=mpg)
+    # Save the Mdao as cmdows (and do an integrity check)
+    mdg.save('Mdao_' + mdao_definition, file_type='cmdows', destination_folder=cmdows_dir,
+             mpg=mpg,
+             description='Mdao CMDOWS file of the super-sonic business jet test case optimization problem',
+             creator='Imco van Gent',
+             version='0.1',
+             pretty_print=True,
+             integrity=True
+             )
+
+print 'Done!'
diff --git a/kadmos/graph/graph_data.py b/kadmos/graph/graph_data.py
index b231e657e..08518f089 100644
--- a/kadmos/graph/graph_data.py
+++ b/kadmos/graph/graph_data.py
@@ -2529,7 +2529,7 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
         for post_desvar in post_desvars:
             for local_function in local_functions:
                 if nx.has_path(subgraph, post_desvar, local_function):
-                    sub_level_function_dict[self.FUNCTION_ROLES[4]].append()
+                    sub_level_function_dict[self.FUNCTION_ROLES[4]].append(post_desvar)
         additional_post_couplings = []
         for post_coupling in post_couplings:
             if post_coupling not in local_functions:
@@ -2733,11 +2733,10 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
             pass
         elif mdao_arch == graph.OPTIONS_ARCHITECTURES[8]: # CO
             coupled_functions_groups = graph.graph['problem_formulation']['coupled_functions_groups']
-            n_groups = len(coupled_functions_groups)
-            sys_opt = 'System-{}'.format(graph.OPTIMIZER_STRING)
-            sys_opt_label = 'System-{}'.format(graph.OPTIMIZER_LABEL)
-            sub_opts = ['Sub{}-{}'.format(graph.OPTIMIZER_STRING, item[0]) for item in enumerate(coupled_functions_groups)]
-            sub_opts_labels = ['Sub{}-{}'.format(graph.OPTIMIZER_LABEL, item[0]) for item in enumerate(coupled_functions_groups)]
+            sys_opt = '{}{}'.format(graph.SYS_PREFIX, graph.OPTIMIZER_STRING)
+            sys_opt_label = '{}{}'.format(graph.SYS_PREFIX, graph.OPTIMIZER_LABEL)
+            sub_opts = ['{}{}{}{}'.format(graph.SUBSYS_PREFIX, graph.OPTIMIZER_STRING, graph.SUBSYS_SUFFIX, item[0]) for item in enumerate(coupled_functions_groups)]
+            sub_opts_labels = ['{}{}{}{}'.format(graph.SUBSYS_PREFIX, graph.OPTIMIZER_LABEL, graph.SUBSYS_SUFFIX, item[0]) for item in enumerate(coupled_functions_groups)]
 
             # Determine coupling variables between coupled_function_groups (these become design variables of the system optimizer)
             group_couplings, group_couplings_groups_idx = graph.get_group_couplings()
@@ -2759,7 +2758,6 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
             local_cnstrnt_funcs, \
             cnstrnt_vars_group_idxs, \
             cnstrnt_funcs_group_idxs = graph.determine_scope_constraint_functions(cnstrnt_vars=constraint_nodes)
-            # TODO: determine other post-coupling functions that have a dependency with the constraint function
 
             # Create dictionary of pre-desvar, post-desvar, and post-coupling functions for the system optimizer
             sys_functions_dict = graph.get_system_level_functions(global_objective_function, global_cnstrnt_funcs,
@@ -2779,11 +2777,16 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
                 # Create dict collecting the subsystem functions dictionary
                 subsys_functions_dicts.append(subsys_functions_dict)
 
+            # TODO: Assert that function instances are not required (future functionality)
+
             # TODO: Determine the functions that require instances, add them, and adjust subsys_functions_dict accordingly
+            # sys_functions_dict, subsys_functions_dicts = graph.create_function_instances(sys_functions_dict,
+            #                                                                              subsys_functions_dicts)
 
             # Keep track of the design variables and constraints for the system level
             sys_lev_des_vars = set(global_des_vars)
             sys_lev_cnstrnts = set(global_cnstrnt_vars)
+
             # For each discipline group, localize the group, add the consistency objective function and add the
             # sub-optimizer
             for idx, subsys_functions_dict in enumerate(subsys_functions_dicts):
@@ -2813,6 +2816,7 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
                 cof_mappings = mapping_des_vars.copy()
                 cof_mappings.update(mapping_locals)
                 group_cof_node, group_cof_obj_node = mdg.connect_consistency_objective_function(idx, cof_mappings)
+                subsys_functions_dicts[idx][mdg.FUNCTION_ROLES[2]].append(group_cof_node)
 
                 # TODO: Then (optionally) add a converger or check for the removal of feedback (NO!!)?
                 # if feedback inside the coupled group
@@ -2854,6 +2858,9 @@ class FundamentalProblemGraph(DataGraph, KeChainMixin):
             # Finally, connect the coordinator
             mdg.connect_coordinator()
 
+            # Write function_ordering to the graph
+            mdg.graph['distr_function_ordering'] = [sys_functions_dict, subsys_functions_dicts]
+
         logger.info('Composed MDG.')
 
         return mdg
@@ -3282,19 +3289,25 @@ class MdaoDataGraph(DataGraph, MdaoMixin):
 
         # Add the consistency constraint objective function (as generic function node, since it will be made as a
         # mathematical function)
-        new_function_node = '__J' + str(group_idx) + '__'
+        new_function_node = self.COF_STRING + str(group_idx) + self.COF_SUFFIX
         assert not self.has_node(new_function_node), \
             'The automatically generated function {} somehow already exists.'.format(new_function_node)
         self.add_node(new_function_node,
                       category='function',
-                      label='J' + str(group_idx),
+                      label=self.COF_LABEL + str(group_idx),
                       instance=1,
                       problem_role=self.FUNCTION_ROLES[2],  # post-coupling
                       architecture_role=self.ARCHITECTURE_ROLES_FUNS[9])  # consistency constraint function
         # Connect the variable inputs for the function
-        for var1, var2 in ccv_mappings.iteritems():
-            self.add_edge(var1, new_function_node) # TODO: Add equation_label
-            self.add_edge(var2, new_function_node) # TODO: Add equation_label
+        for idx, (var1, var2) in enumerate(ccv_mappings.iteritems()):
+            eq_lab1 = 'x{}_0'.format(idx)
+            eq_lab2 = 'x{}_1'.format(idx)
+            self.add_edge(var1, new_function_node, equation_label=eq_lab1)
+            self.add_edge(var2, new_function_node, equation_label=eq_lab2)
+            if idx == 0:
+                math_expression = '({}-{})**2'.format(eq_lab2, eq_lab1)
+            else:
+                math_expression += '+({}-{})**2'.format(eq_lab2, eq_lab1)
         # Create the output objective node of the function and connect it
         xpath_var1 = var1.split('/')
         root = xpath_var1[1]
@@ -3304,7 +3317,8 @@ class MdaoDataGraph(DataGraph, MdaoMixin):
                       label='J'+str(group_idx),
                       instance=1,
                       problem_role=self.PROBLEM_ROLES_VARS[1])  # objective
-        self.add_edge(new_function_node, new_obj_node)  # TODO: Add Python equation to the edge
+        self.add_edge(new_function_node, new_obj_node)
+        self.add_equation((new_function_node, new_obj_node), math_expression, 'Python')
         return new_function_node, new_obj_node
 
     def localize_design_variables(self, group_functions, global_des_vars, local_des_vars):
@@ -3779,7 +3793,7 @@ class MdaoDataGraph(DataGraph, MdaoMixin):
         coor = mdg.COORDINATOR_STRING
         mdao_arch = mdg.graph['problem_formulation']['mdao_architecture']
 
-        # Get the function ordering for the FPG and assign function lists accordingly.
+        # Get the monolithic function ordering from the MDG and assign function lists accordingly.
         mg_function_ordering = mdg.graph['mg_function_ordering']
         if mdg.FUNCTION_ROLES[0] in mg_function_ordering:
             pre_functions = mg_function_ordering[mdg.FUNCTION_ROLES[0]]
@@ -3861,8 +3875,22 @@ class MdaoDataGraph(DataGraph, MdaoMixin):
         elif mdao_arch == mdg.OPTIONS_ARCHITECTURES[7]:  # distributed-convergence
             pass
         elif mdao_arch == mdg.OPTIONS_ARCHITECTURES[8]:  # CO
-            pass
-
+            distr_function_ordering = mdg.graph['distr_function_ordering']
+            sys_opt = '{}{}'.format(mdg.SYS_PREFIX, mdg.OPTIMIZER_STRING)
+            sub_opts = ['{}{}{}{}'.format(mdg.SUBSYS_PREFIX, mdg.OPTIMIZER_STRING, mdg.SUBSYS_SUFFIX, item[0]) for
+                        item in enumerate(distr_function_ordering[1])]
+            sequence1 = [coor] + distr_function_ordering[0][self.FUNCTION_ROLES[3]] + [sys_opt]
+            mpg.add_process(sequence1, 0, mdg)
+            sequence2 = [sys_opt] + distr_function_ordering[0][self.FUNCTION_ROLES[2]]
+            mpg.add_process(sequence2, mpg.node[sequence1[-1]]['process_step'], mdg, end_in_iterative_node=sys_opt)
+            for idx, subgroup in enumerate(distr_function_ordering[1]):
+                sequence3 = [sys_opt, sub_opts[idx]]
+                mpg.connect_nested_iterators(sys_opt, sub_opts[idx], direction='master->slave')
+                sequence4 = [sub_opts[idx]] + subgroup[self.FUNCTION_ROLES[4]] + subgroup[self.FUNCTION_ROLES[1]] + \
+                            subgroup[self.FUNCTION_ROLES[2]]
+                mpg.add_process(sequence4, mpg.node[sequence3[-1]]['process_step'], mdg, end_in_iterative_node=sub_opts[idx])
+                mpg.connect_nested_iterators(sys_opt, sub_opts[idx])
+            mpg.connect_nested_iterators(coor, sys_opt)
 
         mpg.graph['process_hierarchy'] = mpg.get_process_hierarchy()
 
diff --git a/kadmos/graph/graph_kadmos.py b/kadmos/graph/graph_kadmos.py
index 83b862940..0cde16bc5 100644
--- a/kadmos/graph/graph_kadmos.py
+++ b/kadmos/graph/graph_kadmos.py
@@ -116,12 +116,18 @@ class KadmosGraph(nx.DiGraph, EquationMixin, VistomsMixin):
                                      'PostAnalysis',               # 8
                                      'PostAnalysis']               # 9
     CMDOWS_ARCHITECTURE_ROLE_SPLITTER = get_list_entries(ARCHITECTURE_ROLES_FUNS, 0, 1, 2, 3, 9)
+    SYS_PREFIX = 'Sys-'
+    SUBSYS_PREFIX = 'Sub-'
+    SUBSYS_SUFFIX = '-'
     COORDINATOR_STRING = 'Coordinator'
     COORDINATOR_LABEL = 'COOR'
     CONVERGER_STRING = 'Converger'
     CONVERGER_LABEL = 'CONV'
     CONSCONS_STRING = 'Gc'
     CONSCONS_LABEL = 'Gc'
+    COF_STRING = '__J'
+    COF_SUFFIX = '__'
+    COF_LABEL = 'J'
     DOE_STRING = 'DOE'
     DOE_LABEL = 'DOE'
     OPTIMIZER_STRING = 'Optimizer'
@@ -4028,7 +4034,7 @@ def _load_cmdows(file_path, io_xsd_check):
     elif rcg:
         graph = RepositoryConnectivityGraph()
     else:
-        IOError('The CMDOWS file ' + file_path + ' is missing basic elements and cannot be loaded.')
+        raise IOError('The CMDOWS file ' + file_path + ' is missing basic elements and cannot be loaded.')
 
     # Load the graph (and MPG in case this one is provided)
     mpg = graph.load_cmdows(cmdows, io_xsd_check)
diff --git a/kadmos/graph/graph_process.py b/kadmos/graph/graph_process.py
index 1ab689281..7c6183d8d 100644
--- a/kadmos/graph/graph_process.py
+++ b/kadmos/graph/graph_process.py
@@ -209,43 +209,145 @@ class MdaoProcessGraph(ProcessGraph):
         :rtype: None
         """
 
-        # Get function ordering of MDAO graph and establish diagonal order list
-        mg_function_ordering = self.graph['mg_function_ordering']
-        diagonal_order = self.find_all_nodes(attr_cond=['architecture_role', '==',
-                                                        self.ARCHITECTURE_ROLES_FUNS[0]])  # coordinator
-
-        # Append pre-coupling functions
-        if self.FUNCTION_ROLES[0] in mg_function_ordering:
-            diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[0]])
-
-        # Append pre-desvars functions
-        if self.FUNCTION_ROLES[3] in mg_function_ordering:
-            diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[3]])
-
-        # Append optimizer or DOE block
-        diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
-                                                             self.ARCHITECTURE_ROLES_FUNS[1]]))  # optimizer
-        diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
-                                                             self.ARCHITECTURE_ROLES_FUNS[3]]))  # doe
-
-        # Append post-desvars functions
-        if self.FUNCTION_ROLES[4] in mg_function_ordering:
-            diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[4]])
-
-        # Append converger block
-        diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
-                                                             self.ARCHITECTURE_ROLES_FUNS[2]]))  # converger
-
-        # Append coupled functions
-        if self.FUNCTION_ROLES[1] in mg_function_ordering:
-            diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[1]])
-
-        # Append post-coupling functions
-        if self.FUNCTION_ROLES[2] in mg_function_ordering:
-            diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[2]])
+        # TODO: Update this function to only one function_ordering for both monolithic and distributed architectures
+
+        if 'distr_function_ordering' not in self.graph:
+            # Get function ordering of MDAO graph and establish diagonal order list
+            mg_function_ordering = self.graph['mg_function_ordering']
+            diagonal_order = self.find_all_nodes(attr_cond=['architecture_role', '==',
+                                                            self.ARCHITECTURE_ROLES_FUNS[0]])  # coordinator
+
+            # Append pre-coupling functions
+            if self.FUNCTION_ROLES[0] in mg_function_ordering:
+                diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[0]])
+
+            # Append pre-desvars functions
+            if self.FUNCTION_ROLES[3] in mg_function_ordering:
+                diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[3]])
+
+            # Append optimizer or DOE block
+            diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
+                                                                 self.ARCHITECTURE_ROLES_FUNS[1]]))  # optimizer
+            diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
+                                                                 self.ARCHITECTURE_ROLES_FUNS[3]]))  # doe
+
+            # Append post-desvars functions
+            if self.FUNCTION_ROLES[4] in mg_function_ordering:
+                diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[4]])
+
+            # Append converger block
+            diagonal_order.extend(self.find_all_nodes(attr_cond=['architecture_role', '==',
+                                                                 self.ARCHITECTURE_ROLES_FUNS[2]]))  # converger
+
+            # Append coupled functions
+            if self.FUNCTION_ROLES[1] in mg_function_ordering:
+                diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[1]])
+
+            # Append post-coupling functions
+            if self.FUNCTION_ROLES[2] in mg_function_ordering:
+                diagonal_order.extend(mg_function_ordering[self.FUNCTION_ROLES[2]])
+
+            for diag_pos, node in enumerate(diagonal_order):
+                self.nodes[node]['diagonal_position'] = diag_pos
+        else:
+            mg_function_ordering = self.graph['distr_function_ordering']
+            syslevel_ordering = mg_function_ordering[0]
+            subsyslevel_orderings = mg_function_ordering[1]
+            diagonal_order = self.find_all_nodes(attr_cond=['architecture_role', '==',
+                                                            self.ARCHITECTURE_ROLES_FUNS[0]])  # coordinator
+
+            # Append system-level pre-coupling functions
+            if self.FUNCTION_ROLES[0] in syslevel_ordering:
+                diagonal_order.extend(syslevel_ordering[self.FUNCTION_ROLES[0]])
+
+            # Append system-level pre-desvars functions
+            if self.FUNCTION_ROLES[3] in syslevel_ordering:
+                diagonal_order.extend(syslevel_ordering[self.FUNCTION_ROLES[3]])
+
+            # Append system level optimizer and/or DOE block
+            opts = self.find_all_nodes(attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[1]]) # optimizer
+            if len(opts) > 1:
+                sys_opt = [item for item in opts if self.SYS_PREFIX in item]
+                assert len(sys_opt) == 1, '{} system optimizers found, one expected.'.format(len(sys_opt))
+                opts = sys_opt
+            diagonal_order.extend(opts)
+            does = self.find_all_nodes(attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[3]])  # doe
+            if len(does) > 1:
+                sys_doe = [item for item in does if self.SYS_PREFIX in item]
+                assert len(sys_doe) == 1, '{} system DOE(s) found, one expected.'.format(len(sys_doe))
+                does = sys_doe
+            diagonal_order.extend(does)
+
+            # Append system-level post-desvars functions
+            if self.FUNCTION_ROLES[4] in syslevel_ordering:
+                diagonal_order.extend(syslevel_ordering[self.FUNCTION_ROLES[4]])
+
+            # Append system-level converger block
+            convs = self.find_all_nodes(attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[2]])  # converger
+            if len(convs) > 1:
+                sys_conv = [item for item in convs if self.SYS_PREFIX in item]
+                assert len(sys_conv) == 1, '{} system convergers found, one expected.'.format(len(sys_conv))
+                convs = sys_conv
+            diagonal_order.extend(convs)  # converger
+
+            # Append system-level coupled functions
+            if self.FUNCTION_ROLES[1] in syslevel_ordering:
+                diagonal_order.extend(syslevel_ordering[self.FUNCTION_ROLES[1]])
+
+            # Append system-level post-coupling functions
+            if self.FUNCTION_ROLES[2] in syslevel_ordering:
+                diagonal_order.extend(syslevel_ordering[self.FUNCTION_ROLES[2]])
+
+            # Append sublevel functions here
+            for idx, subsyslevel_ord in enumerate(subsyslevel_orderings):
+                # Append subsystem-level pre-coupling functions
+                if self.FUNCTION_ROLES[0] in subsyslevel_ord:
+                    diagonal_order.extend(subsyslevel_ord[self.FUNCTION_ROLES[0]])
+
+                # Append subsystem-level pre-desvars functions
+                if self.FUNCTION_ROLES[3] in subsyslevel_ord:
+                    diagonal_order.extend(subsyslevel_ord[self.FUNCTION_ROLES[3]])
+
+                # Append subsytem-level optimizer and/or DOE block
+                opts = self.find_all_nodes(
+                    attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[1]])  # optimizer
+                if len(opts) > 1:
+                    sys_opt = [item for item in opts if self.SUBSYS_SUFFIX in item and self.SUBSYS_SUFFIX+str(idx) in item]
+                    assert len(sys_opt) == 1, '{} subsystem optimizers found, one expected.'.format(len(sys_opt))
+                    opts = sys_opt
+                diagonal_order.extend(opts)
+                does = self.find_all_nodes(
+                    attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[3]])  # doe
+                if len(does) > 1:
+                    sys_doe = [item for item in does if self.SUBSYS_SUFFIX in item and self.SUBSYS_SUFFIX+str(idx) in item]
+                    assert len(sys_doe) == 1, '{} subsystem DOEs found, one expected.'.format(len(sys_doe))
+                    does = sys_doe
+                diagonal_order.extend(does)
+
+                # Append subsytem-level post-desvars functions
+                if self.FUNCTION_ROLES[4] in subsyslevel_ord:
+                    diagonal_order.extend(subsyslevel_ord[self.FUNCTION_ROLES[4]])
+
+                # Append subsytem-level converger block
+                convs = self.find_all_nodes(
+                    attr_cond=['architecture_role', '==', self.ARCHITECTURE_ROLES_FUNS[2]])  # converger
+                if len(convs) > 1:
+                    sys_conv = [item for item in convs if self.SUBSYS_SUFFIX in item and self.SUBSYS_SUFFIX+str(idx) in item]
+                    assert len(sys_conv) == 1, '{} subsystem convergers found, one expected.'.format(len(sys_conv))
+                    convs = sys_conv
+                diagonal_order.extend(convs)  # converger
+
+                # Append subsytem-level coupled functions
+                if self.FUNCTION_ROLES[1] in subsyslevel_ord:
+                    diagonal_order.extend(subsyslevel_ord[self.FUNCTION_ROLES[1]])
+
+                # Append subsytem-level post-coupling functions
+                if self.FUNCTION_ROLES[2] in subsyslevel_ord:
+                    diagonal_order.extend(subsyslevel_ord[self.FUNCTION_ROLES[2]])
+
+            for diag_pos, node in enumerate(diagonal_order):
+                self.nodes[node]['diagonal_position'] = diag_pos
 
-        for diag_pos, node in enumerate(diagonal_order):
-            self.nodes[node]['diagonal_position'] = diag_pos
 
         return
 
@@ -339,14 +441,18 @@ class MdaoProcessGraph(ProcessGraph):
                 # End in iterative node or simply end function
                 if end_in_iterative_node:
                     [self.add_edge(node_1, end_in_iterative_node, process_step=process_step) for node_1 in nodes_1]
-                    self.nodes[end_in_iterative_node]['converger_step'] = process_step
+                    if 'converger_step' not in self.nodes[end_in_iterative_node]:
+                        self.nodes[end_in_iterative_node]['converger_step'] = process_step
+                    else:
+                        if process_step > self.nodes[end_in_iterative_node]['converger_step']:
+                            self.nodes[end_in_iterative_node]['converger_step'] = process_step
             # Increment process step
             process_step += 1
             coupling_matrix_1 = coupling_matrix_2
 
         return
 
-    def connect_nested_iterators(self, master, slave):
+    def connect_nested_iterators(self, master, slave, direction='slave->master'):
         """Method to connect a slave iterator to a master iterator in a nested configuration.
 
         An example is if a converger inside an optimizer in MDF needs to be linked back.
@@ -356,13 +462,22 @@ class MdaoProcessGraph(ProcessGraph):
         :param slave: lower iterator node in the nested configuration
         :type slave: basestring
         """
-
-        assert self.has_node(master), 'Node %s not present in the graph.' % master
-        assert self.has_node(slave), 'Node %s not present in the graph.' % slave
-        assert 'converger_step' in self.nodes[slave], 'Slave node %s needs to have a converger_step.' % slave
-        self.add_edge(slave, master, process_step=self.nodes[slave]['converger_step'] + 1)
-        self.nodes[master]['converger_step'] = self.nodes[slave]['converger_step'] + 1
-
+        dir_options = ['slave->master', 'master->slave']
+        assert direction in dir_options, 'direction options are {} and {}.'.format(dir_options[0], dir_options[1])
+        assert self.has_node(master), 'Node {} not present in the graph.'.format(master)
+        assert self.has_node(slave), 'Node {} not present in the graph.'.format(slave)
+        if direction == 'slave->master':
+            assert 'converger_step' in self.nodes[slave], 'Slave node %s needs to have a converger_step.' % slave
+            self.add_edge(slave, master, process_step=self.nodes[slave]['converger_step'] + 1)
+            if 'converger_step' not in self.nodes[master]:
+                self.nodes[master]['converger_step'] = self.nodes[slave]['converger_step'] + 1
+            else:
+                if self.nodes[slave]['converger_step'] + 1 > self.nodes[master]['converger_step']:
+                    self.nodes[master]['converger_step'] = self.nodes[slave]['converger_step'] + 1
+        else:
+            assert 'process_step' in self.nodes[master], 'Master node {} needs to have a process_step.'.format(master)
+            self.add_edge(master, slave, process_step=self.nodes[master]['process_step'] + 1)
+            self.nodes[slave]['process_step'] = self.nodes[master]['process_step'] + 1
         return
 
     def get_node_text(self, node):
diff --git a/kadmos/graph/mixin_equation.py b/kadmos/graph/mixin_equation.py
index 76d87422e..81b284fb8 100644
--- a/kadmos/graph/mixin_equation.py
+++ b/kadmos/graph/mixin_equation.py
@@ -102,9 +102,6 @@ class EquationMixin(object):
         else:
             raise IOError('Invalid setting label_method.')
 
-
-
-
         # Make the label valid
         for char in self._get_equation_chars(language=language):
             label = label.replace(char, '')
-- 
GitLab