Discontinuous Galerkin Library
#include "dg/algorithm.h"
dg::RealFemRefinement< real_type > Struct Template Reference

Insert equidistant points in between dG nodes. More...

Inheritance diagram for dg::RealFemRefinement< real_type >:
[legend]

Public Member Functions

 RealFemRefinement (unsigned multiple)
 Refine every cell in the grid by an integer number of new cells. More...
 
virtual RealFemRefinementclone () const
 
- Public Member Functions inherited from dg::aRealRefinement1d< real_type >
void generate (const RealGrid1d< real_type > &g_old, thrust::host_vector< real_type > &weights, thrust::host_vector< real_type > &abscissas) const
 Generate the grid transformation. More...
 
unsigned N_new (unsigned N_old, bc bcx) const
 the new number of cells More...
 
virtual aRealRefinement1dclone () const =0
 
virtual ~aRealRefinement1d ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from dg::aRealRefinement1d< real_type >
 aRealRefinement1d ()=default
 
 aRealRefinement1d (const aRealRefinement1d &src)=default
 
aRealRefinement1doperator= (const aRealRefinement1d &src)=default
 

Detailed Description

template<class real_type>
struct dg::RealFemRefinement< real_type >

Insert equidistant points in between dG nodes.

If multiple equals M, then M-1 equidistant points are inserted in between the old dG nodes The result consists of M*N*n points in total: the old dG nodes plus the new points. The overall grid is not equidistant since the old dG nodes are not. At the boundaries we insert M/2 points each. The weights are made to model Simpson's 1/3 rule. If M is uneven then the last point has Simpson's 3/8 rule. For the boundary cells we use the trapezoidal rule.

See also
For an explanation of Simpson's rule: https://en.wikipedia.org/wiki/Simpson%27s_rule

Constructor & Destructor Documentation

◆ RealFemRefinement()

template<class real_type >
dg::RealFemRefinement< real_type >::RealFemRefinement ( unsigned  multiple)
inline

Refine every cell in the grid by an integer number of new cells.

Parameters
multiplemultiply every cell

Member Function Documentation

◆ clone()

template<class real_type >
virtual RealFemRefinement * dg::RealFemRefinement< real_type >::clone ( ) const
inlinevirtual

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