You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+66-35Lines changed: 66 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,23 +5,23 @@ modeling and designing arrays of floating offshore structures. It was
5
5
originally designed for floating wind systems but has applicability
6
6
for many offshore applications.
7
7
8
-
A core part of the FAD Toolset is the Floating Array Model (FAModel),
8
+
A core part of the FAD Toolset is the floating array model,
9
9
which serves as a high-level library for efficiently
10
-
modeling a floating wind array. It combines site condition information and a
10
+
modeling a floating array, such as a floating wind array. It combines site condition information and a
11
11
description of the floating array design, and contains functions for evaluating
12
12
the array's behavior considering the site conditions. For example, it combines
13
-
information about site soil conditions and an array's anchor characteristics to
14
-
estimate the holding capacity of each anchor.
13
+
information about site soil conditions, mooring line loads, and an array's anchor characteristics to
14
+
estimate the holding capacity of each anchor.
15
15
16
16
The library works in conjunction with the tools RAFT, MoorPy, and FLORIS to model floating
17
-
wind turbines, mooring systems, and array wakes respectively.
17
+
platforms, wind turbines, mooring systems, power cables, and array wakes respectively.
18
18
19
19
Layered on top of the floating array model is a set of design tools that can
20
20
be used for algorithmically adjusting or optimizing parts of the a floating
21
21
array. Specific tools existing for mooring lines, shared mooring systems,
22
22
dynamic power cables, static power cable routing, and overall array layout.
23
23
These capabilities work with the design representation and evaluation functions
24
-
in FAModel, and they can be applied by users in various combinations to suit
24
+
in the floating array model, and they can be applied by users in various combinations to suit
25
25
different purposes.
26
26
27
27
In addition to standalone uses of the FAD Toolset, a coupling has been made with
@@ -36,50 +36,72 @@ and designs.
36
36
37
37
See example use cases in our [examples](./examples/README.md) folder.
38
38
39
-
## Pre-installation Requirements
40
-
The FAD Toolset is built entirely in Python. It is recommended that users
41
-
familiarize themselves with basic Python commands before use.
42
39
For working with the library, it is important to understand the floating array
43
-
model structure, which is described more [here](./famodel/README.md).
40
+
model structure, which is described more [here](./fad/README.md).
44
41
45
42
46
43
## Installation
47
-
To install the FAD Toolset itself, first clone this FAD-Toolset repository.
48
44
49
-
The dependencies required by FAD depend on how it is used. To install all
50
-
possible required dependencies, you can create a
51
-
new python virtual environment based on the included yaml listing the required
52
-
dependencies.
45
+
FAD-Toolset is built entirely in Python. It is recommended that users familiarize themselves with Python and install Python onto their machine through Anaconda or Miniconda distributions.
53
46
54
-
In the terminal (Anaconda Powershell Prompt), clone this repository to a
55
-
directory of your choice, navigate into the main folder of the repository, and
56
-
run the following command:
47
+
The following describes the steps to set up a python virtual environment, install FAD-Toolset, and all install required dependencies into the environment.
57
48
58
-
conda env create -f famodel-env.yaml
49
+
First, in a terminal such as the Anaconda Powershell Prompt, clone the GitHub repository to access the files. Navigate to a directory of your choice to download the repository and then navigate into the FAD-Toolset folder.
59
50
60
-
This command will install all the dependencies required to run FAD.
61
-
Activate your virtual environment before using FAD with ```conda activate famodel-env```
(base) YOUR_PATH\FAD-Toolset> conda activate fad-env # run `conda deactivate` to deactivate
61
+
(fad-env) YOUR_PATH\FAD-Toolset>
62
+
```
67
63
68
-
run ```python setup.py develop``` or ```pip install -e .``` from the command
69
-
line in the main FAD-Toolset directory.
64
+
Within the new python virtual environment, we can install FAD-Toolset.
70
65
71
-
For non-development use:
66
+
Use ```pip``` to install the contents of this folder. Ensure you are still within the root directory of FAD-Toolset.
72
67
73
-
run ```python setup.py``` or ```pip install .``` from the command line in
74
-
the main FAD-Toolset directory.
68
+
```
69
+
(fad-env) YOUR_PATH\FAD-Toolset> pip install -e .
70
+
```
75
71
76
-
You can test the installation by running ```pytest``` from the main FAD-Toolset directory.
72
+
This command tells `pip` to look at the `pyproject.toml` file to install the FAD-Toolset program into the current virtual environment, along with all the dependencies listed in the `pyproject.toml` file. There is overlap between the python packages listed in the `pyproject.toml` and the `fad-env.yaml` file since the installation can be done by either or both of the package installation managers, `conda` and `pip`. Specific versions of packages like scipy are listed in the `pyproject.toml` file to ensure they get installed properly. The `-e` option allows users to make local changes to their FAD-Toolset files and have those changes be reflected in the FAD-Toolset installation.
73
+
74
+
Lastly, we can test the installation by running `pytest` from the main FAD-Toolset directory.
75
+
76
+
```
77
+
(fad-env) YOUR_PATH\FAD-Toolset> pytest
78
+
```
77
79
78
80
<!-- FAD requires MoorPy and we currently install it separately. If you don't already have it,
79
81
you can install MoorPy with ```git clone https://github.com/NREL/MoorPy.git```
80
82
then navigate to the MoorPy folder and install with ```pip install .```.
81
83
Make sure your virtual enviroment is activated before installing MoorPy. -->
82
84
85
+
For future changes to dependencies like MoorPy or RAFT, as long as those changes come through a new release of the software and an updated version is listed on PyPI, users should manually re-install the dependencies in their virtual environment to gather those new changes (i.e., `pip install moorpy`).
86
+
87
+
FAD-Toolset is also pip installable and can be installed using `pip install fad-toolset`. The main source code folder in the repo is named `fad`, which is how classes and functions will be imported (i.e., `import fad.Project as Project` or `from fad.anchors.anchor import Anchor`).
88
+
89
+
90
+
91
+
### Installation/Dependency Issues
92
+
93
+
Some of the toolset's functionality requires RAFT, which in turn requires
94
+
CCBlade, which recently can only be installed as part of WISDEM. Some issues
95
+
can occur from the associated dependencies, but some have quick fixes:
96
+
97
+
- Getting a readline error when breakpoint() is called? Check if the
98
+
pyreadline3 package is installed in the conda environment. If so, try
99
+
removing it.
100
+
101
+
- Wanting to use both WEIS and FAD Toolset in the same environment, but
102
+
getting errors related to "smt" when installing WEIS? Try commenting out
103
+
the smt requirement in environment.yml and pyproject.toml.
104
+
83
105
84
106
## Subpackages
85
107
@@ -93,24 +115,33 @@ collection of subpackages for specific functions. The current subpackages are:
93
115
94
116
Please navigate into the subfolders above for additional information.
95
117
118
+
96
119
## Getting Started
120
+
97
121
The easiest way to create a FAD project is to provide the array
98
122
information in an ontology yaml file. FAD has been designed
99
123
to work with a specific ontology yaml setup, which is described
100
-
in detail in the [Ontology ReadMe](./famodel/ontology/README.md).
124
+
in detail in the [Ontology ReadMe](./fad/ontology/README.md).
125
+
126
+
For examples of ontologies and driver files of common use cases,
127
+
we recommend starting with the numbered examples in the examples folder.
128
+
The [visualization examples](./examples/01_Visualization/) are a good place
129
+
to start. Run the .py files and inspect the .yaml files with the same name
130
+
to see what information is required for different uses and how they are conveyed
131
+
in the ontology.
101
132
102
-
The [example driver file](./famodel/example_driver.py) creates a FAD Project
133
+
To see an example with all use cases, the [example driver file](./examples/example_driver.py) creates a FAD Project
103
134
object from a pre-set ontology file and shows the syntax and outputs of
104
135
various capabilities. For guidance on creating your own ontology yaml file,
105
-
it is recommended to read through the [Ontology ReadMe](./famodel/ontology/README.md),
136
+
it is recommended to read through the [Ontology ReadMe](./fad/ontology/README.md),
106
137
then either adapt one of the ontology samples or fill in the ontology template.
107
138
108
-
The [core model readme](./famodel/README.md) describes the Project class structure,
139
+
The [core model readme](./fad/README.md) describes the Project class structure,
109
140
as well as the properties and methods of each component class.
110
141
111
142
There are some limited helper functions to automatically fill in sections
112
143
of a yaml from a MoorPy system or a list of platform locations.
113
-
See [helpers](./famodel/helpers.py) for the full list of yaml writing capabilities.
144
+
See [helpers](./fad/helpers.py) for the full list of yaml writing capabilities.
0 commit comments