ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
 
Loading...
Searching...
No Matches
orb5x::SolverModule Class Reference

#include "solver_mpi.hpp"

Public Member Functions

void assemblyBoltzman (int isp, int nqx, int nqy, bool remove_trap_contribution)
 
void assemblyBoltzman_zf (int isp, int nqx, int nqy, bool remove_trap_contribution, bool oldAvgJac)
 
void assemblyBoltzmannPade (int isp, int nqx, int nqy, bool remove_trap_contribution)
 
void assemblyBoltzmannPade_zf (int isp, int nqx, int nqy, bool remove_trap_contribution)
 
void assemblyLHSFinalize ()
 
void assemblyMassMatrix (int nqx, int nqy)
 
void assemblyMatrix (int nqx, int nqy)
 
void assemblyPadeMatForRHS (int isp, int nqx, int nqy)
 
void assemblyPolDrift_arbitrary_wavelength_fourier (int isp, int nqx, int nqy, int iy_start, int iy_end)
 
void assemblyPolDrift_longwavelength_fourier (int isp, int nqx, int nqy)
 
void assemblyRHS_antenna (Kokkos::View< Complex * > &rhs_f, int nmat, int nqx, int nqy, Real phase_shift=0.0, const std::vector< Real > *sprof=nullptr, const std::vector< Real > *prof=nullptr, int nprof=0)
 
void assemblyRHS_tests (Kokkos::View< Complex * > &rhs_f, int nmat, int nqx, int nqy)
 
void backsolve_mass_f (const Kokkos::View< Complex * > &arr_f, Kokkos::View< Complex * > &out_f, int globalk)
 
void backsolve_mass_s (const Kokkos::View< Real * > &arr_f, Kokkos::View< Real * > &out_f)
 
void backsolve_mass_sn (const Kokkos::View< Real * > &arr_f, Kokkos::View< Real * > &out_f, int nmode)
 
void backsolve_rhs_f (Kokkos::View< Complex * > &rhs_f, int globalk, int matnum)
 
void backsolve_rhs_f_host (Complex *rhs, int n, int globalk, int matnum)
 
void backsolve_rhs_f_multi (const Kokkos::View< Complex ** > &rhs_f, int globalk, int matnum)
 
void broadcast_matrix (int &ierr, MPI_Comm comm, int tgt, int me)
 
Real computeToroidalMassCoeff (int n)
 
void copy_matrix_filter (int ixmin, int ixmax, int n, Kokkos::View< int * > &mmmincopy)
 
void destroySolverModule ()
 
void dft1D (const Kokkos::View< Real * > &input, Kokkos::View< Complex * > &output)
 
void dft_or_idft_cpx (const Kokkos::View< Complex * > &input, Kokkos::View< Complex * > &output, int isign)
 
void dftInverse1D (const Kokkos::View< Complex * > &input, Kokkos::View< Real * > &output)
 
void dftInverse1D_full (const Kokkos::View< Complex * > &input, Kokkos::View< Real * > &output)
 
void dftInverse1D_rc (const Kokkos::View< Complex * > &input, Kokkos::View< Real * > &output)
 
void domainOfIntegrationExtended (int imin, int isp, Real &smin, Real &smax, int &ixmin_int, int &ixmax_int)
 
bool fieldmodefilter (int i, int m, int n) const
 
void finalizeMatrix ()
 
int getLocalToroidalIndex (int n) const
 
void initSolverModule (int me_assembly, int tgt_assembly, int color, int nx_, int nz_, int nw_, Real wmax_, int kdx_, int em_kdx_, int dm_, bool electromagnetic_, bool em_control_variate_, bool pullback_, int fieldaligned_, bool longwavelength_, int na_half_rho_ref_, bool phase_factor_, const Kokkos::View< bool * > &isnfiltlocal_, const Kokkos::View< bool * > &isnfiltlocalysolved_, int NBmodeslocal_, const Kokkos::View< int * > &nfiltlocal_, int navgmax_, int testcase_, int internal_boundary_, bool pade_, int multi_matrix_, int inner_BC_, bool lapl_boundary_terms_)
 
void multiply_mass_f (Kokkos::View< Complex * > &arr_f, int globalk)
 
void print_matrix_gbmatf ()
 
void reality_condition (std::vector< Complex > &v_dft, int ny, int ny2)
 
void reduce_matrix (int &ierr, MPI_Comm comm, int tgt, int me)
 
 SolverModule ()
 
 ~SolverModule ()
 

Static Public Member Functions

static SolverModuleinstance ()
 

Public Attributes

Kokkos::View< bool * > * isnfiltlocal
 
int multi_matrix
 
int NBmodeslocal
 
Real tim_dyad_cumul
 

Constructor & Destructor Documentation

◆ SolverModule()

orb5x::SolverModule::SolverModule ( )

◆ ~SolverModule()

orb5x::SolverModule::~SolverModule ( )

Member Function Documentation

◆ assemblyBoltzman()

void orb5x::SolverModule::assemblyBoltzman ( int  isp,
int  nqx,
int  nqy,
bool  remove_trap_contribution 
)

◆ assemblyBoltzman_zf()

void orb5x::SolverModule::assemblyBoltzman_zf ( int  isp,
int  nqx,
int  nqy,
bool  remove_trap_contribution,
bool  oldAvgJac 
)

◆ assemblyBoltzmannPade()

void orb5x::SolverModule::assemblyBoltzmannPade ( int  isp,
int  nqx,
int  nqy,
bool  remove_trap_contribution 
)

◆ assemblyBoltzmannPade_zf()

void orb5x::SolverModule::assemblyBoltzmannPade_zf ( int  isp,
int  nqx,
int  nqy,
bool  remove_trap_contribution 
)

◆ assemblyLHSFinalize()

void orb5x::SolverModule::assemblyLHSFinalize ( )

◆ assemblyMassMatrix()

void orb5x::SolverModule::assemblyMassMatrix ( int  nqx,
int  nqy 
)

◆ assemblyMatrix()

void orb5x::SolverModule::assemblyMatrix ( int  nqx,
int  nqy 
)

◆ assemblyPadeMatForRHS()

void orb5x::SolverModule::assemblyPadeMatForRHS ( int  isp,
int  nqx,
int  nqy 
)

◆ assemblyPolDrift_arbitrary_wavelength_fourier()

void orb5x::SolverModule::assemblyPolDrift_arbitrary_wavelength_fourier ( int  isp,
int  nqx,
int  nqy,
int  iy_start,
int  iy_end 
)

◆ assemblyPolDrift_longwavelength_fourier()

void orb5x::SolverModule::assemblyPolDrift_longwavelength_fourier ( int  isp,
int  nqx,
int  nqy 
)

◆ assemblyRHS_antenna()

void orb5x::SolverModule::assemblyRHS_antenna ( Kokkos::View< Complex * > &  rhs_f,
int  nmat,
int  nqx,
int  nqy,
Real  phase_shift = 0.0,
const std::vector< Real > *  sprof = nullptr,
const std::vector< Real > *  prof = nullptr,
int  nprof = 0 
)

◆ assemblyRHS_tests()

void orb5x::SolverModule::assemblyRHS_tests ( Kokkos::View< Complex * > &  rhs_f,
int  nmat,
int  nqx,
int  nqy 
)

◆ backsolve_mass_f()

void orb5x::SolverModule::backsolve_mass_f ( const Kokkos::View< Complex * > &  arr_f,
Kokkos::View< Complex * > &  out_f,
int  globalk 
)

◆ backsolve_mass_s()

void orb5x::SolverModule::backsolve_mass_s ( const Kokkos::View< Real * > &  arr_f,
Kokkos::View< Real * > &  out_f 
)

◆ backsolve_mass_sn()

void orb5x::SolverModule::backsolve_mass_sn ( const Kokkos::View< Real * > &  arr_f,
Kokkos::View< Real * > &  out_f,
int  nmode 
)

◆ backsolve_rhs_f()

void orb5x::SolverModule::backsolve_rhs_f ( Kokkos::View< Complex * > &  rhs_f,
int  globalk,
int  matnum 
)

◆ backsolve_rhs_f_host()

void orb5x::SolverModule::backsolve_rhs_f_host ( Complex rhs,
int  n,
int  globalk,
int  matnum 
)

◆ backsolve_rhs_f_multi()

void orb5x::SolverModule::backsolve_rhs_f_multi ( const Kokkos::View< Complex ** > &  rhs_f,
int  globalk,
int  matnum 
)

◆ broadcast_matrix()

void orb5x::SolverModule::broadcast_matrix ( int &  ierr,
MPI_Comm  comm,
int  tgt,
int  me 
)

◆ computeToroidalMassCoeff()

Real orb5x::SolverModule::computeToroidalMassCoeff ( int  n)

◆ copy_matrix_filter()

void orb5x::SolverModule::copy_matrix_filter ( int  ixmin,
int  ixmax,
int  n,
Kokkos::View< int * > &  mmmincopy 
)

◆ destroySolverModule()

void orb5x::SolverModule::destroySolverModule ( )

◆ dft1D()

void orb5x::SolverModule::dft1D ( const Kokkos::View< Real * > &  input,
Kokkos::View< Complex * > &  output 
)

◆ dft_or_idft_cpx()

void orb5x::SolverModule::dft_or_idft_cpx ( const Kokkos::View< Complex * > &  input,
Kokkos::View< Complex * > &  output,
int  isign 
)

◆ dftInverse1D()

void orb5x::SolverModule::dftInverse1D ( const Kokkos::View< Complex * > &  input,
Kokkos::View< Real * > &  output 
)

◆ dftInverse1D_full()

void orb5x::SolverModule::dftInverse1D_full ( const Kokkos::View< Complex * > &  input,
Kokkos::View< Real * > &  output 
)

◆ dftInverse1D_rc()

void orb5x::SolverModule::dftInverse1D_rc ( const Kokkos::View< Complex * > &  input,
Kokkos::View< Real * > &  output 
)

◆ domainOfIntegrationExtended()

void orb5x::SolverModule::domainOfIntegrationExtended ( int  imin,
int  isp,
Real smin,
Real smax,
int &  ixmin_int,
int &  ixmax_int 
)

◆ fieldmodefilter()

bool orb5x::SolverModule::fieldmodefilter ( int  i,
int  m,
int  n 
) const

◆ finalizeMatrix()

void orb5x::SolverModule::finalizeMatrix ( )

◆ getLocalToroidalIndex()

int orb5x::SolverModule::getLocalToroidalIndex ( int  n) const

◆ initSolverModule()

void orb5x::SolverModule::initSolverModule ( int  me_assembly,
int  tgt_assembly,
int  color,
int  nx_,
int  nz_,
int  nw_,
Real  wmax_,
int  kdx_,
int  em_kdx_,
int  dm_,
bool  electromagnetic_,
bool  em_control_variate_,
bool  pullback_,
int  fieldaligned_,
bool  longwavelength_,
int  na_half_rho_ref_,
bool  phase_factor_,
const Kokkos::View< bool * > &  isnfiltlocal_,
const Kokkos::View< bool * > &  isnfiltlocalysolved_,
int  NBmodeslocal_,
const Kokkos::View< int * > &  nfiltlocal_,
int  navgmax_,
int  testcase_,
int  internal_boundary_,
bool  pade_,
int  multi_matrix_,
int  inner_BC_,
bool  lapl_boundary_terms_ 
)

◆ instance()

static SolverModule & orb5x::SolverModule::instance ( )
static

◆ multiply_mass_f()

void orb5x::SolverModule::multiply_mass_f ( Kokkos::View< Complex * > &  arr_f,
int  globalk 
)

◆ print_matrix_gbmatf()

void orb5x::SolverModule::print_matrix_gbmatf ( )

◆ reality_condition()

void orb5x::SolverModule::reality_condition ( std::vector< Complex > &  v_dft,
int  ny,
int  ny2 
)

◆ reduce_matrix()

void orb5x::SolverModule::reduce_matrix ( int &  ierr,
MPI_Comm  comm,
int  tgt,
int  me 
)

Member Data Documentation

◆ isnfiltlocal

Kokkos::View<bool*>* orb5x::SolverModule::isnfiltlocal

◆ multi_matrix

int orb5x::SolverModule::multi_matrix

◆ NBmodeslocal

int orb5x::SolverModule::NBmodeslocal

◆ tim_dyad_cumul

Real orb5x::SolverModule::tim_dyad_cumul

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