Test problem for the one-phase (Navier-) Stokes model in a 3D or pseudo 3D channel. More...
#include <test/freeflow/navierstokes/channel/3d/problem.hh>
Test problem for the one-phase (Navier-) Stokes model in a 3D or pseudo 3D channel.
Flow from left to right in a three-dimensional channel is considered. At the inlet (left) and outlet (right) fixed values for pressure are set. The channel is confined by solid walls at all other sides of the domain which corresponds to no-slip/no-flow conditions. The value of an analytical solution for the given flow configuration is furthermore provided. For sake of efficiency, the 3D problem can be reduced to a two-dimensional one by including an additional wall friction term to the momentum balance (Flekkoy et al., 1995 [25]).
Public Member Functions | |
ThreeDChannelTestProblem (std::shared_ptr< const GridGeometry > gridGeometry) | |
Scalar | temperatureAtPos (const GlobalPosition &globalPos) const |
Returns the temperature \mathrm{[K]} at a given global position. More... | |
const GravityVector & | gravity () const |
Returns the acceleration due to gravity. More... | |
bool | enableInertiaTerms () const |
Returns whether interia terms should be considered. More... | |
template<class SolutionVector , class G = GridGeometry> | |
std::enable_if< G::discMethod==DiscretizationMethod::staggered, void >::type | applyInitialFaceSolution (SolutionVector &sol, const SubControlVolumeFace &scvf, const PrimaryVariables &initSol) const |
Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization. More... | |
Scalar | pseudo3DWallFriction (const Scalar velocity, const Scalar viscosity, const Scalar height, const Scalar factor=8.0) const |
An additional drag term can be included as source term for the momentum balance to mimic 3D flow behavior in 2D: More... | |
template<class ElementVolumeVariables , class ElementFaceVariables , class G = GridGeometry> | |
std::enable_if< G::discMethod==DiscretizationMethod::staggered, Scalar >::type | pseudo3DWallFriction (const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const Scalar height, const Scalar factor=8.0) const |
Convenience function for staggered grid implementation. More... | |
Scalar | permeability (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | alphaBJ (const SubControlVolumeFace &scvf) const |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | betaBJ (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | velocityPorousMedium (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the velocity in the porous medium (which is 0 by default according to Saffmann). More... | |
const Scalar | bjsVelocity (const Element &element, const SubControlVolume &scv, const SubControlVolumeFace &faceOnPorousBoundary, const Scalar velocitySelf) const |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used More... | |
const Scalar | beaversJosephVelocity (const Element &element, const SubControlVolume &scv, const SubControlVolumeFace &faceOnPorousBoundary, const Scalar velocitySelf, const Scalar tangentialVelocityGradient) const |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used More... | |
Problem parameters | |
Scalar | temperature () const |
Returns the temperature within the domain in [K]. More... | |
template<class ElementVolumeVariables , class ElementFaceVariables > | |
NumEqVector | source (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const |
Scalar | extrusionFactorAtPos (const GlobalPosition &pos) const |
Boundary conditions | |
BoundaryTypes | boundaryTypesAtPos (const GlobalPosition &globalPos) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial value for a control volume. More... | |
Scalar | analyticalFlux () const |
Returns the analytical solution for the flux through the rectangular channel. More... | |
|
inline |
|
inlineinherited |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inline |
Returns the analytical solution for the flux through the rectangular channel.
|
inlineinherited |
Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization.
|
inlineinherited |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used
|
inlineinherited |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inlineinherited |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used
|
inline |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume.
globalPos | The position of the center of the finite volume |
|
inline |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
|
inlineinherited |
Returns whether interia terms should be considered.
|
inline |
|
inlineinherited |
Returns the acceleration due to gravity.
If the Problem.EnableGravity
parameter is true, this means \boldsymbol{g} = ( 0,\dots,\ -9.81)^T , else \boldsymbol{g} = ( 0,\dots, 0)^T
|
inline |
Evaluates the initial value for a control volume.
globalPos | The global position |
|
inlineinherited |
Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inlineinherited |
An additional drag term can be included as source term for the momentum balance to mimic 3D flow behavior in 2D:
f_{drag} = -(8 \mu / h^2)v
Here, h corresponds to the extruded height that is bounded by the imaginary walls. See Flekkoy et al. (1995) [25]
A value of 8.0 is used as a default factor, corresponding to the velocity profile at the center plane of the virtual height (maximum velocity). Setting this value to 12.0 corresponds to an depth-averaged velocity (Venturoli and Boek, 2006) [74].
|
inlineinherited |
Convenience function for staggered grid implementation.
|
inline |
|
inline |
Returns the temperature within the domain in [K].
This problem assumes a temperature of 10 degrees Celsius.
|
inlineinherited |
Returns the temperature \mathrm{[K]} at a given global position.
This is not specific to the discretization. By default it just calls temperature().
globalPos | The position in global coordinates where the temperature should be specified. |
|
inlineinherited |
Returns the velocity in the porous medium (which is 0 by default according to Saffmann).