32template<
class Geometry,
class Matrix,
class Container >
74 template<
class ContainerType0,
class ContainerType1,
class ContainerType2>
75 void operator()(
const ContainerType0& lhs,
const ContainerType1& rhs, ContainerType2& result);
82 template<
class ContainerType0>
83 void set_chi(
const ContainerType0& new_chi) {
124 Container m_dxlhslhs, m_dxrhsrhs, m_dylhslhs, m_dyrhsrhs, m_helper;
125 Matrix m_dxlhs, m_dylhs, m_dxrhs, m_dyrhs;
126 Container m_chi, m_perp_vol;
132template<
class Geometry,
class Matrix,
class Container>
134 Poisson( g, g.bcx(), g.bcy(), g.bcx(), g.bcy()){}
136template<
class Geometry,
class Matrix,
class Container>
138 Poisson( g, bcx, bcy, bcx, bcy){}
140template<
class Geometry,
class Matrix,
class Container>
142 m_dxlhslhs(
dg::
evaluate(
one, g) ), m_dxrhsrhs(m_dxlhslhs), m_dylhslhs(m_dxlhslhs), m_dyrhsrhs( m_dxlhslhs), m_helper( m_dxlhslhs),
152template<
class Geometry,
class Matrix,
class Container>
153template<
class ContainerType0,
class ContainerType1,
class ContainerType2>
Convenience functions to create 2D derivatives.
Function discretization routines.
static DG_DEVICE double one(double x)
Definition: functions.h:20
void pointwiseDivide(get_value_type< ContainerType > alpha, const ContainerType1 &x1, const ContainerType2 &x2, get_value_type< ContainerType > beta, ContainerType &y)
Definition: blas1.h:428
void pointwiseDot(get_value_type< ContainerType > alpha, const ContainerType1 &x1, const ContainerType2 &x2, get_value_type< ContainerType > beta, ContainerType &y)
Definition: blas1.h:336
void symv(MatrixType &&M, const ContainerType1 &x, ContainerType2 &y)
Definition: blas2.h:287
EllSparseBlockMat< real_type > dx(const aRealTopology2d< real_type > &g, bc bcx, direction dir=centered)
Create 2d derivative in x-direction.
Definition: derivatives.h:33
bc
Switch between boundary conditions.
Definition: enums.h:15
EllSparseBlockMat< real_type > dy(const aRealTopology2d< real_type > &g, bc bcy, direction dir=centered)
Create 2d derivative in y-direction.
Definition: derivatives.h:65
@ centered
centered derivative (cell to the left and right and current cell)
Definition: enums.h:100
thrust::host_vector< real_type > evaluate(UnaryOp f, const RealGrid1d< real_type > &g)
Evaluate a 1d function on grid coordinates.
Definition: evaluation.h:67
ContainerType volume2d(const SparseTensor< ContainerType > &t)
Definition: multiply.h:379
typename TensorTraits< std::decay_t< Vector > >::value_type get_value_type
Definition: tensor_traits.h:38
Function discretization routines for mpi vectors.
This is the namespace for all functions and classes defined and used by the discontinuous Galerkin li...
Direct discretization of Poisson bracket .
Definition: poisson.h:34
const Matrix & dylhs() const
Return internally used y - derivative.
Definition: poisson.h:102
const Matrix & dxrhs() const
Return internally used x - derivative.
Definition: poisson.h:111
const Matrix & dxlhs() const
Return internally used x - derivative.
Definition: poisson.h:93
Poisson(const Geometry &g, bc bcx, bc bcy)
Create Poisson on a grid using different boundary conditions.
Geometry geometry_type
Definition: poisson.h:35
Poisson(const Geometry &g, bc bcxlhs, bc bcylhs, bc bcxrhs, bc bcyrhs)
Create Poisson on a grid using different boundary conditions.
const Matrix & dyrhs()
Return internally used y - derivative.
Definition: poisson.h:119
get_value_type< Container > value_type
Definition: poisson.h:38
Poisson(const Geometry &g)
Create Poisson on a grid.
Container container_type
Definition: poisson.h:37
void set_chi(const ContainerType0 &new_chi)
Change Chi.
Definition: poisson.h:83
Matrix matrix_type
Definition: poisson.h:36
void operator()(const ContainerType0 &lhs, const ContainerType1 &rhs, ContainerType2 &result)
Compute poisson's bracket.