MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
lsfvcombustion.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef LSFVCOMBUSTION_H_
8#define LSFVCOMBUSTION_H_
9
13#include "coupling.h"
14#include "couplingutils.h"
15
16
17template <MInt nDim>
18class CouplingLS;
19
20template <MInt nDim, class SysEqn>
21class CouplingFv;
22
23template <MInt nDim, class SysEqn>
25
26template <MInt nDim_, class SysEqn>
27class LsFvCombustion : public Coupling {
28 public:
29 static constexpr MInt nDim = nDim_;
30
31 private:
32 // template <MInt nDim, SysEqn> friend class FvCartesianSolverXD;
33 // template <SysEqn> friend class FvMbSolver2D;
34 // template <SysEqn> friend class FvMbSolver3D;
35 friend class LsCartesianSolver<nDim>;
36 friend class FvCartesianSolverXD<nDim, SysEqn>;
37
38 public:
39 // Type for cell properties
42
45
47 LsSolver& lsSolver() const { return *m_lsSolver; }
48
51
53
54 MInt a_noSets() const { return lsSolver().m_noSets; }
55 MFloat a_levelSetFunctionG(MInt gcellId, MInt set) const { return lsSolver().a_levelSetFunctionG(gcellId, set); }
57
58 void init();
60 void finalizeCouplerInit() override;
61 void preCouple(MInt) override;
62 void subCouple(MInt, MInt, std::vector<MBool>&){};
63 void postCouple(MInt);
64 void cleanUp(){};
67
68 void computeSourceTerms();
72 void saveOutputLS();
74 void setRhoInfinityInLs();
79
80 // Id conversion
81 MInt ls2fvId(const MInt lsId) { return convertId(lsSolver(), fvSolver(), lsId); };
82 MInt fv2lsId(const MInt fvId) { return convertId(fvSolver(), lsSolver(), fvId); };
83
88 void collectGEquationModelDataOpt(MFloat* fluidDensity, MInt set);
89};
90
91#endif // ifndef LSFVCOMBUSTION_H_
typename maia::grid::tree::Tree< nDim_ >::Cell Cell
MFloat & a_levelSetFunctionG(const MInt cellId, const MInt set)
Returns levelSetFunction of the cell cellId.
MFloat a_levelSetFunctionG(MInt gcellId, MInt set) const
void subCouple(MInt, MInt, std::vector< MBool > &)
void postCouple(MInt)
void exchangeCouplingData()
void checkProperties()
MFloat a_outsideGValue() const
void setRhoFlameTubeInLs()
FvCartesianSolverXD< nDim_, SysEqn > FvCartesianSolver
FvCartesianSolver * m_fvSolver
LsCartesianSolver< nDim_ > LsSolver
MInt a_noSets() const
MInt noLevelSetFieldData()
MFloat collectFvDataForCollectGEquationModelDataOpt(MInt, MInt)
void computeGCellTimeStep()
typename LsCartesianSolver< nDim_ >::Cell Cell
void readProperties()
LsSolver * m_lsSolver
static constexpr MInt nDim
MFloat collectGFromCouplingClass(MInt)
void finalizeSubCoupleInit(MInt)
void constructExtensionVelocity()
MInt fv2lsId(const MInt fvId)
void collectGEquationModelDataOpt(MFloat *fluidDensity, MInt set)
MFloat collectCurvFromCouplingClass(MInt)
void setLsTimeStep(MFloat)
void fastInterfaceExtensionVelocity()
void finalizeCouplerInit() override
MInt ls2fvId(const MInt lsId)
void preCouple(MInt) override
LsSolver & lsSolver() const
void collectGEquationModelDataOptInterpolate(MFloat *fluidDensity, MInt set)
transfers v from the flow to the G-grid (highest level) via interpolation
FvCartesianSolver & fvSolver() const
MInt convertId(SolverA &solverA, SolverB &solverB, const MInt solverAId)
Conversion from solverA id to the solverB id on the same-level only!
Definition: couplingutils.h:21
FvCell
FV cell Property Labels.
int32_t MInt
Definition: maiatypes.h:62
double MFloat
Definition: maiatypes.h:52