/home/runner/work/amr-wind/amr-wind/amr-wind/physics/multiphase/MultiPhase.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/physics/multiphase/MultiPhase.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
MultiPhase.H
Go to the documentation of this file.
1#ifndef MULTIPHASE_H
2#define MULTIPHASE_H
3
8#include "AMReX_REAL.H"
9
10using namespace amrex::literals;
11
22namespace amr_wind {
23
28
29class MultiPhase : public Physics::Register<MultiPhase>
30{
31public:
32 static std::string identifier() { return "MultiPhase"; }
33
34 explicit MultiPhase(CFDSim& sim);
35
36 ~MultiPhase() override = default;
37
38 void
39 initialize_fields(int /*level*/, const amrex::Geometry& /*geom*/) override
40 {}
41
42 void post_init_actions() override;
43
44 void post_regrid_actions() override;
45
46 void pre_advance_work() override;
47
48 void post_advance_work() override;
49
51
54
55 void set_nph_density();
56
58
59 void levelset2vof();
60
61 void levelset2vof(const IntField& iblank_cell, ScratchField& vof_scr);
62
63 amrex::Real volume_fraction_sum();
64
65 amrex::Real momentum_sum(int n);
66
68
69 amrex::Real rho1() const { return m_rho1; }
70
71 amrex::Real rho2() const { return m_rho2; }
72
73 amrex::Vector<amrex::Real> gravity() const { return m_gravity; }
74
75 amrex::Real water_level() const { return m_water_level0; }
76
78
80 {
82 }
83
84private:
85 const CFDSim& m_sim;
86
89
90 // Pointer to the levelset
91 Field* m_levelset{nullptr};
92
93 // Pointer to VOF
94 Field* m_vof{nullptr};
95
96 // Density value for Fluid 1
97 amrex::Real m_rho1{10.0_rt};
98
99 // Density value for Fluid 2
100 amrex::Real m_rho2{1.0_rt};
101
102 // Bools according to ICNS settings
103 // Turning on perturbational density and pressure
105 // Reconstructing true pressure field at end of timestep
107
108 bool m_init_p{false};
109
110 // Info to create rho0
111 amrex::Real m_water_level0{0.0_rt};
112 // Info to reconstruct true pressure
113 amrex::Vector<amrex::Real> m_gravity{0.0_rt, 0.0_rt, -9.81_rt};
114
115 // Multiphase model enum
116 std::string m_interface_model{"vof"};
119
120 // Verbose flag for multiphase
121 int m_verbose{0};
122
123 // sum of volume fractions (for vof only)
124 amrex::Real m_total_volfrac{0.0_rt};
125
126 amrex::Real m_q0{0.0_rt};
127 amrex::Real m_q1{0.0_rt};
128 amrex::Real m_q2{0.0_rt};
129 amrex::Real m_sumvof0{0.0_rt};
130};
131
132} // namespace amr_wind
133
134#endif /* MULTIPHASE_H */
Definition CFDSim.H:54
Definition Field.H:116
Definition IntField.H:20
void levelset2vof()
Definition MultiPhase.cpp:419
bool reconstruct_true_pressure() const
Definition MultiPhase.H:79
amrex::Real m_water_level0
Definition MultiPhase.H:111
void calculate_advected_facedensity()
Definition MultiPhase.cpp:371
static std::string identifier()
Definition MultiPhase.H:32
amrex::Real water_level() const
Definition MultiPhase.H:75
InterfaceCapturingMethod m_interface_capturing_method
Definition MultiPhase.H:117
void set_density_via_levelset()
Definition MultiPhase.cpp:297
void post_init_actions() override
Definition MultiPhase.cpp:89
void initialize_fields(int, const amrex::Geometry &) override
Definition MultiPhase.H:39
amrex::Real rho1() const
Definition MultiPhase.H:69
int m_verbose
Definition MultiPhase.H:121
amrex::Real volume_fraction_sum()
Definition MultiPhase.cpp:204
bool m_use_perturb_pressure
Definition MultiPhase.H:104
amrex::Real rho2() const
Definition MultiPhase.H:71
bool m_init_p
Definition MultiPhase.H:108
amrex::Real m_rho1
Definition MultiPhase.H:97
MultiPhase(CFDSim &sim)
Definition MultiPhase.cpp:17
void set_nph_density()
Definition MultiPhase.cpp:361
void pre_advance_work() override
Definition MultiPhase.cpp:172
bool perturb_pressure() const
Definition MultiPhase.H:77
amrex::Real momentum_sum(int n)
Definition MultiPhase.cpp:249
amrex::Vector< amrex::Real > gravity() const
Definition MultiPhase.H:73
Field * m_levelset
Definition MultiPhase.H:91
amrex::Real m_rho2
Definition MultiPhase.H:100
const CFDSim & m_sim
Definition MultiPhase.H:85
void set_density_via_vof(amr_wind::FieldState fstate=amr_wind::FieldState::New)
Definition MultiPhase.cpp:338
~MultiPhase() override=default
amrex::Real m_q0
Definition MultiPhase.H:126
amrex::Real m_q1
Definition MultiPhase.H:127
std::string m_interface_model
Definition MultiPhase.H:116
void post_regrid_actions() override
Definition MultiPhase.cpp:153
Field & m_density
Definition MultiPhase.H:88
Field & m_velocity
Definition MultiPhase.H:87
InterfaceCapturingMethod interface_capturing_method() const
Definition MultiPhase.cpp:84
amrex::Real m_q2
Definition MultiPhase.H:128
void post_advance_work() override
Definition MultiPhase.cpp:174
amrex::Real m_total_volfrac
Definition MultiPhase.H:124
bool m_reconstruct_true_pressure
Definition MultiPhase.H:106
amrex::Vector< amrex::Real > m_gravity
Definition MultiPhase.H:113
amrex::Real m_sumvof0
Definition MultiPhase.H:129
Field * m_vof
Definition MultiPhase.H:94
Definition ScratchField.H:30
FieldState
Definition FieldDescTypes.H:14
@ New
Same as FieldState::NP1.
Definition FieldDescTypes.H:20
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10
InterfaceCapturingMethod
Definition MultiPhase.H:24
@ VOF
Volume of fluid.
Definition MultiPhase.H:25
@ LS
Levelset.
Definition MultiPhase.H:26