/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
19namespace amr_wind {
20
25
26class MultiPhase : public Physics::Register<MultiPhase>
27{
28public:
29 static std::string identifier() { return "MultiPhase"; }
30
31 explicit MultiPhase(CFDSim& sim);
32
33 ~MultiPhase() override = default;
34
35 void
36 initialize_fields(int /*level*/, const amrex::Geometry& /*geom*/) override
37 {}
38
39 void post_init_actions() override;
40
41 void post_regrid_actions() override;
42
43 void pre_advance_work() override;
44
45 void post_advance_work() override;
46
48
51
52 void set_nph_density();
53
55
56 void levelset2vof();
57
58 void levelset2vof(const IntField& iblank_cell, ScratchField& vof_scr);
59
60 amrex::Real volume_fraction_sum();
61
62 amrex::Real momentum_sum(int n);
63
65
66 amrex::Real rho1() const { return m_rho1; }
67
68 amrex::Real rho2() const { return m_rho2; }
69
70 amrex::Vector<amrex::Real> gravity() const { return m_gravity; }
71
72 amrex::Real water_level() const { return m_water_level0; }
73
75
77 {
79 }
80
81private:
82 const CFDSim& m_sim;
83
86
87 // Pointer to the levelset
88 Field* m_levelset{nullptr};
89
90 // Pointer to VOF
91 Field* m_vof{nullptr};
92
93 // Density value for Fluid 1
94 amrex::Real m_rho1{10.0};
95
96 // Density value for Fluid 2
97 amrex::Real m_rho2{1.0};
98
99 // Bools according to ICNS settings
100 // Turning on perturbational density and pressure
102 // Reconstructing true pressure field at end of timestep
104
105 bool m_init_p{false};
106
107 // Info to create rho0
108 amrex::Real m_water_level0{0.0};
109 // Info to reconstruct true pressure
110 amrex::Vector<amrex::Real> m_gravity{0.0, 0.0, -9.81};
111
112 // Multiphase model enum
113 std::string m_interface_model{"vof"};
116
117 // Verbose flag for multiphase
118 int m_verbose{0};
119
120 // sum of volume fractions (for vof only)
121 amrex::Real m_total_volfrac{0.0};
122
123 amrex::Real m_q0{0.0};
124 amrex::Real m_q1{0.0};
125 amrex::Real m_q2{0.0};
126 amrex::Real m_sumvof0{0.0};
127};
128
129} // namespace amr_wind
130
131#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:76
amrex::Real m_water_level0
Definition MultiPhase.H:108
void calculate_advected_facedensity()
Definition MultiPhase.cpp:371
static std::string identifier()
Definition MultiPhase.H:29
amrex::Real water_level() const
Definition MultiPhase.H:72
InterfaceCapturingMethod m_interface_capturing_method
Definition MultiPhase.H:114
void set_density_via_levelset()
Definition MultiPhase.cpp:299
void post_init_actions() override
Definition MultiPhase.cpp:86
void initialize_fields(int, const amrex::Geometry &) override
Definition MultiPhase.H:36
amrex::Real rho1() const
Definition MultiPhase.H:66
int m_verbose
Definition MultiPhase.H:118
amrex::Real volume_fraction_sum()
Definition MultiPhase.cpp:202
bool m_use_perturb_pressure
Definition MultiPhase.H:101
amrex::Real rho2() const
Definition MultiPhase.H:68
bool m_init_p
Definition MultiPhase.H:105
amrex::Real m_rho1
Definition MultiPhase.H:94
MultiPhase(CFDSim &sim)
Definition MultiPhase.cpp:14
void set_nph_density()
Definition MultiPhase.cpp:361
void pre_advance_work() override
Definition MultiPhase.cpp:170
bool perturb_pressure() const
Definition MultiPhase.H:74
amrex::Real momentum_sum(int n)
Definition MultiPhase.cpp:249
amrex::Vector< amrex::Real > gravity() const
Definition MultiPhase.H:70
Field * m_levelset
Definition MultiPhase.H:88
amrex::Real m_rho2
Definition MultiPhase.H:97
const CFDSim & m_sim
Definition MultiPhase.H:82
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:123
amrex::Real m_q1
Definition MultiPhase.H:124
std::string m_interface_model
Definition MultiPhase.H:113
void post_regrid_actions() override
Definition MultiPhase.cpp:151
Field & m_density
Definition MultiPhase.H:85
Field & m_velocity
Definition MultiPhase.H:84
InterfaceCapturingMethod interface_capturing_method() const
Definition MultiPhase.cpp:81
amrex::Real m_q2
Definition MultiPhase.H:125
void post_advance_work() override
Definition MultiPhase.cpp:172
amrex::Real m_total_volfrac
Definition MultiPhase.H:121
bool m_reconstruct_true_pressure
Definition MultiPhase.H:103
amrex::Vector< amrex::Real > m_gravity
Definition MultiPhase.H:110
amrex::Real m_sumvof0
Definition MultiPhase.H:126
Field * m_vof
Definition MultiPhase.H:91
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:7
InterfaceCapturingMethod
Definition MultiPhase.H:21
@ VOF
Volume of fluid.
Definition MultiPhase.H:22
@ LS
Levelset.
Definition MultiPhase.H:23