DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp::HLLFluxAlgorithm Class Reference

Numerical flux algorithm based on HLL (Harten-Lax_Levy). More...

#include <dbpp_HLLFluxAlgorithm.h>

Inheritance diagram for dbpp::HLLFluxAlgorithm:
dbpp::FluxAlgorithm

Public Types

using mapcellfaceVar = std::map<short, std::pair<Sfx::StateVector, Sfx::StateVector>>

Public Member Functions

 HLLFluxAlgorithm (const ePhysicalFluxType aPhyFluxType=ePhysicalFluxType::incomplete)
 ctor based on physical flux type (default incomplete)
void setFluxType (ePhysicalFluxType aFluxType) noexcept
 Complete flux or incomplete.
ePhysicalFluxType getFluxType () const noexcept
 physical flux
bool useReconstr () const noexcept override final
 use variable reconstruction
bool usePhysicalCompleteFlux () const noexcept override final
 default (only hydrostatic term is considered)
void setReconstrType (eReconstrType aRecnstrType) noexcept
 Reconstruction of variables.
eReconstrType getReconstrType () const noexcept
 MUSCL as default.
void setPhysicalBndCnd (const PhysicalBoundaryCnd &aPhysbc) noexcept
 physical boundary condition
void setReconstrVarOrder (int32 aOrder) noexcept override
 cell face variable reconstr order (second-order default)
int32 getReconstrVarOrder () const noexcept override
 reconstruction variable
void setReconstrMethod () noexcept
 MUSCL as default.
void setFluxAlgoPrms () override
 Flux algorithm parameters.
void setApprRiemanSolver (const HLLSolver1D *aRsolver)
FluxTensor calculFF (const Sfx::cellFaceVariables &aFaceVariables) override final
 numerical flux at cell face
FluxTensorMap calculFF (const Sfx::scalarField1D &U1, const Sfx::scalarField1D &U2, const Omega &aDomain, const PhysicalBoundaryCnd &aPhysbc) override final
 Harten-Lax- Levy flux algorithm.
FluxTensor calculFF (const Sfx::StateVector &aUL, const Sfx::StateVector &aUR, const cellFace &aCellFace) override final
 Numerical flux algorithm.
FluxTensorMap calculFF (const Sfx::scalarField1D &aU1, const Sfx::scalarField1D &aU2, const PhysicalBoundaryCnd &aPhysbc) override final
 Numerical flux algorithm.
Public Member Functions inherited from dbpp::FluxAlgorithm
virtual bool usePhysicalInCompleteFlux () const noexcept
 numerical flux based components (only hydrostatic term is considered)

Protected Member Functions

FluxTensorMap calculFF (std::vector< float64 > &&U1, std::vector< float64 > &&U2, const PhysicalBoundaryCnd &aPhysbc)
 Numerical flux algorithm.
FluxTensorMap calculFF (const std::valarray< float64 > &aU1, std::valarray< float64 > &aU2, const std::list< cellFace > &aListClFace, const PhysicalBoundaryCnd &aPhysbc)
 Numerical flux algorithm.
virtual void computeCellFacePhysicalFlux (const Sfx::cellFaceVariables &aFaceVar)
 physical flux (FL/FR) for both state variables (A,Q)
virtual void computeCellFacePhysicalFlux (const Sfx::StateVector &aUL, const Sfx::StateVector &aUR)
 physical flux (FL/FR) for both state variables (A,Q)

Private Member Functions

virtual mapcellfaceVar reconstr (const std::list< cellFace > &aListCellFace, std::vector< float64 > &&aA, std::vector< float64 > &&aQ)
 Resonstrution of state varaibles at cell face.

Private Attributes

int32 m_varOrder
ePhysicalFluxType m_fluxType
eReconstrType m_reconstrType
MUSCLReconstr m_musclReconstr

Detailed Description

Numerical flux algorithm based on HLL (Harten-Lax_Levy).

Member Typedef Documentation

◆ mapcellfaceVar

using dbpp::HLLFluxAlgorithm::mapcellfaceVar = std::map<short, std::pair<Sfx::StateVector, Sfx::StateVector>>

Alias

Constructor & Destructor Documentation

◆ HLLFluxAlgorithm()

dbpp::HLLFluxAlgorithm::HLLFluxAlgorithm ( const ePhysicalFluxType aPhyFluxType = ePhysicalFluxType::incomplete)
inline

ctor based on physical flux type (default incomplete)

Member Function Documentation

◆ calculFF() [1/6]

FluxTensor dbpp::HLLFluxAlgorithm::calculFF ( const Sfx::cellFaceVariables & aFaceVariables)
finaloverridevirtual

numerical flux at cell face

Parameters
aFaceVariablescell face variables
Returns
flux tensor

Implements dbpp::FluxAlgorithm.

◆ calculFF() [2/6]

FluxTensorMap dbpp::HLLFluxAlgorithm::calculFF ( const Sfx::scalarField1D & aU1,
const Sfx::scalarField1D & aU2,
const PhysicalBoundaryCnd & aPhysbc )
inlinefinaloverridevirtual

Numerical flux algorithm.

Parameters
aU1first state variable
aU2second state variable
aPhysbcphysical boundary cond
Returns
rensor flux

Implements dbpp::FluxAlgorithm.

◆ calculFF() [3/6]

dbpp::FluxTensorMap dbpp::HLLFluxAlgorithm::calculFF ( const Sfx::scalarField1D & U1,
const Sfx::scalarField1D & U2,
const Omega & aDomain,
const PhysicalBoundaryCnd & aPhysbc )
finaloverridevirtual

Harten-Lax- Levy flux algorithm.

Parameters
U1scalar field first state variable
U2scalar field second state variable
aDomaincomputational domain (cells)
aPhysbcphysical boundary cond.
Returns
flux tensor

Implements dbpp::FluxAlgorithm.

◆ calculFF() [4/6]

FluxTensor dbpp::HLLFluxAlgorithm::calculFF ( const Sfx::StateVector & aUL,
const Sfx::StateVector & aUR,
const cellFace & aCellFace )
inlinefinaloverridevirtual

Numerical flux algorithm.

Parameters
aULleft state
aURright state
cellFacecell face
Returns
flux tensor

Implements dbpp::FluxAlgorithm.

◆ calculFF() [5/6]

dbpp::FluxTensorMap dbpp::HLLFluxAlgorithm::calculFF ( const std::valarray< float64 > & aU1,
std::valarray< float64 > & aU2,
const std::list< cellFace > & aListClFace,
const PhysicalBoundaryCnd & aPhysbc )
protected

Numerical flux algorithm.

Parameters
aU1first state variable
aU2second state variable
aListClFacelist of cell faces
aPhysbcphysical boundary cond
Returns
tensor flux

◆ calculFF() [6/6]

FluxTensorMap dbpp::HLLFluxAlgorithm::calculFF ( std::vector< float64 > && U1,
std::vector< float64 > && U2,
const PhysicalBoundaryCnd & aPhysbc )
protected

Numerical flux algorithm.

Parameters
U1first state variable
U2ssecond state variable
aPhysbcphysical boundary cond
Returns
tensor flux

◆ computeCellFacePhysicalFlux() [1/2]

void dbpp::HLLFluxAlgorithm::computeCellFacePhysicalFlux ( const Sfx::cellFaceVariables & aFaceVar)
protectedvirtual

physical flux (FL/FR) for both state variables (A,Q)

Parameters
aFaceVar

◆ computeCellFacePhysicalFlux() [2/2]

void dbpp::HLLFluxAlgorithm::computeCellFacePhysicalFlux ( const Sfx::StateVector & aUL,
const Sfx::StateVector & aUR )
protectedvirtual

physical flux (FL/FR) for both state variables (A,Q)

Parameters
aULleft state vector
aURright state vector

◆ getFluxType()

ePhysicalFluxType dbpp::HLLFluxAlgorithm::getFluxType ( ) const
inlinenoexcept

physical flux

Returns
type

◆ getReconstrType()

eReconstrType dbpp::HLLFluxAlgorithm::getReconstrType ( ) const
inlinevirtualnoexcept

MUSCL as default.

Returns
type of reonstruction

Implements dbpp::FluxAlgorithm.

◆ getReconstrVarOrder()

int32 dbpp::HLLFluxAlgorithm::getReconstrVarOrder ( ) const
inlineoverridevirtualnoexcept

reconstruction variable

Returns
variable order

Reimplemented from dbpp::FluxAlgorithm.

◆ reconstr()

HLLFluxAlgorithm::mapcellfaceVar dbpp::HLLFluxAlgorithm::reconstr ( const std::list< cellFace > & aListCellFace,
std::vector< float64 > && aA,
std::vector< float64 > && aQ )
privatevirtual

Resonstrution of state varaibles at cell face.

Parameters
aListCellFacelist of cell faces
aAstate variable
aQstate variable
Returns
map of reconstructed variables

◆ setApprRiemanSolver()

void dbpp::HLLFluxAlgorithm::setApprRiemanSolver ( const HLLSolver1D * aRsolver)
inline

◆ setFluxAlgoPrms()

void dbpp::HLLFluxAlgorithm::setFluxAlgoPrms ( )
inlineoverridevirtual

Flux algorithm parameters.

Reimplemented from dbpp::FluxAlgorithm.

◆ setFluxType()

void dbpp::HLLFluxAlgorithm::setFluxType ( ePhysicalFluxType aFluxType)
inlinenoexcept

Complete flux or incomplete.

Parameters
aFluxType

◆ setPhysicalBndCnd()

void dbpp::HLLFluxAlgorithm::setPhysicalBndCnd ( const PhysicalBoundaryCnd & aPhysbc)
inlinenoexcept

physical boundary condition

Parameters
aPhysbcphysical boundary

◆ setReconstrMethod()

void dbpp::HLLFluxAlgorithm::setReconstrMethod ( )
inlinenoexcept

MUSCL as default.

Returns

◆ setReconstrType()

void dbpp::HLLFluxAlgorithm::setReconstrType ( eReconstrType aRecnstrType)
inlinevirtualnoexcept

Reconstruction of variables.

Parameters
aRecnstrTypetype of reconstruction

Implements dbpp::FluxAlgorithm.

◆ setReconstrVarOrder()

void dbpp::HLLFluxAlgorithm::setReconstrVarOrder ( int32 aOrder)
inlineoverridevirtualnoexcept

cell face variable reconstr order (second-order default)

Parameters
aOrdervariable order

Reimplemented from dbpp::FluxAlgorithm.

◆ usePhysicalCompleteFlux()

bool dbpp::HLLFluxAlgorithm::usePhysicalCompleteFlux ( ) const
inlinefinaloverridevirtualnoexcept

default (only hydrostatic term is considered)

Returns
true/false

Reimplemented from dbpp::FluxAlgorithm.

◆ useReconstr()

bool dbpp::HLLFluxAlgorithm::useReconstr ( ) const
inlinefinaloverridevirtualnoexcept

use variable reconstruction

Returns
true/false

Reimplemented from dbpp::FluxAlgorithm.

Member Data Documentation

◆ m_fluxType

ePhysicalFluxType dbpp::HLLFluxAlgorithm::m_fluxType
private

flux type

◆ m_musclReconstr

MUSCLReconstr dbpp::HLLFluxAlgorithm::m_musclReconstr
private

muscl reconstruction

◆ m_reconstrType

eReconstrType dbpp::HLLFluxAlgorithm::m_reconstrType
private

extrapolation procedure

◆ m_varOrder

int32 dbpp::HLLFluxAlgorithm::m_varOrder
private

state variable order


The documentation for this class was generated from the following files: