|
| Hector (const CylindricalFunctorsLvl2 &psi, double psi0, double psi1, double X0, double Y0, unsigned n=13, unsigned Nx=2, unsigned Ny=10, double eps_u=1e-10, bool verbose=false) |
| Construct a conformal grid.
|
|
| Hector (const CylindricalFunctorsLvl2 &psi, const CylindricalFunctorsLvl1 &chi, double psi0, double psi1, double X0, double Y0, unsigned n=13, unsigned Nx=2, unsigned Ny=10, double eps_u=1e-10, bool verbose=false) |
| Construct an orthogonal grid with adaption.
|
|
| Hector (const CylindricalFunctorsLvl2 &psi, const CylindricalSymmTensorLvl1 &chi, double psi0, double psi1, double X0, double Y0, unsigned n=13, unsigned Nx=2, unsigned Ny=10, double eps_u=1e-10, bool verbose=false) |
| Construct a curvilinear grid with monitor metric.
|
|
const dg::geo::CurvilinearGrid2d & | internal_grid () const |
| Return the internally used orthogonal grid.
|
|
virtual Hector * | clone () const override final |
| Abstract clone method that returns a copy on the heap.
|
|
bool | isConformal () const |
|
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 () |
|
template<class IMatrix = dg::IHMatrix, class Matrix = dg::HMatrix, class container = dg::HVec>
struct dg::geo::Hector< IMatrix, Matrix, container >
The High PrEcision Conformal grid generaTOR.
- Note
- implements the algorithm described in M. Wiesenberger, M. Held, L. Einkemmer Streamline integration as a method for two-dimensional elliptic grid generation Journal of Computational Physics 340, 435-450 (2017)
unsigned nGrid = js["grid"]["generator"]["initial"]["n"].asUInt();
unsigned NxGrid = js["grid"]["generator"]["initial"]["Nx"].asUInt();
unsigned NyGrid = js["grid"]["generator"]["initial"]["Ny"].asUInt();
double epsHector = js["grid"]["generator"]["eps"].asDouble();
if( mode == 0)
{
std::cout << " ... of type conformal ...\n";
mag.
R0(), 0., nGrid, NxGrid, NyGrid, epsHector,
true);
}
else if( mode == 1)
{
std::cout << " ... of type adaption ...\n";
psi_1, mag.
R0(), 0., nGrid, NxGrid, NyGrid,
epsHector, true);
}
else
{
std::cout << " ... of type monitor metric ...\n";
psi_1, mag.
R0(), 0., nGrid, NxGrid, NyGrid,
epsHector, true);
}
- Template Parameters
-
IMatrix | The interpolation matrix type |
- Template Parameters
-
Matrix | A class for which the blas2 functions are callable in connection with the container class. The Matrix type can be one of:
|
- Template Parameters
-
container | A data container class for which the blas1 functionality is overloaded. We assume that container is copyable/assignable and has a swap member function. Currently this is one of
|