XGC1
hyper_viscosity.hpp
Go to the documentation of this file.
1 #ifndef HYPER_VISCOSITY_HPP
2 #define HYPER_VISCOSITY_HPP
3 
4 #include "grid.hpp"
6 #include "boundary.hpp"
7 #include "field.hpp"
8 #include "plasma.hpp"
9 
11  public:
12 
13  bool rad_on;
14  bool parallel_on;
15 
16  double parallel;
17 
19 
21 
23 
24  void apply_radial(const View<double*, CLayout, DeviceType>& view) const;
25  void apply_radial(const View<double*, CLayout, DeviceType>& input, const View<double*, CLayout, DeviceType>& output) const;
26 #ifdef USE_GPU
27  void apply_radial(const View<double*, CLayout, HostType>& view) const;
28  void apply_radial(const View<double*, CLayout, HostType>& input, const View<double*, CLayout, HostType>& output) const;
29 #endif
30  void apply_radial(const View<ScalarField*, CLayout, HostType>& input, const View<ScalarField*, CLayout, HostType>& output) const;
31 
32  void apply(const MagneticField<DeviceType>& magnetic_field, const Grid<DeviceType>& grid, const DomainDecomposition<DeviceType>& pol_decomp, const Boundary& boundary, const View<double*, CLayout, HostType>& field);
33 
34 };
35 
36 #endif
Definition: boundary.hpp:83
Definition: hyper_viscosity.hpp:10
bool rad_on
Switch for 2nd order accurate 4th derivative radial (grad(psi)) hyperviscosity.
Definition: hyper_viscosity.hpp:13
void apply_radial(const View< double *, CLayout, DeviceType > &view) const
Definition: hyper_viscosity.cpp:124
HyperViscosity()
Definition: hyper_viscosity.hpp:20
Matrix< DeviceType > rad_mat
Definition: hyper_viscosity.hpp:18
double parallel
Strength of the parallel hyperviscosity; sml_dt/parallel corresponds.
Definition: hyper_viscosity.hpp:16
void apply(const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const Boundary &boundary, const View< double *, CLayout, HostType > &field)
Definition: hyper_viscosity.cpp:156
bool parallel_on
Switch for 2nd order accurate 4th derivative field-aligned hyperviscosity.
Definition: hyper_viscosity.hpp:14
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:193
Definition: plasma.hpp:13
Definition: magnetic_field.F90:1
subroutine field(fld, t, rz_outside)
Calculate field of a given point using interpolation funtions This is for the equilibrium and RMP mag...
Definition: magnetic_field.F90:24
logical false
Definition: module.F90:102
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out, ignore_vacuum)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1548