Finite Volume Solver
prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
|
This is an outflow boundary condition that models the massflow condition of a turbine machine. More...
#include <TurbineMassflowBoundary.hpp>
Public Types | |
using | Complete = ::fub::Complete< EulerEquation > |
using | Conservative = ::fub::Conservative< EulerEquation > |
Public Member Functions | |
TurbineMassflowBoundary (const EulerEquation &eq, const TurbineMassflowBoundaryOptions &options) | |
void | FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level) |
void | FillBoundary (::amrex::MultiFab &mf, const ::amrex::MultiFab &alphas, const ::amrex::Geometry &geom) |
void | FillBoundary (::amrex::MultiFab &mf, const ::amrex::MultiFab &alphas, const ::amrex::Geometry &geom, double required_massflow) |
void | FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level, Direction dir) |
double | ComputeRequiredMassflow (const Complete &state) const |
Returns the required mass flow for a given complete state. More... | |
double | AverageRequiredMassflow (::amrex::MultiFab &mf, const GriddingAlgorithm &grid, int level) |
Returns the averaged required mass flow over all boundary cells. More... | |
void | TransformState (Complete &expanded, const Complete &source) |
Compute the new complete state from the old complete state to enforce the required massflow. This is done by solving the exact Riemann Problem as described in Toro or by following the method from Jirasek. TODO: cite references. More... | |
void | TransformState (Complete &expanded, const Complete &source, double required_massflow) |
Compute the new complete state from the old complete state to enforce the required massflow. This is done by solving the exact Riemann Problem as described in Toro or by following the method from Jirasek. TODO: cite references. More... | |
Static Private Member Functions | |
template<typename I > | |
static I | MapToSrc (I &dest, const ::amrex::Geometry &geom, int side, Direction dir) noexcept |
Private Attributes | |
EulerEquation | equation_ |
TurbineMassflowBoundaryOptions | options_ |
Transform | transform_ |
This is an outflow boundary condition that models the massflow condition of a turbine machine.
The massflow is given by the relation
\f$\dot{m} / A \cdot \frac{\sqrt{T_0}}{p_0} = \text{const}\f$
Therefore, for given surface area \(A\), total pressure \(p_0\) and total temperature \(T_0\) one determines the required massflow \(\dot m\) and recomputes the static pressure and temperature values.
using fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::Complete = ::fub::Complete<EulerEquation> |
using fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::Conservative = ::fub::Conservative<EulerEquation> |
fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::TurbineMassflowBoundary | ( | const EulerEquation & | eq, |
const TurbineMassflowBoundaryOptions & | options | ||
) |
double fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::AverageRequiredMassflow | ( | ::amrex::MultiFab & | mf, |
const GriddingAlgorithm & | grid, | ||
int | level | ||
) |
Returns the averaged required mass flow over all boundary cells.
double fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::ComputeRequiredMassflow | ( | const Complete & | state | ) | const |
Returns the required mass flow for a given complete state.
void fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::FillBoundary | ( | ::amrex::MultiFab & | mf, |
const ::amrex::MultiFab & | alphas, | ||
const ::amrex::Geometry & | geom | ||
) |
void fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::FillBoundary | ( | ::amrex::MultiFab & | mf, |
const ::amrex::MultiFab & | alphas, | ||
const ::amrex::Geometry & | geom, | ||
double | required_massflow | ||
) |
void fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::FillBoundary | ( | ::amrex::MultiFab & | mf, |
const GriddingAlgorithm & | gridding, | ||
int | level | ||
) |
|
inline |
|
inlinestaticprivatenoexcept |
void fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::TransformState | ( | Complete & | expanded, |
const Complete & | source | ||
) |
Compute the new complete state from the old complete state to enforce the required massflow. This is done by solving the exact Riemann Problem as described in Toro or by following the method from Jirasek. TODO: cite references.
source | the old complete state |
expanded | the new complete state which enforces the required massflow condition |
void fub::amrex::cutcell::TurbineMassflowBoundary< EulerEquation, Transform >::TransformState | ( | Complete & | expanded, |
const Complete & | source, | ||
double | required_massflow | ||
) |
Compute the new complete state from the old complete state to enforce the required massflow. This is done by solving the exact Riemann Problem as described in Toro or by following the method from Jirasek. TODO: cite references.
source | the old complete state |
expanded | the new complete state which enforces the required massflow condition |
|
private |
|
private |
|
private |