89#ifndef RIZER_PLASMA_CHANNEL_1D_H
90#define RIZER_PLASMA_CHANNEL_1D_H
144 std::vector<CollisionModel::SpeciesSpec>
specs;
161 std::vector<double>
Y0;
205 std::string
domainType()
const override {
return "plasma-channel-1d"; }
228 bool checkAlias =
true)
const override;
232 bool hasComponent(
const std::string& name,
bool checkAlias =
true)
const override;
238 void getValues(
const std::string& component,
245 double initialValue(std::size_t n, std::size_t j)
override;
258 std::size_t
nSpecies()
const {
return m_n_species; }
268 std::shared_ptr<Cantera::Solution>
m_solution;
270 std::unique_ptr<ReactorRHS> m_reactor_rhs;
272 std::size_t m_n_species;
273 std::size_t m_electron_index;
275 double m_outer_radius;
278 double m_electric_field;
280 double m_species_diffusivity;
283 double m_ambient_temperature;
284 std::vector<double> m_Y0;
296 std::vector<PropertyTable> m_initY;
299 bool m_has_transport;
shared_ptr< Solution > m_solution
vector< double > values(const string &component) const
double initialValue(std::size_t n, std::size_t j) override
Initial value of component n at grid point j ([K] for Tg/Te, [-] for a species mass fraction); seeds ...
void eval(std::size_t jg, Cantera::span< const double > xg, Cantera::span< double > rg, Cantera::span< int > maskg, double rdt) override
Residual + transient-mask assembly at global point jg (or every point if jg == Cantera::npos); see th...
void getValues(const std::string &component, Cantera::span< double > values) const override
Radial profile of one component, read from the domain's own solution buffer (units match that compone...
std::size_t nSpecies() const
Number of species K [-] in this domain's mechanism.
bool hasComponent(const std::string &name, bool checkAlias=true) const override
Whether name is "Tg", "Te", or a species of this domain's mechanism.
void resetBadValues(Cantera::span< double > xg) override
Clamp a trial state back onto a physically evaluable range (Tg, Te >= 200 K; every Y_k in [0,...
std::string componentName(std::size_t n) const override
Component n -> name ("Tg", "Te", or a species name).
void setElectricField(double electricField)
Applied electric field E [V/m] used by the next eval() call.
std::string domainType() const override
double electronDensity(double Tg, double Te, const double *Y) const
Electron number density [1/m^3] for a node state (X_e * P / (k_B * Tmean)), matching the n_e used int...
PlasmaChannel1D(const PlasmaChannelConfig &cfg)
Build the domain (mesh, thermo/kinetics, property tables) from cfg.
std::size_t componentIndex(const std::string &name, bool checkAlias=true) const override
Component name -> index (inverse of componentName()); throws if unknown.
double electricField() const
Currently-set electric field E [V/m].
std::vector< double > initTe_v
std::vector< double > kappa_e_T
std::vector< double > initY_v
std::vector< double > sigma_v
std::vector< double > initTg_r
std::vector< double > kappa_e_v
std::vector< double > initTg_v
std::vector< double > sigma_T
std::vector< double > initTe_r
std::vector< double > kappa_T
std::vector< double > initY_r
std::vector< double > kappa_v
std::vector< double > nu_m_T
std::vector< double > Et_v
std::vector< CollisionModel::SpeciesSpec > specs
std::vector< double > nu_m_v
std::vector< double > grid
std::vector< double > Et_t