Giter Site home page Giter Site logo

eiot's Introduction

Modules

eiot

Perform Extended Iterative Optimization Technology (EIOT), Supervised EIOT, and PLS-based EIOT. Developed by Sal Garcia ([email protected] / [email protected] / [email protected])

More details available in the paper: Garcia-Munoz, S. and Hernandez Torres, E., 2020. Supervised Extended Iterative Optimization Technology for the estimation of powder compositions in pharmaceutical applications: Method and lifecycle management. Industrial & Engineering Chemistry Research.

https://pubs.acs.org/doi/pdf/10.1021/acs.iecr.0c01385

eiot_extras

Helper functions for plotting, data processing, and analysis.

Getting Started with Python (pyEIOT)

Dependencies

EIOT requires the following python packages: pyphimva (https://github.com/salvadorgarciamunoz/pyphi), numpy, matplotlib, scipy, pyomo, pandas, bokeh. pyphimva (pyphi) is not yet on pip or conda, so it must be downloaded and installed first. The rest can be installed via setup.py below or manually using pip/conda and the requirements.txt file.

Required External Dependencies

  • IPOPT as an executable in your system path.
    • Windows: conda install -c conda-forge IPOPT=3.11.1 or download from IPOPT releases page, extract and add the IPOPT\bin folder to your system path or add all files to your working directory.
    • Mac/Linux: conda install -c conda-forge IPOPT, download from IPOPT releases page, or Compile using coinbrew.
  • libhsl with ma57 within library loading path or in the same directory as IPOPT executable.
    • Speeds up IPOPT for large problems but requires a free academic or paid industrial license and a local IPOPT installation.
    • Must request in advance and building the source code is nontrivial. Expert use only. Note:
  • EIOT has been configured to use either an installed GAMS python module or GAMS executable in your system path; however, an apparent bug in the pyomo-gams interface results in occasional constraint violation infeasibilities and very slow load times.
  • Unlike pyphimva, EIOT solves many, MANY Pyomo NLPs. Using the NEOS server has too much overhead to be useful.

Adding a folder to your system path:

  • Windows: temporary set PATH=C:\Path\To\ipopt\bin;%PATH% or persistent setx PATH=C:\Path\To\ipopt\bin;%PATH%.
  • Mac/Linux: export PATH=/path/to/ipopt:$PATH, add to .profile/.*rc file to make persistent.
  • Both via Conda: after activating your environment, use conda env config vars set and your OS-specific set or export command.

Installation

  1. Ensure you have Python 3 installed and accessible via your terminal ("python" command).
    • It's strongly encouraged you to create a virtual environment using anaconda (conda create -n your_eiotenv python) or venv (pip -m venv your_eiotenv). You can then activate your environment conda activate yourenv or venv Windows yourenv\Scripts\activate.bat or venv Linux/mac source yourenv/bin/activate ) and then install into a sandboxed environment. 1*) Open https://github.com/salvadorgarciamunoz/pyphi and follow the (similar) installation instructions to install the pyphi module from pyphimva.
  2. Download this repository via git clone or manually using the download zip button at the top of the page.
  3. Open a command terminal and navigate to your repository's "pyEIOT" directory.
  4. Run python setup.py install to install the eiot, eiot_extras and any remaining dependencies.

To confirm you have a working installation, navigate to the examples folder and copy the Sample_Script_EIOTwPLS.py file to the directory of your choice. Run it using python Sample_Script_EIOTwPLS.py and verify that there are no errors logged to the console. This code may take more than 6 minutes and requires you to "X" out of the diagnostic graphs that show up to move forward.

Getting Started with MATLAB (mEIOT)

  1. Download this repository via git clone or manually using the download zip button at the top of the page.
  2. Open Matlab and in the command Window enter addpath("C:/path/to/your/eiot/mEIOT/EIOT_Toolbox");. This will make EIOT available to you for the session. To add it automatically, on the top ribbon select "Set Path". Move the EIOT_Toolbox folder into one of the listed folders or add its location to your default path using the pop-up.

eiot's People

Contributors

bradjcheme avatar salvadorgarciamunoz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.