Skip to content

Commit 38377d6

Browse files
committed
Remove old free surface meshing code
1 parent fd9f163 commit 38377d6

5 files changed

Lines changed: 0 additions & 124 deletions

File tree

demos/sphere/demo_sphere_irreg_waves.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -126,34 +126,6 @@ int main(int argc, char* argv[]) {
126126
TestHydro hydro_forces(bodies, h5fname);
127127
hydro_forces.AddWaves(my_hydro_inputs);
128128

129-
// set up free surface from a mesh
130-
auto fse_plane = chrono_types::make_shared<ChBody>();
131-
fse_plane->SetPos(ChVector3d(0, 0, 0));
132-
fse_plane->SetFixed(true);
133-
fse_plane->EnableCollision(false);
134-
system.AddBody(fse_plane);
135-
136-
my_hydro_inputs->SetUpWaveMesh();
137-
std::shared_ptr<ChBody> fse_mesh = chrono_types::make_shared<ChBodyEasyMesh>( //
138-
my_hydro_inputs->GetMeshFile(), // file name
139-
1000, // density
140-
false, // do not evaluate mass automatically
141-
true, // create visualization asset
142-
false // do not collide
143-
);
144-
fse_mesh->SetMass(1.0);
145-
fse_mesh->SetPosDt(my_hydro_inputs->GetWaveMeshVelocity());
146-
system.Add(fse_mesh);
147-
auto fse_prismatic = chrono_types::make_shared<ChLinkLockPrismatic>();
148-
fse_prismatic->Initialize(fse_plane, fse_mesh, ChFramed(ChVector3d(1.0, 0.0, 0.0), QuatFromAngleY(CH_PI_2)));
149-
system.AddLink(fse_prismatic);
150-
151-
// Create a visualization material
152-
auto fse_texture = chrono_types::make_shared<ChVisualMaterial>();
153-
fse_texture->SetDiffuseColor(ChColor(0.026f, 0.084f, 0.168f));
154-
fse_texture->SetOpacity(0.1f);
155-
fse_mesh->GetVisualShape(0)->SetMaterial(0, fse_texture);
156-
157129
// for profiling
158130
auto start = std::chrono::high_resolution_clock::now();
159131
// main simulation loop

include/hydroc/waves/irregular_wave.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,6 @@ class IrregularWaves : public WaveBase {
4444
WaveMode GetWaveMode() override { return mode_; }
4545

4646
Eigen::VectorXd SetSpectrumFrequencies(double start, double end, int num_steps);
47-
void SetUpWaveMesh(std::string filename = "fse_mesh.obj");
48-
std::string GetMeshFile();
49-
Eigen::Vector3<double> GetWaveMeshVelocity();
5047

5148
void AddH5Data(std::vector<HydroData::IrregularWaveInfo>& irreg_h5_data, HydroData::SimulationParameters& sim_data);
5249

@@ -73,7 +70,6 @@ class IrregularWaves : public WaveBase {
7370
Eigen::VectorXd spectral_widths_;
7471
Eigen::VectorXd wavenumbers_;
7572
Eigen::VectorXd wave_phases_;
76-
std::string mesh_file_name_;
7773

7874
void InitializeIRFVectors();
7975
void ReadEtaFromFile();

src/hydro/waves/irregular_wave.cpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -226,28 +226,6 @@ Eigen::VectorXd IrregularWaves::SetSpectrumFrequencies(double start, double end,
226226
return result;
227227
}
228228

229-
void IrregularWaves::SetUpWaveMesh(std::string filename) {
230-
mesh_file_name_ = filename;
231-
int num_timesteps = static_cast<int>(std::ceil(params_.simulation_duration_ / params_.simulation_dt_));
232-
Eigen::VectorXd time_index = Eigen::VectorXd::LinSpaced(num_timesteps + 1, 0, num_timesteps * params_.simulation_dt_);
233-
Eigen::VectorXd eta_vec = Eigen::Map<const Eigen::VectorXd>(free_surface_elevation_sampled_.data(),
234-
static_cast<Eigen::Index>(free_surface_elevation_sampled_.size()));
235-
236-
std::vector<std::array<double, 3>> free_surface_3d_pts = CreateFreeSurface3DPts(eta_vec, time_index);
237-
std::vector<std::array<size_t, 3>> free_surface_triangles =
238-
CreateFreeSurfaceTriangles(static_cast<size_t>(time_index.size()));
239-
240-
WriteFreeSurfaceMeshObj(free_surface_3d_pts, free_surface_triangles, mesh_file_name_);
241-
}
242-
243-
std::string IrregularWaves::GetMeshFile() {
244-
return mesh_file_name_;
245-
}
246-
247-
Eigen::Vector3<double> IrregularWaves::GetWaveMeshVelocity() {
248-
return Eigen::Vector3d(1.0, 0, 0);
249-
}
250-
251229
void IrregularWaves::CreateSpectrum() {
252230
int nf;
253231
if (params_.nfrequencies_ == 0) {

src/hydro/waves/wave_utilities.cpp

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -353,67 +353,6 @@ Eigen::VectorXd JONSWAPSpectrumHz(Eigen::VectorXd& f,
353353
return spectral_densities;
354354
}
355355

356-
std::vector<std::array<double, 3>> CreateFreeSurface3DPts(const Eigen::VectorXd& eta,
357-
const Eigen::VectorXd& t_vec) {
358-
std::vector<std::array<double, 3>> surface(t_vec.size() * 2);
359-
360-
for (int i = 0; i < t_vec.size(); ++i) {
361-
double t = -1 * t_vec[i];
362-
double z = eta[i];
363-
364-
surface[2 * i] = {t, -10.0, z};
365-
surface[2 * i + 1] = {t, 10.0, z};
366-
}
367-
368-
return surface;
369-
}
370-
371-
std::vector<std::array<size_t, 3>> CreateFreeSurfaceTriangles(size_t eta_size) {
372-
std::vector<std::array<size_t, 3>> triangles;
373-
374-
for (size_t i = 0; i < eta_size / 2 - 1; ++i) {
375-
triangles.push_back({2 * i, 2 * i + 1, 2 * i + 3});
376-
triangles.push_back({2 * i, 2 * i + 3, 2 * i + 2});
377-
}
378-
379-
return triangles;
380-
}
381-
382-
void WriteFreeSurfaceMeshObj(const std::vector<std::array<double, 3>>& points,
383-
const std::vector<std::array<size_t, 3>>& triangles,
384-
const std::string& file_name) {
385-
std::ofstream out(file_name);
386-
if (!out) {
387-
std::cerr << "Failed to open " << file_name << std::endl;
388-
return;
389-
}
390-
391-
auto t = std::time(nullptr);
392-
auto tm = *std::localtime(&t);
393-
out << "# Wavefront OBJ file exported by HydroChrono" << std::endl;
394-
out << "# File Created: " << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << std::endl << std::endl;
395-
396-
out << "# Vertices: " << points.size() << std::endl << std::endl;
397-
out << std::fixed << std::setprecision(6);
398-
for (const auto& point : points) {
399-
out << "v ";
400-
out << std::setw(14) << point[0] << ' ';
401-
out << std::setw(14) << point[1] << ' ';
402-
out << std::setw(14) << point[2] << std::endl;
403-
}
404-
out << std::endl;
405-
406-
out << "# Faces: " << triangles.size() << std::endl << std::endl;
407-
for (const auto& triangle : triangles) {
408-
out << "f ";
409-
out << std::setw(9) << triangle[0] + 1;
410-
out << std::setw(9) << triangle[1] + 1;
411-
out << std::setw(9) << triangle[2] + 1 << std::endl;
412-
}
413-
414-
out.close();
415-
}
416-
417356
Eigen::VectorXd GetWidthArray(const Eigen::VectorXd& input_array) {
418357
Eigen::VectorXd width_array(input_array.size());
419358
for (int ii = 0; ii < width_array.size(); ii++) {

src/hydro/waves/wave_utilities.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,6 @@ Eigen::VectorXd JONSWAPSpectrumHz(Eigen::VectorXd& f,
149149
double gamma = 3.3,
150150
bool is_normalized = false);
151151

152-
std::vector<std::array<double, 3>> CreateFreeSurface3DPts(const Eigen::VectorXd& eta,
153-
const Eigen::VectorXd& t_vec);
154-
155-
std::vector<std::array<size_t, 3>> CreateFreeSurfaceTriangles(size_t eta_size);
156-
157-
void WriteFreeSurfaceMeshObj(const std::vector<std::array<double, 3>>& points,
158-
const std::vector<std::array<size_t, 3>>& triangles,
159-
const std::string& file_name);
160-
161152
Eigen::VectorXd GetWidthArray(const Eigen::VectorXd& input_array);
162153

163154
#endif // HYDRO_WAVES_WAVE_UTILITIES_H

0 commit comments

Comments
 (0)