/home/runner/work/amr-wind/amr-wind/amr-wind/physics/BurggrafFlow.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/physics/BurggrafFlow.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
BurggrafFlow.H
Go to the documentation of this file.
1#ifndef BurggrafFlow_H
2#define BurggrafFlow_H
3
6#include "amr-wind/CFDSim.H"
7#include "AMReX_REAL.H"
8
9using namespace amrex::literals;
10
11namespace amr_wind::burggraf {
12
13namespace {
14
15struct UExact
16{
17 AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real
18 operator()(const amrex::Real /*x*/, const amrex::Real /*y*/) const;
19 const int m_comp{0};
20};
21
22struct VExact
23{
24 AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real
25 operator()(const amrex::Real /*x*/, const amrex::Real /*y*/) const;
26 const int m_comp{1};
27};
28
29struct WExact
30{
31 AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real
32 operator()(const amrex::Real /*x*/, const amrex::Real /*y*/) const;
33 const int m_comp{2};
34};
35
36} // namespace
37
42
43class BurggrafFlow : public Physics::Register<BurggrafFlow>
44{
45public:
46 static std::string identifier() { return "BurggrafFlow"; }
47
48 explicit BurggrafFlow(const CFDSim& sim);
49
50 ~BurggrafFlow() override = default;
51
52 void initialize_fields(int level, const amrex::Geometry& geom) override;
53
54 template <typename T>
55 amrex::Real compute_error(const Field& /*field*/);
56
58
59 void post_init_actions() override;
60
61 void post_regrid_actions() override {}
62
63 void pre_advance_work() override {};
64
65 void post_advance_work() override;
66
67private:
70 const amrex::AmrCore& m_mesh;
71
75
76 void output_error();
77
79 amrex::Real m_rho{1.0_rt};
80
82 const int m_w{18};
83
85 std::string m_output_fname{"burggraf.log"};
86};
87} // namespace amr_wind::burggraf
88
89#endif
Definition CFDSim.H:54
Definition Field.H:116
Definition FieldRepo.H:86
Definition SimTime.H:33
std::string m_output_fname
error log file
Definition BurggrafFlow.H:85
const FieldRepo & m_repo
Definition BurggrafFlow.H:69
amrex::Real m_rho
initial density value
Definition BurggrafFlow.H:79
void initialize_fields(int level, const amrex::Geometry &geom) override
Definition BurggrafFlow.cpp:53
const int m_w
output precision
Definition BurggrafFlow.H:82
void post_advance_work() override
Definition BurggrafFlow.cpp:186
Field & m_source
Definition BurggrafFlow.H:74
void post_init_actions() override
Definition BurggrafFlow.cpp:184
const amr_wind::SimTime & m_time
Definition BurggrafFlow.H:68
void pre_advance_work() override
Definition BurggrafFlow.H:63
void post_regrid_actions() override
Definition BurggrafFlow.H:61
BurggrafFlow(const CFDSim &sim)
Definition BurggrafFlow.cpp:36
const amrex::AmrCore & m_mesh
Definition BurggrafFlow.H:70
void output_error()
Definition BurggrafFlow.cpp:168
Field & m_velocity
Definition BurggrafFlow.H:72
static std::string identifier()
Definition BurggrafFlow.H:46
~BurggrafFlow() override=default
Field & m_density
Definition BurggrafFlow.H:73
amrex::Real compute_error(const Field &)
Definition BurggrafFlow.cpp:115
Definition BurggrafFlow.cpp:12