Wildmeshing Toolkit
Loading...
Searching...
No Matches
solver.hpp
1#pragma once
2
3#include <polysolve/nonlinear/Solver.hpp>
4#include <wmtk/utils/Logger.hpp>
5
6namespace wmtk::optimization {
7
8const polysolve::json basic_linear_solver_params = R"({"solver": "Eigen::LDLT"})"_json;
9const polysolve::json basic_nonlinear_solver_params =
10 R"({"solver": "DenseNewton", "max_iterations": 10, "allow_out_of_iterations": true})"_json;
11
12inline std::unique_ptr<polysolve::nonlinear::Solver> create_basic_solver()
13{
14 return polysolve::nonlinear::Solver::create(
15 basic_nonlinear_solver_params,
16 basic_linear_solver_params,
17 1,
18 opt_logger());
19}
20
21inline void deactivate_opt_logger()
22{
23 opt_logger().set_level(spdlog::level::off);
24}
25
26} // namespace wmtk::optimization