/home/runner/work/amr-wind/amr-wind/amr-wind/physics/TerrainDrag.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/physics/TerrainDrag.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
TerrainDrag.H
Go to the documentation of this file.
1#ifndef TerrainDrag_H
2#define TerrainDrag_H
3
6#include "amr-wind/CFDSim.H"
7
8namespace amr_wind::terraindrag {
9
14class TerrainDrag : public Physics::Register<TerrainDrag>
15{
16public:
17 static std::string identifier() { return "TerrainDrag"; }
18
19 explicit TerrainDrag(CFDSim& sim);
20
21 ~TerrainDrag() override = default;
22
23 void initialize_fields(int level, const amrex::Geometry& geom) override;
24
25 void pre_init_actions() override {}
26
27 void post_init_actions() override;
28
29 void post_regrid_actions() override;
30
31 void pre_advance_work() override;
32
33 void post_advance_work() override {}
34
36
38
39 std::string wave_velocity_field_name() const
40 {
42 }
43
44 std::string wave_negative_elevation_name() const
45 {
47 }
48
49private:
52 const amrex::AmrCore& m_mesh;
53
58
60 std::string m_terrain_file{"terrain.amrwind"};
61
63 std::string m_roughness_file{"terrain.roughness"};
64
68
70 bool m_terrain_is_waves{false};
73 const std::string m_wave_volume_fraction_name{"ow_vof"};
74 const std::string m_wave_negative_elevation_name{"ow_levelset"};
75 const std::string m_wave_velocity_name{"ow_velocity"};
76};
77} // namespace amr_wind::terraindrag
78
79#endif
Definition CFDSim.H:54
Definition Field.H:116
Definition FieldRepo.H:86
Definition IntField.H:20
Definition TerrainDrag.H:15
Field & m_terrainz0
Roughness fields.
Definition TerrainDrag.H:66
bool m_terrain_is_waves
Terrain Drag for waves.
Definition TerrainDrag.H:70
std::string wave_velocity_field_name() const
Definition TerrainDrag.H:39
std::string m_terrain_file
Terrain file.
Definition TerrainDrag.H:60
void post_regrid_actions() override
Definition TerrainDrag.cpp:173
Field & m_terrain_height
Definition TerrainDrag.H:67
static std::string identifier()
Definition TerrainDrag.H:17
void convert_waves_to_terrain_fields()
Terrain Drag for waves.
Definition TerrainDrag.cpp:185
IntField & m_terrain_drag
Terrain drag force term.
Definition TerrainDrag.H:57
IntField & m_terrain_blank
Blanking field for terrain or buildings.
Definition TerrainDrag.H:55
Field * m_wave_volume_fraction
Definition TerrainDrag.H:71
const std::string m_wave_velocity_name
Definition TerrainDrag.H:75
const amrex::AmrCore & m_mesh
Definition TerrainDrag.H:52
void pre_init_actions() override
Definition TerrainDrag.H:25
const std::string m_wave_volume_fraction_name
Definition TerrainDrag.H:73
const std::string m_wave_negative_elevation_name
Definition TerrainDrag.H:74
void pre_advance_work() override
Definition TerrainDrag.cpp:164
std::string wave_negative_elevation_name() const
Definition TerrainDrag.H:44
Field * m_wave_negative_elevation
Definition TerrainDrag.H:72
void post_advance_work() override
Definition TerrainDrag.H:33
const FieldRepo & m_repo
Definition TerrainDrag.H:51
TerrainDrag(CFDSim &sim)
Definition TerrainDrag.cpp:16
void initialize_fields(int level, const amrex::Geometry &geom) override
Definition TerrainDrag.cpp:50
void post_init_actions() override
Definition TerrainDrag.cpp:155
CFDSim & m_sim
Definition TerrainDrag.H:50
std::string m_roughness_file
Roughness file.
Definition TerrainDrag.H:63
Definition TerrainDrag.cpp:12