/home/runner/work/amr-wind/amr-wind/amr-wind/equation_systems/vof/vof_ops.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/equation_systems/vof/vof_ops.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
vof_ops.H
Go to the documentation of this file.
1#ifndef VOF_OPS_H
2#define VOF_OPS_H
3
6
7namespace amr_wind::pde {
8
12template <typename Scheme>
13struct FieldRegOp<VOF, Scheme>
14{
15 explicit FieldRegOp(CFDSim& sim_in) : sim(sim_in) {}
16
18 {
19 auto& repo = sim.repo();
20 auto fields = create_fields_instance<VOF, Scheme>(time, repo);
21
22 auto& levelset = repo.declare_cc_field("levelset", 1, 3, 1);
23 auto& curvature = repo.declare_cc_field("interface_curvature", 1, 1, 1);
24
25 levelset.set_default_fillpatch_bc(sim.time());
26 curvature.set_default_fillpatch_bc(sim.time());
27
28 // Register fields for output/restart
29 auto& iomgr = sim.io_manager();
30 iomgr.register_io_var(fields.field.name());
31
32 return fields;
33 }
34
36};
37
40template <typename Scheme>
41struct ComputeRHSOp<VOF, Scheme>
42{
43 explicit ComputeRHSOp(PDEFields& fields_in) : fields(fields_in) {}
44
46 const DiffusionType /*unused*/,
47 const amrex::Real /*unused*/,
48 bool /*unused*/)
49 {}
50
52 const DiffusionType /*unused*/,
53 const amrex::Real /*unused*/,
54 bool /*unused*/)
55 {}
56
57 void improve_explicit_diff(const amrex::Real /*unused*/) {}
58
59 // data members
61};
62
66
67template <>
69{
70 PostSolveOp(CFDSim& sim, PDEFields& fields) : m_sim(sim), m_fields(fields)
71 {}
72
73 void operator()(const amrex::Real /*unused*/)
74 {
75 m_fields.field.fillpatch(m_sim.time().new_time());
76 auto& multiphase = m_sim.physics_manager().get<MultiPhase>();
77 multiphase.set_density_via_vof();
78
79 // Calculate n+1/2 density
80 multiphase.set_nph_density();
81 // Convert advalpha to advrho
82 multiphase.calculate_advected_facedensity();
83 }
84
87};
88
89} // namespace amr_wind::pde
90
91#endif /* VOF_OPS_H */
Definition CFDSim.H:54
Definition MultiPhase.H:27
Definition SimTime.H:30
DiffusionType
Definition incflo_enums.H:4
Definition height_functions.H:8
Definition AdvOp_Godunov.H:18
PDEFields create_fields_instance(const SimTime &time, FieldRepo &repo, const FieldInterpolator itype=FieldInterpolator::CellConsLinear)
Definition PDEHelpers.H:49
void corrector_rhs(const DiffusionType, const amrex::Real, bool)
Definition vof_ops.H:51
void predictor_rhs(const DiffusionType, const amrex::Real, bool)
Definition vof_ops.H:45
ComputeRHSOp(PDEFields &fields_in)
Definition vof_ops.H:43
PDEFields & fields
Definition vof_ops.H:60
void improve_explicit_diff(const amrex::Real)
Definition vof_ops.H:57
PDEFields operator()(const SimTime &time)
Definition vof_ops.H:17
CFDSim & sim
Definition vof_ops.H:35
FieldRegOp(CFDSim &sim_in)
Definition vof_ops.H:15
Definition PDEFields.H:27
void operator()(const amrex::Real)
Definition vof_ops.H:73
PDEFields & m_fields
Definition vof_ops.H:86
CFDSim & m_sim
Definition vof_ops.H:85
PostSolveOp(CFDSim &sim, PDEFields &fields)
Definition vof_ops.H:70
Definition vof.H:17