/home/runner/work/amr-wind/amr-wind/amr-wind/boundary_conditions/field_boundary_fill/OceanWavesBoundary.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/boundary_conditions/field_boundary_fill/OceanWavesBoundary.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
OceanWavesBoundary.H
Go to the documentation of this file.
1#ifndef OCEANWAVESBOUNDARY_H
2#define OCEANWAVESBOUNDARY_H
3
6#include "amr-wind/CFDSim.H"
8#include "AMReX_Gpu.H"
9#include <AMReX_BndryRegister.H>
10#include "AMReX_REAL.H"
11
12using namespace amrex::literals;
13
14namespace amr_wind {
15
22class OceanWavesBoundary : public FieldBoundary::Register<OceanWavesBoundary>
23{
24public:
25 static std::string identifier() { return "OceanWavesBoundary"; }
26
27 explicit OceanWavesBoundary(CFDSim& /*sim*/);
28
29 void post_init_actions() override;
30
31 void pre_advance_work() override;
32
33 void pre_predictor_work() override;
34
35 void post_advance_work() override {}
36
37 void set_velocity(
38 int lev,
39 amrex::Real time,
40 const Field& fld,
41 amrex::MultiFab& mfab,
42 int dcomp = 0,
43 int orig_comp = 0) const override;
44
45 void
46 set_vof(int lev, amrex::Real time, const Field& fld, amrex::MultiFab& mfab)
47 const;
48
49 void set_density(
50 int lev,
51 amrex::Real time,
52 const Field& fld,
53 amrex::MultiFab& mfab) const;
54
56 int lev,
57 amrex::Real time,
58 const Field& fld,
59 amrex::Array<amrex::MultiFab*, AMREX_SPACEDIM> mfabs) const;
60
61 void record_boundary_data_time(const amrex::Real time)
62 {
63 m_bndry_time = time;
64 }
65
66 [[nodiscard]] amrex::Real get_boundary_data_time() const
67 {
68 return m_bndry_time;
69 }
70
71private:
74 const amrex::AmrCore& m_mesh;
76 Field* m_ow_vof{nullptr};
78
79 // Check for single-phase simulation
80 bool m_vof_exists{true};
81
82 // Check for terrain
83 bool m_terrain_exists{false};
84
85 // Store time corresponding to current boundary data
86 amrex::Real m_bndry_time{0.0_rt};
87
88 // Will only remain negative if not needed
89 amrex::Real m_rho1{-1.0_rt};
90};
91
92} // namespace amr_wind
93
94#endif /* OCEANWAVESBOUNDARY_H */
Definition CFDSim.H:55
Definition Field.H:112
Definition FieldRepo.H:86
Definition IntField.H:20
void post_advance_work() override
Definition OceanWavesBoundary.H:35
OceanWavesBoundary(CFDSim &)
Definition OceanWavesBoundary.cpp:16
IntField * m_terrain_blank_ptr
Definition OceanWavesBoundary.H:77
void set_velocity(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab, int dcomp=0, int orig_comp=0) const override
Definition OceanWavesBoundary.cpp:79
void set_density(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:192
const amr_wind::SimTime & m_time
Definition OceanWavesBoundary.H:72
void set_vof(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:149
void pre_advance_work() override
Definition OceanWavesBoundary.cpp:62
amrex::Real m_rho1
Definition OceanWavesBoundary.H:89
bool m_terrain_exists
Definition OceanWavesBoundary.H:83
Field * m_ow_velocity
Definition OceanWavesBoundary.H:75
void set_inflow_sibling_velocity(int lev, amrex::Real time, const Field &fld, amrex::Array< amrex::MultiFab *, AMREX_SPACEDIM > mfabs) const
Definition OceanWavesBoundary.cpp:243
amrex::Real m_bndry_time
Definition OceanWavesBoundary.H:86
void post_init_actions() override
Definition OceanWavesBoundary.cpp:31
const amrex::AmrCore & m_mesh
Definition OceanWavesBoundary.H:74
const FieldRepo & m_repo
Definition OceanWavesBoundary.H:73
void record_boundary_data_time(const amrex::Real time)
Definition OceanWavesBoundary.H:61
static std::string identifier()
Definition OceanWavesBoundary.H:25
amrex::Real get_boundary_data_time() const
Definition OceanWavesBoundary.H:66
Field * m_ow_vof
Definition OceanWavesBoundary.H:76
bool m_vof_exists
Definition OceanWavesBoundary.H:80
void pre_predictor_work() override
Definition OceanWavesBoundary.cpp:71
Definition SimTime.H:33
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10