/home/runner/work/amr-wind/amr-wind/amr-wind/ocean_waves/boundary_ops/OceanWavesBoundary.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/ocean_waves/boundary_ops/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"
7#include "AMReX_Gpu.H"
8#include <AMReX_BndryRegister.H>
9#include "AMReX_REAL.H"
10
11using namespace amrex::literals;
12
13namespace amr_wind {
14
22{
23
24public:
25 explicit OceanWavesBoundary(CFDSim& /*sim*/);
26
27 void post_init_actions();
28
29 void set_velocity(
30 int lev,
31 amrex::Real time,
32 const Field& fld,
33 amrex::MultiFab& mfab,
34 int dcomp = 0,
35 int orig_comp = 0) const;
36
37 void
38 set_vof(int lev, amrex::Real time, const Field& fld, amrex::MultiFab& mfab)
39 const;
40
41 void set_density(
42 int lev,
43 amrex::Real time,
44 const Field& fld,
45 amrex::MultiFab& mfab) const;
46
48 int lev,
49 amrex::Real time,
50 const Field& fld,
51 amrex::Array<amrex::MultiFab*, AMREX_SPACEDIM> mfabs) const;
52
53 void record_boundary_data_time(const amrex::Real time)
54 {
55 m_bndry_time = time;
56 }
57
58 [[nodiscard]] amrex::Real get_boundary_data_time() const
59 {
60 return m_bndry_time;
61 }
62
63private:
66 const amrex::AmrCore& m_mesh;
70
71 // Should be active unless boundary planes are used
73
74 // Check for single-phase simulation
75 bool m_vof_exists{true};
76
77 // Check for terrain
78 bool m_terrain_exists{false};
79
80 // Store time corresponding to current boundary data
81 amrex::Real m_bndry_time{0.0_rt};
82
83 // Will only remain negative if not needed
84 amrex::Real m_rho1{-1.0_rt};
85};
86
87} // namespace amr_wind
88
89#endif /* OCEANWAVESBOUNDARY_H */
Definition CFDSim.H:54
Definition Field.H:112
Definition FieldRepo.H:86
Definition IntField.H:20
OceanWavesBoundary(CFDSim &)
Definition OceanWavesBoundary.cpp:15
void post_init_actions()
Definition OceanWavesBoundary.cpp:41
IntField * m_terrain_blank_ptr
Definition OceanWavesBoundary.H:69
void set_density(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:188
const amr_wind::SimTime & m_time
Definition OceanWavesBoundary.H:64
void set_vof(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:140
bool m_activate_ow_bndry
Definition OceanWavesBoundary.H:72
amrex::Real m_rho1
Definition OceanWavesBoundary.H:84
bool m_terrain_exists
Definition OceanWavesBoundary.H:78
void set_inflow_sibling_velocity(int lev, amrex::Real time, const Field &fld, amrex::Array< amrex::MultiFab *, AMREX_SPACEDIM > mfabs) const
Definition OceanWavesBoundary.cpp:239
Field & m_ow_vof
Definition OceanWavesBoundary.H:68
amrex::Real m_bndry_time
Definition OceanWavesBoundary.H:81
Field & m_ow_velocity
Definition OceanWavesBoundary.H:67
void set_velocity(int lev, amrex::Real time, const Field &fld, amrex::MultiFab &mfab, int dcomp=0, int orig_comp=0) const
Definition OceanWavesBoundary.cpp:65
const amrex::AmrCore & m_mesh
Definition OceanWavesBoundary.H:66
const FieldRepo & m_repo
Definition OceanWavesBoundary.H:65
void record_boundary_data_time(const amrex::Real time)
Definition OceanWavesBoundary.H:53
amrex::Real get_boundary_data_time() const
Definition OceanWavesBoundary.H:58
bool m_vof_exists
Definition OceanWavesBoundary.H:75
Definition SimTime.H:33
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10