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

First derivative at second and fourth order. provide a stencil concept to evaluate derivative without spurious oscillations (ENO: Essentially Non-Oscillatory. More...

#include <Sfx_ENOD1X.h>

Classes

struct  stencil
struct  vector

Public Member Functions

 FiniteDifferenceDerivative (std::string aName, const dbpp::Gamma &aBC, bool aUseENOSten)
 FiniteDifferenceDerivative (const FiniteDifferenceDerivative &aOther)=delete
FiniteDifferenceDerivativeoperator= (const FiniteDifferenceDerivative &aOther)=delete
 ~FiniteDifferenceDerivative ()=default
std::valarray< float64 > d1x (const Sfx::scalarField1D *aScalrField, const dbpp::PhysicalBoundaryCnd &aBC)
bool useENOStencil () const
void setDerivativeOrder (int aOrder)
void setStencilType (eStenType aStenType)
eStenType getStencil () const
size_t getDerivativeOrder () const
size_t getGlobalDimension () const

Private Types

enum class  eStenType { None =0 , periodic =1 , nonperiodic =2 }
 derivative stencil type More...

Private Member Functions

vectornew_vector (void)
void free_vector (vector *)
stencileno_stencil (vector *aStencil)
 Computation of stencil for ENO (Essentially Non-Oscillatory) reconstruction. Determine the central index of the stencil.We use the divided difference at first and second order to obtain information about the behavior of the function.
vectord1x (vector *aVec, stencil *aSten=nullptr)
void setdx (double dx)

Private Attributes

std::string m_name
int m_derivOrder
eStenType m_stenType
bool m_useSten
double m_dx

Static Private Attributes

static constexpr int DIM = 100

Detailed Description

First derivative at second and fourth order. provide a stencil concept to evaluate derivative without spurious oscillations (ENO: Essentially Non-Oscillatory.

Member Enumeration Documentation

◆ eStenType

derivative stencil type

Enumerator
None 
periodic 
nonperiodic 

Constructor & Destructor Documentation

◆ FiniteDifferenceDerivative() [1/2]

Sfx::FiniteDifferenceDerivative::FiniteDifferenceDerivative ( std::string aName,
const dbpp::Gamma & aBC,
bool aUseENOSten )
inline

ENO stencil used

◆ FiniteDifferenceDerivative() [2/2]

Sfx::FiniteDifferenceDerivative::FiniteDifferenceDerivative ( const FiniteDifferenceDerivative & aOther)
delete

◆ ~FiniteDifferenceDerivative()

Sfx::FiniteDifferenceDerivative::~FiniteDifferenceDerivative ( )
default

Member Function Documentation

◆ d1x() [1/2]

std::valarray< float64 > Sfx::FiniteDifferenceDerivative::d1x ( const Sfx::scalarField1D * aScalrField,
const dbpp::PhysicalBoundaryCnd & aBC )
Parameters
aScalrField
aBC
Returns

◆ d1x() [2/2]

FiniteDifferenceDerivative::vector * Sfx::FiniteDifferenceDerivative::d1x ( FiniteDifferenceDerivative::vector * a,
FiniteDifferenceDerivative::stencil * s = nullptr )
private
Parameters
aVec
aSten
Returns

◆ eno_stencil()

FiniteDifferenceDerivative::stencil * Sfx::FiniteDifferenceDerivative::eno_stencil ( FiniteDifferenceDerivative::vector * a)
private

Computation of stencil for ENO (Essentially Non-Oscillatory) reconstruction. Determine the central index of the stencil.We use the divided difference at first and second order to obtain information about the behavior of the function.

Returns
CENTRAL index of the stencil

◆ free_vector()

void Sfx::FiniteDifferenceDerivative::free_vector ( vector * a)
private

◆ getDerivativeOrder()

size_t Sfx::FiniteDifferenceDerivative::getDerivativeOrder ( ) const
inline
Returns

◆ getGlobalDimension()

size_t Sfx::FiniteDifferenceDerivative::getGlobalDimension ( ) const
inline
Returns

◆ getStencil()

eStenType Sfx::FiniteDifferenceDerivative::getStencil ( ) const
inline
Returns

◆ new_vector()

FiniteDifferenceDerivative::vector * Sfx::FiniteDifferenceDerivative::new_vector ( void )
private

◆ operator=()

FiniteDifferenceDerivative & Sfx::FiniteDifferenceDerivative::operator= ( const FiniteDifferenceDerivative & aOther)
delete

◆ setDerivativeOrder()

void Sfx::FiniteDifferenceDerivative::setDerivativeOrder ( int aOrder)
inline
Parameters
aOrder

◆ setdx()

void Sfx::FiniteDifferenceDerivative::setdx ( double dx)
inlineprivate
Parameters
dx

◆ setStencilType()

void Sfx::FiniteDifferenceDerivative::setStencilType ( eStenType aStenType)
inline
Parameters
aStenType

◆ useENOStencil()

bool Sfx::FiniteDifferenceDerivative::useENOStencil ( ) const
inline
Returns

Member Data Documentation

◆ DIM

int Sfx::FiniteDifferenceDerivative::DIM = 100
staticconstexprprivate

◆ m_derivOrder

int Sfx::FiniteDifferenceDerivative::m_derivOrder
private

◆ m_dx

double Sfx::FiniteDifferenceDerivative::m_dx
private

◆ m_name

std::string Sfx::FiniteDifferenceDerivative::m_name
private

◆ m_stenType

eStenType Sfx::FiniteDifferenceDerivative::m_stenType
private

◆ m_useSten

bool Sfx::FiniteDifferenceDerivative::m_useSten
private

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