|
Extension: Geometries
#include "dg/geometries/geometries.h"
|
A two-dimensional grid based on "almost-conformal" coordinates by Ribeiro and Scott 2010. More...
Public Member Functions | |
| Ribeiro (const CylindricalFunctorsLvl2 &psi, double psi_0, double psi_1, double x0, double y0, int mode=0, bool verbose=false) | |
| Construct a near-conformal grid generator. | |
| virtual Ribeiro * | clone () const override final |
| Abstract clone method that returns a copy on the heap. | |
Public Member Functions inherited from dg::geo::aRealGenerator2d< real_type > | |
| real_type | width () const |
| length in \( \zeta\) of the computational space | |
| real_type | height () const |
| length in \( \eta\) of the computational space | |
| bool | isOrthogonal () const |
| sparsity pattern for metric | |
| void | generate (const thrust::host_vector< real_type > &zeta1d, const thrust::host_vector< real_type > &eta1d, 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. | |
| virtual | ~aRealGenerator2d () |
Additional Inherited Members | |
Protected Member Functions inherited from dg::geo::aRealGenerator2d< real_type > | |
| aRealGenerator2d () | |
| empty | |
| aRealGenerator2d (const aRealGenerator2d &) | |
| empty | |
| aRealGenerator2d & | operator= (const aRealGenerator2d &) |
| return *this | |
A two-dimensional grid based on "almost-conformal" coordinates by Ribeiro and Scott 2010.
The radial coordinate is given by \( \zeta = -\int_{\psi_0}^{\psi} f(\psi') d\psi'\)
The poloidal coordinate lines are given by
\begin{align} \frac{d R}{d \eta} &= \frac{ 1}{f(\psi_p)(\nabla\psi_p)^2} \frac{\partial \psi_p}{\partial Z} \\ \frac{d Z}{d \eta} &= -\frac{ 1}{f(\psi_p)(\nabla\psi_p)^2} \frac{\partial \psi_p}{\partial R} \end{align}
, where \( f(\psi_p)\) is the normalisation constant that makes the poloidal \( \eta\) coordinate go from 0 to \(2\pi\).
When an "equalarc" adaption is chosen then the integration is changed to
\begin{align} \frac{d R}{d \eta} &= \frac{ 1}{f(\psi_p)|\nabla\psi_p|} \frac{\partial \psi_p}{\partial Z} \\ \frac{d Z}{d \eta} &= -\frac{ 1}{f(\psi_p)|\nabla\psi_p|} \frac{\partial \psi_p}{\partial R} \end{align}
,
|
inline |
Construct a near-conformal grid generator.
| psi | \( \psi(x,y)\) the flux function and its derivatives in Cartesian coordinates (x,y) |
| psi_0 | first boundary |
| psi_1 | second boundary |
| x0 | a point in the inside of the domain bounded by psi_0 (shouldn't be the O-point) |
| y0 | a point in the inside of the domain bounded by psi_0 (shouldn't be the O-point) |
| mode | This parameter indicates the adaption type used to create the grid: 0 is no adaption, 1 is an equalarc adaption |
| verbose | if true the integrators will write additional information to std::cout |
|
inlinefinaloverridevirtual |
Abstract clone method that returns a copy on the heap.
Implements dg::geo::aRealGenerator2d< real_type >.