OGS
CreateJacobianAssembler.cpp
Go to the documentation of this file.
1 
12 
14 #include "BaseLib/Error.h"
17 
18 namespace ProcessLib
19 {
20 std::unique_ptr<AbstractJacobianAssembler> createJacobianAssembler(
21  std::optional<BaseLib::ConfigTree> const& config)
22 {
23  if (!config)
24  {
25  return std::make_unique<AnalyticalJacobianAssembler>();
26  }
27 
29  auto const type = config->peekConfigParameter<std::string>("type");
30 
31  if (type == "Analytical")
32  {
33  config->ignoreConfigParameter("type");
34  return std::make_unique<AnalyticalJacobianAssembler>();
35  }
36  if (type == "CentralDifferences")
37  {
39  }
40  if (type == "CompareJacobians")
41  {
43  }
44 
45  OGS_FATAL("Unknown Jacobian assembler type: `{:s}'.", type);
46 }
47 } // namespace ProcessLib
#define OGS_FATAL(...)
Definition: Error.h:26
std::unique_ptr< CompareJacobiansJacobianAssembler > createCompareJacobiansJacobianAssembler(BaseLib::ConfigTree const &config)
std::unique_ptr< AbstractJacobianAssembler > createJacobianAssembler(std::optional< BaseLib::ConfigTree > const &config)
std::unique_ptr< CentralDifferencesJacobianAssembler > createCentralDifferencesJacobianAssembler(BaseLib::ConfigTree const &config)