/home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABLModulatedPowerLaw.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABLModulatedPowerLaw.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ABLModulatedPowerLaw.H
Go to the documentation of this file.
1#ifndef ABLMODULATEDPOWERLAW_H
2#define ABLMODULATEDPOWERLAW_H
3
5#include "amr-wind/CFDSim.H"
6#include "AMReX_Gpu.H"
9#include "AMReX_REAL.H"
10
11using namespace amrex::literals;
12
13namespace amr_wind {
14
22{
23
24public:
25 explicit ABLModulatedPowerLaw(CFDSim& /*sim*/);
26
28 void post_init_actions();
29
30 void pre_advance_work();
31
32 void post_advance_work();
33
34 void set_velocity(
35 const int lev,
36 const amrex::Real time,
37 const Field& fld,
38 amrex::MultiFab& mfab,
39 const int dcomp = 0,
40 const int orig_comp = 0) const;
41
42 void set_temperature(
43 const int lev,
44 const amrex::Real time,
45 const Field& fld,
46 amrex::MultiFab& mfab) const;
47
48 bool is_active() const { return m_activate_mpl; }
49
50private:
51 const CFDSim& m_sim;
54 const amrex::AmrCore& m_mesh;
57
58 amrex::Real m_zoffset{0.0_rt};
59 amrex::Real m_zref{90};
60 amrex::Real m_shear_exp{0.1_rt};
61 amrex::Real m_umax_factor{1.2_rt};
62 amrex::Real m_bulk_velocity{15.0_rt};
63 amrex::Real m_shearlayer_height{600.0_rt};
64 amrex::Real m_shearlayer_smear_thickness{30.0_rt};
65 amrex::Real m_wind_speed{8.0_rt};
66 amrex::Real m_wind_direction{270.0_rt};
67 amrex::Vector<amrex::Real> m_uvec{8.0_rt, 0.0_rt, 0.0_rt};
68
69 amrex::Real m_start_time{0.0_rt};
70 amrex::Real m_stop_time{std::numeric_limits<amrex::Real>::max()};
71 amrex::Real m_degrees_per_sec{0.02_rt};
72
76 amrex::Vector<amrex::Real> m_theta_heights;
77 amrex::Vector<amrex::Real> m_theta_values;
79
80 // Device copies of the above arrays
81 amrex::Gpu::DeviceVector<amrex::Real> m_thht_d;
82 amrex::Gpu::DeviceVector<amrex::Real> m_thvv_d;
83
84 amrex::Real m_delta_t{0.8_rt};
85 amrex::Real m_theta_cutoff_height{250.0_rt};
86 amrex::Real m_theta_gauss_mean{0.0_rt};
87 amrex::Real m_theta_gauss_var{1.0_rt};
88
89 bool m_activate_mpl{false};
90};
91
92} // namespace amr_wind
93
94#endif /* ABLMODULATEDPOWERLAW_H */
amrex::Real m_stop_time
Definition ABLModulatedPowerLaw.H:70
amrex::Real m_bulk_velocity
Definition ABLModulatedPowerLaw.H:62
amrex::Real m_zoffset
Definition ABLModulatedPowerLaw.H:58
amrex::Real m_theta_cutoff_height
Definition ABLModulatedPowerLaw.H:85
amrex::Real m_degrees_per_sec
Definition ABLModulatedPowerLaw.H:71
amrex::Real m_zref
Definition ABLModulatedPowerLaw.H:59
const amrex::AmrCore & m_mesh
Definition ABLModulatedPowerLaw.H:54
void set_velocity(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab, const int dcomp=0, const int orig_comp=0) const
Definition ABLModulatedPowerLaw.cpp:113
bool is_active() const
Definition ABLModulatedPowerLaw.H:48
ABLModulatedPowerLaw(CFDSim &)
Definition ABLModulatedPowerLaw.cpp:18
void pre_advance_work()
Definition ABLModulatedPowerLaw.cpp:81
amrex::Vector< amrex::Real > m_uvec
Definition ABLModulatedPowerLaw.H:67
amrex::Real m_shear_exp
Definition ABLModulatedPowerLaw.H:60
amrex::Gpu::DeviceVector< amrex::Real > m_thht_d
Definition ABLModulatedPowerLaw.H:81
const FieldRepo & m_repo
Definition ABLModulatedPowerLaw.H:53
amrex::Real m_start_time
Definition ABLModulatedPowerLaw.H:69
void set_temperature(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition ABLModulatedPowerLaw.cpp:221
const amr_wind::SimTime & m_time
Definition ABLModulatedPowerLaw.H:52
amrex::Vector< amrex::Real > m_theta_values
Definition ABLModulatedPowerLaw.H:77
const CFDSim & m_sim
Definition ABLModulatedPowerLaw.H:51
amrex::Real m_theta_gauss_mean
Definition ABLModulatedPowerLaw.H:86
void post_advance_work()
Definition ABLModulatedPowerLaw.cpp:111
amrex::Real m_theta_gauss_var
Definition ABLModulatedPowerLaw.H:87
amrex::Real m_shearlayer_height
Definition ABLModulatedPowerLaw.H:63
void post_init_actions()
Execute initialization actions after mesh has been fully generated.
Definition ABLModulatedPowerLaw.cpp:73
Field & m_temperature
Definition ABLModulatedPowerLaw.H:56
amrex::Gpu::DeviceVector< amrex::Real > m_thvv_d
Definition ABLModulatedPowerLaw.H:82
amrex::Real m_wind_speed
Definition ABLModulatedPowerLaw.H:65
amrex::Vector< amrex::Real > m_theta_heights
Definition ABLModulatedPowerLaw.H:76
Field & m_velocity
Definition ABLModulatedPowerLaw.H:55
amrex::Real m_wind_direction
Definition ABLModulatedPowerLaw.H:66
amrex::Real m_delta_t
Definition ABLModulatedPowerLaw.H:84
bool m_activate_mpl
Definition ABLModulatedPowerLaw.H:89
amrex::Real m_shearlayer_smear_thickness
Definition ABLModulatedPowerLaw.H:64
amrex::Real m_umax_factor
Definition ABLModulatedPowerLaw.H:61
Definition CFDSim.H:54
Definition Field.H:116
Definition FieldRepo.H:86
Definition SimTime.H:33
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10