XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
solve_poisson_axisym.cpp File Reference
#include "petscsystypes.h"
#include "linear_1d_interpolation.hpp"
#include "bias_potential.hpp"
#include "solve_poisson_axisym.hpp"
Include dependency graph for solve_poisson_axisym.cpp:

Functions

int * get_grid_psi_surf_map_loc ()
 
void set_bndry_values_axisym (double *pot0m)
 
void add_pot0 (double *pot0m)
 
void smooth_pol_wrap (double *input_array, double *output_array)
 
void apply_radial_hyperviscosity (double *input, double *output)
 
int get_solverH_nbndry ()
 
int solverH_use_this_rank_int ()
 
int get_solver00_nbndry ()
 
int solver00_use_this_rank_int ()
 
void set_petsc_rhs_vec_axisym (double *rhs00, double *rhs_bd00, double *sol_bd00)
 
void solve_axisym_poisson_iter (double *pot0m)
 
void solve_axisymmetric_poisson_two_step_fsa (double *rhs, double *rhs00, double *rhs_bd, double *rhs_bd00, double *sol_bd, double *sol_bd00, double *pot0m, double *dpot)
 
void fourier_filter_m_range_cpp (double *field_inout)
 
PetscInt * get_petsc_xgc_bd_loc ()
 
void positive_phi00_sol (double *tmp00_surf, double *pot0m)
 
void limit_phi_pert (double *pot00_2d, double *temp_ev_elec, double *pot0m)
 
void private_heuristic_pot (double *pot00_2d, double *pot0m)
 
void post_process_axisymmetric_poisson2 ()
 
void set_rhs_bd_and_sol_bd (double *rhs, double *rhs_bd, double *sol_bd)
 
void zero_out_wall_fort (double *rhs)
 
int get_n_private_surf ()
 
void set_to_sheath_pot (double *tmp00_surf)
 
void set_natural_boundary_fort (double *pot0m, int *bc)
 
double get_sheath_pot_wrap (int i)
 
double * get_grid_psi_surf_loc ()
 
void calculate_den00_1d (const Grid< DeviceType > &grid, const View< double *, CLayout, HostType > density0, View< double *, CLayout, HostType > den00_1d)
 
void set_natural_boundary (const Grid< DeviceType > &grid, const Boundary &boundary, const View< double *, CLayout, HostType > &pot0m)
 
View< double *, CLayout, HostTypeget_initial_guess_axisym (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const Charges &charges, ElectricField< DeviceType > &electric_field)
 
void set_rhs_poisson_step_two (const Grid< DeviceType > &grid, const Boundary &bndry00, const Boundary &bndry, const View< double *, CLayout, HostType > &rhs00, const View< double *, CLayout, HostType > &rhs, const View< double *, CLayout, HostType > &rhs_bd, const View< double *, CLayout, HostType > &sol_bd, bool is_XGCa)
 
void set_rhs_poisson_axisym (const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma, const Charges &charges, SolverSetting solver_setting, const Boundary &charge_bndry, const Boundary &field_bndry, const View< double *, CLayout, HostType > &rhs, const View< double *, CLayout, HostType > &rhs_bd, const View< double *, CLayout, HostType > &sol_bd)
 
View< double *, CLayout, HostTypesolve_for_E (const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma, const Charges &charges, ElectricField< DeviceType > &electric_field, SolverSetting solver_setting)
 
View< double *, CLayout,
DeviceType
get_pot00_1d (const Grid< DeviceType > &grid, const View< double *, CLayout, DeviceType > &tmp00_surf_d)
 
void solve_poisson_axisym (const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, Plasma &plasma, const Charges &charges, SolverSetting solver_setting, ElectricField< DeviceType > &electric_field)
 

Function Documentation

void add_pot0 ( double *  pot0m)
void apply_radial_hyperviscosity ( double *  input,
double *  output 
)
void calculate_den00_1d ( const Grid< DeviceType > &  grid,
const View< double *, CLayout, HostType density0,
View< double *, CLayout, HostType den00_1d 
)

Averages axisymmetric field over flux surfaces and interpolates into flux surface coordinates

Parameters
[in]gridis the grid object
[in]density0is the axisymmetric component of the field
[out]den00_1dis the resulting field
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

void fourier_filter_m_range_cpp ( double *  field_inout)
double* get_grid_psi_surf_loc ( )
int* get_grid_psi_surf_map_loc ( )
View<double*,CLayout,HostType> get_initial_guess_axisym ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const Charges charges,
ElectricField< DeviceType > &  electric_field 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int get_n_private_surf ( )

Here is the caller graph for this function:

PetscInt* get_petsc_xgc_bd_loc ( )
View<double*,CLayout,DeviceType> get_pot00_1d ( const Grid< DeviceType > &  grid,
const View< double *, CLayout, DeviceType > &  tmp00_surf_d 
)

Here is the call graph for this function:

Here is the caller graph for this function:

double get_sheath_pot_wrap ( int  i)
int get_solver00_nbndry ( )

Here is the call graph for this function:

Here is the caller graph for this function:

int get_solverH_nbndry ( )

Here is the caller graph for this function:

void limit_phi_pert ( double *  pot00_2d,
double *  temp_ev_elec,
double *  pot0m 
)
void positive_phi00_sol ( double *  tmp00_surf,
double *  pot0m 
)
void post_process_axisymmetric_poisson2 ( )
void private_heuristic_pot ( double *  pot00_2d,
double *  pot0m 
)
void set_bndry_values_axisym ( double *  pot0m)
void set_natural_boundary ( const Grid< DeviceType > &  grid,
const Boundary boundary,
const View< double *, CLayout, HostType > &  pot0m 
)

Here is the call graph for this function:

void set_natural_boundary_fort ( double *  pot0m,
int *  bc 
)

Here is the caller graph for this function:

void set_petsc_rhs_vec_axisym ( double *  rhs00,
double *  rhs_bd00,
double *  sol_bd00 
)

Here is the caller graph for this function:

void set_rhs_bd_and_sol_bd ( double *  rhs,
double *  rhs_bd,
double *  sol_bd 
)
void set_rhs_poisson_axisym ( const Simulation< DeviceType > &  sml,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
Plasma plasma,
const Charges charges,
SolverSetting  solver_setting,
const Boundary charge_bndry,
const Boundary field_bndry,
const View< double *, CLayout, HostType > &  rhs,
const View< double *, CLayout, HostType > &  rhs_bd,
const View< double *, CLayout, HostType > &  sol_bd 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void set_rhs_poisson_step_two ( const Grid< DeviceType > &  grid,
const Boundary bndry00,
const Boundary bndry,
const View< double *, CLayout, HostType > &  rhs00,
const View< double *, CLayout, HostType > &  rhs,
const View< double *, CLayout, HostType > &  rhs_bd,
const View< double *, CLayout, HostType > &  sol_bd,
bool  is_XGCa 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void set_to_sheath_pot ( double *  tmp00_surf)
void smooth_pol_wrap ( double *  input_array,
double *  output_array 
)
void solve_axisym_poisson_iter ( double *  pot0m)

Here is the caller graph for this function:

void solve_axisymmetric_poisson_two_step_fsa ( double *  rhs,
double *  rhs00,
double *  rhs_bd,
double *  rhs_bd00,
double *  sol_bd,
double *  sol_bd00,
double *  pot0m,
double *  dpot 
)
View<double*,CLayout,HostType> solve_for_E ( const Simulation< DeviceType > &  sml,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
Plasma plasma,
const Charges charges,
ElectricField< DeviceType > &  electric_field,
SolverSetting  solver_setting 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void solve_poisson_axisym ( const Simulation< DeviceType > &  sml,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
Smoothing smoothing,
Plasma plasma,
const Charges charges,
SolverSetting  solver_setting,
ElectricField< DeviceType > &  electric_field 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int solver00_use_this_rank_int ( )

Here is the call graph for this function:

Here is the caller graph for this function:

int solverH_use_this_rank_int ( )

Here is the caller graph for this function:

void zero_out_wall_fort ( double *  rhs)