PolyFEM
Loading...
Searching...
No Matches
Optimizations.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <polyfem/Common.hpp>
6
7#include <Eigen/Core>
8#include <memory>
9#include <vector>
10
11namespace polyfem
12{
13 namespace legacy
14 {
15 class State;
16 }
17} // namespace polyfem
18
20{
21 class Solver;
22}
23
24namespace polyfem::solver
25{
26 class AdjointNLProblem;
27 class AdjointForm;
28 class Parametrization;
29 class VariableToSimulation;
30 class VariableToSimulationGroup;
31
33 {
34 static json apply_opt_json_spec(const json &input_args, bool strict_validation);
35
36 static std::shared_ptr<polysolve::nonlinear::Solver> make_nl_solver(const json &solver_params, const json &linear_solver_params, const double characteristic_length);
37
38 static Eigen::VectorXd inverse_evaluation(const json &args, const int ndof, const std::vector<int> &variable_sizes, VariableToSimulationGroup &var2sim);
39
40 static void solve_pde(legacy::State &state);
41
42 static int compute_variable_size(const json &args, const std::vector<std::shared_ptr<legacy::State>> &states);
43 };
44} // namespace polyfem::solver
main class that contains the polyfem solver and all its state
Definition State.hpp:114
polyfem::legacy::State State
Definition Remesher.hpp:19
nlohmann::json json
Definition Common.hpp:9
static void solve_pde(legacy::State &state)
static int compute_variable_size(const json &args, const std::vector< std::shared_ptr< legacy::State > > &states)
static std::shared_ptr< polysolve::nonlinear::Solver > make_nl_solver(const json &solver_params, const json &linear_solver_params, const double characteristic_length)
static json apply_opt_json_spec(const json &input_args, bool strict_validation)
static Eigen::VectorXd inverse_evaluation(const json &args, const int ndof, const std::vector< int > &variable_sizes, VariableToSimulationGroup &var2sim)