Skip to content

Commit

Permalink
Merge pull request #76 from sandialabs/docsupdate
Browse files Browse the repository at this point in the history
Documentation Update
  • Loading branch information
kevmoor authored Sep 10, 2024
2 parents 926ad39 + c3bb271 commit 2505f17
Show file tree
Hide file tree
Showing 47 changed files with 861 additions and 4,384 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "OWENS"
uuid = "51d15398-4eaf-40f9-a029-79ae1c4a3867"
authors = ["Kevin R. Moore <[email protected]> and contributors"]
version = "1.0.3"
version = "1.0.2"

[deps]
Composites = "d0d699f6-c662-11e8-0fb1-1b30104ab829"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
![](https://github.com/sandialabs/OWENS.jl/workflows/CI/badge.svg)


This package was based on the original structural dynamics solver by Brian Owens (see dissertation: http://hdl.handle.net/1969.1/151813). However, it has been rewritten into the Julia programming language and many of the issues related to aerodynamic coupling and floating dynamics solved, with extensive expansion into other areas and features to provide a seamless and automated process that takes in high level design details and does all of the preprocessing, running, and post processing that is normally done under different roofs or by different manual processes. This was done with the intent of enabling fast, parametric design. We have many of the modules propogating automatic gradients, however this is still a future challenge to solve well.
This package is for experienced researchers and analyists with both software and engineering experience who need generalized flexibility and performance that is 100% open source and is compatible with gradient based optimization with automatic gradients in process. If you want a windows compatible GUI, please use QBlade.

This package is for experienced researchers with both software and engineering experience who need generalized flexibility and performance that is 100% open source. If you want a windows compatible GUI, please use QBlade from our friends across the pond.
OWENS is an ontology, or way of coupling modular aerodynamic, structural, hydrodynamic, and controls packages. It was originally based on the structural dynamics solver by Brian Owens (see dissertation: http://hdl.handle.net/1969.1/151813). However, it has been rewritten into the Julia programming language, modularized, and many of the issues related to aerodynamic coupling and floating dynamics solved, with extensive expansion into other areas and features to provide a seamless and automated process that takes in high level design details and does all of the preprocessing, running, and post processing that is normally done under different roofs or by different manual processes. This was done with the intent of enabling fast, parametric design. We have many of the modules propogating automatic gradients, however this is still a future challenge to solve well.

Here are several examples of OWENS use cases, current and past, including the Sandia 34m research turbine.

Expand Down Expand Up @@ -53,7 +53,7 @@ Please follow the instructions on the setup page in the documentation.
- All of the functions have docstrings describing the i/o and function purpose, which can be accessed the docs site or by:
* import module
* ? module.function()
- A note about julia debuggers – if you don’t want it to step through everything, you need to tell it what packages to compile vs while packages to step through. This will make the debugger comparable (if not faster) than Matlab in speed. In VSCode, this can be done in the debug pane.
- A note about julia debuggers – if you don’t want it to step through everything, you need to tell it what packages to compile vs while packages to step through. This will make the debugger comparable (if not faster) than Matlab in speed. In VSCode, this can be done in the debug pane, or by optionally loading the provided VS code profile in the OWENS.jl/docs folder. This VS code profile will also set up the julia environment and other useful packages and key bindings, and can be modified as desired.

## Software License

Expand Down
29 changes: 15 additions & 14 deletions app/OWENS_APP/src/sampleOWENS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ operationParameters:
turbulentInflow:
ifw: false
WindType: 3
wind_filename: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/turbsim/115mx115m_30x30_20.0msETM.bts
ifw_libfile: ./../openfast/build/modules/inflowwind/libifw_c_binding
windINPfilename: /data/turbsim/115mx115m_30x30_20.0msETM.bts
ifw_libfile: /Users/kevmoor/Documents/coderepos/OWENS_Toolkit/OWENSOpenFASTWrappers.jl/deps/openfast/build/modules/inflowwind/libifw_c_binding

controlParameters:
controlStrategy: constantRPM # TODO: incorporate the others
controlStrategy: normal # TODO: incorporate the others
RPM: 17.2 #RPM
numTS: 100 #
delta_t: 0.01 # s
Expand All @@ -30,19 +30,20 @@ controlParameters:
AeroParameters:
Nslices: 30 # number of OWENSAero discritizations #TODO: AD parameters
ntheta: 30 # number of OWENSAero azimuthal discretizations
AModel: AD # AD, DMS, AC
adi_lib: "/Users/kevmoor/Documents/coderepos/openfast/build/modules/aerodyn/libaerodyn_inflow_c_binding"
adi_rootname: "./ExampleB"
AModel: DMS # AD, DMS, AC
adi_lib: /Users/kevmoor/Documents/coderepos/OWENS_Toolkit/OWENSOpenFASTWrappers.jl/deps/openfast/build/modules/aerodyn/libaerodyn_inflow_c_binding
adi_rootname: "/ExampleB"

structuralParameters:
structuralModel: GX #GX, TNB, ROM
ntelem: 10 #tower elements in each
nbelem: 60 #blade elements in each
nonlinear: false #TODO: propogate
ntelem: 20 #tower elements in each
nbelem: 50 #blade elements in each
ncelem: 10 #central cable elements in each if turbineType is ARCUS
nselem: 5 #strut elements in each if turbineType has struts
NuMad_geom_xlscsv_file_twr: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Geom_SNL_5MW_D_TaperedTower.csv
NuMad_mat_xlscsv_file_twr: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Materials_SNL_5MW.csv
NuMad_geom_xlscsv_file_bld: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Geom_SNL_5MW_D_Carbon_LCDT_ThickFoils_ThinSkin.csv
NuMad_mat_xlscsv_file_bld: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Materials_SNL_5MW.csv
NuMad_geom_xlscsv_file_strut: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Geom_SNL_5MW_Struts.csv
NuMad_mat_xlscsv_file_strut: /Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/data/NuMAD_Materials_SNL_5MW.csv
NuMad_geom_xlscsv_file_twr: /data/NuMAD_Geom_SNL_5MW_D_TaperedTower.csv
NuMad_mat_xlscsv_file_twr: /data/NuMAD_Materials_SNL_5MW.csv
NuMad_geom_xlscsv_file_bld: /data/NuMAD_Geom_SNL_5MW_D_Carbon_LCDT_ThickFoils_ThinSkin.csv
NuMad_mat_xlscsv_file_bld: /data/NuMAD_Materials_SNL_5MW.csv
NuMad_geom_xlscsv_file_strut: /data/NuMAD_Geom_SNL_5MW_Struts.csv
NuMad_mat_xlscsv_file_strut: /data/NuMAD_Materials_SNL_5MW.csv
2 changes: 1 addition & 1 deletion app/build_app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
julia -e 'using PackageCompiler; create_app("OWENS_APP","OWENS_APP_COMPILED";force=true, incremental=false)'
OWENS_APP_COMPILED/bin/OWENS_APP "/Users/kevmoor/Documents/coderepos/OWENS.jl/app/OWENS_APP/src/" --julia-args -t4
OWENS_APP_COMPILED/bin/OWENS_APP "/Users/kevmoor/Documents/coderepos/OWENS_Toolkit/OWENS.jl/app/OWENS_APP/src" --julia-args -t4
1 change: 1 addition & 0 deletions docs/OWENS.code-profile

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[deps]
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
Composites = "d0d699f6-c662-11e8-0fb1-1b30104ab829"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
FLOWMath = "6cb5d3fb-0fe8-4cc2-bd89-9fe0b19a99d3"
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
Expand Down
2 changes: 1 addition & 1 deletion docs/generate.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Literate

is_ci = haskey(ENV, "GITHUB_ACTIONS")

EXAMPLEDIR = joinpath(@__DIR__, "src", "literate")
EXAMPLEDIR = joinpath(@__DIR__, "../examples", "literate")
GENERATEDDIR = joinpath(@__DIR__, "src", "examples")
mkpath(GENERATEDDIR)

Expand Down
9 changes: 6 additions & 3 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,18 @@ makedocs(;
modules = [OWENS],
pages = [
"Home" => "index.md",
"Installation" => "setup.md",
"Installation" => "installation.md",
"Examples" => [
joinpath("examples", "A_simplyRunningOWENS.md"),
joinpath("examples", "B_detailedInputs.md"),
joinpath("examples", "C_customizablePreprocessing.md"),
],
"Developer Guide" => "OWENS_Dev_Guide.md",
"Frames of Reference" => "FramesOfReference.md",
"API Reference" => joinpath("reference", "reference.md"),
"OWENS Functions Reference" => joinpath("reference", "reference.md"),
"OWENSAero Functions Reference" => joinpath("reference", "referenceAero.md"),
"OWENSFEA Functions Reference" => joinpath("reference", "referenceFEA.md"),
"OWENSOpenFASTWrappers Functions Reference" => joinpath("reference", "referenceOpenFASTWrappers.md"),
"OWENSPreComp Functions Reference" => joinpath("reference", "referencePreComp.md"),
"Legacy User Guide" => "legacyUserGuide.md",
"Legacy VAWTGen Guide" => "VAWTGenUserGuide.md",
],
Expand Down
1 change: 0 additions & 1 deletion docs/setup/OWENS_Julia_VS.code-profile

This file was deleted.

48 changes: 0 additions & 48 deletions docs/setup/setup_HPWS.sh

This file was deleted.

44 changes: 0 additions & 44 deletions docs/setup/setup_mac.sh

This file was deleted.

Binary file added docs/src/assets/OWENS_Processes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 12 additions & 7 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
# OWENS (Onshore/Offshore Wind/Water ENergy Simulator)

This package was based on the original structural dynamics solver by Brian Owens (see dissertation: http://hdl.handle.net/1969.1/151813). However, it has been rewritten into the Julia programming language and many of the issues related to aerodynamic coupling and floating dynamics solved, with extensive expansion into other areas and features to provide a seamless and automated process that takes in high level design details and does all of the preprocessing, running, and post processing that is normally done under different roofs or by different manual processes. This was done with the intent of enabling fast, parametric design. We have many of the modules propogating automatic gradients, however this is still a future challenge to solve well.
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://sandialabs.github.io/OWENS.jl)
![](https://github.com/sandialabs/OWENS.jl/workflows/CI/badge.svg)

This package is for experienced researchers with both software and engineering experience who need generalized flexibility and performance that is 100% open source. If you want a windows compatible GUI, please use QBlade from our friends across the pond.
This package is for experienced researchers and analyists with both software and engineering experience who need generalized flexibility and performance that is 100% open source and is compatible with gradient based optimization with automatic gradients in process. If you want a windows compatible GUI, please use QBlade.

OWENS is an ontology, or way of coupling modular aerodynamic, structural, hydrodynamic, and controls packages. It was originally based on the structural dynamics solver by Brian Owens (see dissertation: http://hdl.handle.net/1969.1/151813). However, it has been rewritten into the Julia programming language, modularized, and many of the issues related to aerodynamic coupling and floating dynamics solved, with extensive expansion into other areas and features to provide a seamless and automated process that takes in high level design details and does all of the preprocessing, running, and post processing that is normally done under different roofs or by different manual processes. This was done with the intent of enabling fast, parametric design. We have many of the modules propogating automatic gradients, however this is still a future challenge to solve well.

Here are several examples of OWENS use cases, current and past, including the Sandia 34m research turbine.

<img src="assets/SNL34m.png" alt="drawing" width="400"/>
<img src="./assets/SNL34m.png" alt="drawing" width="400"/>

Then here is an example of a helical design. Note that arbitrary numbers of struts can be specified in the automatic meshing functions. You can also write your own generalized mesh using the internal building blocks, but it is not thouroughly documented.

<img src="assets/helical.png" alt="drawing" width="400"/>
<img src="./assets/helical.png" alt="drawing" width="400"/>

The generalized meshing was modified to include HAWT concepts, like this bi-wing concept. OWENS is capable of axial flow turbines/HAWTs, but it is not a mature feature, and no where near as developed as OpenFAST (i.e. for regular HAWTs it is recommended to use that software).

<img src="assets/biwing.png" alt="drawing" width="400"/>
<img src="./assets/biwing.png" alt="drawing" width="400"/>

Then, floating turbines are a possibility, though this feature adds another dimension to the nonlinear time stepping convergance and in turn a fair amount of time. Future work is to make this general interface and functionality an easy to use feature (right now it needs a high level of experience to use).

<img src="assets/arcus.png" alt="drawing" width="400"/>
<img src="./assets/arcus.png" alt="drawing" width="400"/>


# OWENS under the hood
Expand All @@ -41,6 +44,8 @@ Turbulent inflow is provided by OWENSOpenFASTWrappers.jl and the inflowwind and

Rainflow counting was provided by Rainflow.jl, however, this package became orphained and was pulled into the OWENS code base.

<img src="./assets/OWENS_Processes.png" alt="drawing" width="400"/>

## Installation
Please follow the instructions on the setup page

Expand All @@ -49,7 +54,7 @@ Please follow the instructions on the setup page
- All of the functions have docstrings describing the i/o and function purpose, which can be accessed the docs site or by:
* import module
* ? module.function()
- A note about julia debuggers – if you don’t want it to step through everything, you need to tell it what packages to compile vs while packages to step through. This will make the debugger comparable (if not faster) than Matlab in speed. In VSCode, this can be done in the debug pane.
- A note about julia debuggers – if you don’t want it to step through everything, you need to tell it what packages to compile vs while packages to step through. This will make the debugger comparable (if not faster) than Matlab in speed. In VSCode, this can be done in the debug pane, or by optionally loading the provided VS code profile in the OWENS.jl/docs folder. This VS code profile will also set up the julia environment and other useful packages and key bindings, and can be modified as desired.

## Software License

Expand Down
Loading

0 comments on commit 2505f17

Please sign in to comment.