DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
Sfx::DamBreakExSol Class Reference

#include <Sfx_DamBreakExSol.h>

Public Types

enum  eProbType { ProblemA = 0 , ProblemB = 1 }
 Test Problem type. More...

Static Public Member Functions

static float64 computeVelocity (const float64 aCoord, const float64 aTime)
 Compute velocity at a location (x-coordinate) at a given time Returns a negative value if aCoord is not a valid location.
static std::vector< float64 > computeVelocity (std::vector< float64 > aListofCoord, const float64 aTime)
 Compute the velocity profile for a list of coordinate at a given time.
static float64 computeWaterDepth (const float64 aCoord, const float64 aTime)
 Compute the water depth at a location (x-coordinate) at a given time.
static std::vector< float64 > computeWaterDepth (const std::vector< float64 > aListofCoord, const float64 aTime)
 Compute water depth profile for a list of coordinate at a given time.

Static Private Attributes

static float64 m_S = 2.957918120187525
static float64 m_U2 = m_S - m_sCte1*( 1. + m_sCte3)
static float64 m_C2 = ::sqrt( m_sCte4*( m_sCte3 - 1.))
static float64 m_Gravity = Sfx::cGravity <double>
static float64 m_SqrtG = m_Gravity*m_Gravity
static float32 m_Phi1 = 1.f
static float32 m_Phi0 = 0.5f
static float64 m_sCte1 = ( m_Gravity/(8.*m_S))
static float64 m_sCte2 = ( 16.*(m_S*m_S)/m_Gravity)
static float64 m_sCte3 = ::sqrt( 1. + m_sCte2)
static float64 m_sCte4 = m_Gravity/4.

Detailed Description

@ brief Test problems for the Shallow-Water Equations (One-Dimensional Case).

Reference: Hudson Technical Report "Numerical Techniques for the Shallow-Water Equations"

ProblemA: This problem is one the most basic problem for the Shallow-Water System of Conservation Law since no source term is present. Riverbed being constant.

ProblemB: Contains a source term and represent a Dam breaking on a variable depth riverbed.

Member Enumeration Documentation

◆ eProbType

Test Problem type.

Enumerator
ProblemA 

The Dam - Break Problem

ProblemB 

Variable depth riverbed

Member Function Documentation

◆ computeVelocity() [1/2]

float64 Sfx::DamBreakExSol::computeVelocity ( const float64 aCoord,
const float64 aTime )
static

Compute velocity at a location (x-coordinate) at a given time Returns a negative value if aCoord is not a valid location.

Parameters
aCoordx coordinate
aTimetime stamp
Returns
velocity value

◆ computeVelocity() [2/2]

std::vector< float64 > Sfx::DamBreakExSol::computeVelocity ( std::vector< float64 > aListofCoord,
const float64 aTime )
static

Compute the velocity profile for a list of coordinate at a given time.

Parameters
aListofCoordList of coordinate
aTimetime stamp
Returns
velocity value

◆ computeWaterDepth() [1/2]

float64 Sfx::DamBreakExSol::computeWaterDepth ( const float64 aCoord,
const float64 aTime )
static

Compute the water depth at a location (x-coordinate) at a given time.

Parameters
aCoordx coordinate
aTimetime stamp
Returns
water depth value

◆ computeWaterDepth() [2/2]

std::vector< float64 > Sfx::DamBreakExSol::computeWaterDepth ( const std::vector< float64 > aListofCoord,
const float64 aTime )
static

Compute water depth profile for a list of coordinate at a given time.

Parameters
aListofCoordList of coordinate
aTimetime stamp
Returns
water depth value

Member Data Documentation

◆ m_C2

float64 Sfx::DamBreakExSol::m_C2 = ::sqrt( m_sCte4*( m_sCte3 - 1.))
staticprivate

Parameters used for Test Problem A

◆ m_Gravity

float64 Sfx::DamBreakExSol::m_Gravity = Sfx::cGravity <double>
staticprivate

Gravity constant

◆ m_Phi0

float32 Sfx::DamBreakExSol::m_Phi0 = 0.5f
staticprivate

Water level at downstream

◆ m_Phi1

float32 Sfx::DamBreakExSol::m_Phi1 = 1.f
staticprivate

Water level at upstream

◆ m_S

float64 Sfx::DamBreakExSol::m_S = 2.957918120187525
staticprivate

Wave speed of the discontinuity created at x = 0

◆ m_sCte1

float64 Sfx::DamBreakExSol::m_sCte1 = ( m_Gravity/(8.*m_S))
staticprivate

Constant

◆ m_sCte2

float64 Sfx::DamBreakExSol::m_sCte2 = ( 16.*(m_S*m_S)/m_Gravity)
staticprivate

Constant

◆ m_sCte3

float64 Sfx::DamBreakExSol::m_sCte3 = ::sqrt( 1. + m_sCte2)
staticprivate

Constant

◆ m_sCte4

float64 Sfx::DamBreakExSol::m_sCte4 = m_Gravity/4.
staticprivate

Constant

◆ m_SqrtG

float64 Sfx::DamBreakExSol::m_SqrtG = m_Gravity*m_Gravity
staticprivate

Square root of the gravity

◆ m_U2

float64 Sfx::DamBreakExSol::m_U2 = m_S - m_sCte1*( 1. + m_sCte3)
staticprivate

Parameters used for Test Problem A


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