Git Product home page Git Product logo

pydakota's Introduction

pyDAKOTA

pyDAKOTA is an interface to Sandia Laboratory's Design Analysis Kit for Optimization and Terascale Applications (DAKOTA) analysis suite.

Allows for users to construct DAKOTA input, feed the input to DAKOTA, and for DAKOTA to call a python object with a "dakota_callback" function for function evaluations.

This allows for a light-weight custom python interace to DAKOTA.

This is intended to be used with the OpenMDAO dakota driver

Author: NREL WISDEM Team

Installation

Install DAKOTA

First, download DAKOTA and install from source. Some CMAKE files are provided in the resources/ directory.

Find a cmake file which works for your system, then install DAKOTA with the following commands (this assumes an osx environment):

$ wget https://dakota.sandia.gov/sites/default/files/distributions/public/dakota-6.2-public.src.tar.gz
$ tar -zxvf dakota-6.2-public.src.tar.gz
$ cd dakota-6.2.0.src/
$ wget https://raw.githubusercontent.com/WISDEM/pyDAKOTA/master/resources/LinuxBuild.cmake # assuming linux
$ mkdir build
$ cd build
$ cmake -C ../LinuxBuild.cmake ../. # change the username from jquick
                                    # :%s/jquick/<USERNAME>
$ make -j 4
$ make install

# paste this into ~/.bash_profile
$ DAK_INSTALL=/home/jquick/dakota
$ PATH=$DAK_INSTALL/bin:$DAK_INSTALL/test:$PATH
$ LD_LIBRARY_PATH=$DAK_INSTALL/lib:$DAK_INSTALL/bin:$LD_LIBRARY_PATH

Install pyDAKOTA

$ cd pyDAKOTA/src
$ python setup.py install

Run Unit Tests

To check if installation was successful try to run the pyDAKOTA test script

$ python tests/test_dakota.py

For software issues please use https://github.com/WISDEM/pyDAKOTA/issues or email [email protected].

+++ other notes +++

Materials for openMDAO DAKOTA Driver object

(Original author, Peter Graf, National Renewable Energy Lab, 2012. [email protected])

Overview

This directory tree contains the materials for the initial version of an openMDAO "Driver" object that wraps Sandia Lab's "DAKOTA" optimization and analysis code. There are three different functionalities:

  1. An interface to DAKOTA, in "library mode", that allows passing an MPI communicator and a "void *" object to DAKOTA. This is still in C++.

  2. A python wrapper for this interface, so, in python, you can say "import dakota", then "dakota.run_dakota(comm, object)". "comm" will be used as the MPI communicator for DAKOTA, and "object" will be passed back to the python routine specified in your dakota input file.

  3. An openMDAO Driver object that wraps all this functionality. In particular, the "object" in 2. is the driver, and a specific callback function is used that then calls this driver's "run_iteration" method. Therefore, from the user's point of view, DAKOTA is made to behave as if it were a normal openMDAO driver.

Further development by NASA/openMDAO

The code in this directory is prototype code that was then handed off to the openMDAO team at NASA for further development. Therefore, if you are interested in the above functionality, this code is not the code you should use. Instead, you should go to openmdao.org and find the "dakota driver" plugin. This README file will be updated to refer to the exact url when it is available.

License

This software is licensed under the Apache 2.0 license. See "Apache2.0License.txt" in this directory.

Peter Graf, 7/26/13

pydakota's People

Contributors

gbarter avatar kilojoules avatar pgraf avatar

Watchers

 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.