{
  "scn-i": {
    "nodes": [
      {
        "type": "optimization", 
        "id": "Opt", 
        "name": "DisciplineOptimization_i"
      }, 
      {
        "type": "analysis", 
        "id": "Dis1", 
        "name": "Analysis_i"
      }, 
      {
        "type": "function", 
        "id": "Dis2", 
        "name": "SystemFunctions"
      }, 
      {
        "type": "function", 
        "id": "Dis3", 
        "name": "DisciplineFunctions"
      },
      {
        "type": "function", 
        "id": "Dis4", 
        "name": "DisciplineVarDerivatives_i"
      }
    ], 
    "edges": [
      {
        "to": "Opt", 
        "from": "_U_", 
        "name": "x_i"
      }, 
      {
        "to": "_U_", 
        "from": "Opt", 
        "name": "x_i^*, y_i^*"
      }, 
      {
        "to": "Dis1", 
        "from": "Opt", 
        "name": "x_i"
      }, 
      {
        "to": "Opt", 
        "from": "Dis1", 
        "name": "y_i"
      },
      {
        "to": "Dis2", 
        "from": "Dis1", 
        "name": "x_i, y_i"
      }, 
      {
        "to": "Dis3", 
        "from": "Dis1", 
        "name": "x_i, y_i"
      }, 
      {
        "to": "Dis4", 
        "from": "Dis1", 
        "name": "x_i, y_i"
      }, 
      {
        "to": "Opt", 
        "from": "Dis2", 
        "name": "f_0, c_0"
      },
      {
        "to": "Opt", 
        "from": "Dis3", 
        "name": "f_i, c_i"
      },
      {
        "to": "Opt", 
        "from": "Dis4", 
        "name": "df_xi, dc_xi"
      }, 
      {
        "to": "Dis1", 
        "from": "_U_", 
        "name": "yest_j"
      }, 
      {
        "to": "Dis2", 
        "from": "_U_", 
        "name": "yest_j"
      },
      {
        "to": "Dis3", 
        "from": "_U_", 
        "name": "yest_j"
      },
      {
        "to": "Dis4", 
        "from": "_U_", 
        "name": "yest_j"
      },
      {
        "to": "_U_", 
        "from": "Dis2", 
        "name": "f_0, c_0"
      },
      {
        "to": "_U_", 
        "from": "Dis3", 
        "name": "f_i, c_i"
      }
    ], 
    "workflow": [
      "_U_", 
      [
        "Opt", 
        [
          "Dis1",
          { "parallel": ["Dis2", "Dis3", "Dis4"] }
        ]
      ]
    ],
    "optpb" : "Minimize (f0)0 + (df/dxi)Dxi\nwith respect to Dxi\nsubject to (c0)0 + (dc0/dxi)Dxi >= 0\n           (ci)0 + (dci/dxi)Dxi >= 0\n            Dxi_L <= Dxi <= Dxi_U "
  }, 
  "root": {
    "nodes": [
      {
        "type": "mda", 
        "id": "Dis1", 
        "name": "ConvergenceCheck"
      },
      {
        "type": "mda", 
        "id": "Mda", 
        "name": "MDA"
      },
      {
        "type": "optimization", 
        "id": "Opt", 
        "name": "SystemOptimization"
      },
      { 
        "type": "mdo_multi", 
        "id": "Mdo", 
        "name": "DisciplineOptimization_scn-i"
      },
      {
        "type": "function", 
        "id": "Dis2", 
        "name": "SystemFunctions"
      }, 
      {
        "type": "function", 
        "id": "Dis4", 
        "name": "DisciplineFunctions"
      },
      {
        "type": "function", 
        "id": "Dis3", 
        "name": "SharedVarDerivatives"
      },
      {
        "type": "analysis_multi", 
        "id": "Dis5", 
        "name": "Analysis_i"
      }
    ], 
    "edges": [
      {
        "to": "Dis1", 
        "from": "_U_", 
        "name": "x^(0)"
      }, 
      {
        "to": "_U_", 
        "from": "Dis1", 
        "name": "NoData"
      }, 
      {
        "to": "Mda", 
        "from": "_U_", 
        "name": "yest^(0)"
      }, 
      {
        "to": "Dis5", 
        "from": "Mda", 
        "name": "yest_j"
      }, 
      {
        "to": "Dis5", 
        "from": "Mda", 
        "name": "yest_j"
      }, 
      {
        "to": "Dis5", 
        "from": "Mda", 
        "name": "yest_j"
      }, 
      {
        "to": "Mda", 
        "from": "Dis5", 
        "name": "y_i"
      }, 
      {
        "to": "Opt", 
        "from": "_U_", 
        "name": "x_0^(0)"
      }, 
      {
        "to": "Mdo", 
        "from": "_U_", 
        "name": "x_i^(0)"
      }, 
      {
        "to": "_U_", 
        "from": "Opt", 
        "name": "x_0^*"
      }, 
      {
        "to": "_U_", 
        "from": "Mdo", 
        "name": "x_i^*, y_i^*"
      }, 
      {
        "to": "Dis1", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Dis1", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Opt", 
        "from": "Dis3", 
        "name": "df_x0, dc_x0"
      },
      {
        "to": "Dis3", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Mdo", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Opt", 
        "from": "Mdo", 
        "name": "f_0, c_0, f_i, c_i"
      },
      {
        "to": "Opt", 
        "from": "Dis2", 
        "name": "f_0, c_0"
      },
      {
        "to": "Opt", 
        "from": "Dis4", 
        "name": "f_i, c_i"
      },
      {
        "to": "Dis1", 
        "from": "Mdo", 
        "name": "x_i"
      },
      {
        "to": "Dis2", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Dis4", 
        "from": "Opt", 
        "name": "x_0"
      },
      {
        "to": "Mdo", 
        "from": "Mda", 
        "name": "yest_j"
      }
    ], 
    "workflow": [
      "_U_", 
      [
        "Dis1", 
        [
          "Mda",
          [
          	"Dis5"
          ],
          "Mdo",
          "Opt",
          { "parallel": ["Dis3", "Dis2", "Dis4"] },
          "Opt"
        ]
      ]
    ],
    "optpb" : "Minimize (f0*)0 + (df0*/dx0)Dx0 \nwith respect to Dx0\nsubject to (c0*)0 + (dc0*/dx0)Dx0 >= 0\n           (ci*)0 + (dci*/dx0)Dx0 >= 0\n            Dx0_L <= Dx0 <= Dx0_U"
  }
}