Skip to content

Commit

Permalink
Merge remote-tracking branch 'ebra/dev' into noise
Browse files Browse the repository at this point in the history
  • Loading branch information
ebranlard committed Apr 30, 2019
2 parents 3f599b2 + 833a689 commit f2acee6
Show file tree
Hide file tree
Showing 536 changed files with 2,027 additions and 1,209 deletions.
25 changes: 14 additions & 11 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
---
name: Bug report
about: Create a report to help us improve

about: Report a bug to help us improve
title: 'Bug report'
labels: "Type: Bug"
---

**Bug description**
A clear and concise description of the bug.
<A clear and concise description of the bug.>

**To Reproduce**
<Update the following list with your specific information.>
Steps to reproduce the behavior:
1. Compile with '...'
2. Run '...' case with '...' settings
3. Open '...' output
4. See the error

**Expected behavior**
A clear and concise description of what you expected to happen.
<A clear and concise description of what you expected to happen.>

**Screenshots**
If applicable, add screenshots to help explain your problem.
**Screenshots, if applicable**
<Add screenshots to help explain your problem.>

**OpenFAST Version**
Please provide as much detail as possible including git commit. The best information is a screenshot of the OpenFAST system description that prints when running OpenFAST:
<Please provide as much detail as possible including git commit. The best information is a screenshot of the OpenFAST system description that prints when running OpenFAST:>

```
**************************************************************************************************
OpenFAST
Expand All @@ -45,9 +48,9 @@ Please provide as much detail as possible including git commit. The best informa
```

**System Information (please complete the following information):**
- OS: [e.g. Ubuntu 14.04 or macOS 10.12]
- Compiler: [e.g. GFortran 4.4]
- Compiler settings: [e.g. CMake flags or other settings]
- OS: <e.g. Ubuntu 14.04 or macOS 10.12>
- Compiler: <e.g. GFortran 4.4>
- Compiler settings: <e.g. CMake flags or other settings>

**Additional context**
Add any other context about the problem here.
<Add any other context about the problem here.>
11 changes: 6 additions & 5 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project

title: 'Feature request'
labels: 'Type: Enhancement'
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
<A clear and concise description of the problem.>

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
<A clear and concise description of what you want to happen.>

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
<A clear and concise description of any alternative solutions or features youve considered.>

**Additional context**
Add any other context or screenshots about the feature request here.
<Add any other context or screenshots about the feature request here.>
18 changes: 18 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

**Complete this sentence**
THIS PULL REQUEST __ [IS/IS NOT] __ READY TO MERGE

**Feature or improvement description**
<A clear and concise description of the new code.>

**Related issue, if one exists**
<Link to a related GitHub Issue.>

**Impacted areas of the software**
<List any modules or other areas which should be impacted by this pull request. This helps to determine the verification tests.>

**Additional supporting information**
<Add any other context about the problem here.>

**Test results, if applicable**
<Add the results from unit tests and regression tests here along with justification for any failing test cases.>
7 changes: 4 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ env:
- FC=/usr/local/bin/gfortran-7; DOUBLE_PRECISION=OFF
- FC=/usr/bin/gfortran; DOUBLE_PRECISION=ON
- FC=/usr/bin/gfortran; DOUBLE_PRECISION=OFF
- FC=ifort; DOUBLE_PRECISION=ON; TRAVIS_BUILD_INTEL=YES
# - FC=ifort; DOUBLE_PRECISION=ON; TRAVIS_BUILD_INTEL=YES

before_install:
# mac configuration
Expand All @@ -25,6 +25,7 @@ before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install gcc@7; fi

# linux configuration
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install gfortran; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libblas-dev liblapack-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then pyenv shell 3.6.3; fi
Expand Down Expand Up @@ -54,8 +55,8 @@ matrix:
env: FC=/usr/bin/gfortran; DOUBLE_PRECISION=ON
- os: osx
env: FC=/usr/bin/gfortran; DOUBLE_PRECISION=OFF
- os: osx
env: FC=ifort; DOUBLE_PRECISION=ON; TRAVIS_BUILD_INTEL=YES
# - os: osx
# env: FC=ifort; DOUBLE_PRECISION=ON; TRAVIS_BUILD_INTEL=YES

script:
# beamdyn unit tests
Expand Down
34 changes: 9 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,6 @@ include(${CMAKE_SOURCE_DIR}/cmake/OpenfastFortranOptions.cmake)

set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

# Get the git info into the executable
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
include(GetGitRevisionDescription)
git_describe(GIT_DESCRIBE)
add_definitions(-DGIT_VERSION_INFO="${GIT_DESCRIBE}")

# CMake Configuration variables
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
Expand Down Expand Up @@ -77,12 +71,12 @@ endif()
########################################################################
# Build rules for OpenFAST Registry
#
add_subdirectory(modules-local/openfast-registry)
add_subdirectory(modules/openfast-registry)

########################################################################
# OpenFAST Core modules
# OpenFAST modules
#
set(OPENFAST_MODULES_LOCAL
set(OPENFAST_MODULES
nwtc-library
inflowwind
aerodyn
Expand All @@ -98,12 +92,7 @@ set(OPENFAST_MODULES_LOCAL
supercontroller
turbsim
openfast-library
)

########################################################################
# OpenFAST External modules
#
set(OPENFAST_MODULES_EXTERNAL
version
feamooring
moordyn
icedyn
Expand All @@ -112,20 +101,15 @@ set(OPENFAST_MODULES_EXTERNAL
)

set(OPENFAST_REGISTRY_INCLUDES "" CACHE INTERNAL "Registry includes paths")
set_registry_includes("modules-local" ${OPENFAST_MODULES_LOCAL})
set_registry_includes("modules-ext" ${OPENFAST_MODULES_EXTERNAL})
set_registry_includes("modules" ${OPENFAST_MODULES})
# Fix non-standard path addition to OPENFAST_REGISTRY_INCLUDES in icefloe module
set(OPENFAST_REGISTRY_INCLUDES
${OPENFAST_REGISTRY_INCLUDES} -I ${CMAKE_SOURCE_DIR}/modules-ext/icefloe/src/interfaces/FAST/
${OPENFAST_REGISTRY_INCLUDES} -I ${CMAKE_SOURCE_DIR}/modules/icefloe/src/interfaces/FAST/
CACHE INTERNAL "Registry includes paths")

foreach(IDIR IN ITEMS ${OPENFAST_MODULES_LOCAL})
add_subdirectory("${CMAKE_SOURCE_DIR}/modules-local/${IDIR}")
endforeach(IDIR IN ITEMS ${OPENFAST_MODULES_LOCAL})

foreach(IDIR IN ITEMS ${OPENFAST_MODULES_EXTERNAL})
add_subdirectory("${CMAKE_SOURCE_DIR}/modules-ext/${IDIR}")
endforeach(IDIR IN ITEMS ${OPENFAST_MODULES_EXTERNAL})
foreach(IDIR IN ITEMS ${OPENFAST_MODULES})
add_subdirectory("${CMAKE_SOURCE_DIR}/modules/${IDIR}")
endforeach(IDIR IN ITEMS ${OPENFAST_MODULES})

add_subdirectory(glue-codes)

Expand Down
2 changes: 1 addition & 1 deletion cmake/OpenfastCmakeUtils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function(generate_f90_types regfile outfile)
add_custom_command(
OUTPUT ${output}
DEPENDS openfast_registry ${input}
COMMAND ${CMAKE_BINARY_DIR}/modules-local/openfast-registry/openfast_registry
COMMAND ${CMAKE_BINARY_DIR}/modules/openfast-registry/openfast_registry
${input} ${OPENFAST_REGISTRY_INCLUDES} ${ARGN})
set_source_files_properties(${output} PROPERTIES GENERATED TRUE)
endfunction(generate_f90_types)
Expand Down
15 changes: 5 additions & 10 deletions docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# language is one of the parsers supported byen:IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
Expand Down Expand Up @@ -791,9 +790,7 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.

INPUT = @CMAKE_SOURCE_DIR@/glue-codes/ \
@CMAKE_SOURCE_DIR@/modules-local/ \
@CMAKE_SOURCE_DIR@/modules-ext/

@CMAKE_SOURCE_DIR@/modules/ \

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -849,8 +846,8 @@ EXCLUDE_PATTERNS = @CMAKE_SOURCE_DIR@/.git/* \
@CMAKE_SOURCE_DIR@/build/* \
@CMAKE_SOURCE_DIR@/cmake/* \
@CMAKE_SOURCE_DIR@/docs/* \
@CMAKE_SOURCE_DIR@/modules-local/orcaflex-interface/src/OrcaFlexInterface.f90 \
@CMAKE_SOURCE_DIR@/modules-local/servodyn/src/BladedInterface.f90
@CMAKE_SOURCE_DIR@/modules/orcaflex-interface/src/OrcaFlexInterface.f90 \
@CMAKE_SOURCE_DIR@/modules/servodyn/src/BladedInterface.f90

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
Expand Down Expand Up @@ -946,9 +943,7 @@ FILTER_SOURCE_FILES = NO

# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
# it is also possible to disable source filtering for a specific pattern using
# *.ext= (so without naming a filter).
# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
# it is also possible to disable source filtering for a specific pattern usihistag requires that the tag FILTER_SOURCE_FILES is set to YES.

FILTER_SOURCE_PATTERNS =

Expand Down
107 changes: 54 additions & 53 deletions docs/source/dev/build_doc.rst
Original file line number Diff line number Diff line change
@@ -1,36 +1,59 @@
.. _build_doc:

Developing Documentation
========================
OpenFAST documentation is hosted on
`readthedocs <http://openfast.readthedocs.io/>`_. It is automatically generated
through the readthedocs build system from both the ``master`` and ``dev``
branches whenever new commits are added. This documentation uses the
`restructured text <http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_
markup language.

Building this documentation locally
===================================
-----------------------------------
The documentation is compiled with Sphinx, which is a Python based tool.
Install it and the other required Python packages listed in
``docs/requirements.txt`` with pip or another python package manager.

These packages are optional:
- `Doxygen <http://www.stack.nl/~dimitri/doxygen/>`__
- `Doxylink <https://pythonhosted.org/sphinxcontrib-doxylink/>`__
- `Graphviz <http://www.graphviz.org>`__

Doxygen and Graphviz can be installed directly from their website or with a
package manager like ``brew``, ``yum``, or ``apt``.

This document describes how to build the OpenFAST documentation on your local machine. The official documentation is automatically built
and updated on `readthedocs <http://openfast.readthedocs.io/en/latest/>`__ when new material is pushed to the github repo.
However, while developing documentation, it is helpful to build locally in order to see changes quickly and without needing
to publish your changes to the public facing site.
Pure python build
-----------------
If CMake and Make are not available on your system, the documentation can
be generated directly with `sphinx`.
**Note: This method does not generate the API documentation through Doxygen.**

Dependencies
------------
The documentation is built in `Sphinx <http://www.sphinx-doc.org/en/master/>`__ with optional support for
`Doxygen <http://www.stack.nl/~dimitri/doxygen/>`__, `Doxylink <https://pythonhosted.org/sphinxcontrib-doxylink/>`__, and
`Graphviz <http://www.graphviz.org>`__. Therefore users will need to install these tools as well as several extensions of Sphinx that are utilized.
First, align your build structure to the standard OpenFAST build by creating
a directory at ``openfast/build``.

Doxygen and Graphviz can be installed directly from their website or with a package manager like ``brew``, ``yum``, or ``apt``.
If all tools are available, move into ``openfast/build`` and run the `sphinx`
command:

The remaining tools are Python based and should be installed with `pip` using the requirements file at
``docs/requirements.txt``.
::

With CMake and Make
-------------------
In the OpenFAST repository checkout, if it has not been created yet,
create a ``build`` directory. Change
to the build directory and run CMake with ``BUILD_DOCUMENTATION`` on. If all
# sphinx-build -b <builder-name> <source-directory> <output-directory>
sphinx-build -b html ../docs ./docs/html

If this completes successfully, a html file will be created at
``build/docs/html/index.html`` which can be opened with any web browser.

Building with CMake and Make
----------------------------
In the OpenFAST directory, create a ``build`` directory and move into it.
Then, run CMake with this flag: ``-DBUILD_DOCUMENTATION=ON``. If all
of the required tools are found successfully, CMake will configure with the
ability to build the documentation.

Issue the command ``make docs`` which will first build the Doxygen
Next, run the command ``make docs`` which will first build the Doxygen
documentation and then the Sphinx documentation. If this completes
successfully, the entry point to the documentation will be in
``build/docs/html/index.html``.
successfully, a html file will be created at ``build/docs/html/index.html``
which can be opened with any web browser.

For example, from the OpenFAST directory:

Expand All @@ -41,42 +64,20 @@ For example, from the OpenFAST directory:
cmake .. -DBUILD_DOCUMENTATION=ON
make docs

If you modify document source files in ``OpenFAST/docs/source``, you can simply update the html files through another ``make docs`` in ``OpenFAST/build``:
If you modify document source files in ``openfast/docs/source``, you can simply
update the html files through another ``make docs`` in ``openfast/build``:

::

make docs

Pure python
-----------
If CMake and Make are not available on your system, the documentation can be generated directly
with `sphinx`. **Note: This method does not generate the API documentation through Doxygen.**

First, align your build structure to the standard OpenFAST build by creating a directory
at ``openfast/build``.

If all tools are available, move into ``openfast/build`` and run the `sphinx` command:

::

# sphinx-build -b <builder-name> <source-directory> <output-directory>
sphinx-build -b html ../docs ./docs/html



Documentation Output
--------------------

After building the documentation, it can be accessed by opening the output in a browser.
Open the high level html file generated at ``openfast/build/docs/html/index.html``
and begin using the page as any other web page.


Additional Build Targets
------------------------

The html portion of the documentation can be built with ``make sphinx-html``, and
the output is available at ``openfast/build/docs/html/index.html``.
Building only the html
~~~~~~~~~~~~~~~~~~~~~~
Generating the only html is much faster than compiling all components of the
documentation. This can be done with ``make sphinx-html``.

Building the PDF
~~~~~~~~~~~~~~~~
If LaTeX is installed, a pdf version of the documentation can be built with
``make sphinx-pdf``, and the output is available at ``openfast/build/docs/latex/Openfast.pdf``.
``make sphinx-pdf``, and the output is available at
``OpenFAT/build/docs/latex/Openfast.pdf``.
Loading

0 comments on commit f2acee6

Please sign in to comment.