Skip to content

Commit

Permalink
Merge branch 'dev' into f/flexsub
Browse files Browse the repository at this point in the history
  • Loading branch information
ebranlard committed Nov 7, 2019
2 parents b95ac78 + 33a4f84 commit dc581df
Show file tree
Hide file tree
Showing 45 changed files with 2,133 additions and 1,281 deletions.
43 changes: 43 additions & 0 deletions .github/actions/compile-and-test/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#
# Copyright 2016 National Renewable Energy Laboratory
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

FROM rafmudaf/openfast-ubuntu:dev

# Move into the openfast directory and update
WORKDIR /openfast
RUN git fetch
RUN git pull
RUN git submodule update

# Move into the "build" directory and compile
WORKDIR /openfast/build
RUN cmake ..
RUN make -j4 install

# Run the tests

# BeamDyn-specific tests
RUN ctest -VV -j7 -R bd_
RUN ctest -VV -R beamdyn_utest

# OpenFAST linearization tests
RUN ctest -VV -j4 -L linear

# Subset of OpenFAST regression tests; do not run
## - 3, 4, 7, 14, 15, 16, since the free yaw is not well trusted
## - 9 because its super sensitive
## - 19, 20 because theyre too long
RUN ctest -VV -j8 -I 1,1,1,2,5,6,8,10,11,12,13,17,18,21,22,23,24,25
10 changes: 10 additions & 0 deletions .github/actions/compile-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: 'Compile and test'
description: 'Compile OpenFAST and run the tests'
author: 'NREL'
# inputs:
# build-type:
# description: 'Set the CMake build type: Release (-O3); RelWithDebInfo (-O2 -g); Debug (-g)'
# default: 'Release'
runs:
using: 'docker'
image: 'Dockerfile'
22 changes: 22 additions & 0 deletions .github/workflows/continuous-integration-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

name: OpenFAST Build and Test

on: [push, pull_request]

# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [macOS-10.14, ubuntu-18.04]
# runs-on: docker://rafmudaf/openfast-ubuntu:alpha

jobs:
build-and-test:
runs-on: ubuntu-latest
name: OpenFAST tests on Ubuntu
steps:
- name: Checkout
uses: actions/checkout@master
with:
submodule: recursive
- name: Build and test step
uses: ./.github/actions/compile-and-test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ __pycache__/*

# Build specific files
build*/
_build*/
install/
vs-build/

Expand Down
29 changes: 29 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

sphinx:
configuration: docs/conf.py

formats:
- htmlzip
- pdf
# - epub

python:
version: 3.7
install:
- requirements: docs/requirements.txt
system_packages: true

# select the docker image to use: stable | latest
build:
image: stable

sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: true
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ addons:
update: true

before_install:
# linux configuration
# linux configuration
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install gfortran libblas-dev liblapack-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CPP_API" == "ON" ]]; then sudo apt-get install libopenmpi-dev libyaml-cpp-dev libhdf5-dev libxml2-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then pyenv shell 3.7.1; fi
Expand Down
82 changes: 0 additions & 82 deletions README.md

This file was deleted.

148 changes: 148 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
OpenFAST
========

|travisci| |nbsp| |rtfd|

.. |travisci| image:: https://travis-ci.org/OpenFAST/openfast.svg?branch=dev
:target: https://travis-ci.org/OpenFAST/openfast
:alt: Build Status
.. |rtfd| image:: https://readthedocs.org/projects/openfast/badge/?version=dev
:target: https://openfast.readthedocs.io/en/dev
:alt: Documentation Status
.. |nbsp| unicode:: 0xA0
:trim:

OpenFAST is a wind turbine simulation tool which builds on FAST v8. It was
created with the goal of being a community model developed and used by research
laboratories, academia, and industry. It is managed by a dedicated team at the
National Renewable Energy Lab. Our objective is to ensure that OpenFAST is
sustainable software that is well tested and well documented. If you'd like
to contribute, see the `Developer Documentation <https://openfast.readthedocs.io/en/dev/source/dev/index.html>`_
and any open GitHub issues with the
`Help Wanted <https://github.com/OpenFAST/openfast/issues?q=is%3Aopen+is%3Aissue+label%3A"Help+wanted">`_
tag.

**OpenFAST is under active development**.

FAST v8 - OpenFAST v0.1.0
-------------------------
The transition from FAST v8 to OpenFAST v0.1.0 represents the effort to better
support an open-source developer community around FAST-based aero-hydro-servo-
elastic engineering models of wind-turbines and wind-plants. OpenFAST is the
next generation of FAST analysis tools. More inforation is available in the
`transition notes <http://openfast.readthedocs.io/en/latest/source/user/fast_to_openfast.html>`_.

FAST v8 is a computer-aided engineering tool for simulating the coupled dynamic
response of wind turbines. FAST joins aerodynamics models, hydrodynamics models
for offshore structures, control and electrical system (servo) dynamics models,
and structural (elastic) dynamics models to enable coupled nonlinear aero-
hydro-servo-elastic simulation in the time domain. The FAST tool enables the
analysis of a range of wind turbine configurations, including two- or
three-blade horizontal-axis rotor, pitch or stall regulation, rigid or
teetering hub, upwind or downwind rotor, and lattice or tubular tower. The wind
turbine can be modeled on land or offshore on fixed-bottom or floating
substructures. FAST is based on advanced engineering models derived from
fundamental laws, but with appropriate simplifications and assumptions, and
supplemented where applicable with computational solutions and test data.

The aerodynamic models use wind-inflow data and solve for the rotor-wake
effects and blade-element aerodynamic loads, including dynamic stall. The
hydrodynamics models simulate the regular or irregular incident waves and
currents and solve for the hydrostatic, radiation, diffraction, and viscous
loads on the offshore substructure. The control and electrical system models
simulate the controller logic, sensors, and actuators of the blade-pitch,
generator-torque, nacelle-yaw, and other control devices, as well as the
generator and power-converter components of the electrical drive. The
structural-dynamics models apply the control and electrical system
reactions, apply the aerodynamic and hydrodynamic loads, adds gravitational
loads, and simulate the elasticity of the rotor, drivetrain, and support
structure. Coupling between all models is achieved through a modular
interface and coupler.

Documentation
-------------
The full documentation is available at http://openfast.readthedocs.io/.

This documentation is stored and maintained alongside the source code.
It is compiled into HTML with Sphinx and is tied to a particular version
of OpenFAST. `Readthedocs <http://openfast.readthedocs.io>`_ hosts the following
versions of the documentation:

* ``latest`` - The latest commit on the ``master`` branch
* ``stable`` - Corresponds to the last tagged release
* ``dev`` - The latest commit on the ``dev`` branch

These can be toggled with the ``v: latest`` button in the lower left corner of
the docs site.

Obtaining OpenFAST
------------------
OpenFAST is hosted entirely on GitHub so you are in the `right place <https://github.com/OpenFAST/OpenFAST>`_!
The repository is structured with two branches following the
"git-flow" convention:

* ``master``
* ``dev``

The ``master`` branch is stable, well tested, and represents the most up to
date released version of OpenFAST. The latest commit on ``master`` contains
a tag with version info and brief release notes. The tag history can be
obtained with the ``git tag`` command and viewed in more detail on
`GitHub Releases <https://github.com/OpenFAST/openfast/releases>`_. For general
use, the ``master`` branch is highly recommended.

The ``dev`` branch is generally stable and tested, but not static. It contains
new features, bug fixes, and documentation updates that have not been compiled
into a production release. Before proceeding with new development, it is
recommended to explore the ``dev`` branch. This branch is updated regularly
through pull requests, so be sure to ``git fetch`` often and check
`outstanding pull requests <https://github.com/OpenFAST/openfast/pulls>`_.

For those not familiar with git and GitHub, there are many resources:

* https://guides.github.com
* https://try.github.io
* https://help.github.com/categories/bootcamp/
* https://desktop.github.com/
* http://nvie.com/posts/a-successful-git-branching-model/

Compilation, Usage, and Development
-----------------------------------
Details for compiling
`compiling <http://openfast.readthedocs.io/en/latest/source/install/index.html>`_,
`using <http://openfast.readthedocs.io/en/latest/source/user/index.html>`_, and
`developing <http://openfast.readthedocs.io/en/latest/source/dev/index.html>`_
OpenFAST on Unux-based and Windows machines are available at `readthedocs <http://openfast.readthedocs.io>`_.

Nightly Testing
---------------
The ``dev`` branch is automatically compiled and run through the test suite
nightly. The results are publicly available through the
`CDash Dashboard <http://my.cdash.org/index.php?project=OpenFAST&date=>`_.

Help
----
Please use `github issues <https://github.com/OpenFAST/OpenFAST/issues>`_ to:

* ask usage questions
* report bugs
* request code enhancements

For other questions regarding OpenFAST, please contact
`Mike Sprague <mailto:michael.a.sprague@nrel.gov>`_.

Users and developers may also be interested in the NREL National Wind
Technology Center (NWTC) `phpBB Forum <https://wind.nrel.gov/forum/wind/>`_.

Acknowledgments
---------------

OpenFAST is maintained and developed by researchers and software engineers at
the `National Renewable Energy Laboratory <http://www.nrel.gov/>`_ (NREL), with
support from the US Department of Energy's Wind Energy Technology Office. NREL
gratefully acknowledges development contributions from the following
organizations:

* Envision Energy USA, Ltd
* Brigham Young University
* `Intel® Parallel Computing Center (IPCC) <https://software.intel.com/en-us/ipcc>`_
4 changes: 4 additions & 0 deletions cmake/OpenfastFortranOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,10 @@ macro(set_fast_intel_fortran_windows)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /real_size:64 /double_size:128")
endif (DOUBLE_PRECISION)

# increase the default 2MB stack size to 16 MB
MATH(EXPR stack_size "16 * 1024 * 1024")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:${stack_size}")

# debug flags
if(CMAKE_BUILD_TYPE MATCHES Debug)
set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} /check:all /traceback" )
Expand Down
Loading

0 comments on commit dc581df

Please sign in to comment.