/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 const int lev,
31 const amrex::Real time,
32 const Field& fld,
33 amrex::MultiFab& mfab,
34 const int dcomp = 0,
35 const int orig_comp = 0) const;
36
37 void set_vof(
38 const int lev,
39 const amrex::Real time,
40 const Field& fld,
41 amrex::MultiFab& mfab) const;
42
43 void set_density(
44 const int lev,
45 const amrex::Real time,
46 const Field& fld,
47 amrex::MultiFab& mfab) const;
48
50 const int lev,
51 const amrex::Real time,
52 const Field& fld,
53 amrex::Array<amrex::MultiFab*, AMREX_SPACEDIM> mfabs) const;
54
55 void record_boundary_data_time(const amrex::Real time)
56 {
57 m_bndry_time = time;
58 }
59
60 amrex::Real get_boundary_data_time() const { return m_bndry_time; }
61
62private:
65 const amrex::AmrCore& m_mesh;
69
70 // Should be active unless boundary planes are used
72
73 // Check for single-phase simulation
74 bool m_vof_exists{true};
75
76 // Check for terrain
77 bool m_terrain_exists{false};
78
79 // Store time corresponding to current boundary data
80 amrex::Real m_bndry_time{0.0_rt};
81
82 // Will only remain negative if not needed
83 amrex::Real m_rho1{-1.0_rt};
84};
85
86} // namespace amr_wind
87
88#endif /* OCEANWAVESBOUNDARY_H */
Definition CFDSim.H:54
Definition Field.H:116
Definition FieldRepo.H:86
Definition IntField.H:20
OceanWavesBoundary(CFDSim &)
Definition OceanWavesBoundary.cpp:15
void set_velocity(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab, const int dcomp=0, const int orig_comp=0) const
Definition OceanWavesBoundary.cpp:65
void post_init_actions()
Definition OceanWavesBoundary.cpp:41
IntField * m_terrain_blank_ptr
Definition OceanWavesBoundary.H:68
const amr_wind::SimTime & m_time
Definition OceanWavesBoundary.H:63
bool m_activate_ow_bndry
Definition OceanWavesBoundary.H:71
amrex::Real m_rho1
Definition OceanWavesBoundary.H:83
bool m_terrain_exists
Definition OceanWavesBoundary.H:77
Field & m_ow_vof
Definition OceanWavesBoundary.H:67
amrex::Real m_bndry_time
Definition OceanWavesBoundary.H:80
Field & m_ow_velocity
Definition OceanWavesBoundary.H:66
const amrex::AmrCore & m_mesh
Definition OceanWavesBoundary.H:65
const FieldRepo & m_repo
Definition OceanWavesBoundary.H:64
void record_boundary_data_time(const amrex::Real time)
Definition OceanWavesBoundary.H:55
void set_density(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:191
amrex::Real get_boundary_data_time() const
Definition OceanWavesBoundary.H:60
bool m_vof_exists
Definition OceanWavesBoundary.H:74
void set_inflow_sibling_velocity(const int lev, const amrex::Real time, const Field &fld, amrex::Array< amrex::MultiFab *, AMREX_SPACEDIM > mfabs) const
Definition OceanWavesBoundary.cpp:243
void set_vof(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:142
Definition SimTime.H:33
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10