openfast icon indicating copy to clipboard operation
openfast copied to clipboard

Feature request: specify smaller VTK slice in FAST.Farm output

Open andrew-platt opened this issue 6 months ago • 4 comments

FAST.Farm can output slices of the low resolution grid. When a very large farm is modeled, a single slice may be very large compared to the region of actual interest.

Describe the solution you'd like In addition to the current slice outputs, add the ability to read a custom slice file with different reduced grids. For example, if we have a low res grid with XY extents of [-1500:3000, -2000:2000] and wanted to look at VTK slices only around a specific turbine (number 137 and 139 in this example) located at [2000,1400] and [1850,1225], a smaller sampling volume around those turbine could be specified of only 1000 m x 600 m for the VTK slicing. Perhaps this could be specified

!------- VTK Box volumes --------
1      NumVTKvolBoxes - number of VTK volume boxes for extracting slices (-)
BoxName    X0    X1      Y0    Y1      Z0    Z1
(-)        (m)   (m)     (m)   (m)     (m)   (m)
T137      1800  2800    1100  1700     "default" "default"         ! Default on Z for full extent of height
T139      1650  2650     925  1525     "default" "default"         ! Default on Z for full extent of height
!------- Slices ---------------
5      NumSlices - total number of slices across all custom boxes (-)
BoxName    SliceDir    Loc
(-)        (-)         (m)
T137       YZ          *200            ! "*" for relative to X0
T137       YZ          2000            ! absolute plane position
T137       XY          80                ! at 80m height
T137       XZ          *200            ! at 200 m relative to Y0
T137       XZ          1400            ! absolute location of Y slice
T139       YZ          *200             ! same offset as first slice from Box T137
T139       XZ          *200             ! same offset as slice 4 from Box T137

The above might live in a separate file specified in the Visualization section.

Describe alternatives you've considered An alternative approach could be to include the extents into the plane location itself. Example:

87.6          OutDisWindZ   - Z coordinates of XY planes for output of disturbed wind data across the low-resolution domain (m) [1 to NOutDisWindXY] [unused for NOutDisWindXY=0]
2             NOutDisWindYZ - Number of YZ planes for output of disturbed wind data across the low-resolution domain to <RootName>/Low.DisYZ<n_out>.t<n>.vtk (-) [0 to 99]
10.0[-300:300], 640.0[-200:400]    OutDisWindX   - X coordinates of YZ planes for output of disturbed wind data across the low-resolution domain (m) [1 to NOutDisWindYZ] [unused for NOutDisWindYZ=0] {Append [<Y0lim>:<Y1lim>] to distance to truncate in Y direction bounds at user specified bounds of <Y0lim> and <Y1lim>}

where the [-300:300] indicates to truncate the box Y dimensions (don't allow in Z). This would be rather clumsy to specify and tricky to implement into a reasonable parser. It could also be really clumsy for an XY plane to specify [<X0lim>:<X1lim>; <Y0lim>:<Y1lim>]

Additional context This was never really an issue until we started modeling large farms with 150 or more turbines spread out over very large areas. So this may not be an issue that most casual users face, but I expect more industry users will find this modification useful.

@rthedin, any thoughts on this method? Or suggestions based on AMR-Wind?

andrew-platt avatar Aug 19 '24 22:08 andrew-platt