Wildmeshing Toolkit
AMIPSOptimizationSmoothingPeriodic.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <polysolve/Types.hpp>
6 #include "AttributesUpdate.hpp"
7 
8 
9 namespace polysolve::nonlinear {
10 class Solver;
11 }
12 
13 namespace wmtk::function {
14 class Function;
15 }
16 
17 namespace wmtk::operations {
18 
20 {
21 private:
22  template <int S>
23  class WMTKAMIPSProblem;
24 
25 public:
27  Mesh& periodic_mesh,
28  Mesh& position_mesh,
29  const attribute::MeshAttributeHandle& coords);
30 
31  std::vector<simplex::Simplex> execute(const simplex::Simplex& simplex) override;
32 
35 
36 
38  {
39  m_linear_solver_params = params;
40  create_solver();
41  }
42 
44  {
46  create_solver();
47  }
48 
49 private:
50  std::shared_ptr<polysolve::nonlinear::Solver> m_solver;
54 
57 
59 
60  void create_solver();
61 };
62 
63 } // namespace wmtk::operations
AMIPSOptimizationSmoothingPeriodic(Mesh &periodic_mesh, Mesh &position_mesh, const attribute::MeshAttributeHandle &coords)
std::vector< simplex::Simplex > execute(const simplex::Simplex &simplex) override
returns an empty vector in case of failure
nlohmann::json json
Definition: input.cpp:9