def test_reflection(self):
     dataW = readProbeFile('column_gauges.csv')
     time = dataW[2]
     L = nlw.opts.wave_wavelength
     Nwaves = (nlw.opts.tank_dim[0] + nlw.opts.tank_sponge[0] +
               nlw.opts.tank_sponge[1]) / L
     T = nlw.opts.wave_period
     Tend = time[-1]
     Tstart = Tend - Nwaves * T
     i_mid = len(dataW[3][0]) / 2 - 1
     time_int = np.linspace(time[0], Tend, len(time))
     data1 = np.zeros((len(time), len(dataW[3][0])), "d")
     bf = 1.2
     minf = 1. / bf / T
     maxf = bf / T
     dx_array = nlw.opts.gauge_dx
     Narray = int(round(L / 6 / dx_array))
     data = np.zeros((len(data1), 3))
     zc = []
     for ii in range(0, 3):
         data1[:, i_mid + ii * Narray] = np.interp(
             time_int, time, dataW[3][:, i_mid + ii * Narray])
         data[:, ii] = signalFilter(time, data1[:, i_mid + ii * Narray],
                                    minf, maxf, 1.1 * maxf, 0.9 * minf)
         zc.append(zeroCrossing(time, data[:, ii]))
     H1 = zc[0][1]
     H2 = zc[1][1]
     H3 = zc[2][1]
     HH = reflStat(H1, H2, H3, Narray * dx_array, L)[0]
     RR = reflStat(H1, H2, H3, Narray * dx_array, L)[2]
     assert (RR < 0.3)
Example #2
0
    def test_validate(self):
        file_vof = 'line_integral_gauges_1.csv'

        def readProbeFile(filename):
            with open(filename, 'rb') as csvfile:
                data = np.loadtxt(csvfile, delimiter=",", skiprows=1)
                time = data[:, 0]
                data = data[:, 1:]
                csvfile.seek(0)
                header = csvfile.readline()
                header = header.replace("time", "")
                header = header.replace("[", "")
                header = header.replace("]", "")
                header = header.replace(",", " ")
                header = header.split()
                probeType = []
                probex = []
                probey = []
                probez = []
                for ii in range(0, len(header), 4):
                    probeType.append(header[ii])
                    probex.append(float(header[ii + 1]))
                    probey.append(float(header[ii + 2]))
                    probez.append(float(header[ii + 3]))
                probeCoord = zip(np.array(probex), np.array(probey),
                                 np.array(probez))
                datalist = [probeType, probeCoord, time, data]
                return datalist

        # Exctracting probes
        data_vof = readProbeFile(file_vof)
        time = data_vof[2]
        vof = data_vof[3]
        ETA = []
        tank_dim = sbw.tank_dim  #[13.7815, 0.75]
        waterLevel = sbw.waterLevel  #0.315
        for j in range(len(data_vof[1]) / 2):
            eta = []
            for i in range(len(vof)):
                eta.append(tank_dim[1] - vof[:, j][i] - waterLevel)
            ETA.append(eta)
        ETA = np.array(ETA)
        zc = []
        for i in range(len(ETA)):
            zc.append(zeroCrossing(time, ETA[i]))
        zc = np.array(zc)
        K = np.mean(zc[2:][:, 1]) / sbw.opts.wave_height
        Kref = 0.5
        err = 100 * abs(K - Kref) / Kref
        assert (err < 16.)
Example #3
0
    # Reflection
    dataW = readProbeFile('column_gauges.csv')
    time = dataW[2]
    L = wavelength[ifo]
    Nwaves = 10.
    T = period[ifo]
    Tend = time[-1]
    Tstart = Tend - Nwaves * T
    i_mid = len(dataW[3][0]) / 2 - 1
    time_int = np.linspace(time[0], Tend, len(time))
    data1 = np.zeros((len(time), len(dataW[3][0])), "d")
    dx_array = 0.25
    Narray = int(round(L / 6. / dx_array))
    data = np.zeros((len(data1), 3))
    zc = []
    minf = 0.8 / period[ifo]
    maxf = 1.2 / period[ifo]
    for ii in range(0, 3):
        data1[:, i_mid + ii * Narray] = np.interp(
            time_int, time, dataW[3][:, i_mid + ii * Narray])
        data[:, ii] = signalFilter(time, data1[:, i_mid + ii * Narray], minf,
                                   maxf, 1.1 * maxf, 0.9 * minf)
        zc.append(zeroCrossing(time, data[:, ii]))
    H1 = zc[0][1]
    H2 = zc[1][1]
    H3 = zc[2][1]
    HH = reflStat(H1, H2, H3, Narray * dx_array, L)[0]
    RR = reflStat(H1, H2, H3, Narray * dx_array, L)[2]
    print "RR = ", RR
    os.chdir("../")
Example #4
0
    ETA.append(eta)
ETA = np.array(ETA)

#####################################################################################

# Plotting the probes
fig = plt.figure(figsize=(25, 15))
ax = ['' for x in range(len(data_vof[1]) / 2)]
for i in range(len(data_vof[1]) / 2):
    ax[i] = fig.add_subplot(6, 4, i + 1)
    ax[i].plot(time, ETA[i], 'r')
    ax[i].set_ylim([-0.06, 0.08])
    ax[i].tick_params(labelsize=10)
    ax[i].set_title('Eta [m] against time [sec] at x=' + str(gauge_x[i]),
                    color='b',
                    fontsize=12)
    ax[i].grid()
plt.tight_layout()
plt.savefig('eta.png')
#plt.show()

#####################################################################################

# Transmission coefficient
zc = []
for i in range(len(ETA)):
    zc.append(zeroCrossing(time, ETA[i]))
zc = np.array(zc)
K = np.mean(zc[2:][:, 1]) / sbw.opts.wave_height
print 'Transmission coefficient' + '\t' + '=' + '\t' + str(K)