PolyFEM
Loading...
Searching...
No Matches
polyfem::solver::VariableToSimulation Class Referenceabstract

Maps the optimization variable to the state variable. More...

#include <VariableToSimulation.hpp>

Inheritance diagram for polyfem::solver::VariableToSimulation:
[legend]
Collaboration diagram for polyfem::solver::VariableToSimulation:
[legend]

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_
 

Detailed Description

Maps the optimization variable to the state variable.

Definition at line 21 of file VariableToSimulation.hpp.

Constructor & Destructor Documentation

◆ VariableToSimulation()

polyfem::solver::VariableToSimulation::VariableToSimulation ( std::vector< std::shared_ptr< State > >  states,
std::vector< std::shared_ptr< DiffCache > >  diff_caches,
CompositeParametrization  parametrization 
)
inline

Definition at line 24 of file VariableToSimulation.hpp.

References states.

◆ ~VariableToSimulation()

virtual polyfem::solver::VariableToSimulation::~VariableToSimulation ( )
virtualdefault

Member Function Documentation

◆ apply_parametrization_jacobian()

Eigen::VectorXd polyfem::solver::VariableToSimulation::apply_parametrization_jacobian ( const Eigen::VectorXd &  term,
const Eigen::VectorXd &  x 
) const
virtual

◆ compute_adjoint_term()

◆ get_output_indexing()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_parameter_type()

◆ inverse_eval()

◆ name()

◆ set_output_indexing()

void polyfem::solver::VariableToSimulation::set_output_indexing ( const json args)
virtual

◆ update()

virtual void polyfem::solver::VariableToSimulation::update ( const Eigen::VectorXd &  x)
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.

Here is the call graph for this function:

◆ update_state()

void polyfem::solver::VariableToSimulation::update_state ( const Eigen::VectorXd &  state_variable,
const Eigen::VectorXi &  indices 
)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ diff_caches

◆ output_indexing_

◆ parametrization

◆ states

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().


The documentation for this class was generated from the following files: