Water-Food-Energy modeling & simulation frameworks

The Componentized WEAP and Componentized LEAP  are RESTful frameworks written in NodeJS for the Water Evaluation and Planning (WEAP) and the Low Emissions Analysis Platform (LEAP) Systems.

The nexus between the water (Componentized WEAP) and energy (Componentized LEAP) models can be modeled and simulated with the WEAP-KIB-LEAP framework. More information is available here.


Computing platforms: Windows 10 OS (see WEAP) and LEAP).

Installation Steps

  1. Download & Install NodeJS (use MSI with default choices)
  2. Download & Install Python 2.7 (use MSI with default settings), and add python path to the “Environment Variables” of the Windows OS (add to system variables)
  3. Open command line (cmd) in windows and run:

    npm install npm –global
    npm install typescript –global
    npm install node-gyp –global
  4. Open Windows PowerShell (run as administrator) and run the following command.
    This step may take time and further require multiple runs.

    npm install –global –production windows-build-tools
  5. Download & Install Visual C++ from here if there is any error in executing step 4.

IDE Installation

Any IDE can be used for programming, but we recommend VS-Code. In the following, the required extensions and configurations are mentioned to run the Componentized WEAP and Componentized LEAP frameworks.

  1. Download & Install VS-Code (choose user installer)
  2. Download & Install Git
  3. Install TSLint extension in VS-Code (open VS-Code, go to the extension page, type TSLint, and click on install button)

Execution Policy

Note: The execution policy in the Windows Client must be change to RemoteSigned to be able to run scripts. For more information see About Execution Policy and Set Execution Policy. So, open Windows PowerShell (run as administrator), and run:

  • Set-ExecutionPolicy RemoteSigned

Running Componentized WEAP and Componentized LEAP in VS-Code

To run the Componentized WEAP framework in the VS-Code, follow these steps:

  1. Open VS-Code
  2. Press CTRL+SHIFT+P (View/Command Palette…) and type “git:clone
  3. Enter the Componentized WEAP git URL (https://github.com/comses/ComponentizedWEAP.git) or Componentized LEAP git URL (https://github.com/comses/ComponentizedLEAP)
  4. Select the folder for the project to be uploaded
  5. Open VS-Code terminal (right click on the project and select Open in Terminal) and run the following command to update the required packages.

    npm install
  6. Press CTRL+SHIFT+P and type tasks:run build task (to rebuild the JavaScript code)
  7. Run the project (using launch.json)

WEAP and LEAP Software Systems

These are proprietary software. For more information on licensing visit https://www.weap21.org/index.asp?action=217 and https://leap.sei.org/default.asp?action=license.

Copyright: The Componentized WEAP and Componentized LEAP software are developed at ACIMS/ASU with GNU General Public License version 3.0 (GPLv3).


Date: 07-05-2022

Installation Steps for RESTful Interaction Model

MongoDB Installation steps

  1. Download MongoDB from https://www.mongodb.com/try/download/enterprise. Download the latest version (5.0.9) for Windows msi package. (check “Install MongoDB Compass” during installation)
  2. Run MongoDB service
    1. Go to “C:\Program Files\MongoDB\Server\4.4\bin” (the version of MongoDB may change in your installation)
    2. Double click on “Mongod.exe”

IDE Installation

  1. VS-Code
    1. Download & Install VS-Code from https://nas/content/live/fsewppitchfork.visualstudio.com/Download (choose user installer)
    2. Download & Install Git from https://git-scm.com/downloads
  2. Eclipse
    1. Download and Install Eclipse from “https://www.eclipse.org/downloads/

Postman Installation

  1. Download & Install Postman from https://www.postman.com/downloads/

JRE (Java Runtime Environment)

Running DEVS-IM in VS-Code

  • Open VS-Code Editor
  • Press CTRL+SHIFT+P (View/Command Palette…) and type “git:clone”
  • Enter the git URL (https://github.com/comses/ComponentizedKIB.git)
  • Select the folder for the project to be uploaded
  • Go to “Run and Debug” tab, select “KIB (ComponentizedKIB)” and click on run button.
  • The “Interaction Model is running…” message must be seen in the Terminal tab.

Note: The name of the database and the port for the web server can be change in the “src/main/resource/application.properties” file.

Running DEVS-IM via Jar file

  • Download DEVS-IM.rar file from “???”
  • Extract the rar file (it includes DEVS-IM.jar file and templates folder)
  • Open command prompt and run

java -jar “path to the DEVS-IM.jar file”

The following message must be seen in the window (click ctrl+c to close the framework):

Note: The name of the database and the port for the web server are fixed in the jar file to “im” and “8085”, respectively.

Define Interaction Model Structure

  • Define entities of the interaction model using the DEVS-IM APIs (see Appendix 1)
  • After completing the model, use API “/IM/Projects/{projectId}/IMs/{id}/ GenerateCode” (Appendix 1 – Interaction Model – API #6) to generate the source code. A folder with the same name as the IM model will be generated beside the jar file (if running the jar file) or in the target package (if running via IDE).

Import DEVS-Suite Simulator into the Eclipse

Import DEVS-IM Model into the DEVS-Suite

  • Copy and paste the generated source code by the DEVS-IM (see previous sections) under “Models.InteractionModel” package
  • Modeler must define the behavior of the Task and Function entities. Now, the model is ready to be simulated by DEVS-Suite Simulator

Required tools/frameworks to execute a Water-Energy model via DEVS-IM

Order of running tools/frameworks

  1. Run WEAP & LEAP (in any order)
  2. Run Componentized WEAP and Componentized LEAP (in any order)
  3. Run DEVS-Suite Simulator and execute the model


  • M.D. Fard and H.S. Sarjoughian, 2021, “A RESTful Framework Design for Componentizing the Water Evaluation and Planning WEAP System”, Simulation Modelling Practice and Theory, 106, 1-19, https://doi.org/10.1016/j.simpat.2020.102199.
  • M.D. Fard, H.S. Sarjoughian, I. Mahmood, A. Mounir, X. Guan, and G. Mascaro, 2020, “Modeling the Water-Energy Nexus for the Phoenix Active Management Area”, Winter Simulation Conference, Virtual Conference, December 14-18, USA.
  • M.D. Fard and H.S. Sarjoughian, 2020, “Coupling WEAP And LEAP Models Using Interaction Modeling”, 52nd Annual Simulation Symposium, SpringSim conference, May, Fairfax, VA, USA.
  • M.D. Fard and H.S. Sarjoughian, 2019, “A Web-service Framework for the Water Evaluation and Planning System”, 15th Symposium on Theory and Foundations for Modeling & Simulation, April, SpringSim conference, Tucson, AZ, USA.


Point of contact: Hessam S. Sarjoughian ([email protected])

Componentized WEAP Simulator

Version: 1.1, released September, 2023

Componentized LEAP Simulator

Version: 1.1, released September, 2023