/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
7namespace amr_wind::wave_energy {
8
29class WaveEnergy : public PostProcessBase::Register<WaveEnergy>
30{
31public:
32 static std::string identifier() { return "WaveEnergy"; }
33
34 WaveEnergy(CFDSim& /*sim*/, std::string /*label*/);
35
36 ~WaveEnergy() override;
37
39 void pre_init_actions() override {}
40
42 void initialize() override;
43
44 void post_advance_work() override {};
45
47 void output_actions() override;
48
49 void post_regrid_actions() override {}
50
52 amrex::Real calculate_kinetic_energy();
53 amrex::Real calculate_potential_energy();
54
56 void wave_energy(amrex::Real& ke, amrex::Real& pe) const
57 {
60 };
61
62private:
64 virtual void prepare_ascii_file();
65
67 virtual void write_ascii();
68
70 amrex::Real m_wave_kinetic_energy{0.0};
71 amrex::Real m_wave_potential_energy{0.0};
72
75
81 const std::string m_label;
82
86 const Field& m_vof;
87
89 amrex::Vector<amrex::Real> m_gravity{0.0, 0.0, -9.81};
90
92 amrex::Real m_pe_off = 0.0;
94 amrex::Real m_escl = 1.0;
95
97 std::string m_out_fname;
98
100 int m_width{22};
101
103 int m_precision{12};
104};
105
106} // namespace amr_wind::wave_energy
107
108#endif /* WAVEENERGY_H */
Definition CFDSim.H:54
Definition Field.H:116
std::string m_out_fname
filename for ASCII output
Definition WaveEnergy.H:97
const std::string m_label
Definition WaveEnergy.H:81
amrex::Real m_escl
volumetric scaling for each energy
Definition WaveEnergy.H:94
int m_width
width in ASCII output
Definition WaveEnergy.H:100
amrex::Real m_wave_kinetic_energy
store the total wave energy
Definition WaveEnergy.H:70
virtual void prepare_ascii_file()
prepare ASCII file and directory
Definition WaveEnergy.cpp:177
void initialize() override
Read user inputs and get information needed for calculations.
Definition WaveEnergy.cpp:21
amrex::Real m_pe_off
offset for potential energy calculation
Definition WaveEnergy.H:92
void wave_energy(amrex::Real &ke, amrex::Real &pe) const
Output private variables that store energy measurements.
Definition WaveEnergy.H:56
void post_advance_work() override
Definition WaveEnergy.H:44
CFDSim & m_sim
Reference to the CFD sim.
Definition WaveEnergy.H:74
const Field & m_vof
reference to vof
Definition WaveEnergy.H:86
void post_regrid_actions() override
Definition WaveEnergy.H:49
amrex::Vector< amrex::Real > m_gravity
gravity vector
Definition WaveEnergy.H:89
const Field & m_velocity
reference to velocity
Definition WaveEnergy.H:84
static std::string identifier()
Definition WaveEnergy.H:32
amrex::Real calculate_kinetic_energy()
Calculate the sum of stated energy in liquid phase.
Definition WaveEnergy.cpp:47
WaveEnergy(CFDSim &, std::string)
Definition WaveEnergy.cpp:12
void pre_init_actions() override
Perform actions before mesh is created.
Definition WaveEnergy.H:39
void output_actions() override
Integrate energy components and output to file.
Definition WaveEnergy.cpp:167
virtual void write_ascii()
Output sampled data in ASCII format.
Definition WaveEnergy.cpp:194
amrex::Real calculate_potential_energy()
Definition WaveEnergy.cpp:103
int m_precision
precision in ASCII output
Definition WaveEnergy.H:103
amrex::Real m_wave_potential_energy
Definition WaveEnergy.H:71
Definition WaveEnergy.cpp:10