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 class State;
14}
15
17{
18 class Solver;
19}
20
21namespace polyfem::solver
22{
23 class AdjointNLProblem;
24 class AdjointForm;
25 class Parametrization;
26 class VariableToSimulation;
27 class VariableToSimulationGroup;
28
30 {
31 static json apply_opt_json_spec(const json &input_args, bool strict_validation);
32
33 static std::shared_ptr<polysolve::nonlinear::Solver> make_nl_solver(const json &solver_params, const json &linear_solver_params, const double characteristic_length);
34
35 static Eigen::VectorXd inverse_evaluation(const json &args, const int ndof, const std::vector<int> &variable_sizes, VariableToSimulationGroup &var2sim);
36
37 static void solve_pde(State &state);
38
39 static int compute_variable_size(const json &args, const std::vector<std::shared_ptr<State>> &states);
40 };
41} // namespace polyfem::solver
main class that contains the polyfem solver and all its state
Definition State.hpp:113
A collection of VariableToSimulation.
nlohmann::json json
Definition Common.hpp:9
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)
static void solve_pde(State &state)
static int compute_variable_size(const json &args, const std::vector< std::shared_ptr< State > > &states)