Non-uniform grid builder that uses hyperbolic sine function. More...

#include <hsineGridBuilder.hpp>

Inheritance diagram for marian::HSineGridBuilder:
marian::DCGridBuilder< HSineGridBuilder > marian::GridBuilder

Public Member Functions

 HSineGridBuilder (double c)
 Constructor.
 
std::vector< double > buildGrid (double low, double upp, int N, double concentration) const override
 builds non-uniform grid More...
 
 ~HSineGridBuilder ()
 Destructor.
 
- Public Member Functions inherited from marian::DCGridBuilder< HSineGridBuilder >
virtual GridBuilderclone () const
 Virtual copy constructor.
 
- Public Member Functions inherited from marian::GridBuilder
virtual ~GridBuilder ()
 destructor
 

Private Attributes

double c_
 Control parameter. Must be greater then 0.0. If the value of parameter is smaller, grid become more concentrated around concentration point.
 

Detailed Description

Class is used to generate non-uniform grid. The algorithm is basing on method proposed by Tavella & Randall [3] and Kluge [15] and briefly described and discussed by Hout & Foulon in [8].

The grid build on interval $(x_{min},x_{max})$ with a concentration point $x_K$ and c control parameter is constructed in following steps:

1) We define uniform grid

\[t_i = arcsinh\big(\frac{-k}{c} + i \delta t\big)\]

where $k = \frac{x_K-x_{min}}{x_{max} - x_{min}}$ and $\delta t = \frac{1}{M} \Big(arcsinh\big(\frac{t_{max}-k}{c}\big) - arcsinh\big(\frac{-k}{c}\big)\Big)$:

\[s_i = x_{min} + (k + c \times sinh(t_i))\]

Below plot presents the construction of non-uniform grid for different control parameters

nonuniform_param.png

Plots below visualize the uniform grid for different values of control parameter and different concentration points.

nonuniform.png
Examples:
convergenceExample.cpp.

Member Function Documentation

std::vector< double > marian::HSineGridBuilder::buildGrid ( double  low,
double  upp,
int  N,
double  concentration 
) const
overridevirtual
Parameters
lowLower bound
uppUpper bound
concentrationConcentration point
NNumber of grid points (N-1 intervals between lower and upper bound)

Implements marian::GridBuilder.


The documentation for this class was generated from the following files:
  • C:/Unix/home/OEM/fdm/src/FDM/gridBuilders/hsineGridBuilder.hpp
  • C:/Unix/home/OEM/fdm/src/FDM/gridBuilders/hsineGridBuilder.cpp