/home/runner/work/kynema-sgf/kynema-sgf/src/utilities/output_quantities/FieldNorms.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/utilities/output_quantities/FieldNorms.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
FieldNorms.H
Go to the documentation of this file.
1#ifndef FIELDNORMS_H
2#define FIELDNORMS_H
3
4#include "src/CFDSim.H"
6
8
19
27class FieldNorms : public PostProcessBase::Register<FieldNorms>
28{
29public:
30 static std::string identifier() { return "FieldNorms"; }
31
32 FieldNorms(CFDSim& /*sim*/, std::string /*label*/);
33
34 ~FieldNorms() override;
35
37 void pre_init_actions() override {}
38
40 void initialize() override;
41
42 void post_advance_work() override {};
43
44 void output_actions() override;
45
46 void post_regrid_actions() override {}
47
48 static amrex::Real get_norm(
49 const kynema_sgf::Field& field,
50 int comp,
51 int ncomp,
52 int norm_type,
53 bool use_mask);
54
55 [[nodiscard]] const amrex::Vector<std::string>& var_names() const
56 {
57 return m_var_names;
58 }
59
60 [[nodiscard]] const amrex::Vector<amrex::Real>& field_norms() const
61 {
62 return m_fnorms;
63 }
64
65private:
67 virtual void prepare_ascii_file();
68
70 virtual void write_ascii();
71
74
77
79 amrex::Vector<std::string> m_var_names;
80
82 amrex::Vector<amrex::Real> m_fnorms;
83
89 const std::string m_label;
90
92 std::string m_out_fname;
93
95 int m_width{18};
96
98 int m_precision{10};
99
102
104 bool m_use_mask{true};
105
108};
109
110} // namespace kynema_sgf::field_norms
111
112#endif /* FIELDNORMS_H */
Definition CFDSim.H:55
Definition Field.H:112
void process_field_norms()
process all fields and calculate norms
Definition FieldNorms.cpp:198
FieldNorms(CFDSim &, std::string)
Definition FieldNorms.cpp:15
const std::string m_label
Definition FieldNorms.H:89
void pre_init_actions() override
Perform actions before mesh is created.
Definition FieldNorms.H:37
bool m_use_mask
Mask redundant grids (finest available grid only)
Definition FieldNorms.H:104
int m_width
width in ASCII output
Definition FieldNorms.H:95
void post_regrid_actions() override
Definition FieldNorms.H:46
static std::string identifier()
Definition FieldNorms.H:30
virtual void write_ascii()
Output sampled data in ASCII format.
Definition FieldNorms.cpp:243
bool m_use_vector_magnitude
Consider vector magnitude, not separate vector components.
Definition FieldNorms.H:107
const amrex::Vector< amrex::Real > & field_norms() const
Definition FieldNorms.H:60
static amrex::Real get_norm(const kynema_sgf::Field &field, int comp, int ncomp, int norm_type, bool use_mask)
Definition FieldNorms.cpp:59
amrex::Vector< amrex::Real > m_fnorms
List holding norms for all fields and their components.
Definition FieldNorms.H:82
int m_precision
precision in ASCII output
Definition FieldNorms.H:98
const amrex::Vector< std::string > & var_names() const
Definition FieldNorms.H:55
CFDSim & m_sim
Reference to the CFD sim.
Definition FieldNorms.H:76
std::string m_out_fname
filename for ASCII output
Definition FieldNorms.H:92
void initialize() override
Read user inputs and create the different data probe instances.
Definition FieldNorms.cpp:21
void post_advance_work() override
Definition FieldNorms.H:42
virtual void prepare_ascii_file()
prepare ASCII file and directory
Definition FieldNorms.cpp:222
amrex::Vector< std::string > m_var_names
List of variable names for output.
Definition FieldNorms.H:79
void output_actions() override
Definition FieldNorms.cpp:214
int m_norm_type
Type of norm.
Definition FieldNorms.H:101
Definition FieldNorms.cpp:13