12#include "cantera/zeroD/IdealGasConstPressureReactor.h"
21ReactorFactory* ReactorFactory::s_factory = 0;
22std::mutex ReactorFactory::reactor_mutex;
24ReactorFactory::ReactorFactory()
26 reg(
"Reservoir", []() {
return new Reservoir(); });
27 reg(
"Reactor", []() {
return new Reactor(); });
28 reg(
"ConstPressureReactor", []() {
return new ConstPressureReactor(); });
29 reg(
"FlowReactor", []() {
return new FlowReactor(); });
30 reg(
"IdealGasReactor", []() {
return new IdealGasReactor(); });
31 reg(
"IdealGasConstPressureReactor", []() {
return new IdealGasConstPressureReactor(); });
32 reg(
"ExtensibleReactor", []() {
return new ReactorDelegator<Reactor>(); });
33 reg(
"ExtensibleIdealGasReactor",
34 []() {
return new ReactorDelegator<IdealGasReactor>(); });
35 reg(
"ExtensibleConstPressureReactor",
36 []() {
return new ReactorDelegator<ConstPressureReactor>(); });
37 reg(
"ExtensibleIdealGasConstPressureReactor",
38 []() {
return new ReactorDelegator<IdealGasConstPressureReactor>(); });
43 return create(reactorType);
ReactorBase * create(const std::string &name, Args... args)
Create an object using the object construction function corresponding to "name" and the provided cons...
void reg(const std::string &name, std::function< ReactorBase *(Args...)> f)
Register a new object construction function.
Base class for stirred reactors.
virtual ReactorBase * newReactor(const std::string &reactorType)
Create a new reactor by type name.
Namespace for the Cantera kernel.