epot_solver.hpp
Go to the documentation of this file.
virtual bool operator()(const Vec3D &x) const
Suppression function.
Definition: epot_solver.hpp:78
Base for solvers.
Geometry definition
void postprocess(void)
Do postprocessing action after solving.
Definition: epot_solver.cpp:317
CallbackFunctorB_V * _init_plasma_func
Initial plasma region function.
Definition: epot_solver.hpp:227
void pexp_newton(double &rhs, double &drhs, double epot) const
Return non-linear right-hand-side and it's derivative for vacuum node in positive ion plasma...
Definition: epot_solver.cpp:177
CallbackFunctorB_V * _force_pot_func
Force region potential function.
Definition: epot_solver.hpp:225
void preprocess(MeshScalarField &epot)
Do preprocessing action before solving.
Definition: epot_solver.cpp:216
void nsimp_newton(double &rhs, double &drhs, double epot) const
Return non-linear right-hand-side and it's derivative for vacuum node in negative ion plasma...
Definition: epot_solver.cpp:184
bool linear(void) const
Return true if problem is linear.
Definition: epot_solver.cpp:401
InitialPlasma(coordinate_axis_e axis, double val)
Constructor setting initial plasma.
Definition: epot_solver.hpp:69
double _plA
Plasma parameter. For positive ion extraction: rho_th * h^2 / epsilon_0, for negative ion extraction:...
Definition: epot_solver.hpp:229
uint8_t boundary_index(uint32_t i) const
Return bitmask indicating to which boundaries the node belongs to.
Definition: epot_solver.cpp:419
std::vector< double > _Ei
Energy for positive ions, first fast protons, then thermal ions.
Definition: epot_solver.hpp:221
void set_nsimp_initial_plasma(CallbackFunctorB_V *init_plasma_func)
Define initial plasma boundary location to negative ion extraction problem.
Definition: epot_solver.cpp:144
Class for constructing the linear/nonlinear problem for the solver.
Definition: epot_solver.hpp:207
Definition: callback.hpp:61
CallbackFunctorD_V * _force_pot_func2
Force region potential function.
Definition: epot_solver.hpp:226
uint8_t boundary_index_general(uint32_t i, uint32_t j, uint32_t k) const
Return bitmask indicating to which boundaries the node belongs to.
Definition: epot_solver.cpp:464
std::vector< double > _rhoi
Charge density for positive ions, first fast protons, then thermal ions.
Definition: epot_solver.hpp:219
double _plC
Plasma parameter for positive ion extraction. Up/Te.
Definition: epot_solver.hpp:235
double _plB
Plasma parameter. For positive ion extraction: 1/Te, for negative ion extraction: E_f...
Definition: epot_solver.hpp:232
Definition: callback.hpp:75
std::vector< double > _plE
Plasma parameter for negative ion extraction. 1/Ti.
Definition: epot_solver.hpp:240
EpotSolver(Geometry &geom)
Constructor for solver from geom.
Definition: epot_solver.cpp:57
General callback functors.
void set_parameters(const EpotSolver &epsolver)
Copy parameters from solver epsolver.
Definition: epot_solver.cpp:91
void set_nsimp_plasma(double rhop, double Ep, std::vector< double > rhoi, std::vector< double > Ei)
Enable plasma model for negative ion extraction problem.
Definition: epot_solver.cpp:155
void set_pexp_plasma(double rhoe, double Te, double Up)
Enable plasma model for positive ion extraction problem.
Definition: epot_solver.cpp:132
const Geometry & geometry(void) const
Get pointer to geometry.
Definition: epot_solver.cpp:558
void set_forced_potential_volume(double force_pot, CallbackFunctorB_V *force_pot_func)
Define forced potential volume.
Definition: epot_solver.cpp:106
virtual void subsolve(MeshScalarField &epot, const MeshScalarField &scharge)=0
Solve problem with given mesh based space charge.
double _rhoe
Electron charge density (C/m3), < 0.
Definition: epot_solver.hpp:215
virtual void debug_print(std::ostream &os) const =0
Print debugging information to os.
Definition: epot_solver.cpp:564
void solve(MeshScalarField &epot, const ScalarField &scharge)
Solve the problem.
Definition: epot_solver.cpp:513
void set_initial_plasma(double Up, CallbackFunctorB_V *init_plasma_func)
Define initial plasma to the problem.
Definition: epot_solver.cpp:120
Mesh based scalar fields.
std::vector< double > _plD
Plasma parameter for negative ion extraction. rho_th,i * h^2 / epsilon_0.
Definition: epot_solver.hpp:238