4.4. Near-Real Time Wave-Solver - Oregon State University’s Large Wave Flume - Celeris

Problem files

Github

4.4.1. Overview

Near-real-time CelerisAi depth-averaged wave simulation in Oregon State University's Large Wave Flume geometry; piston wavemaker on one end, measurement probes along the flume, structure represented near the downstream end.

In this example we forward sample a scaled-down tsunami-like wave loading experiment and analyze resulting structural response with respect to structural and hydrodynamic uncertainty. Specifications replicate experiments in Oregon State University’s Large Wave Flume, by Winter (2019) [Winter2019] and Mascarenas (2022) [Mascarenas2022], as well as simulations by Bonus (2023) [Bonus2023Dissertation]. See the example Multiple Debris Impacts on a Raised Structure - Digital Flume (OSU LWF) - MPM for a Material Point Method rendition of this case in 3D.

Using Celeris, a near-real-time Boussinesq wave solver, simulate a 1:20 Froude-scaled tsunami (i.e., a solitary-like wave) propagating over a long wave flume’s (100 x 2.0 x 3.6 meters) multi-ramp bathymetry. Observe a spilling-type breaking mode at the bathymetry crest. Immediately after, record the flow loading a rigid, square column obstacle. We will additionally model hydrodynamic uncertainty. As in an earlier Celeris example, the piston-driven incoming solitary-like wave has random amplitude and period. New in this case, we also include seaLevel to account for water level variations.

Next, couple loads from the Celeris wave-solver’s rigid structure to an OpenSees structural model. Include uncertainty in the structural parameters using Random Variables for uncertainty quantification analysis.

Warning

Although simulations in this example replicate experimental work by Winter (2019) and Mascarenas (2022), instead of using a structural box raised above the initial water level we use a square column of identical foot-print. This means it reaches the flume floor beneath the initial water level. This is required because Celeris’ Boussinesq wave-solver is a 2D, depth-averaged method. It can not resolve the vertically raised aspect of the experimental structural box. This will cause slight changes in measured free-surface elevations, namely in the reflected wave, and a more notable increase in measured loads on the structure.

Finally, aggregate structural response into Engineering Demand Parameters for a statistical view into this scaled-down, tsunami-like loading experiment.

Note

Keep GI, SIM, EVT, and FEM units consistent between Celeris outputs and OpenSees inputs, including any geometric/time scaling used for the flume replication.

4.4.2. Set-Up

4.4.2.1. Step 1: UQ

Configure Forward sampling to explore structural and hydrodynamic uncertainty.

  • Engine: Dakota

  • Forward Propagation: Sampling method (e.g., LHS) with samples (e.g., 4) and an optional reproducible seed (e.g., 1).

HydroUQ UQ panel with Dakota engine; Forward method selected with sample count and optional seed.

4.4.2.2. Step 2: GI

Set General Information and Units. Ensure units are consistent across the workflow and with the underlying experimental data.

  • Structure name: Orange Box @ OSU's Large Wave Flume

  • Location/metadata: optional

  • Units: pick a consistent set (e.g., N-m-s or kips-in-s)

General Information panel showing project name and unit selections.

4.4.2.3. Step 3: SIM

The structural model is as follows: a 2D, 3-DOF OpenSees portal frame in OpenSees, OpenSees.

Schematic of a 2D three-degree-of-freedom portal frame subjected to horizontal wave-induced drag forces along the column line, with parameters taken from a JONSWAP spectrum.

Fig. 4.4.2.3.1 2D 3-DOF portal frame under stochastic wave loading (JONSWAP)

For the OpenSees generator the following model script, Frame.tcl , is used:

Click to expand the OpenSees input file used for this example
  1# Create ModelBuilder (with two-dimensions and 3 DOF/node)
  2
  3model basic -ndm 2 -ndf 3
  4
  5set width    360
  6set height   144
  7
  8node  1       0.0     0.0 
  9node  2    $width     0.0 
 10node  3       0.0 $height
 11node  4    $width $height
 12
 13fix   1     1    1    1
 14fix   2     1    1    1
 15
 16# Concrete ( Youngs Modulus, Yield Strength, and Compressive Strength)
 17pset fc 6.0
 18pset fy 60.0
 19pset E 30000.0
 20uniaxialMaterial Concrete01  1  -$fc  -0.004   -5.0     -0.014
 21uniaxialMaterial Concrete01  2  -5.0   -0.002   0.0     -0.006
 22
 23# STEEL
 24uniaxialMaterial Steel01  3  $fy $E 0.01
 25
 26set colWidth 15
 27set colDepth 24 
 28set cover  1.5
 29set As    0.60;     # area of no. 7 bars
 30set y1 [expr $colDepth/2.0]
 31set z1 [expr $colWidth/2.0]
 32
 33section Fiber 1 {
 34
 35    # Create the concrete core fibers
 36    patch rect 1 10 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
 37
 38    # Create the concrete cover fibers (top, bottom, left, right)
 39    patch rect 2 10 1  [expr -$y1] [expr $z1-$cover] $y1 $z1
 40    patch rect 2 10 1  [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
 41    patch rect 2  2 1  [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
 42    patch rect 2  2 1  [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]
 43
 44    # Create the reinforcing fibers (left, middle, right)
 45    layer straight 3 3 $As [expr $y1-$cover] [expr $z1-$cover] [expr $y1-$cover] [expr $cover-$z1]
 46    layer straight 3 2 $As 0.0 [expr $z1-$cover] 0.0 [expr $cover-$z1]
 47    layer straight 3 3 $As [expr $cover-$y1] [expr $z1-$cover] [expr $cover-$y1] [expr $cover-$z1]
 48
 49}    
 50
 51
 52# Define column elements
 53# ----------------------
 54
 55# Geometry of column elements
 56#                tag 
 57
 58geomTransf Corotational 1  
 59
 60# Number of integration points along length of element
 61set np 5
 62
 63# Create the coulumns using Beam-column elements
 64#               e            tag ndI ndJ nsecs secID transfTag
 65set eleType dispBeamColumn
 66element $eleType  1   1   3   $np    1       1 
 67element $eleType  2   2   4   $np    1       1 
 68
 69# Define beam elment
 70# -----------------------------
 71
 72# Geometry of column elements
 73#                tag 
 74geomTransf Linear 2  
 75
 76# Create the beam element
 77#                          tag ndI ndJ     A       E    Iz   transfTag
 78element elasticBeamColumn   3   3   4    360    4030  8640    2
 79
 80# Define gravity loads
 81# --------------------
 82
 83# Set a parameter for the axial load
 84set P 180;                # 10% of axial capacity of columns
 85
 86# Create a Plain load pattern with a Linear TimeSeries
 87pattern Plain 1 "Linear" {
 88
 89        # Create nodal loads at nodes 3 & 4
 90	#    nd    FX          FY  MZ 
 91	load  3   0.0  [expr -$P] 0.0
 92	load  4   0.0  [expr -$P] 0.0
 93}
 94
 95# ------------------------------
 96# Start of analysis generation
 97# ------------------------------
 98
 99# Create the system of equation, a sparse solver with partial pivoting
100system ProfileSPD
101
102# Create the constraint handler, the transformation method
103constraints Transformation
104
105# Create the DOF numberer, the reverse Cuthill-McKee algorithm
106numberer RCM
107
108# Create the convergence test, the norm of the residual with a tolerance of 
109# 1e-12 and a max number of iterations of 10
110test NormDispIncr 1.0e-12  10 3
111
112# Create the solution algorithm, a Newton-Raphson algorithm
113algorithm Newton
114
115# Create the integration scheme, the LoadControl scheme using steps of 0.1 
116integrator LoadControl 0.1
117
118# Create the analysis object
119analysis Static
120
121# ------------------------------
122# End of analysis generation
123# ------------------------------
124
125# perform the gravity load analysis, requires 10 steps to reach the load level
126analyze 10
127
128loadConst -time 0.0
129
130# ----------------------------------------------------
131# End of Model Generation & Initial Gravity Analysis
132# ----------------------------------------------------
133
134
135# ----------------------------------------------------
136# Start of additional modelling for dynamic loads
137# ----------------------------------------------------
138
139# Define nodal mass in terms of axial load on columns
140set g 386.4
141set m [expr $P/$g];       # expr command to evaluate an expression
142
143#    tag   MX   MY   RZ
144mass  3    $m   $m    0
145mass  4    $m   $m    0

Note

The first lines containing pset in an OpenSees tcl file will be read by the application when the file is selected. The application will autopopulate the random variables in the RV panel with these same variable names.

SIM panel referencing an OpenSees model file (Frame.tcl) with fields for material properties set as variable names fc, fy, and E.

These variable names (fc, fy, E) are recognized in Frame.tcl due to use of the pset command instead of set. This is so that RV picks them up automatically. You can try adding new RV parameters in the same way.

Uncertain properties (treated as RVs; see Step 7):

  • fc: mean 6, stdev 0.06

  • fy: mean 60, stdev 0.6

  • E: mean 30000, stdev 300

4.4.2.4. Step 4: EVT

Load Generator: Celeris Event - Near-Real-Time Boussinesq Solver (scaled-down tsunami experiment replication by Winter 2019 and Mascarenas 2022).

Configuration outline:

  • Flume geometry: match the OSU LWF dimensions and bathymetry inserts used in Winter (2019) / Mascarenas (2022).

  • Wavemaker: piston-driven solitary wave; define nominal stroke/profile.

  • Instrumentation: place wave-gauges, velocimeters, and load-cells (virtual probes) at the experimental stations for comparison.

  • Hydrodynamic RVs: promote amplitude and period (solitary wave) and the quasi-static seaLevel offset to RVs (see Step 7).

  • Export: time histories (surface elevation, depth-averaged velocity, and forces/pressures) at probe and structure locations for load mapping.

To perform the manual workflow, load-in the following files to the Celeris tab:

EVT panel showing Celeris configuration with scaled bathymetry.

Double-check that the following parameters are set in the Solver and Domain tabs:

EVT panel showing Celeris Domain configuration.
EVT panel showing Celeris Solver configuration.

Note

We will not be using the BRAILS tab in this instance, as we are not concerned with modeling a full-scale, real-world rendition of these experiments and instead rely on the manually inputted files for experimental replication.

Advanced Exercise - Extrapolate to the Prototype Event

As an exercise for advanced users, try using the BRAILS tab to identify a suitable real-world location and building inventory that could represent the full-scale, prototype event. This involves searching for a coastal site with similar bathymetry and a structure matching the square footprint and approximate blockage ratio (0.28) used in the experiment. You must also ensure appropriate Froude similitude scaling of the incoming wave, and potentially surf similitude scaling of the bathymetry as well.

4.4.2.5. Step 5: FEM

Solver: OpenSees dynamic analysis. Check:

  • Integration step compatible with CelerisAi output interval.

  • Algorithm/convergence tolerances suitable for expected nonlinearity.

  • Damping model as needed (e.g., Rayleigh).

FEM panel with integration, algorithm, solver, and damping settings.

4.4.2.6. Step 6: EDP

Select Engineering Demand Parameters (EDPs) to summarize response:

  • Peak Floor Acceleration (PFA)

  • Root Mean Square Acceleration (RMSA)

  • Peak Floor Displacement (PFD)

  • Peak Interstory Drift (PID)

EDP panel with standard selections enabled.

4.4.2.7. Step 7: RV

Define distributions for structural and hydrodynamic RVs:

Structural

  • fc: Normal (mean 6, stdev 0.06)

  • fy: Normal (mean 60, stdev 0.6)

  • E: Normal (mean 30000, stdev 300)

Hydrodynamic (solitary wave + mean level)

  • amplitude: Normal (mean 0.5, stdev 0.15)

  • period: Normal (mean 20, stdev 4)

  • seaLevel: Normal (mean 2.0, stdev 0.1)

RV panel listing fc, fy, E, amplitude, period, and seaLevel with Normal distributions and parameters.

Warning

Ensure positivity of wave parameters (e.g., amplitude) if using Normal distributions—consider truncation or alternative distributions if needed.

4.4.3. Simulation

This workflow is intended for either local execution or remote execution to leverage near-real-time Celeris computation. Click RUN for local if you have a decently strong computer, or RUN at DesignSafe if you have a DesignSafe account and wish to use the Stampede3 supercomputer. When complete, the RES panel opens. Locally, the workflow will take from 20 to 60 minutes depending on your PC.

Warning

Keep recorder counts, export frequency, and sample size reasonable. Excessive export rates or too many recorders can dominate runtime and disk usage.

4.4.4. Analysis

Visualize time-series from event probes (e.g., wave-gauges, velocimeters, and load-sensors) by navigating to EVT / Wave Solver (Celeris) / Results. Then set the Run Type to Local for local workflows and choose the simulation you wish to inspect by setting Simulation Number between 1 and the number of samples you set in the UQ tab.

Comparison plots of wave-gauge elevations, velocimeter velocities, and load-cell forces from CelerisAi versus OSU LWF experiments at matching stations.
  • Wave-gauges & velocimeters: generally match experimental counterparts well at the instrumented locations.

  • Load-cells: simulated forces overpredict experiments. Reason: the solver is 2D depth-averaged, and the raised structural box was approximated as a square column embedded in the bathymetry—preventing underflow beneath the box, thus increasing hydrodynamic loads compared to the physical experiment where water could flow underneath.

Note

This HydroUQ example runs the Celeris configuration natively. Experimental results can be imported (optional) for side-by-side plots in the Analysis section for a comparative study, as in Bonus (2023). Acquire said data from: PRJ-2906.

Returning to our primary HydroUQ workflow, which concerns uncertainty in structural response, we may now view the final results in the RES tab. Clicking Summary on the top-bar, a statistical summary of results is shown below:

Results summary from Forward UQ runs under CelerisAi-derived loading.

Clicking Data Values on the top-bar shows detailed histograms, cumulative distribution functions, and scatter plots relating the dependent and independent variables:

Note

In the Data Values tab, left- and right-click column headers to change plot axes; selecting a single column with both clicks displays frequency and CDF plots.

Results scatter plot from Forward UQ runs under CelerisAi-derived loading.
Histogram view and tabular outputs for key response measures.
CDF view and tabular outputs for key response measures.

Note

Use consistent Froude similitude scaling when comparing numerical simulations, experiments, and full-scale scenarios. For cross-method comparisons, adopt identical structure footprints, friction models, probe placement, and other pertinent parameters to reduce bias.

For more advanced analysis, export results as a CSV file by clicking Save Table on the upper-right of the application window. This will save the independent and dependent variable data. I.e., the Random Variables you defined and the Engineering Demand Parameters determined from the structural response per each simulation.

To save your simulation configuration with results included, click File / Save As and specify a location for the HydroUQ JSON input file to be recorded to. You may then reload the file at a later time by clicking File / Open. You may also send it to others by email or place it in an online repository for research reproducibility. This example’s input file is viewable at Reproducibility.

To directly share your simulation job and results in HydroUQ with other DesignSafe users, click GET from DesignSafe. Then, navigate to the row with your job and right-click it. Select Share Job. You may then enter the DesignSafe username or usernames (comma-separated) to share with.

Important

Sharing a job requires that the job was initially ran with an Archive System ID (listed in the GET from DesignSafe table’s columns) that is not designsafe.storage.default. Any other Archive System ID allows for sharing with DesignSafe members on the associated project. See Jobs for more details.

4.4.5. Conclusions

We have successfully replicated experiments in OSU’s Large Wave Flume using Celeris. Load-cell overpredictions arise because a 2D depth-averaged model approximated a raised structural box as a solid square column, blocking underflow and elevating forces. Because the loads come from a flume-scale scenario, mapping them directly to a full-scale structural model can underpredict (or misrepresent) EDPs. This highlights the need to scale the structure or scale the forces using similitude laws, which is left as an exercise for the reader.

4.4.6. References

[Winter2019]

Winter, A. (2019). “Effects of Flow Shielding and Channeling on Tsunami-Induced Loading of Coastal Structures.” PhD thesis. University of Washington, Seattle.

[Mascarenas2022]

Mascarenas, Dakota. (2022). “Quantification of Wave-Driven Debris Impact on a Raised Structure in a Large Wave Flume.” Masters thesis. University of Washington, Seattle.

[Bonus2023Dissertation]

Bonus, Justin (2023). “Evaluation of Fluid-Driven Debris Impacts in a High-Performance Multi-GPU Material Point Method.” PhD thesis. University of Washington, Seattle.

4.4.7. Reproducibility

  • Random seed(s): 1 (set in UQ)

  • Model file: Frame.tcl

  • App version: HydroUQ v4.2.0

  • Wave solver: Celeris (as provided in NHERI-SimCenter/SimCenterBackendApplications)

  • System: Local Mac, Linux, and Windows, as well as TACC HPC clusters such as Stampede3.

  • Input: The HydroUQ input file is as follows: input.json , is used:

Click to expand the HydroUQ input file used for this example
  1{
  2    "Applications": {
  3        "EDP": {
  4            "Application": "StandardEDP",
  5            "ApplicationData": {
  6            }
  7        },
  8        "Events": [
  9            {
 10                "Application": "Celeris",
 11                "ApplicationData": {
 12                },
 13                "EventClassification": "Hydro"
 14            }
 15        ],
 16        "Modeling": {
 17            "Application": "OpenSeesInput",
 18            "ApplicationData": {
 19                "fileName": "Frame.tcl",
 20                "filePath": "{Current_Dir}/."
 21            }
 22        },
 23        "Simulation": {
 24            "Application": "OpenSees-Simulation",
 25            "ApplicationData": {
 26            }
 27        },
 28        "UQ": {
 29            "Application": "Dakota-UQ",
 30            "ApplicationData": {
 31            }
 32        }
 33    },
 34    "DefaultValues": {
 35        "driverFile": "driver",
 36        "edpFiles": [
 37            "EDP.json"
 38        ],
 39        "filenameAIM": "AIM.json",
 40        "filenameDL": "BIM.json",
 41        "filenameEDP": "EDP.json",
 42        "filenameEVENT": "EVENT.json",
 43        "filenameSAM": "SAM.json",
 44        "filenameSIM": "SIM.json",
 45        "rvFiles": [
 46            "AIM.json",
 47            "SAM.json",
 48            "EVENT.json",
 49            "SIM.json"
 50        ],
 51        "workflowInput": "scInput.json",
 52        "workflowOutput": "EDP.json"
 53    },
 54    "EDP": {
 55        "type": "StandardEDP"
 56    },
 57    "Events": [
 58        {
 59            "Application": "Celeris",
 60            "EventClassification": "Hydro",
 61            "type": "Celeris",
 62            "bathymetryFile": "bathy_osu_lwf_plus_cube_smooth_5cm.txt",
 63            "bathymetryFilePath": "{Current_Dir}/.",
 64            "config": {
 65                "Bcoef": 0.06666667,
 66                "Bcoef_g": 0.6540000327,
 67                "BoundaryWidth": 20,
 68                "CB_label_height": 10,
 69                "CB_show": 1,
 70                "CB_width": 805,
 71                "CB_width_uv": 0.9,
 72                "CB_xbuffer": 8,
 73                "CB_xbuffer_uv": 0.01,
 74                "CB_xstart": 45,
 75                "CB_xstart_uv": 0.05,
 76                "CB_ystart": 30,
 77                "Courant_num": 0.1,
 78                "DispatchX": 55,
 79                "DispatchY": 28,
 80                "GMapImageHeight": 512,
 81                "GMapImageWidth": 512,
 82                "GMoffsetX": 0,
 83                "GMoffsetY": 0,
 84                "GMscaleX": 1,
 85                "GMscaleY": 1,
 86                "GoogleMapOverlay": 0,
 87                "HEIGHT": 74,
 88                "IsGoogleMapLoaded": 0,
 89                "NLSW_or_Bous": 1,
 90                "NumberOfTimeSeries": 8,
 91                "PI": 3.141592653589793,
 92                "TWO_THETA": 4,
 93                "Theta": 2,
 94                "ThreadX": 16,
 95                "ThreadY": 16,
 96                "WIDTH": 1790,
 97                "WaveType": 3,
 98                "add_Disturbance": -1,
 99                "amplitude": "RV.amplitude",
100                "base_depth": "RV.seaLevel",
101                "boundary_epsilon": 5.6553838196257955e-09,
102                "boundary_g": 9.81,
103                "boundary_nx": 872,
104                "boundary_ny": 436,
105                "boundary_shift": 4,
106                "canvas_height_ratio": 1,
107                "canvas_width_ratio": 1,
108                "changeAmplitude": 0.07520228600000001,
109                "changeRadius": 2.5,
110                "changeType": 1,
111                "changeXTimeSeries": 0,
112                "changeYTimeSeries": 0,
113                "changethisTimeSeries": 5,
114                "chartDataUpdate": 0,
115                "clearConc": 0,
116                "click_update": -1,
117                "colorMap_choice": 0,
118                "colorVal_max": 1,
119                "colorVal_min": -1,
120                "countTimeSeries": 9079,
121                "direction": 0,
122                "dissipation_threshold": 0.3,
123                "disturbanceCrestamp": 0.6,
124                "disturbanceDip": 0,
125                "disturbanceDir": 0,
126                "disturbanceLength": 0,
127                "disturbanceRake": 0,
128                "disturbanceType": 1,
129                "disturbanceWidth": 0,
130                "disturbanceXpos": 3,
131                "disturbanceYpos": 0,
132                "dt": 0.0036817133736190564,
133                "duration": 45.0,
134                "durationTimeSeries": 0,
135                "dx": 0.05,
136                "dy": 0.05,
137                "east_boundary_type": 0,
138                "elapsedTime": 204.542,
139                "elapsedTime_update": 45.224,
140                "exampleDirs": [
141                    "./examples/Ventura/",
142                    "./examples/Santa_Cruz/",
143                    "./examples/Santa_Cruz_tsunami/",
144                    "./examples/Barry_Arm/",
145                    "./examples/Crescent_City/",
146                    "./examples/DuckFRF_NC/",
147                    "./examples/Greenland/",
148                    "./examples/Half_Moon_Bay/",
149                    "./examples/Hania_Greece/",
150                    "./examples/Miami_Beach_FL/",
151                    "./examples/Miami_FL/",
152                    "./examples/Newport_OR/",
153                    "./examples/POLALB/",
154                    "./examples/SantaBarbara/",
155                    "./examples/Taan_fjord/",
156                    "./examples/OSU_WaveBasin/",
157                    "./examples/SF_Bay_tides/"
158                ],
159                "force_sensor_begin": [45.75, 1.30],
160                "force_sensor_end": [45.75, 2.25],
161                "forward": 1,
162                "friction": 0.001,
163                "full_screen": 0,
164                "g": 9.80665,
165                "g_over_dx": 196.2,
166                "g_over_dy": 196.2,
167                "half_g": 4.905,
168                "html_update": -1,
169                "isManning": 0,
170                "lat_LL": 0,
171                "lat_UR": 0,
172                "locationOfTimeSeries": [
173                    {
174                        "name": "WaveMaker",
175                        "xts": 0,
176                        "yts": 1.8
177                    },
178                    {
179                        "name": "WG1",
180                        "xts": 16,
181                        "yts": 0.8
182                    },
183                    {
184                        "name": "WG2",
185                        "xts": 34.294,
186                        "yts": 0.8
187                    },
188                    {
189                        "name": "WG3",
190                        "xts": 38.139,
191                        "yts": 0.8
192                    },
193                    {
194                        "name": "USWG1",
195                        "xts": 41.625,
196                        "yts": 0.8
197                    },
198                    {
199                        "name": "USWG2",
200                        "xts": 45.255,
201                        "yts": 0.8
202                    },
203                    {
204                        "name": "USWG3",
205                        "xts": 46.285,
206                        "yts": 0.8
207                    },
208                    {
209                        "name": "USWG4",
210                        "xts": 48.955,
211                        "yts": 0.8
212                    }
213                ],
214                "lon_LL": 0,
215                "lon_UR": 0,
216                "maxNumberOfTimeSeries": 16,
217                "maxdurationTimeSeries": 30,
218                "mouse_current_canvas_indX": 219,
219                "mouse_current_canvas_indY": 4,
220                "mouse_current_canvas_positionX": 0,
221                "mouse_current_canvas_positionY": 0,
222                "n_time_steps_means": 47290,
223                "n_time_steps_waveheight": 47290,
224                "n_write_interval": null,
225                "n_writes": null,
226                "north_boundary_type": 0,
227                "numberOfWaves": 2961,
228                "one_over_d2x": 400,
229                "one_over_d2y": 400,
230                "one_over_d3x": 8000,
231                "one_over_d3y": 8000,
232                "one_over_dx": 20,
233                "one_over_dxdy": 400,
234                "one_over_dy": 20,
235                "period": "RV.period",
236                "pred_or_corrector": 2,
237                "rand_phase": 0,
238                "reflect_x": 1740,
239                "reflect_y": 868,
240                "render_step": 4,
241                "rotationAngle_xy": 0,
242                "run_example": 0,
243                "save_baseline": 0,
244                "seaLevel": "RV.seaLevel",
245                "sedC1_criticalshields": 0.045,
246                "sedC1_d50": 0.2,
247                "sedC1_denrat": 2.65,
248                "sedC1_erosion": 0.0002746401358265295,
249                "sedC1_fallvel": 0.14690813456034352,
250                "sedC1_n": 0.4,
251                "sedC1_psi": 5e-05,
252                "sedC1_shields": 308.8993914681988,
253                "shift_x": 0,
254                "shift_y": 0,
255                "ship_c1a": 0.005483113556160754,
256                "ship_c1b": 0.04934802200544678,
257                "ship_c2": 0.021932454224643013,
258                "ship_c3a": 0.005483113556160754,
259                "ship_c3b": 0.04934802200544678,
260                "ship_draft": 2,
261                "ship_heading": 0,
262                "ship_length": 30,
263                "ship_posx": -100,
264                "ship_posy": 450,
265                "ship_width": 10,
266                "useBreakingModel": 0,
267                "showBreaking": 0,
268                "significant_wave_height": 1,
269                "simPause": -1,
270                "south_boundary_type": 0,
271                "surfaceToChange": 1,
272                "surfaceToPlot": 0,
273                "timeScheme": 2,
274                "tooltipVal_Hs": 0.17761249840259552,
275                "tooltipVal_bottom": -0.6820381879806519,
276                "tooltipVal_eta": 0.045800093561410904,
277                "tooltipVal_friction": 0.0010000000474974513,
278                "tridiag_solve": 2,
279                "updateTimeSeriesTx": 0,
280                "useSedTransModel": 0,
281                "viewType": 1,
282                "west_boundary_type": 2,
283                "whiteWaterDecayRate": 0.9,
284                "write_dt": null,
285                "xClick": 0,
286                "yClick": 0
287            },
288            "configFile": "config.json",
289            "configFilePath": "{Current_Dir}/.",
290            "waveFile": "waves.txt",
291            "waveFilePath": "{Current_Dir}/."
292        }
293    ],
294    "GeneralInformation": {
295        "NumberOfStories": 1,
296        "PlanArea": 129600,
297        "StructureType": "RM1",
298        "YearBuilt": 1990,
299        "depth": 360,
300        "height": 576,
301        "location": {
302            "latitude": 37.8715,
303            "longitude": -122.273
304        },
305        "name": "",
306        "planArea": 129600,
307        "stories": 1,
308        "units": {
309            "force": "kips",
310            "length": "in",
311            "temperature": "C",
312            "time": "sec"
313        },
314        "width": 360
315    },
316    "Modeling": {
317        "centroidNodes": [
318            1,
319            3
320        ],
321        "dampingRatio": 0.02,
322        "ndf": 3,
323        "ndm": 2,
324        "randomVar": [
325            {
326                "name": "fc",
327                "value": "RV.fc"
328            },
329            {
330                "name": "fy",
331                "value": "RV.fy"
332            },
333            {
334                "name": "E",
335                "value": "RV.E"
336            }
337        ],
338        "responseNodes": [
339            1,
340            3
341        ],
342        "type": "OpenSeesInput"
343    },
344    "Simulation": {
345        "Application": "OpenSees-Simulation",
346        "algorithm": "Newton",
347        "analysis": "Transient -numSubLevels 2 -numSubSteps 10",
348        "convergenceTest": "NormUnbalance 1.0e-2 10",
349        "dampingModel": "Rayleigh Damping",
350        "firstMode": 1,
351        "integration": "Newmark 0.5 0.25",
352        "modalRayleighTangentRatio": 0,
353        "numModesModal": -1,
354        "rayleighTangent": "Initial",
355        "secondMode": -1,
356        "solver": "Umfpack"
357    },
358    "UQ": {
359        "parallelExecution": false,
360        "samplingMethodData": {
361            "method": "LHS",
362            "samples": 4,
363            "seed": 1
364        },
365        "saveWorkDir": true,
366        "uqType": "Forward Propagation"
367    },
368    "correlationMatrix": [
369        1,
370        0,
371        0,
372        0,
373        0,
374        0,
375        0,
376        1,
377        0,
378        0,
379        0,
380        0,
381        0,
382        0,
383        1,
384        0,
385        0,
386        0,
387        0,
388        0,
389        0,
390        1,
391        0,
392        0,
393        0,
394        0,
395        0,
396        0,
397        1,
398        0,
399        0,
400        0,
401        0,
402        0,
403        0,
404        1
405    ],
406    "localAppDir": "/home/justinbonus/SimCenter/HydroUQ/build",
407    "randomVariables": [
408        {
409            "distribution": "Normal",
410            "inputType": "Parameters",
411            "mean": 6,
412            "name": "fc",
413            "refCount": 1,
414            "stdDev": 0.06,
415            "value": "RV.fc",
416            "variableClass": "Uncertain"
417        },
418        {
419            "distribution": "Normal",
420            "inputType": "Parameters",
421            "mean": 60,
422            "name": "fy",
423            "refCount": 1,
424            "stdDev": 0.6,
425            "value": "RV.fy",
426            "variableClass": "Uncertain"
427        },
428        {
429            "distribution": "Normal",
430            "inputType": "Parameters",
431            "mean": 30000,
432            "name": "E",
433            "refCount": 1,
434            "stdDev": 300,
435            "value": "RV.E",
436            "variableClass": "Uncertain"
437        },
438        {
439            "distribution": "Normal",
440            "inputType": "Parameters",
441            "mean": 0.15,
442            "name": "amplitude",
443            "refCount": 0,
444            "stdDev": 0.02,
445            "value": "RV.amplitude",
446            "variableClass": "Uncertain"
447        },
448        {
449            "distribution": "Normal",
450            "inputType": "Parameters",
451            "mean": 20,
452            "name": "period",
453            "refCount": 0,
454            "stdDev": 2,
455            "value": "RV.period",
456            "variableClass": "Uncertain"
457        },
458        {
459            "distribution": "Normal",
460            "inputType": "Parameters",
461            "mean": 2,
462            "name": "seaLevel",
463            "refCount": 0,
464            "stdDev": 0.1,
465            "value": "RV.seaLevel",
466            "variableClass": "Uncertain"
467        }
468    ],
469    "remoteAppDir": "/home/justinbonus/SimCenter/HydroUQ/build",
470    "resultType": "SimCenterUQResultsSampling",
471    "runType": "runningLocal",
472    "spreadsheet": {
473        "data": [
474            1,
475            6.028075539,
476            57.58553221,
477            29462.85806,
478            0.2043653771,
479            17.42765996,
480            1.955543862,
481            3.36956,
482            3.21771,
483            0.226608,
484            0.0369126,
485            0.0114226,
486            0.0183792,
487            7.93233e-05,
488            0,
489            2,
490            6.127403326,
491            59.65390904,
492            29850.41289,
493            0.2277606611,
494            23.53859216,
495            2.044351917,
496            3.35905,
497            3.20031,
498            0.0902674,
499            0.0246416,
500            0.00969684,
501            0.0181782,
502            6.73391e-05,
503            0,
504            3,
505            5.99989415,
506            62.09509192,
507            30017.36909,
508            0.1664177408,
509            20.68867725,
510            2.118068995,
511            1.84813,
512            1.7507,
513            0.0182751,
514            0.0161934,
515            0.00484152,
516            0.0183701,
517            3.36217e-05,
518            0,
519            4,
520            5.924539779,
521            60.11436404,
522            30309.83223,
523            0.1921301395,
524            19.91918823,
525            1.874532636,
526            7.18321,
527            6.83161,
528            0.447475,
529            0.0960217,
530            0.0146628,
531            0.0185367,
532            0.000101825,
533            0
534        ],
535        "headings": [
536            "Run #",
537            "fc",
538            "fy",
539            "E",
540            "amplitude",
541            "period",
542            "seaLevel",
543            "1-PFA-1-1",
544            "1-PFA-1-2",
545            "1-RMSA-1-1",
546            "1-RMSA-1-2",
547            "1-PFD-1-1",
548            "1-PFD-1-2",
549            "1-PID-1-1",
550            "1-PID-1-2",
551            ""
552        ],
553        "isSurrogate": false,
554        "nrv": 6,
555        "numCol": 15,
556        "numRow": 4
557    },
558    "summary": [
559        {
560            "kurtosis": 5.614692499053245,
561            "mean": 3.9399875,
562            "name": "1-PFA-1-1",
563            "skewness": 1.3875429685905685,
564            "stdDev": 2.2772231552540037
565        },
566        {
567            "kurtosis": 5.591685203027151,
568            "mean": 3.7500825000000004,
569            "name": "1-PFA-1-2",
570            "skewness": 1.373905833853955,
571            "stdDev": 2.1663342613021817
572        },
573        {
574            "kurtosis": 2.971158918787393,
575            "mean": 0.195656375,
576            "name": "1-RMSA-1-1",
577            "skewness": 0.915894925818679,
578            "stdDev": 0.18880463956093832
579        },
580        {
581            "kurtosis": 5.8853965585463985,
582            "mean": 0.043442325000000004,
583            "name": "1-RMSA-1-2",
584            "skewness": 1.6791609968413177,
585            "stdDev": 0.03607029783699002
586        },
587        {
588            "kurtosis": 3.8412299933476675,
589            "mean": 0.010155939999999999,
590            "name": "1-PFD-1-1",
591            "skewness": -0.5486350725435686,
592            "stdDev": 0.00409756217612375
593        },
594        {
595            "kurtosis": 4.549094901699577,
596            "mean": 0.01836605,
597            "name": "1-PFD-1-2",
598            "skewness": -0.34957985444781725,
599            "stdDev": 0.00014674055335864089
600        },
601        {
602            "kurtosis": 3.8412471088843487,
603            "mean": 7.052727500000001e-05,
604            "name": "1-PID-1-1",
605            "skewness": -0.5486176664419157,
606            "stdDev": 2.8455248911741514e-05
607        },
608        {
609            "kurtosis": null,
610            "mean": 0,
611            "name": "1-PID-1-2",
612            "skewness": null,
613            "stdDev": 0
614        }
615    ],
616    "workingDir": "/home/justinbonus/Documents/HydroUQ/LocalWorkDir"
617}