/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
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
10namespace amr_wind {
11
19{
20
21public:
22 explicit OceanWavesBoundary(CFDSim& /*sim*/);
23
24 void post_init_actions();
25
26 void set_velocity(
27 const int lev,
28 const amrex::Real time,
29 const Field& fld,
30 amrex::MultiFab& mfab,
31 const int dcomp = 0,
32 const int orig_comp = 0) const;
33
34 void set_vof(
35 const int lev,
36 const amrex::Real time,
37 const Field& fld,
38 amrex::MultiFab& mfab) const;
39
40 void set_density(
41 const int lev,
42 const amrex::Real time,
43 const Field& fld,
44 amrex::MultiFab& mfab) const;
45
47 const int lev,
48 const amrex::Real time,
49 const Field& fld,
50 amrex::Array<amrex::MultiFab*, AMREX_SPACEDIM> mfabs) const;
51
52 void record_boundary_data_time(const amrex::Real time)
53 {
54 m_bndry_time = time;
55 }
56
57 amrex::Real get_boundary_data_time() const { return m_bndry_time; }
58
59private:
62 const amrex::AmrCore& m_mesh;
66
67 // Should be active unless boundary planes are used
69
70 // Check for single-phase simulation
71 bool m_vof_exists{true};
72
73 // Check for terrain
74 bool m_terrain_exists{false};
75
76 // Store time corresponding to current boundary data
77 amrex::Real m_bndry_time{0.0};
78
79 // Will only remain negative if not needed
80 amrex::Real m_rho1{-1.0};
81};
82
83} // namespace amr_wind
84
85#endif /* OCEANWAVESBOUNDARY_H */
Definition CFDSim.H:54
Definition Field.H:116
Definition FieldRepo.H:86
Definition IntField.H:20
Definition OceanWavesBoundary.H:19
OceanWavesBoundary(CFDSim &)
Definition OceanWavesBoundary.cpp:12
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:62
void post_init_actions()
Definition OceanWavesBoundary.cpp:38
IntField * m_terrain_blank_ptr
Definition OceanWavesBoundary.H:65
const amr_wind::SimTime & m_time
Definition OceanWavesBoundary.H:60
bool m_activate_ow_bndry
Definition OceanWavesBoundary.H:68
amrex::Real m_rho1
Definition OceanWavesBoundary.H:80
bool m_terrain_exists
Definition OceanWavesBoundary.H:74
Field & m_ow_vof
Definition OceanWavesBoundary.H:64
amrex::Real m_bndry_time
Definition OceanWavesBoundary.H:77
Field & m_ow_velocity
Definition OceanWavesBoundary.H:63
const amrex::AmrCore & m_mesh
Definition OceanWavesBoundary.H:62
const FieldRepo & m_repo
Definition OceanWavesBoundary.H:61
void record_boundary_data_time(const amrex::Real time)
Definition OceanWavesBoundary.H:52
void set_density(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:188
amrex::Real get_boundary_data_time() const
Definition OceanWavesBoundary.H:57
bool m_vof_exists
Definition OceanWavesBoundary.H:71
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:240
void set_vof(const int lev, const amrex::Real time, const Field &fld, amrex::MultiFab &mfab) const
Definition OceanWavesBoundary.cpp:139
Definition SimTime.H:30
Definition BCInterface.cpp:7