###################################################################################################################################
# Registry for Waves2 in the FAST Modularization Framework
# This Registry file is used to create MODULE Waves2_Types  which contains all of the user-defined types needed in Waves2.
# It also contains copy, destroy, pack,  and unpack routines associated with each defined data types.
# See NWTC Programmer's Handbook for further information on the format/contents of this file.
#
# Entries are of the form
# <keyword> <ModuleName/ModName> <TypeName>  <FieldType> <FieldName> <Dims>   <IO>  <DNAME>  <DESCRIP>   <UNITS>
#
# Use ^ as a shortcut for the value in the same column from the previous line.
###################################################################################################################################

# ...... Include files (definitions from NWTC Library) ............................................................................
# make sure that the file name does not have any trailing white spaces!
include  Registry_NWTC_Library.txt

# ..... Initialization data .......................................................................................................
# Define inputs that the initialization routine may need here:
#   e.g.,  the name of the input file,  the file root name,etc.
#
typedef     Waves2/Waves2     InitInputType     ReKi                 Gravity           -        -        -        "Gravitational acceleration"  (m/s^2)
typedef     ^                 ^                 integer              nGrid             3        -        -        "Grid dimensions"
typedef     ^                 ^                 INTEGER              NWaveElevGrid     -        -        -        "Number of grid points where the incident wave elevations can be output"  -
typedef     ^                 ^                 INTEGER              NWaveKinGrid       -        -        -        "Number of grid points where the incident wave kinematics will be computed"  -
typedef     ^                 ^                 SiKi                 WaveKinGridxi      {:}      -        -        "xi-coordinates for grid points where the incident wave kinematics will be computed; these are relative to the mean sea level"  (meters)
typedef     ^                 ^                 SiKi                 WaveKinGridyi      {:}      -        -        "yi-coordinates for grid points where the incident wave kinematics will be computed; these are relative to the mean sea level"  (meters)
typedef     ^                 ^                 SiKi                 WaveKinGridzi      {:}      -        -        "zi-coordinates for grid points where the incident wave kinematics will be computed; these are relative to the mean sea level"  (meters)

typedef     ^                 ^                 LOGICAL              WvDiffQTFF        -        -        -        "Full difference QTF second order forces flag" (-)
typedef     ^                 ^                 LOGICAL              WvSumQTFF         -        -        -        "Full sum QTF second order forces flag" (-)


# Define outputs from the initialization routine here:
#
typedef     ^                 InitOutputType    SiKi                 WaveAcc2D         {:}{:}{:}{:}{:} -       -  "Instantaneous 2nd-order difference frequency correction for the acceleration     of incident waves in the xi- (1), yi- (2), and zi- (3) directions, respectively, at each of the NWaveKinGrid points where the incident wave kinematics will be computed" (m/s^2)
typedef     ^                 ^                 SiKi                 WaveDynP2D        {:}{:}{:}{:}   -        -  "Instantaneous 2nd-order difference frequency correction for the dynamic pressure of incident waves                                                              , at each of the NWaveKinGrid points where the incident wave kinematics will be computed" (N/m^2)
typedef     ^                 ^                 SiKi                 WaveAcc2S         {:}{:}{:}{:}{:} -       -  "Instantaneous 2nd-order sum        frequency correction for the acceleration     of incident waves in the xi- (1), yi- (2), and zi- (3) directions, respectively, at each of the NWaveKinGrid points where the incident wave kinematics will be computed" (m/s^2)
typedef     ^                 ^                 SiKi                 WaveDynP2S        {:}{:}{:}{:}   -        -  "Instantaneous 2nd-order sum        frequency correction for the dynamic pressure of incident waves                                                              , at each of the NWaveKinGrid points where the incident wave kinematics will be computed" (N/m^2)
typedef     ^                 ^                 SiKi                 WaveVel2D         {:}{:}{:}{:}{:} -       -  "Instantaneous 2nd-order difference frequency correction for the velocity         of incident waves in the xi- (1), yi- (2), and zi- (3) directions, respectively, at each of the NWaveKinGrid points where the incident wave kinematics will be computed (The values include both the velocity of incident waves and the velocity of current.)" (m/s)
typedef     ^                 ^                 SiKi                 WaveVel2S         {:}{:}{:}{:}{:} -       -  "Instantaneous 2nd-order sum        frequency correction for the velocity         of incident waves in the xi- (1), yi- (2), and zi- (3) directions, respectively, at each of the NWaveKinGrid points where the incident wave kinematics will be computed (The values include both the velocity of incident waves and the velocity of current.)" (m/s)


