32 using VarFormPtrs = std::vector<std::shared_ptr<varform::DifferentiableVarForm>>;
46 Eigen::VectorXi active_boundary_ids,
47 Eigen::VectorXi active_time_slices);
49 std::string
name()
const override;
52 void update(
const Eigen::VectorXd &
x)
override;
Maps to dirichlet boundary.
std::vector< BoundaryNodeMap > boundary_node_maps_
boundary node map per varform.
void update(const Eigen::VectorXd &x) override
Update forward simulation varforms from optimization variables.
Eigen::VectorXd apply_parametrization_jacobian(const Eigen::VectorXd &term, const Eigen::VectorXd &x) const override
Apply parametrization jacobian to compute the gradient w.r.t.
std::string name() const override
DiffCachePtrs diff_caches_
ParameterType parameter_type() const override
Eigen::VectorXi active_time_slices_
int inverse_dof() const override
Compute optimization variables dof.
CompositeParametrization parametrization_
Eigen::VectorXi active_boundary_ids_
bool affects_varform(const varform::DifferentiableVarForm &target) const override
Return true if current var2sim maps to target varform.
Eigen::VectorXd inverse_eval() const override
Compute optimization variables from forward simulation varform::DifferentiableVarForm.
Eigen::VectorXd compute_adjoint_term(const Eigen::VectorXd &x) const override
Compute adjoint contribution of objective gradient.
std::vector< std::shared_ptr< varform::DifferentiableVarForm > > VarFormPtrs
void build_boundary_node_maps()
std::vector< std::vector< std::vector< int > > > BoundaryNodeMap
boundary order in this var2sim -> component (dim) -> offset in varform.boundary_state()....
void update_state_variables(const Eigen::VectorXd &x, Eigen::VectorXd &state_variables) const override
Update varform variables from optimization variables.
std::vector< std::shared_ptr< DiffCache > > DiffCachePtrs
Maps optimization variables to forward simulation varform::DifferentiableVarForm variables.