Discontinuous Galerkin Library
#include "dg/algorithm.h"
|
Insert equidistant points in between dG nodes. More...
Public Member Functions | |
RealFemRefinement (unsigned multiple) | |
Refine every cell in the grid by an integer number of new cells. More... | |
virtual RealFemRefinement * | clone () 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 aRealRefinement1d * | clone () const =0 |
virtual | ~aRealRefinement1d ()=default |
Additional Inherited Members | |
Protected Member Functions inherited from dg::aRealRefinement1d< real_type > | |
aRealRefinement1d ()=default | |
aRealRefinement1d (const aRealRefinement1d &src)=default | |
aRealRefinement1d & | operator= (const aRealRefinement1d &src)=default |
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.
|
inline |
Refine every cell in the grid by an integer number of new cells.
multiple | multiply every cell |
|
inlinevirtual |
Implements dg::aRealRefinement1d< real_type >.