The GPU version of the model is very inefficent at running 1D (horizontal) transects - there are simply not enough grid points to make good use of 1,000's of GPU cores. However, the GPU is efficient at running many 100's to thousands of transects at once. In this case, effectively, we are running a 2D simulation, where the x-dimension is the same (the distance along the transect), but the y-dimension is the "transect dimension." So, for example, y=1 is the first transect, y=2 the second, and so on. The physics model is reduced to 1D, so there is no hydrodynamic information being passed along the "transect dimension."
This should allow for thousands of 1D transects to be run in near real time, the output of which could then be used to mine statistics, understand parameter sensitivity / uncertainity, etc. with a large number of transect samples.
For example, lets say I am interested in understanding the variability of wave height transformation along a particular generic transect, with (x,z) points given in some file "bathy_1D.txt". The parametric range I am interested in is:
depth = 5; % depth at wave generator
surge = [0, 1, 2, 3, 4]; % additional water level
Hs = [0, 0.5, 1, 1.5, 2]; % short-wave sig wave height
Tp = [10, 12, 15, 20]; % peak wave period
HRMS = [0, 0.25, 0.5, 0.75, 1]; % H_RMS for IG wave, superimposed on the short waves at the wave maker
T_IG = [60, 96, 120, 240]; % IG wave periods In this set, if I remove the cases where both the short wave and IG wave have heights of 0, I am left with 1920 combinations (the y, or transect dimension, will have a length of 1920): combos = combinations(depth,surge,Hs,Tp,HRMS,T_IG); % create combinations
combos(find(combos.HRMS==0 & combos.Hs==0),:)=[]; For each of these combinations, I can input a different transect, wave condition, and friction profile (optional). See the attached zip for an example of how to configure the config, bathy and waves input files. There is also an animation of what the many-transects run looks like on the web UI given below. How to use: Go to: https://plynett.github.io/transect_version/
upload your files, and use the model as you would in 2D mode. Python automation, friction maps, etc. all work as usual. Note that the transects wave file has a different format than in the 2D model - the 2D model uses a single spectrum for the offshore boundary, while the transect mode uses a single spectrum for every transect (for the example above, the waves file contains 1920 spectra). Use the example in the attached zip to understand how to create. If you have saved time stacks (through the Raw Data panel or using the Python automation), you can use the attached calc_statistics.m script (and helper functions convert_WebGPUCeleris_output_to_netCDF.m and distill_spec.m) to process the output and find bulk and spectral statistics. Limitations: Right now, the domain is limited to 2048 or less transects and 2048 or less grid points along the transect. Meaning the size of the data in your bathy file needs to have all dimensions less than 2048. If this turns out to be a limitation, I can attempt to fix.
All transects should use the same dx and dt. This means that your dt will be determined by the deepest depth across all the transects. Stated more completely, all parameters provided in the config file are used by every transect.
