Skip to content

Commit 6a27077

Browse files
authored
Merge pull request #1 from WISE-Developers/working/gusting
Add wing gusting settings
2 parents 3778ae0 + e3561ca commit 6a27077

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package ca.wise.api.input;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
import lombok.Setter;
8+
9+
/**
10+
* Options that define how and if wind gusting is applied to a scenario.
11+
*/
12+
@Builder
13+
@AllArgsConstructor
14+
@NoArgsConstructor
15+
public class GustingOptions {
16+
17+
@Getter @Setter
18+
private Gusting gusting;
19+
20+
/**
21+
* Must be available for time derived gusting.
22+
*/
23+
@Getter @Setter
24+
private Integer gustsPerHour;
25+
26+
/**
27+
* Must be available for average, time derived, and ROS derived gusting.
28+
* For average gusting this is a weighted averaging of wind speed and gusting. ws = ((100-percentGusting)*ws + percentGusting*gust)/100.
29+
* For time derived gusting gusts will occur for (3600/gustPerHour*(percentGusting*100)) seconds per gust.
30+
* For ROS derived gusting gusts will occur for (3600*(percentGusting/100)) seconds per hour.
31+
*/
32+
@Getter @Setter
33+
private Double percentGusting;
34+
35+
/**
36+
* Must be present for time and ROS derived gusting. Middle is not valid for ROS derived gusting.
37+
*/
38+
@Getter @Setter
39+
private GustBias gustBias;
40+
41+
public enum Gusting {
42+
NO_GUSTING(0),
43+
AVERAGE_GUSTING(1),
44+
TIME_DERIVED_GUSTING(2),
45+
ROS_DERIVED_GUSTING(3);
46+
47+
public final int value;
48+
49+
Gusting(int value) {
50+
this.value = value;
51+
}
52+
53+
public static Gusting fromInt(int value) {
54+
Gusting[] gusts = values();
55+
for (int i = 0; i < gusts.length; i++) {
56+
if (gusts[i].value == value)
57+
return gusts[i];
58+
}
59+
return NO_GUSTING;
60+
}
61+
}
62+
63+
public enum GustBias{
64+
MIDDLE(0),
65+
START(1),
66+
END(2);
67+
68+
public final int value;
69+
70+
GustBias(int value) {
71+
this.value = value;
72+
}
73+
74+
public static GustBias fromInt(int value) {
75+
GustBias[] gusts = values();
76+
for (int i = 0; i < gusts.length; i++) {
77+
if (gusts[i].value == value)
78+
return gusts[i];
79+
}
80+
return START;
81+
}
82+
}
83+
}

src/main/java/ca/wise/api/input/Scenario.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,12 @@ public void setName(String value) {
185185

186186
@Getter @Setter
187187
private StopModellingOptions stopModellingOptions;
188+
189+
/**
190+
* Options for enabling wind gusts if available in the weather stream.
191+
*/
192+
@Getter @Setter
193+
private GustingOptions gustingOptions;
188194

189195
/**
190196
* Add a new burning condition.

0 commit comments

Comments
 (0)