14SystemJacobianFactory* SystemJacobianFactory::factory() {
15 std::unique_lock<std::mutex> lock(jac_mutex);
17 s_factory =
new SystemJacobianFactory;
23 std::unique_lock<std::mutex> lock(jac_mutex);
29std::mutex SystemJacobianFactory::jac_mutex;
31SystemJacobianFactory::SystemJacobianFactory()
34 reg(
"banded-direct", []() {
return new MultiJac(); });
35 reg(
"eigen-sparse-direct", []() {
return new EigenSparseDirectJacobian(); });
40 return shared_ptr<SystemJacobian>(SystemJacobianFactory::factory()->create(type));
Declarations for the class AdaptivePreconditioner which is a child class of SystemJacobian for precon...
AdaptivePreconditioner a preconditioner designed for use with large mechanisms that leverages sparse ...
void reg(const string &name, function< SystemJacobian *(Args...)> f)
Register a new object construction function.
Factory class to create Jacobian objects for use by linear solvers.
void deleteFactory() override
Virtual abstract function that deletes the factory.
Namespace for the Cantera kernel.
shared_ptr< SystemJacobian > newSystemJacobian(const string &type)
Create a SystemJacobian object of the specified type.