Browse Source

Move some part of the notebook to a file, as that part is not modified

Yentl Van Tendeloo 7 years ago
parent
commit
50d958fc0e
2 changed files with 80 additions and 132 deletions
  1. 11 132
      examples/pm_simulation.ipynb
  2. 69 0
      models/FTGPM/PM_patterns_simulation_relative.mvc

+ 11 - 132
examples/pm_simulation.ipynb

@@ -7,12 +7,13 @@
     "# Process Model simulation\n",
     "In this example, we present a simple process model and simulate its execution to obtain performance metrics.\n",
     "## Initialization\n",
-    "As usual, we start the notebook by initializing the Modelverse connection."
+    "As usual, we start the notebook by initializing the Modelverse connection.\n",
+    "Additionally, we will be using matplotlib to draw a figure at the end, so include it now already"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -20,22 +21,8 @@
     "sys.path.append(\"../wrappers/\")\n",
     "from modelverse import *\n",
     "init()\n",
-    "login(None, None)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Additionally, we will be using matplotlib to draw a figure at the end, so include it now already"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [],
-   "source": [
+    "login(None, None)\n",
+    "\n",
     "%matplotlib inline\n",
     "import matplotlib.pyplot as plt"
    ]
@@ -44,8 +31,8 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "## Load formalisms\n",
-    "Load all the necessary formalisms first.\n",
+    "## Load libraries\n",
+    "Load all the necessary formalisms and activities first.\n",
     "They might already exist in the Modelverse, but it doesn't matter that much now: just overwrite.\n",
     "Also loads the DEVS library for process modelling building blocks."
    ]
@@ -60,124 +47,16 @@
     "model_add(\"~/formalisms/PM/PM_Extended_MM\", \"formalisms/SimpleClassDiagrams\", open(\"../models/FTGPM/metamodels/control_patterns.mvc\", 'r').read())\n",
     "model_add(\"~/formalisms/Experiment/Experiment_MM\", \"formalisms/SimpleClassDiagrams\", open(\"../models/PythonPDEVS_Experiment/metamodels/experiment.mvc\", 'r').read())\n",
     "model_add(\"~/models/DEVS/PM_library\", \"~/formalisms/DEVS/DEVS_MM\", open(\"../models/ClassicDEVS/models/process_patterns_library.mvc\", 'r').read())\n",
-    "model_add(\"~/formalisms/String\", \"formalisms/SimpleClassDiagrams\", open(\"../models/String/metamodels/String.mvc\", 'r').read())"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Add Process\n",
-    "Now load in the process that we will be using, this should normally not be changed, though the content is valuable to know the bindings (for the signature)."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "model_add(\"~/models/PM/to_DEVS\", \"formalisms/ProcessModel\", \"\"\"\n",
-    "    Start start {}\n",
-    "\n",
-    "    Exec translate {\n",
-    "        name = \"~/formalisms/PM/to_DEVS\"\n",
-    "    }\n",
-    "\n",
-    "    Exec merge {\n",
-    "        name = \"~/formalisms/DEVS/merge\"\n",
-    "    }\n",
-    "\n",
-    "    Exec simulate {\n",
-    "        name = \"~/formalisms/DEVS/simulate\"\n",
-    "    }\n",
-    "\n",
-    "    Finish finish {}\n",
-    "\n",
-    "    Next (start, translate) {}\n",
-    "    Next (translate, merge) {}\n",
-    "    Next (merge, simulate) {}\n",
-    "    Next (simulate, finish) {}\n",
+    "model_add(\"~/formalisms/String\", \"formalisms/SimpleClassDiagrams\", open(\"../models/String/metamodels/String.mvc\", 'r').read())\n",
     "\n",
-    "    Data pm_model {\n",
-    "        name = \"PM\"\n",
-    "        type = \"~/formalisms/PM/PM_MM\"\n",
-    "    }\n",
-    "\n",
-    "    Data cdevs_model {\n",
-    "        name = \"\"\n",
-    "        type = \"~/formalisms/DEVS/DEVS_MM\"\n",
-    "    }\n",
-    "    \n",
-    "    Data result_model {\n",
-    "        name = \"result\"\n",
-    "        type = \"~/formalisms/String\"\n",
-    "    }\n",
-    "\n",
-    "    Data adevs_model {\n",
-    "        name = \"DEVS library\"\n",
-    "        type = \"~/formalisms/DEVS/DEVS_MM\"\n",
-    "    }\n",
-    "\n",
-    "    Data devs_model {\n",
-    "        name = \"\"\n",
-    "        type = \"~/formalisms/DEVS/DEVS_MM\"\n",
-    "    }\n",
-    "\n",
-    "    Data experiment_model {\n",
-    "        name = \"Experiment\"\n",
-    "        type = \"~/formalisms/Experiment/Experiment_MM\"\n",
-    "    }\n",
-    "\n",
-    "    Consumes (translate, pm_model) {\n",
-    "        name = \"PM\"\n",
-    "    }\n",
-    "    Produces (translate, cdevs_model) {\n",
-    "        name = \"DEVS\"\n",
-    "    }\n",
-    "\n",
-    "    Consumes (merge, adevs_model) {\n",
-    "        name = \"model1\"\n",
-    "    }\n",
-    "    Consumes (merge, cdevs_model) {\n",
-    "        name = \"model2\"\n",
-    "    }\n",
-    "    Produces (merge, devs_model) {\n",
-    "        name = \"result\"\n",
-    "    }\n",
-    "\n",
-    "    Consumes (simulate, devs_model) {\n",
-    "        name = \"DEVS\"\n",
-    "    }\n",
-    "    Consumes (simulate, experiment_model) {\n",
-    "        name = \"Experiment\"\n",
-    "    }\n",
-    "    Produces (simulate, result_model) {\n",
-    "        name = \"result\"\n",
-    "    }\n",
-    "    \"\"\")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Add Activities\n",
-    "Now add the activities that will do the heavy lifting."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [],
-   "source": [
     "def traceability_pm_devs(model):\n",
     "    instantiate(model, \"Association\", (\"PM/ProcessNode\", \"DEVS/DEVSInstance\"), ID=\"Trace\")\n",
     "\n",
     "transformation_add_MT({\"PM\": \"~/formalisms/PM/PM_Extended_MM\"}, {\"DEVS\": \"~/formalisms/DEVS/DEVS_MM\"}, \"~/formalisms/PM/to_DEVS\", open(\"../models/FTGPM/transformations/patterns_to_DEVS.mvc\", 'r').read(), traceability_pm_devs)\n",
     "transformation_add_AL({\"model1\": \"~/formalisms/DEVS/DEVS_MM\", \"model2\": \"~/formalisms/DEVS/DEVS_MM\"}, {\"result\": \"~/formalisms/DEVS/DEVS_MM\"}, \"~/formalisms/DEVS/merge\", open(\"../models/ClassicDEVS/transformations/merge.alc\", 'r').read())\n",
-    "transformation_add_AL({\"DEVS\": \"~/formalisms/DEVS/DEVS_MM\", \"Experiment\": \"~/formalisms/Experiment/Experiment_MM\"}, {\"result\": \"~/formalisms/String\"}, \"~/formalisms/DEVS/simulate\", open(\"../models/ClassicDEVS/transformations/simulate.alc\", 'r').read())"
+    "transformation_add_AL({\"DEVS\": \"~/formalisms/DEVS/DEVS_MM\", \"Experiment\": \"~/formalisms/Experiment/Experiment_MM\"}, {\"result\": \"~/formalisms/String\"}, \"~/formalisms/DEVS/simulate\", open(\"../models/ClassicDEVS/transformations/simulate.alc\", 'r').read())\n",
+    "\n",
+    "model_add(\"~/models/PM/to_DEVS\", \"formalisms/ProcessModel\", open(\"../models/FTGPM/PM_patterns_simulation_relative.mvc\", 'r').read())"
    ]
   },
   {

+ 69 - 0
models/FTGPM/PM_patterns_simulation_relative.mvc

@@ -0,0 +1,69 @@
+Start start {}
+
+Exec translate {
+    name = "~/formalisms/PM/to_DEVS"
+}
+
+Exec merge {
+    name = "~/formalisms/DEVS/merge"
+}
+
+Exec simulate {
+    name = "~/formalisms/DEVS/simulate"
+}
+
+Finish finish {}
+
+Next (start, translate) {}
+Next (translate, merge) {}
+Next (merge, simulate) {}
+Next (simulate, finish) {}
+
+Data pm_model {
+    name = "PM"
+    type = "~/formalisms/PM/PM_MM"
+}
+
+Data cdevs_model {
+    name = ""
+    type = "~/formalisms/DEVS/DEVS_MM"
+}
+
+Data adevs_model {
+    name = "DEVS library"
+    type = "~/formalisms/DEVS/DEVS_MM"
+}
+
+Data devs_model {
+    name = ""
+    type = "~/formalisms/DEVS/DEVS_MM"
+}
+
+Data experiment_model {
+    name = "Experiment"
+    type = "~/formalisms/Experiment/Experiment_MM"
+}
+
+Consumes (translate, pm_model) {
+    name = "PM"
+}
+Produces (translate, cdevs_model) {
+    name = "DEVS"
+}
+
+Consumes (merge, adevs_model) {
+    name = "model1"
+}
+Consumes (merge, cdevs_model) {
+    name = "model2"
+}
+Produces (merge, devs_model) {
+    name = "result"
+}
+
+Consumes (simulate, devs_model) {
+    name = "DEVS"
+}
+Consumes (simulate, experiment_model) {
+    name = "Experiment"
+}