DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
Testvs19::WaveSimulator Class Reference

Wave simulator (simulate dam-break wave propagation). More...

#include <Testvs19_WaveSimulator.h>

Inheritance diagram for Testvs19::WaveSimulator:

Public Types

enum class  eSurfaceWaveForm { SINE = 0 , FCTSTEP = 1 }
enum class  eRiverBedForm { FLAT = 0 , STEP = 1 , RANDOM = 2 }

Public Member Functions

 WaveSimulator ()
 WaveSimulator (const WaveSimulator &aOther)=delete
 prevent client from using it
 WaveSimulator (const WaveSimulator &&aOther)=delete
WaveSimulatoroperator= (const WaveSimulator &aOther)=delete
WaveSimulatoroperator= (const WaveSimulator &&aOther)=delete
bool init () override final
 initialize simulator
void run () override final
 main loop o fthe simulator
void unInitialize () override final
 clean-up
std::valarray< float64 > getH () const noexcept
 water level of each section
void update () override final
 update wave profile

Protected Member Functions

virtual void saveResults (std::ofstream &aFile, const float32 aTime)
 Dump results in a file.
std::shared_ptr< WaveSimulatorsharedPtrTo ()
 share the ownership of 'this' with all existing std::shared_ptr that refer to *this.

Protected Attributes

std::shared_ptr< Sfx::SfxTimePrm > m_Tip
std::shared_ptr< Sfx::WaveFunc > m_Z
std::shared_ptr< Sfx::WaveFunc > m_H

Private Types

using ListSectionPtr = std::shared_ptr<ListSectionsFlow<dbpp::SectionFlow>>

Private Attributes

eSurfaceWaveForm m_InitWaveForm
eRiverBedForm m_RiverBed
std::vector< float64 > m_waveProfile
ListSectionPtr m_setofSectFlow

Detailed Description

Wave simulator (simulate dam-break wave propagation).

Member Typedef Documentation

◆ ListSectionPtr

Member Enumeration Documentation

◆ eRiverBedForm

An enum type. Initial bed (topography) profile

Enumerator
FLAT 

not variable topography

STEP 

variable topography (step)

RANDOM 

variable topography

◆ eSurfaceWaveForm

An enum type. Initial solution profile

Enumerator
SINE 

sine function wave form

FCTSTEP 

step function

Constructor & Destructor Documentation

◆ WaveSimulator() [1/3]

Testvs19::WaveSimulator::WaveSimulator ( )

◆ WaveSimulator() [2/3]

Testvs19::WaveSimulator::WaveSimulator ( const WaveSimulator & aOther)
delete

prevent client from using it

Parameters
aOtherobject to copy/assign from

◆ WaveSimulator() [3/3]

Testvs19::WaveSimulator::WaveSimulator ( const WaveSimulator && aOther)
delete

Member Function Documentation

◆ getH()

std::valarray< float64 > Testvs19::WaveSimulator::getH ( ) const
inlinenoexcept

water level of each section

Returns
array of values

◆ init()

bool Testvs19::WaveSimulator::init ( )
finaloverride

initialize simulator

Returns
true/false on success

◆ operator=() [1/2]

WaveSimulator & Testvs19::WaveSimulator::operator= ( const WaveSimulator && aOther)
delete

◆ operator=() [2/2]

WaveSimulator & Testvs19::WaveSimulator::operator= ( const WaveSimulator & aOther)
delete

◆ run()

void Testvs19::WaveSimulator::run ( )
finaloverride

main loop o fthe simulator

◆ saveResults()

void Testvs19::WaveSimulator::saveResults ( std::ofstream & aFile,
const float32 aTime )
protectedvirtual

Dump results in a file.

Parameters
aFilefile stream
aTimesimulation time

◆ sharedPtrTo()

std::shared_ptr< WaveSimulator > Testvs19::WaveSimulator::sharedPtrTo ( )
inlineprotected

share the ownership of 'this' with all existing std::shared_ptr that refer to *this.

Returns
shared pointer

◆ unInitialize()

void Testvs19::WaveSimulator::unInitialize ( )
inlinefinaloverride

clean-up

◆ update()

void Testvs19::WaveSimulator::update ( )
finaloverride

update wave profile

Member Data Documentation

◆ m_H

std::shared_ptr<Sfx::WaveFunc> Testvs19::WaveSimulator::m_H
protected

◆ m_InitWaveForm

eSurfaceWaveForm Testvs19::WaveSimulator::m_InitWaveForm
private

Surface wave form

◆ m_RiverBed

eRiverBedForm Testvs19::WaveSimulator::m_RiverBed
private

river topography profile

◆ m_setofSectFlow

ListSectionPtr Testvs19::WaveSimulator::m_setofSectFlow
private

◆ m_Tip

std::shared_ptr<Sfx::SfxTimePrm> Testvs19::WaveSimulator::m_Tip
protected

◆ m_waveProfile

std::vector<float64> Testvs19::WaveSimulator::m_waveProfile
private

water level

◆ m_Z

std::shared_ptr<Sfx::WaveFunc> Testvs19::WaveSimulator::m_Z
protected

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