19 class AdjointNLProblem;
21 class Parametrization;
22 class VariableToSimulation;
23 class VariableToSimulationGroup;
29 static std::shared_ptr<polysolve::nonlinear::Solver>
make_nl_solver(
const json &solver_params,
const json &linear_solver_params,
const double characteristic_length);
33 static std::vector<std::shared_ptr<State>>
create_states(
const json &state_args,
const CacheLevel &level,
const size_t max_threads);
42 static std::shared_ptr<AdjointForm>
create_simple_form(
const std::string &obj_type,
const std::string ¶m_type,
const std::shared_ptr<State> &state,
const json &args);
44 static std::shared_ptr<Parametrization>
create_parametrization(
const json &args,
const std::vector<std::shared_ptr<State>> &states,
const std::vector<int> &variable_sizes);
46 static std::unique_ptr<VariableToSimulation>
create_variable_to_simulation(
const json &args,
const std::vector<std::shared_ptr<State>> &states,
const std::vector<int> &variable_sizes);
main class that contains the polyfem solver and all its state
A collection of VariableToSimulation.
static std::shared_ptr< AdjointForm > create_form(const json &args, const VariableToSimulationGroup &var2sim, const std::vector< std::shared_ptr< State > > &states)
static std::shared_ptr< AdjointForm > create_simple_form(const std::string &obj_type, const std::string ¶m_type, const std::shared_ptr< State > &state, const json &args)
static std::shared_ptr< polysolve::nonlinear::Solver > make_nl_solver(const json &solver_params, const json &linear_solver_params, const double characteristic_length)
static std::unique_ptr< VariableToSimulation > create_variable_to_simulation(const json &args, const std::vector< std::shared_ptr< State > > &states, const std::vector< int > &variable_sizes)
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 std::shared_ptr< Parametrization > create_parametrization(const json &args, const std::vector< std::shared_ptr< State > > &states, const std::vector< int > &variable_sizes)
static int compute_variable_size(const json &args, const std::vector< std::shared_ptr< State > > &states)
static std::vector< std::shared_ptr< State > > create_states(const json &state_args, const CacheLevel &level, const size_t max_threads)
static std::shared_ptr< State > create_state(const json &args, CacheLevel level, const size_t max_threads)