|
PolyFEM
|
Maps the optimization variable to the state variable. More...
#include <VariableToSimulation.hpp>
Public Member Functions | |
| VariableToSimulation (std::vector< std::shared_ptr< State > > states, std::vector< std::shared_ptr< DiffCache > > diff_caches, CompositeParametrization parametrization) | |
| virtual | ~VariableToSimulation ()=default |
| virtual void | update (const Eigen::VectorXd &x) |
| virtual std::string | name () const =0 |
| virtual ParameterType | get_parameter_type () const =0 |
| virtual Eigen::VectorXd | compute_adjoint_term (const Eigen::VectorXd &x) const =0 |
| virtual Eigen::VectorXd | inverse_eval () |
| virtual void | set_output_indexing (const json &args) |
| Eigen::VectorXi | get_output_indexing (const Eigen::VectorXd &x) const |
| virtual Eigen::VectorXd | apply_parametrization_jacobian (const Eigen::VectorXd &term, const Eigen::VectorXd &x) const |
Public Attributes | |
| const std::vector< std::shared_ptr< State > > | states |
| const std::vector< std::shared_ptr< DiffCache > > | diff_caches |
| CompositeParametrization | parametrization |
Protected Member Functions | |
| virtual void | update_state (const Eigen::VectorXd &state_variable, const Eigen::VectorXi &indices) |
Protected Attributes | |
| Eigen::VectorXi | output_indexing_ |
Maps the optimization variable to the state variable.
Definition at line 21 of file VariableToSimulation.hpp.
|
inline |
Definition at line 24 of file VariableToSimulation.hpp.
References states.
|
virtualdefault |
|
virtual |
Reimplemented in polyfem::solver::PeriodicShapeVariableToSimulation.
Definition at line 68 of file VariableToSimulation.cpp.
References polyfem::solver::CompositeParametrization::apply_jacobian(), get_output_indexing(), parametrization, and x.
Referenced by polyfem::solver::ShapeVariableToSimulation::compute_adjoint_term(), polyfem::solver::ElasticVariableToSimulation::compute_adjoint_term(), polyfem::solver::FrictionCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::DampingCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::InitialConditionVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletNodesVariableToSimulation::compute_adjoint_term(), polyfem::solver::PressureVariableToSimulation::compute_adjoint_term(), and polyfem::solver::PeriodicShapeVariableToSimulation::compute_adjoint_term().
|
pure virtual |
Implemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::ElasticVariableToSimulation, polyfem::solver::FrictionCoeffientVariableToSimulation, polyfem::solver::DampingCoeffientVariableToSimulation, polyfem::solver::InitialConditionVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, polyfem::solver::PressureVariableToSimulation, and polyfem::solver::PeriodicShapeVariableToSimulation.
| Eigen::VectorXi polyfem::solver::VariableToSimulation::get_output_indexing | ( | const Eigen::VectorXd & | x | ) | const |
Definition at line 52 of file VariableToSimulation.cpp.
References polyfem::log_and_throw_adjoint_error(), name(), output_indexing_, parametrization, polyfem::solver::CompositeParametrization::size(), and x.
Referenced by apply_parametrization_jacobian(), polyfem::solver::ShapeVariableToSimulation::inverse_eval(), and update().
|
pure virtual |
Implemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::ElasticVariableToSimulation, polyfem::solver::FrictionCoeffientVariableToSimulation, polyfem::solver::DampingCoeffientVariableToSimulation, polyfem::solver::InitialConditionVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, polyfem::solver::PressureVariableToSimulation, and polyfem::solver::PeriodicShapeVariableToSimulation.
|
virtual |
Reimplemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::ElasticVariableToSimulation, polyfem::solver::FrictionCoeffientVariableToSimulation, polyfem::solver::DampingCoeffientVariableToSimulation, polyfem::solver::InitialConditionVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, polyfem::solver::PressureVariableToSimulation, and polyfem::solver::PeriodicShapeVariableToSimulation.
Definition at line 73 of file VariableToSimulation.cpp.
References polyfem::log_and_throw_adjoint_error(), and name().
|
pure virtual |
Implemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::ElasticVariableToSimulation, polyfem::solver::FrictionCoeffientVariableToSimulation, polyfem::solver::DampingCoeffientVariableToSimulation, polyfem::solver::InitialConditionVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, polyfem::solver::PressureVariableToSimulation, and polyfem::solver::PeriodicShapeVariableToSimulation.
Referenced by get_output_indexing(), inverse_eval(), and update_state().
|
virtual |
Reimplemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, and polyfem::solver::PressureVariableToSimulation.
Definition at line 27 of file VariableToSimulation.cpp.
References polyfem::log_and_throw_adjoint_error(), output_indexing_, polyfem::io::read_matrix(), polyfem::State::resolve_input_path(), states, and tmp_mat.
Referenced by polyfem::solver::ShapeVariableToSimulation::set_output_indexing(), polyfem::solver::DirichletVariableToSimulation::set_output_indexing(), polyfem::solver::DirichletNodesVariableToSimulation::set_output_indexing(), and polyfem::solver::PressureVariableToSimulation::set_output_indexing().
|
inlinevirtual |
Reimplemented in polyfem::solver::PeriodicShapeVariableToSimulation.
Definition at line 35 of file VariableToSimulation.hpp.
References polyfem::solver::CompositeParametrization::eval(), get_output_indexing(), parametrization, update_state(), and x.
|
protectedvirtual |
Reimplemented in polyfem::solver::ShapeVariableToSimulation, polyfem::solver::ElasticVariableToSimulation, polyfem::solver::FrictionCoeffientVariableToSimulation, polyfem::solver::DampingCoeffientVariableToSimulation, polyfem::solver::InitialConditionVariableToSimulation, polyfem::solver::DirichletVariableToSimulation, polyfem::solver::DirichletNodesVariableToSimulation, and polyfem::solver::PressureVariableToSimulation.
Definition at line 79 of file VariableToSimulation.cpp.
References polyfem::log_and_throw_adjoint_error(), and name().
Referenced by update().
| const std::vector<std::shared_ptr<DiffCache> > polyfem::solver::VariableToSimulation::diff_caches |
Definition at line 52 of file VariableToSimulation.hpp.
Referenced by polyfem::solver::ShapeVariableToSimulation::compute_adjoint_term(), polyfem::solver::ElasticVariableToSimulation::compute_adjoint_term(), polyfem::solver::FrictionCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::DampingCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::InitialConditionVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletNodesVariableToSimulation::compute_adjoint_term(), polyfem::solver::PressureVariableToSimulation::compute_adjoint_term(), polyfem::solver::PeriodicShapeVariableToSimulation::compute_adjoint_term(), and polyfem::solver::InitialConditionVariableToSimulation::update_state().
|
protected |
Definition at line 58 of file VariableToSimulation.hpp.
Referenced by get_output_indexing(), set_output_indexing(), polyfem::solver::ShapeVariableToSimulation::set_output_indexing(), polyfem::solver::DirichletVariableToSimulation::set_output_indexing(), and polyfem::solver::PressureVariableToSimulation::set_output_indexing().
| CompositeParametrization polyfem::solver::VariableToSimulation::parametrization |
Definition at line 53 of file VariableToSimulation.hpp.
Referenced by apply_parametrization_jacobian(), polyfem::solver::PeriodicShapeVariableToSimulation::apply_parametrization_jacobian(), get_output_indexing(), polyfem::solver::ShapeVariableToSimulation::inverse_eval(), polyfem::solver::ElasticVariableToSimulation::inverse_eval(), polyfem::solver::DirichletVariableToSimulation::inverse_eval(), polyfem::solver::PressureVariableToSimulation::inverse_eval(), polyfem::solver::PeriodicShapeVariableToSimulation::inverse_eval(), update(), and polyfem::solver::PeriodicShapeVariableToSimulation::update().
| const std::vector<std::shared_ptr<State> > polyfem::solver::VariableToSimulation::states |
Definition at line 51 of file VariableToSimulation.hpp.
Referenced by polyfem::solver::ShapeVariableToSimulation::compute_adjoint_term(), polyfem::solver::ElasticVariableToSimulation::compute_adjoint_term(), polyfem::solver::FrictionCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::DampingCoeffientVariableToSimulation::compute_adjoint_term(), polyfem::solver::InitialConditionVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletVariableToSimulation::compute_adjoint_term(), polyfem::solver::DirichletNodesVariableToSimulation::compute_adjoint_term(), polyfem::solver::PressureVariableToSimulation::compute_adjoint_term(), polyfem::solver::PeriodicShapeVariableToSimulation::compute_adjoint_term(), polyfem::solver::ShapeVariableToSimulation::inverse_eval(), polyfem::solver::ElasticVariableToSimulation::inverse_eval(), polyfem::solver::InitialConditionVariableToSimulation::inverse_eval(), polyfem::solver::DirichletVariableToSimulation::inverse_eval(), polyfem::solver::PressureVariableToSimulation::inverse_eval(), polyfem::solver::PeriodicShapeVariableToSimulation::inverse_eval(), set_output_indexing(), polyfem::solver::ShapeVariableToSimulation::set_output_indexing(), polyfem::solver::DirichletVariableToSimulation::set_output_indexing(), polyfem::solver::PressureVariableToSimulation::set_output_indexing(), polyfem::solver::PeriodicShapeVariableToSimulation::update(), polyfem::solver::ShapeVariableToSimulation::update_state(), polyfem::solver::ElasticVariableToSimulation::update_state(), polyfem::solver::FrictionCoeffientVariableToSimulation::update_state(), polyfem::solver::DampingCoeffientVariableToSimulation::update_state(), polyfem::solver::InitialConditionVariableToSimulation::update_state(), polyfem::solver::DirichletVariableToSimulation::update_state(), polyfem::solver::DirichletNodesVariableToSimulation::update_state(), polyfem::solver::PressureVariableToSimulation::update_state(), and VariableToSimulation().