/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"
6
7using namespace amrex::literals;
8
9namespace amr_wind {
10
11class Field;
12
13namespace udf {
14
16{
17 struct DeviceOp
18 {
19 int idir{0};
20
21 AMREX_GPU_DEVICE
23 const amrex::IntVect& iv,
24 amrex::Array4<amrex::Real> const& field,
25 amrex::GeometryData const& geom,
26 const amrex::Real /*unused*/,
27 amrex::Orientation /*unused*/,
28 const int comp,
29 const int dcomp,
30 const int orig_comp) const
31 {
32 const auto* problo = geom.ProbLo();
33 const auto* dx = geom.CellSize();
34 const auto x = problo[idir] + ((iv[idir] + 0.5_rt) * dx[idir]);
35 amrex::Real val =
36 16.0_rt * (utils::powi(x, 4) - 2.0_rt * utils::powi(x, 3) +
37 utils::powi(x, 2));
38 amrex::RealArray uvec = {val};
39
40 field(iv[0], iv[1], iv[2], dcomp + comp) = uvec[orig_comp + comp];
41 }
42 };
44
45 static std::string identifier() { return "BurggrafLid"; }
46
47 explicit BurggrafLid(const Field& fld);
48
49 [[nodiscard]] DeviceType device_instance() const { return m_op; }
50
52};
53
54} // namespace udf
55} // namespace amr_wind
56
57#endif /* BURGGRAF_LID_H */
Definition Field.H:112
Definition BurggrafLid.cpp:9
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real powi(const amrex::Real &x, const int &y)
Helper function to do pow() with integer exponents and output amrex::Real.
Definition math_ops.H:18
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10
Definition BurggrafLid.H:18
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:22
int idir
Definition BurggrafLid.H:19
DeviceType device_instance() const
Definition BurggrafLid.H:49
DeviceOp DeviceType
Definition BurggrafLid.H:43
BurggrafLid(const Field &fld)
Definition BurggrafLid.cpp:11
DeviceOp m_op
Definition BurggrafLid.H:51
static std::string identifier()
Definition BurggrafLid.H:45