It model an expression expr1 * expr2.
More...
#include <mul.hpp>
|
|
typedef boost::mpl::vector< expr... > | v_expr |
| | Transform from variadic template to boost mpl vector.
|
| |
|
typedef boost::mpl::size< v_expr >::type | v_sz |
| | size of v_expr
|
| |
|
typedef boost::mpl::at< v_expr, boost::mpl::int_< v_sz::type::value - 1 > >::type | Sys_eqs |
| | type on which this expression operate
|
| |
|
| static void | value (const grid_dist_id< Sys_eqs::dims, typename Sys_eqs::stype, aggregate< size_t >, typename Sys_eqs::b_grid::decomposition::extended_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. More...
|
| |
| 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 in the cell where the mul operator is performed. More...
|
| |
template<typename ... expr>
struct mul< expr >
It model an expression expr1 * expr2.
- Warning
- expr1 MUST be a constant expression only expr2 depend form variable, this requirement ensure linearity in the solving variable of the equations
- Template Parameters
-
Definition at line 119 of file mul.hpp.
◆ position()
template<typename ... expr>
| static grid_key_dx<Sys_eqs::dims> mul< expr >::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 in the cell where the mul operator is performed.
it just return the position of the staggered property in the last expression
- Parameters
-
| pos | position where we are calculating the derivative |
| gs | Grid info |
| s_pos | staggered position of the properties |
Definition at line 167 of file mul.hpp.
◆ value()
template<typename ... expr>
| static void mul< expr >::value |
( |
const grid_dist_id< Sys_eqs::dims, typename Sys_eqs::stype, aggregate< size_t >, typename Sys_eqs::b_grid::decomposition::extended_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_map | mapping grid |
| kmap | position where the multiplication is calculated |
| gs | Grid info |
| spacing | of the grid |
| cols | non-zero colums calculated by the function |
| coeff | coefficent (constant in front of the derivative) |
Last element of multiplication
Definition at line 140 of file mul.hpp.
The documentation for this struct was generated from the following file:
- openfpm_numerics/src/FiniteDifference/mul.hpp