Extension: Geometries
#include "dg/geometries/geometries.h"
dg::geo::aRealGeneratorX2d< real_type > Struct Template Referenceabstract

The abstract generator base class. More...

Inheritance diagram for dg::geo::aRealGeneratorX2d< real_type >:
[legend]

Public Member Functions

real_type zeta0 (real_type fx) const
 
real_type zeta1 (real_type fx) const
 
real_type eta0 (real_type fy) const
 
real_type eta1 (real_type fy) const
 
bool isOrthogonal () const
 sparsity pattern for metric More...
 
void generate (const thrust::host_vector< real_type > &zeta1d, const thrust::host_vector< real_type > &eta1d, unsigned nodeX0, unsigned nodeX1, thrust::host_vector< real_type > &x, thrust::host_vector< real_type > &y, thrust::host_vector< real_type > &zetaX, thrust::host_vector< real_type > &zetaY, thrust::host_vector< real_type > &etaX, thrust::host_vector< real_type > &etaY) const
 Generate grid points and elements of the Jacobian. More...
 
virtual aRealGeneratorX2dclone () const =0
 Abstract clone method that returns a copy on the heap. More...
 
virtual ~aRealGeneratorX2d ()
 

Protected Member Functions

 aRealGeneratorX2d ()
 
 aRealGeneratorX2d (const aRealGeneratorX2d &src)
 
aRealGeneratorX2doperator= (const aRealGeneratorX2d &src)
 

Detailed Description

template<class real_type>
struct dg::geo::aRealGeneratorX2d< real_type >

The abstract generator base class.

A generator is there to construct coordinate transformations from physical coordinates \( x,y\) to the computational domain \(\zeta, \eta\), which is a product space.

Note
the origin of the computational space is assumed to be (0,0)

Constructor & Destructor Documentation

◆ ~aRealGeneratorX2d()

template<class real_type >
virtual dg::geo::aRealGeneratorX2d< real_type >::~aRealGeneratorX2d ( )
inlinevirtual

◆ aRealGeneratorX2d() [1/2]

template<class real_type >
dg::geo::aRealGeneratorX2d< real_type >::aRealGeneratorX2d ( )
inlineprotected

◆ aRealGeneratorX2d() [2/2]

template<class real_type >
dg::geo::aRealGeneratorX2d< real_type >::aRealGeneratorX2d ( const aRealGeneratorX2d< real_type > &  src)
inlineprotected

Member Function Documentation

◆ clone()

template<class real_type >
virtual aRealGeneratorX2d * dg::geo::aRealGeneratorX2d< real_type >::clone ( ) const
pure virtual

Abstract clone method that returns a copy on the heap.

Returns
a copy of *this on the heap

Implemented in dg::geo::RibeiroX, and dg::geo::SeparatrixOrthogonal.

◆ eta0()

template<class real_type >
real_type dg::geo::aRealGeneratorX2d< real_type >::eta0 ( real_type  fy) const
inline

◆ eta1()

template<class real_type >
real_type dg::geo::aRealGeneratorX2d< real_type >::eta1 ( real_type  fy) const
inline

◆ generate()

template<class real_type >
void dg::geo::aRealGeneratorX2d< real_type >::generate ( const thrust::host_vector< real_type > &  zeta1d,
const thrust::host_vector< real_type > &  eta1d,
unsigned  nodeX0,
unsigned  nodeX1,
thrust::host_vector< real_type > &  x,
thrust::host_vector< real_type > &  y,
thrust::host_vector< real_type > &  zetaX,
thrust::host_vector< real_type > &  zetaY,
thrust::host_vector< real_type > &  etaX,
thrust::host_vector< real_type > &  etaY 
) const
inline

Generate grid points and elements of the Jacobian.

Parameters
zeta1d(input) a list of \( N_\zeta\) points \( 0<\zeta_i<\)width()
eta1d(input) a list of \( N_\eta\) points \( 0<\eta_j<\)height()
nodeX0is the index of the first point in eta1d after the first jump in topology in \( \eta\)
nodeX1is the index of the first point in eta1d after the second jump in topology in \( \eta\)
x(output) the list of \( N_\eta N_\zeta\) coordinates \( x(\zeta_i, \eta_j)\)
y(output) the list of \( N_\eta N_\zeta\) coordinates \( y(\zeta_i, \eta_j)\)
zetaX(output) the list of \( N_\eta N_\zeta\) elements \( \partial\zeta/\partial x (\zeta_i, \eta_j)\)
zetaY(output) the list of \( N_\eta N_\zeta\) elements \( \partial\zeta/\partial y (\zeta_i, \eta_j)\)
etaX(output) the list of \( N_\eta N_\zeta\) elements \( \partial\eta/\partial x (\zeta_i, \eta_j)\)
etaY(output) the list of \( N_\eta N_\zeta\) elements \( \partial\eta/\partial y (\zeta_i, \eta_j)\)
Note
the first ( \( \zeta\)) coordinate shall be constructed contiguously in memory, i.e. the resuling lists are \( x_0=x(\zeta_0, \eta_0),\ x_1=x(\zeta_1, \eta_0)\ x_2=x(\zeta_2, \eta_0)\dots x_{NM-1}=x(\zeta_{N-1} \eta_{M-1})\)
All the resulting vectors are write-only and get properly resized

◆ isOrthogonal()

template<class real_type >
bool dg::geo::aRealGeneratorX2d< real_type >::isOrthogonal ( ) const
inline

sparsity pattern for metric

◆ operator=()

template<class real_type >
aRealGeneratorX2d & dg::geo::aRealGeneratorX2d< real_type >::operator= ( const aRealGeneratorX2d< real_type > &  src)
inlineprotected

◆ zeta0()

template<class real_type >
real_type dg::geo::aRealGeneratorX2d< real_type >::zeta0 ( real_type  fx) const
inline

◆ zeta1()

template<class real_type >
real_type dg::geo::aRealGeneratorX2d< real_type >::zeta1 ( real_type  fx) const
inline

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