OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
D< d, arg, Sys_eqs, CENTRAL > Class Template Reference

Second order central Derivative scheme on direction i. More...

Detailed Description

template<unsigned int d, typename arg, typename Sys_eqs>
class D< d, arg, Sys_eqs, CENTRAL >

Second order central Derivative scheme on direction i.

*
*  -1        +1
*   *---+---*
*
* 

Definition at line 80 of file Derivative.hpp.

#include <Derivative.hpp>

Static Public Member Functions

static void value (const typename stub_or_real< Sys_eqs, Sys_eqs::dims, typename Sys_eqs::stype, typename Sys_eqs::b_grid::decomposition::extended_type >::type &g_map, grid_dist_key_dx< Sys_eqs::dims > &kmap, const grid_sm< Sys_eqs::dims, void > &gs, typename Sys_eqs::stype(&spacing)[Sys_eqs::dims], std::unordered_map< long int, typename Sys_eqs::stype > &cols, typename Sys_eqs::stype coeff)
 Calculate which colums of the Matrix are non zero.
 
static grid_key_dx< Sys_eqs::dims > position (grid_key_dx< Sys_eqs::dims > &pos, const grid_sm< Sys_eqs::dims, void > &gs, const comb< Sys_eqs::dims >(&s_pos)[Sys_eqs::nvar])
 Calculate the position where the derivative is calculated.
 

Member Function Documentation

◆ position()

template<unsigned int d, typename arg , typename Sys_eqs >
static grid_key_dx< Sys_eqs::dims > D< d, arg, Sys_eqs, CENTRAL >::position ( grid_key_dx< Sys_eqs::dims > &  pos,
const grid_sm< Sys_eqs::dims, void > &  gs,
const comb< Sys_eqs::dims >(&)  s_pos[Sys_eqs::nvar] 
)
inlinestatic

Calculate the position where the derivative is calculated.

In case on non staggered case this function just return a null grid_key, in case of staggered, it calculate how the operator shift in the cell

  +--$--+
  |     |
  #  *  #
  |     |
  0--$--+

# = velocity(y)
$ = velocity(x)
* = pressure

Consider this 2D staggered cell and a second order central derivative scheme, this lead to

\( \frac{\partial v_y}{\partial x} \) is calculated on position (*), so the function return the grid_key {0,0}

\( \frac{\partial v_y}{\partial y} \) is calculated on position (0), so the function return the grid_key {-1,-1}

\( \frac{\partial v_x}{\partial x} \) is calculated on position (0), so the function return the grid_key {-1,-1}

\( \frac{\partial v_x}{\partial y} \) is calculated on position (*), so the function return the grid_key {0,0}

Parameters
posposition where we are calculating the derivative
gsGrid info
s_posstaggered position of the properties
Returns
where (in which cell grid) the derivative is calculated

Definition at line 161 of file Derivative.hpp.

◆ value()

template<unsigned int d, typename arg , typename Sys_eqs >
static void D< d, arg, Sys_eqs, CENTRAL >::value ( const typename stub_or_real< Sys_eqs, Sys_eqs::dims, typename Sys_eqs::stype, typename Sys_eqs::b_grid::decomposition::extended_type >::type &  g_map,
grid_dist_key_dx< Sys_eqs::dims > &  kmap,
const grid_sm< Sys_eqs::dims, void > &  gs,
typename Sys_eqs::stype(&)  spacing[Sys_eqs::dims],
std::unordered_map< long int, typename Sys_eqs::stype > &  cols,
typename Sys_eqs::stype  coeff 
)
inlinestatic

Calculate which colums of the Matrix are non zero.

Parameters
g_mapmapping grid
kmapposition where the derivative is calculated
gsGrid info
spacinggrid spacing
colsnon-zero colums calculated by the function
coeffcoefficent (constant in front of the derivative)

Example

Definition at line 98 of file Derivative.hpp.


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