Wildmeshing Toolkit
Loading...
Searching...
No Matches
AMIPSOptimizationSmoothingPeriodic.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <polysolve/Types.hpp>
7
8
9namespace polysolve::nonlinear {
10class Solver;
11}
12
13namespace wmtk::function {
14class Function;
15}
16
17namespace wmtk::operations {
18
20{
21private:
22 template <int S>
23 class WMTKAMIPSProblem;
24
25public:
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
33 const polysolve::json& linear_solver_params() const { return m_linear_solver_params; }
34 const polysolve::json& nonlinear_solver_params() const { return m_nonlinear_solver_params; }
35
36
37 void set_linear_solver_params(const polysolve::json& params)
38 {
41 }
42
43 void set_nonlinear_solver_params(const polysolve::json& params)
44 {
47 }
48
49private:
50 std::shared_ptr<polysolve::nonlinear::Solver> m_solver;
54
55 polysolve::json m_linear_solver_params;
57
59
60 void create_solver();
61};
62
63} // namespace wmtk::operations
std::vector< simplex::Simplex > execute(const simplex::Simplex &simplex) override
returns an empty vector in case of failure