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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/physics/udfs/BurggrafLid.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
BurggrafLid.H
Go to the documentation of this file.
1#ifndef BURGGRAF_LID_H
2#define BURGGRAF_LID_H
3
4#include "AMReX_Geometry.H"
5#include "AMReX_Gpu.H"
6#include "AMReX_REAL.H"
7
8using namespace amrex::literals;
9
10namespace amr_wind {
11
12class Field;
13
14namespace udf {
15
17{
18 struct DeviceOp
19 {
20 int idir{0};
21
22 AMREX_GPU_DEVICE
23 inline void operator()(
24 const amrex::IntVect& iv,
25 amrex::Array4<amrex::Real> const& field,
26 amrex::GeometryData const& geom,
27 const amrex::Real /*unused*/,
28 amrex::Orientation /*unused*/,
29 const int comp,
30 const int dcomp,
31 const int orig_comp) const
32 {
33 const auto* problo = geom.ProbLo();
34 const auto* dx = geom.CellSize();
35 const auto x = problo[idir] + (iv[idir] + 0.5_rt) * dx[idir];
36 amrex::Real val =
37 16.0_rt * (std::pow(x, 4.0_rt) - 2.0_rt * std::pow(x, 3.0_rt) +
38 std::pow(x, 2.0_rt));
39 amrex::RealArray uvec = {val};
40
41 field(iv[0], iv[1], iv[2], dcomp + comp) = uvec[orig_comp + comp];
42 }
43 };
45
46 static std::string identifier() { return "BurggrafLid"; }
47
48 explicit BurggrafLid(const Field& fld);
49
50 DeviceType device_instance() const { return m_op; }
51
53};
54
55} // namespace udf
56} // namespace amr_wind
57
58#endif /* BURGGRAF_LID_H */
Definition Field.H:116
Definition BurggrafLid.cpp:9
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10
Definition BurggrafLid.H:19
AMREX_GPU_DEVICE void operator()(const amrex::IntVect &iv, amrex::Array4< amrex::Real > const &field, amrex::GeometryData const &geom, const amrex::Real, amrex::Orientation, const int comp, const int dcomp, const int orig_comp) const
Definition BurggrafLid.H:23
int idir
Definition BurggrafLid.H:20
DeviceType device_instance() const
Definition BurggrafLid.H:50
DeviceOp DeviceType
Definition BurggrafLid.H:44
BurggrafLid(const Field &fld)
Definition BurggrafLid.cpp:11
DeviceOp m_op
Definition BurggrafLid.H:52
static std::string identifier()
Definition BurggrafLid.H:46