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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/utilities/DerivedQtyDefs.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
DerivedQtyDefs.H
Go to the documentation of this file.
1#ifndef DERIVEDQTYDEFS_H
2#define DERIVEDQTYDEFS_H
3
5
6namespace amr_wind::derived {
7struct VorticityMag : public DerivedQty::Register<VorticityMag>
8{
9 static constexpr int ncomp = 1;
10 static std::string identifier() { return "mag_vorticity"; }
11
12 VorticityMag(const FieldRepo& repo, const std::vector<std::string>& args);
13
14 [[nodiscard]] std::string name() const override { return identifier(); }
15
16 [[nodiscard]] int num_comp() const override { return ncomp; }
17
18 void operator()(ScratchField& fld, int scomp = 0) const override;
19
20private:
21 const Field& m_vel;
22};
23
24struct QCriterion : public DerivedQty::Register<QCriterion>
25{
26 static constexpr int ncomp = 1;
27 static std::string identifier() { return "q_criterion"; }
28
29 QCriterion(const FieldRepo& repo, const std::vector<std::string>& args);
30
31 [[nodiscard]] std::string name() const override { return identifier(); }
32
33 [[nodiscard]] int num_comp() const override { return ncomp; }
34
35 void operator()(ScratchField& fld, int scomp = 0) const override;
36
37private:
38 const Field& m_vel;
39};
40
41struct QCriterionNondim : public DerivedQty::Register<QCriterionNondim>
42{
43 static constexpr int ncomp = 1;
44 static std::string identifier() { return "q_criterion_nondim"; }
45
47 const FieldRepo& repo, const std::vector<std::string>& args);
48
49 [[nodiscard]] std::string name() const override { return identifier(); }
50
51 [[nodiscard]] int num_comp() const override { return ncomp; }
52
53 void operator()(ScratchField& fld, int scomp = 0) const override;
54
55private:
56 const Field& m_vel;
57};
58
59struct StrainRateMag : public DerivedQty::Register<StrainRateMag>
60{
61 static constexpr int ncomp = 1;
62 static std::string identifier() { return "mag_strainrate"; }
63
64 StrainRateMag(const FieldRepo& repo, const std::vector<std::string>& args);
65
66 [[nodiscard]] std::string name() const override { return identifier(); }
67
68 [[nodiscard]] int num_comp() const override { return ncomp; }
69
70 void operator()(ScratchField& fld, int scomp = 0) const override;
71
72private:
73 const Field& m_vel;
74};
75
76struct Gradient : public DerivedQty::Register<Gradient>
77{
78 static std::string identifier() { return "grad"; }
79
80 Gradient(const FieldRepo& repo, const std::vector<std::string>& args);
81
82 [[nodiscard]] std::string name() const override
83 {
84 return "grad_" + m_phi->name();
85 }
86
87 [[nodiscard]] int num_comp() const override
88 {
89 return AMREX_SPACEDIM * m_phi->num_comp();
90 }
91
92 void operator()(ScratchField& fld, int scomp = 0) const override;
93
94private:
95 const Field* m_phi;
96};
97
98struct Divergence : public DerivedQty::Register<Divergence>
99{
100 static std::string identifier() { return "div"; }
101
102 Divergence(const FieldRepo& repo, const std::vector<std::string>& args);
103
104 [[nodiscard]] std::string name() const override
105 {
106 return "div_" + m_phi->name();
107 }
108
109 [[nodiscard]] int num_comp() const override { return 1; }
110
111 void operator()(ScratchField& fld, int scomp = 0) const override;
112
113private:
114 const Field* m_phi;
115};
116
117struct Laplacian : public DerivedQty::Register<Laplacian>
118{
119 static constexpr int ncomp = 1;
120 static std::string identifier() { return "laplacian"; }
121
122 Laplacian(const FieldRepo& repo, const std::vector<std::string>& args);
123
124 [[nodiscard]] std::string name() const override
125 {
126 return "laplacian_" + m_phi->name();
127 }
128
129 [[nodiscard]] int num_comp() const override { return ncomp; }
130
131 void operator()(ScratchField& fld, int scomp = 0) const override;
132
133private:
134 const Field* m_phi;
135};
136
137struct FieldComponents : public DerivedQty::Register<FieldComponents>
138{
139 static std::string identifier() { return "components"; }
140
142 const FieldRepo& repo, const std::vector<std::string>& args);
143
144 [[nodiscard]] std::string name() const override { return m_fld->name(); }
145
146 [[nodiscard]] int num_comp() const override { return m_ncomp; }
147
148 void var_names(amrex::Vector<std::string>& plt_var_names) override;
149
150 void operator()(ScratchField& fld, int scomp = 0) const override;
151
152private:
153 const Field* m_fld;
154 amrex::Vector<int> m_comp;
155 int m_ncomp{0};
156};
157
158} // namespace amr_wind::derived
159
160#endif /* DERIVEDQTYDEFS_H */
Definition Field.H:112
Definition FieldRepo.H:86
Definition ScratchField.H:30
Definition DerivedQtyDefs.cpp:6
std::string name() const override
Definition DerivedQtyDefs.H:104
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:90
static std::string identifier()
Definition DerivedQtyDefs.H:100
Divergence(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:82
int num_comp() const override
Definition DerivedQtyDefs.H:109
const Field * m_phi
Definition DerivedQtyDefs.H:114
int num_comp() const override
Definition DerivedQtyDefs.H:146
const Field * m_fld
Definition DerivedQtyDefs.H:153
std::string name() const override
Definition DerivedQtyDefs.H:144
void var_names(amrex::Vector< std::string > &plt_var_names) override
Definition DerivedQtyDefs.cpp:131
int m_ncomp
Definition DerivedQtyDefs.H:155
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:140
static std::string identifier()
Definition DerivedQtyDefs.H:139
amrex::Vector< int > m_comp
Definition DerivedQtyDefs.H:154
FieldComponents(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:114
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:74
const Field * m_phi
Definition DerivedQtyDefs.H:95
int num_comp() const override
Definition DerivedQtyDefs.H:87
static std::string identifier()
Definition DerivedQtyDefs.H:78
Gradient(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:68
std::string name() const override
Definition DerivedQtyDefs.H:82
static std::string identifier()
Definition DerivedQtyDefs.H:120
std::string name() const override
Definition DerivedQtyDefs.H:124
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:106
const Field * m_phi
Definition DerivedQtyDefs.H:134
Laplacian(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:98
int num_comp() const override
Definition DerivedQtyDefs.H:129
static constexpr int ncomp
Definition DerivedQtyDefs.H:119
std::string name() const override
Definition DerivedQtyDefs.H:31
int num_comp() const override
Definition DerivedQtyDefs.H:33
static constexpr int ncomp
Definition DerivedQtyDefs.H:26
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:30
QCriterion(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:23
static std::string identifier()
Definition DerivedQtyDefs.H:27
const Field & m_vel
Definition DerivedQtyDefs.H:38
static std::string identifier()
Definition DerivedQtyDefs.H:44
static constexpr int ncomp
Definition DerivedQtyDefs.H:43
int num_comp() const override
Definition DerivedQtyDefs.H:51
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:45
const Field & m_vel
Definition DerivedQtyDefs.H:56
QCriterionNondim(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:38
std::string name() const override
Definition DerivedQtyDefs.H:49
std::string name() const override
Definition DerivedQtyDefs.H:66
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:60
static std::string identifier()
Definition DerivedQtyDefs.H:62
static constexpr int ncomp
Definition DerivedQtyDefs.H:61
int num_comp() const override
Definition DerivedQtyDefs.H:68
StrainRateMag(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:53
const Field & m_vel
Definition DerivedQtyDefs.H:73
std::string name() const override
Definition DerivedQtyDefs.H:14
static constexpr int ncomp
Definition DerivedQtyDefs.H:9
VorticityMag(const FieldRepo &repo, const std::vector< std::string > &args)
Definition DerivedQtyDefs.cpp:8
static std::string identifier()
Definition DerivedQtyDefs.H:10
const Field & m_vel
Definition DerivedQtyDefs.H:21
void operator()(ScratchField &fld, int scomp=0) const override
Definition DerivedQtyDefs.cpp:15
int num_comp() const override
Definition DerivedQtyDefs.H:16