/home/runner/work/amr-wind/amr-wind/amr-wind/utilities/sampling/WaveEnergy.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/utilities/sampling/WaveEnergy.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
WaveEnergy.H
Go to the documentation of this file.
1#ifndef WAVEENERGY_H
2#define WAVEENERGY_H
3
4#include "amr-wind/CFDSim.H"
6#include "AMReX_REAL.H"
7
8using namespace amrex::literals;
9
10namespace amr_wind::wave_energy {
11
32class WaveEnergy : public PostProcessBase::Register<WaveEnergy>
33{
34public:
35 static std::string identifier() { return "WaveEnergy"; }
36
37 WaveEnergy(CFDSim& /*sim*/, std::string /*label*/);
38
39 ~WaveEnergy() override;
40
42 void pre_init_actions() override {}
43
45 void initialize() override;
46
47 void post_advance_work() override {};
48
50 void output_actions() override;
51
52 void post_regrid_actions() override {}
53
55 amrex::Real calculate_kinetic_energy();
56 amrex::Real calculate_potential_energy();
57
59 void wave_energy(amrex::Real& ke, amrex::Real& pe) const
60 {
63 };
64
65private:
67 virtual void prepare_ascii_file();
68
70 virtual void write_ascii();
71
73 amrex::Real m_wave_kinetic_energy{0.0_rt};
74 amrex::Real m_wave_potential_energy{0.0_rt};
75
78
84 const std::string m_label;
85
89 const Field& m_vof;
90
92 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
93
95 amrex::Real m_pe_off = 0.0_rt;
97 amrex::Real m_escl = 1.0_rt;
98
100 std::string m_out_fname;
101
103 int m_width{22};
104
106 int m_precision{12};
107};
108
109} // namespace amr_wind::wave_energy
110
111#endif /* WAVEENERGY_H */
Definition CFDSim.H:54
Definition Field.H:116
std::string m_out_fname
filename for ASCII output
Definition WaveEnergy.H:100
const std::string m_label
Definition WaveEnergy.H:84
amrex::Real m_escl
volumetric scaling for each energy
Definition WaveEnergy.H:97
int m_width
width in ASCII output
Definition WaveEnergy.H:103
amrex::Real m_wave_kinetic_energy
store the total wave energy
Definition WaveEnergy.H:73
virtual void prepare_ascii_file()
prepare ASCII file and directory
Definition WaveEnergy.cpp:181
void initialize() override
Read user inputs and get information needed for calculations.
Definition WaveEnergy.cpp:24
amrex::Real m_pe_off
offset for potential energy calculation
Definition WaveEnergy.H:95
void wave_energy(amrex::Real &ke, amrex::Real &pe) const
Output private variables that store energy measurements.
Definition WaveEnergy.H:59
void post_advance_work() override
Definition WaveEnergy.H:47
CFDSim & m_sim
Reference to the CFD sim.
Definition WaveEnergy.H:77
const Field & m_vof
reference to vof
Definition WaveEnergy.H:89
void post_regrid_actions() override
Definition WaveEnergy.H:52
amrex::Vector< amrex::Real > m_gravity
gravity vector
Definition WaveEnergy.H:92
const Field & m_velocity
reference to velocity
Definition WaveEnergy.H:87
static std::string identifier()
Definition WaveEnergy.H:35
amrex::Real calculate_kinetic_energy()
Calculate the sum of stated energy in liquid phase.
Definition WaveEnergy.cpp:50
WaveEnergy(CFDSim &, std::string)
Definition WaveEnergy.cpp:15
void pre_init_actions() override
Perform actions before mesh is created.
Definition WaveEnergy.H:42
void output_actions() override
Integrate energy components and output to file.
Definition WaveEnergy.cpp:171
virtual void write_ascii()
Output sampled data in ASCII format.
Definition WaveEnergy.cpp:198
amrex::Real calculate_potential_energy()
Definition WaveEnergy.cpp:106
int m_precision
precision in ASCII output
Definition WaveEnergy.H:106
amrex::Real m_wave_potential_energy
Definition WaveEnergy.H:74
Definition WaveEnergy.cpp:13