/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
Loading...
Searching...
No Matches
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
13
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 [[nodiscard]] std::string wave_velocity_field_name() const
40 {
42 }
43
44 [[nodiscard]] 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
69
71 amrex::Real m_damp_east_slope{0.0_rt};
72 amrex::Real m_damp_east_full{0.0_rt};
73 amrex::Real m_horizontal_tau{20.0_rt};
74 amrex::Real m_horizontal_abl_height{1e15_rt};
75 amrex::Real m_horizontal_slope_end{1e30_rt};
76 amrex::Real m_vertical_slope{0.0_rt};
77 amrex::Real m_vertical_full{1e30_rt};
79 amrex::Real m_damp_west_slope{0.0_rt};
80 amrex::Real m_damp_west_full{0.0_rt};
82 amrex::Real m_damp_south_slope{0.0_rt};
83 amrex::Real m_damp_south_full{0.0_rt};
85 amrex::Real m_damp_north_slope{0.0_rt};
86 amrex::Real m_damp_north_full{0.0_rt};
87
89 bool m_terrain_is_waves{false};
92 const std::string m_wave_volume_fraction_name{"ow_vof"};
93 const std::string m_wave_negative_elevation_name{"ow_levelset"};
94 const std::string m_wave_velocity_name{"ow_velocity"};
95};
96} // namespace amr_wind::terraindrag
97
98#endif
Definition CFDSim.H:54
Definition Field.H:112
Definition FieldRepo.H:86
Definition IntField.H:20
amrex::Real m_damp_south_slope
Lateral Damping - (-Y)
Definition TerrainDrag.H:82
Field & m_terrainz0
Roughness fields.
Definition TerrainDrag.H:66
amrex::Real m_damp_north_full
Definition TerrainDrag.H:86
bool m_terrain_is_waves
Terrain Drag for waves.
Definition TerrainDrag.H:89
std::string wave_velocity_field_name() const
Definition TerrainDrag.H:39
std::string m_terrain_file
Terrain file.
Definition TerrainDrag.H:60
amrex::Real m_vertical_slope
Definition TerrainDrag.H:76
void post_regrid_actions() override
Definition TerrainDrag.cpp:306
Field & m_terrain_height
Definition TerrainDrag.H:67
amrex::Real m_horizontal_tau
Definition TerrainDrag.H:73
static std::string identifier()
Definition TerrainDrag.H:17
void convert_waves_to_terrain_fields()
Terrain Drag for waves.
Definition TerrainDrag.cpp:318
amrex::Real m_damp_west_full
Definition TerrainDrag.H:80
IntField & m_terrain_drag
Terrain drag force term.
Definition TerrainDrag.H:57
amrex::Real m_vertical_full
Definition TerrainDrag.H:77
IntField & m_terrain_blank
Blanking field for terrain or buildings.
Definition TerrainDrag.H:55
amrex::Real m_damp_west_slope
Lateral Damping - (-X)
Definition TerrainDrag.H:79
Field * m_wave_volume_fraction
Definition TerrainDrag.H:90
const std::string m_wave_velocity_name
Definition TerrainDrag.H:94
amrex::Real m_damp_south_full
Definition TerrainDrag.H:83
amrex::Real m_damp_east_full
Definition TerrainDrag.H:72
const amrex::AmrCore & m_mesh
Definition TerrainDrag.H:52
void pre_init_actions() override
Definition TerrainDrag.H:25
amrex::Real m_horizontal_abl_height
Definition TerrainDrag.H:74
const std::string m_wave_volume_fraction_name
Definition TerrainDrag.H:92
const std::string m_wave_negative_elevation_name
Definition TerrainDrag.H:93
void pre_advance_work() override
Definition TerrainDrag.cpp:297
amrex::Real m_damp_east_slope
Lateral Damping - X.
Definition TerrainDrag.H:71
std::string wave_negative_elevation_name() const
Definition TerrainDrag.H:44
Field & m_terrain_damping
Definition TerrainDrag.H:68
Field * m_wave_negative_elevation
Definition TerrainDrag.H:91
void post_advance_work() override
Definition TerrainDrag.H:33
const FieldRepo & m_repo
Definition TerrainDrag.H:51
amrex::Real m_damp_north_slope
Lateral Damping - Y.
Definition TerrainDrag.H:85
TerrainDrag(CFDSim &sim)
Definition TerrainDrag.cpp:19
amrex::Real m_horizontal_slope_end
Definition TerrainDrag.H:75
void initialize_fields(int level, const amrex::Geometry &geom) override
Definition TerrainDrag.cpp:71
void post_init_actions() override
Definition TerrainDrag.cpp:288
CFDSim & m_sim
Definition TerrainDrag.H:50
std::string m_roughness_file
Roughness file.
Definition TerrainDrag.H:63
Definition TerrainDrag.cpp:15