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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/physics/multiphase/ZalesakDiskScalarVel.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ZalesakDiskScalarVel.H
Go to the documentation of this file.
1#ifndef ZalesakDiskScalarVel_H
2#define ZalesakDiskScalarVel_H
3
6#include "AMReX_REAL.H"
7
8using namespace amrex::literals;
9
14namespace amr_wind::zds {
15
16namespace {
17struct SCexact
18{
19 AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real operator()(
20 amrex::Real /*xc*/,
21 amrex::Real /*yc*/,
22 amrex::Real /*zc*/,
23 amrex::Real /*x*/,
24 amrex::Real /*y*/,
25 amrex::Real /*z*/,
26 amrex::Real /*radius*/,
27 amrex::Real /*alpha*/) const;
28 const int m_comp{0};
29};
30} // namespace
31
32class ZalesakDiskScalarVel : public Physics::Register<ZalesakDiskScalarVel>
33{
34
35 static_assert(
36 AMREX_SPACEDIM == 3,
37 "ZalesakDiskScalarVel requires 3 dimensional mesh");
38
39public:
40 static std::string identifier() { return "ZalesakDiskScalarVel"; }
41
42 explicit ZalesakDiskScalarVel(CFDSim& sim);
43
44 ~ZalesakDiskScalarVel() override = default;
45
47
48 void initialize_fields(int level, const amrex::Geometry& geom) override;
49
50 void post_init_actions() override {}
51
52 void post_regrid_actions() override {}
53
54 void pre_advance_work() override;
55
56 void post_advance_work() override;
57
58 template <typename T>
59 amrex::Real compute_error(const Field& /*field*/);
60
61private:
62 const CFDSim& m_sim;
63
67
69 amrex::Vector<amrex::Real> m_loc{0.5_rt, 0.72_rt, 0.24_rt};
70
72 amrex::Real m_radius{0.16_rt};
73
75 amrex::Real m_halfwidth{0.04_rt};
76
78 amrex::Real m_depth{0.2_rt};
79
81 amrex::Real m_TT{6.0_rt};
82
83 void output_error();
84
86 const int m_w{18};
87
89 std::string m_output_fname{"zds.log"};
90};
91
92} // namespace amr_wind::zds
93
94#endif /* ZalesakDiskScalarVel_H */
Definition CFDSim.H:54
Definition Field.H:116
Field & m_density
Definition ZalesakDiskScalarVel.H:66
void pre_advance_work() override
Definition ZalesakDiskScalarVel.cpp:188
Field & m_levelset
Definition ZalesakDiskScalarVel.H:65
ZalesakDiskScalarVel(CFDSim &sim)
Definition ZalesakDiskScalarVel.cpp:45
std::string m_output_fname
error log file
Definition ZalesakDiskScalarVel.H:89
static std::string identifier()
Definition ZalesakDiskScalarVel.H:40
void post_regrid_actions() override
Definition ZalesakDiskScalarVel.H:52
void post_advance_work() override
Definition ZalesakDiskScalarVel.cpp:224
amrex::Real m_halfwidth
slot half-width value
Definition ZalesakDiskScalarVel.H:75
~ZalesakDiskScalarVel() override=default
amrex::Real m_radius
sphere radius value
Definition ZalesakDiskScalarVel.H:72
void output_error()
Definition ZalesakDiskScalarVel.cpp:333
const int m_w
output precision
Definition ZalesakDiskScalarVel.H:86
amrex::Real m_TT
prescribed velocity period
Definition ZalesakDiskScalarVel.H:81
const CFDSim & m_sim
Definition ZalesakDiskScalarVel.H:62
void post_init_actions() override
Definition ZalesakDiskScalarVel.H:50
amrex::Real m_depth
slot depth
Definition ZalesakDiskScalarVel.H:78
amrex::Vector< amrex::Real > m_loc
Initial ZalesakDiskScalarVel location.
Definition ZalesakDiskScalarVel.H:69
void initialize_fields(int level, const amrex::Geometry &geom) override
Initialize the levelset and velocity fields for Vortex Patch simulations.
Definition ZalesakDiskScalarVel.cpp:65
amrex::Real compute_error(const Field &)
Definition ZalesakDiskScalarVel.cpp:227
Field & m_velocity
Definition ZalesakDiskScalarVel.H:64
Definition ZalesakDiskScalarVel.cpp:12