Skip to content

Commit e9237ea

Browse files
committed
Make water depth and g direct wave variable
1 parent fdfae3c commit e9237ea

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

include/hydroc/wave_types.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ class WaveBase {
7272

7373
/// @brief Mean water level
7474
double mwl_ = 0.0;
75+
/// @brief Gravitational acceleration
76+
double g_ = 9.81;
77+
/// @brief Water depth
78+
double water_depth_ = 0.0;
7579
};
7680

7781
/**
@@ -175,7 +179,6 @@ class RegularWave : public WaveBase {
175179
unsigned int num_bodies_;
176180
const WaveMode mode_ = WaveMode::regular;
177181
std::vector<HydroData::RegularWaveInfo> wave_info_;
178-
HydroData::SimulationParameters sim_data_;
179182
Eigen::VectorXd excitation_force_mag_;
180183
Eigen::VectorXd excitation_force_phase_;
181184
Eigen::VectorXd force_;
@@ -374,7 +377,6 @@ class IrregularWaves : public WaveBase {
374377
// unsigned int num_bodies_;
375378
// const WaveMode mode_ = WaveMode::irregular;
376379
std::vector<HydroData::IrregularWaveInfo> wave_info_;
377-
HydroData::SimulationParameters sim_data_;
378380
std::vector<Eigen::MatrixXd> ex_irf_sampled_;
379381
std::vector<Eigen::VectorXd> ex_irf_time_sampled_;
380382
std::vector<Eigen::VectorXd> ex_irf_width_sampled_;

src/wave_types.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -163,18 +163,19 @@ void RegularWave::Initialize() {
163163
}
164164
}
165165

166-
wavenumber_ = ComputeWaveNumber(regular_wave_omega_, sim_data_.water_depth, sim_data_.g);
166+
wavenumber_ = ComputeWaveNumber(regular_wave_omega_, water_depth_, g_);
167167
}
168168

169169
void RegularWave::AddH5Data(std::vector<HydroData::RegularWaveInfo>& reg_h5_data,
170170
HydroData::SimulationParameters& sim_data) {
171-
wave_info_ = reg_h5_data;
172-
sim_data_ = sim_data;
171+
wave_info_ = reg_h5_data;
172+
water_depth_ = sim_data.water_depth;
173+
g_ = sim_data.g;
173174
}
174175

175176
Eigen::Vector3d RegularWave::GetVelocity(const Eigen::Vector3d& position, double time) {
176177
return GetWaterVelocity(position, time, regular_wave_omega_, regular_wave_amplitude_, regular_wave_phase_,
177-
wavenumber_, sim_data_.water_depth, mwl_);
178+
wavenumber_, water_depth_, mwl_);
178179
};
179180

180181
double RegularWave::GetElevation(const Eigen::Vector3d& position, double time) {
@@ -372,8 +373,9 @@ Eigen::MatrixXd IrregularWaves::GetExcitationIRF(int b) const {
372373

373374
void IrregularWaves::AddH5Data(std::vector<HydroData::IrregularWaveInfo>& irreg_h5_data,
374375
HydroData::SimulationParameters& sim_data) {
375-
wave_info_ = irreg_h5_data;
376-
sim_data_ = sim_data;
376+
wave_info_ = irreg_h5_data;
377+
water_depth_ = sim_data.water_depth;
378+
g_ = sim_data.g;
377379

378380
InitializeIRFVectors();
379381
}
@@ -387,11 +389,11 @@ Eigen::Vector3d IrregularWaves::GetVelocity(const Eigen::Vector3d& position, dou
387389
// position relative to mean water level
388390
auto z_pos = position.z() - mwl_;
389391
// Wheeler stretching
390-
position_stretched[2] = sim_data_.water_depth * (z_pos - eta) / (sim_data_.water_depth + eta);
392+
position_stretched[2] = water_depth_ * (z_pos - eta) / (water_depth_ + eta);
391393
}
392394

393395
return GetWaterVelocityIrregular(position_stretched, time, spectrum_frequencies_, spectral_densities_,
394-
spectral_widths_, wave_phases_, wavenumbers_, sim_data_.water_depth, mwl_);
396+
spectral_widths_, wave_phases_, wavenumbers_, water_depth_, mwl_);
395397
};
396398

397399
double IrregularWaves::GetElevation(const Eigen::Vector3d& position, double time) {
@@ -520,7 +522,7 @@ void IrregularWaves::CreateSpectrum() {
520522

521523
// precompute wavenumbers
522524
auto omegas = 2 * M_PI * spectrum_frequencies_;
523-
wavenumbers_ = ComputeWaveNumbers(omegas, sim_data_.water_depth, sim_data_.g);
525+
wavenumbers_ = ComputeWaveNumbers(omegas, water_depth_, g_);
524526

525527
// Open a file stream for writing
526528
std::ofstream outputFile("spectral_densities.txt");

0 commit comments

Comments
 (0)