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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/utilities/FieldPlaneAveragingFine.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
FieldPlaneAveragingFine.H
Go to the documentation of this file.
1#ifndef FieldPlaneAveragingFine_H
2#define FieldPlaneAveragingFine_H
3
5#include "amr-wind/CFDSim.H"
8
18
19namespace amr_wind {
20
28
29template <typename FType>
31{
32public:
41 const FType& field_in,
42 const amr_wind::SimTime& time,
43 int axis_in,
44 bool compute_deriv = false);
45
46 virtual ~FPlaneAveragingFine() = default;
47
48 virtual void operator()();
49
50 void convert_x_to_ind(amrex::Real x, int& ind, amrex::Real& c) const;
51
53 amrex::Real line_average_interpolated(amrex::Real x, int comp) const;
55 amrex::Real line_average_cell(int ind, int comp) const;
56
59 amrex::Real line_derivative_interpolated(amrex::Real x, int comp) const;
62 amrex::Real line_derivative_of_average_cell(int ind, int comp) const;
63
65 const std::string& filename, int step, amrex::Real time);
66 void output_line_average_ascii(int step, amrex::Real time);
67
69 void set_precision(int p) { m_precision = p; };
70
71 amrex::Real dx() const { return m_dx; };
72 amrex::Real xlo() const { return m_xlo; };
73
74 int axis() const { return m_axis; };
75 int ncomp() const { return m_ncomp; };
76 int ncell_line() const { return m_ncell_line; };
78
79 const amrex::Vector<amrex::Real>& line_average() const
80 {
81 return m_line_average;
82 };
83 const amrex::Vector<amrex::Real>& line_deriv() const
84 {
85 return m_line_deriv;
86 };
87 void line_average(int comp, amrex::Vector<amrex::Real>& l_vec);
88 const amrex::Vector<amrex::Real>& line_centroids() const
89 {
90 return m_line_xcentroid;
91 };
92
93 const FType& field() const { return m_field; };
94
95protected:
96 int m_ncomp;
97
98 amrex::Vector<amrex::Real>
102 amrex::Vector<amrex::Real> m_line_deriv;
103
104 amrex::Vector<amrex::Real> m_line_xcentroid;
106
107 amrex::Real m_dx;
108 amrex::Real m_xlo;
109 amrex::Real m_xhi;
110
112
113 int m_precision = 6;
116
117 const FType& m_field;
119 const int m_axis;
120 const bool m_comp_deriv;
121
122public: // public for GPU
124 template <typename IndexSelector>
125 void compute_averages(const IndexSelector& idxOp);
126
129};
130
133
138{
139public:
140 VelPlaneAveragingFine(CFDSim& sim, int axis_in);
141
142 ~VelPlaneAveragingFine() override = default;
143
144 void operator()() override;
145
146private:
147 amrex::Vector<amrex::Real>
150 amrex::Vector<amrex::Real>
153
154 amrex::Vector<amrex::Real>
157
158public: // public for GPU
160 template <typename IndexSelector>
161 void compute_hvelmag_averages(const IndexSelector& idxOp);
162
165 amrex::Real line_hvelmag_average_interpolated(amrex::Real x) const;
168 amrex::Real line_su_average_interpolated(amrex::Real x) const;
171 amrex::Real line_sv_average_interpolated(amrex::Real x) const;
172};
173
174} // namespace amr_wind
175
176#endif /* FieldPlaneAveraging_H */
Definition CFDSim.H:54
Definition FieldPlaneAveragingFine.H:31
amrex::Vector< amrex::Real > m_line_deriv
Definition FieldPlaneAveragingFine.H:102
void compute_line_derivatives()
Definition FieldPlaneAveragingFine.cpp:389
amrex::Real xlo() const
Definition FieldPlaneAveragingFine.H:72
int m_last_updated_index
Definition FieldPlaneAveragingFine.H:114
amrex::Real line_derivative_interpolated(amrex::Real x, int comp) const
Definition FieldPlaneAveragingFine.cpp:431
int ncomp() const
Definition FieldPlaneAveragingFine.H:75
amrex::Vector< amrex::Real > m_line_xcentroid
Definition FieldPlaneAveragingFine.H:104
amrex::Real line_derivative_of_average_cell(int ind, int comp) const
Definition FieldPlaneAveragingFine.cpp:401
int m_precision
Definition FieldPlaneAveragingFine.H:113
int m_ncomp
Definition FieldPlaneAveragingFine.H:96
const int m_axis
Definition FieldPlaneAveragingFine.H:119
const amrex::Vector< amrex::Real > & line_average() const
Definition FieldPlaneAveragingFine.H:79
amrex::Real line_average_interpolated(amrex::Real x, int comp) const
Definition FieldPlaneAveragingFine.cpp:131
amrex::Real m_xhi
Definition FieldPlaneAveragingFine.H:109
int axis() const
Definition FieldPlaneAveragingFine.H:74
amrex::Real line_average_cell(int ind, int comp) const
Definition FieldPlaneAveragingFine.cpp:162
amrex::Real m_xlo
Definition FieldPlaneAveragingFine.H:108
void output_line_average_ascii(int step, amrex::Real time)
Definition FieldPlaneAveragingFine.cpp:123
void convert_x_to_ind(amrex::Real x, int &ind, amrex::Real &c) const
Definition FieldPlaneAveragingFine.cpp:59
const amrex::Vector< amrex::Real > & line_deriv() const
Definition FieldPlaneAveragingFine.H:83
const FType & field() const
Definition FieldPlaneAveragingFine.H:93
void set_precision(int p)
Definition FieldPlaneAveragingFine.H:69
const SimTime & m_time
Definition FieldPlaneAveragingFine.H:118
const amrex::Vector< amrex::Real > & line_centroids() const
Definition FieldPlaneAveragingFine.H:88
virtual ~FPlaneAveragingFine()=default
amrex::Vector< amrex::Real > m_line_average
Definition FieldPlaneAveragingFine.H:99
const bool m_comp_deriv
Definition FieldPlaneAveragingFine.H:120
virtual void operator()()
Definition FieldPlaneAveragingFine.cpp:173
void compute_averages(const IndexSelector &idxOp)
Definition FieldPlaneAveragingFine.cpp:203
int last_updated_index() const
Definition FieldPlaneAveragingFine.H:77
const Field & m_field
Definition FieldPlaneAveragingFine.H:117
void output_line_average_ascii(const std::string &filename, int step, amrex::Real time)
Definition FieldPlaneAveragingFine.cpp:80
amrex::Real m_dx
Definition FieldPlaneAveragingFine.H:107
FPlaneAveragingFine(const FType &field_in, const amr_wind::SimTime &time, int axis_in, bool compute_deriv=false)
Definition FieldPlaneAveragingFine.cpp:10
amrex::Real dx() const
Definition FieldPlaneAveragingFine.H:71
int ncell_line() const
Definition FieldPlaneAveragingFine.H:76
void line_average(int comp, amrex::Vector< amrex::Real > &l_vec)
Definition FieldPlaneAveragingFine.cpp:148
int m_ncell_line
Definition FieldPlaneAveragingFine.H:111
Definition SimTime.H:30
amrex::Vector< amrex::Real > m_line_Sv_average
Definition FieldPlaneAveragingFine.H:155
amrex::Vector< amrex::Real > m_line_Su_average
Definition FieldPlaneAveragingFine.H:151
amrex::Real line_hvelmag_average_interpolated(amrex::Real x) const
Definition FieldPlaneAveragingFine.cpp:656
amrex::Vector< amrex::Real > m_line_hvelmag_average
Definition FieldPlaneAveragingFine.H:148
amrex::Real line_sv_average_interpolated(amrex::Real x) const
Definition FieldPlaneAveragingFine.cpp:677
void compute_hvelmag_averages(const IndexSelector &idxOp)
Definition FieldPlaneAveragingFine.cpp:488
VelPlaneAveragingFine(CFDSim &sim, int axis_in)
Definition FieldPlaneAveragingFine.cpp:449
void operator()() override
Definition FieldPlaneAveragingFine.cpp:458
~VelPlaneAveragingFine() override=default
amrex::Real line_su_average_interpolated(amrex::Real x) const
Definition FieldPlaneAveragingFine.cpp:667
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:7
FPlaneAveragingFine< ScratchField > ScratchFieldPlaneAveragingFine
Definition FieldPlaneAveragingFine.H:132
FPlaneAveragingFine< Field > FieldPlaneAveragingFine
Definition FieldPlaneAveragingFine.H:131