XGCa
solver_poisson_turb.hpp
Go to the documentation of this file.
1 #ifndef SOLVER_POISSON_TURB_HPP
2 #define SOLVER_POISSON_TURB_HPP
3 
4 #include "solver.hpp"
5 
6 class SolverPoissonTurb : public Solver{
7 
8  public:
9 
10  SolverPoissonTurb(NLReader::NamelistReader& nlr, bool is_XGCa, bool is_em, const MagneticField<DeviceType>& magnetic_field, const Grid<DeviceType>& grid, std::string label_in, bool spectral_in, bool use_pade_in, bool update_solver, int update_solver_nstep)
11  : Solver(label_in, H, H_SPEC, spectral_in, 1, grid.ntriangle, use_pade_in, update_solver, update_solver_nstep)
12  {
13  TIMER("EXTEND_BOUNDARY",
14  setup_boundaries(nlr, is_XGCa, is_em, magnetic_field, grid) );
15 
16  if(is_rank_zero()){
17  write_solver_boundary(bd_rhs, "Efield_excluded_bnd.cbdH");
18  write_solver_boundary(bd, "Efield_excluded_bnd.pbdH");
19  }
20  }
21 
22  void lhs_set_alpha_beta(const SolverInitData<HostType>& solver_data, const View<double*,CLayout,HostType>& alpha, const View<double*,CLayout,HostType>& beta, double& scale) override;
23 
24  void setup_boundaries(NLReader::NamelistReader& nlr, bool is_XGCa, bool explicit_electromagnetic, const MagneticField<DeviceType>& magnetic_field, const Grid<DeviceType>& grid);
25 };
26 
27 #endif
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:199
Definition: solver_poisson_turb.hpp:6
void setup_boundaries(NLReader::NamelistReader &nlr, bool is_XGCa, bool explicit_electromagnetic, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid)
Definition: solver_poisson_turb.cpp:28
SolverPoissonTurb(NLReader::NamelistReader &nlr, bool is_XGCa, bool is_em, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, std::string label_in, bool spectral_in, bool use_pade_in, bool update_solver, int update_solver_nstep)
Definition: solver_poisson_turb.hpp:10
void lhs_set_alpha_beta(const SolverInitData< HostType > &solver_data, const View< double *, CLayout, HostType > &alpha, const View< double *, CLayout, HostType > &beta, double &scale) override
Definition: solver_poisson_turb.cpp:6
Definition: solver.hpp:17
Boundary bd
Definition: solver.hpp:36
@ H_SPEC
Definition: solver.hpp:21
@ H
Definition: solver.hpp:21
Boundary bd_rhs
Definition: solver.hpp:35
bool is_rank_zero()
Definition: globals.hpp:28
Definition: magnetic_field.F90:1
void write_solver_boundary(const Boundary &excluded_boundary, std::string filename)
Definition: setup_solver_boundaries.cpp:3
Definition: solver_init_data.hpp:9
#define TIMER(N, F)
Definition: timer_macro.hpp:24