|
PolyFEM
|
A function f : x -> y. More...
#include <Parametrization.hpp>
Public Member Functions | |
| virtual | ~Parametrization ()=default |
| virtual Eigen::VectorXd | inverse_eval (const Eigen::VectorXd &y) |
| Eval x = f^-1 (y). | |
| virtual int | size (const int x_size) const =0 |
| Compute DOF of y given DOF of x. | |
| virtual Eigen::VectorXd | eval (const Eigen::VectorXd &x) const =0 |
| Eval y = f(x). | |
| virtual Eigen::VectorXd | apply_jacobian (const Eigen::VectorXd &grad_full, const Eigen::VectorXd &x) const =0 |
| Apply jacobian for chain rule. | |
A function f : x -> y.
Definition at line 12 of file Parametrization.hpp.
|
virtualdefault |
|
pure virtual |
Apply jacobian for chain rule.
Let g(y) = g(f(x)). Given ∂g/∂y, compute ∂g/∂x = ∂g/∂y * ∂y/∂x.
| [in] | grad_full | ∂g/∂y. |
| [in] | x | Where ∂g/∂x is evaluated. |
Implemented in polyfem::solver::ExponentialMap, polyfem::solver::Scaling, polyfem::solver::PowerMap, polyfem::solver::ENu2LambdaMu, polyfem::solver::PerBody2PerNode, polyfem::solver::PerBody2PerElem, polyfem::solver::SliceMap, polyfem::solver::InsertConstantMap, polyfem::solver::LinearFilter, polyfem::solver::ScalarVelocityParametrization, polyfem::solver::PeriodicMeshToMesh, polyfem::solver::CompositeParametrization, polyfem::solver::BSplineParametrization1DTo2D, polyfem::solver::BSplineParametrization2DTo3D, and polyfem::solver::BoundedBiharmonicWeights2Dto3D.
|
pure virtual |
Eval y = f(x).
| [in] | x | x. |
Implemented in polyfem::solver::CompositeParametrization, polyfem::solver::ExponentialMap, polyfem::solver::Scaling, polyfem::solver::PowerMap, polyfem::solver::ENu2LambdaMu, polyfem::solver::PerBody2PerNode, polyfem::solver::PerBody2PerElem, polyfem::solver::SliceMap, polyfem::solver::InsertConstantMap, polyfem::solver::LinearFilter, polyfem::solver::ScalarVelocityParametrization, polyfem::solver::PeriodicMeshToMesh, polyfem::solver::BSplineParametrization1DTo2D, polyfem::solver::BSplineParametrization2DTo3D, and polyfem::solver::BoundedBiharmonicWeights2Dto3D.
|
virtual |
Eval x = f^-1 (y).
This is not a strict inverse in mathematical sense, one may choose "reasonable" x even if f is not one-to-one.
| [in] | y | y. |
| std::runtime_error | Throw if not implemented. |
Reimplemented in polyfem::solver::CompositeParametrization, polyfem::solver::ExponentialMap, polyfem::solver::Scaling, polyfem::solver::PowerMap, polyfem::solver::ENu2LambdaMu, polyfem::solver::SliceMap, polyfem::solver::InsertConstantMap, polyfem::solver::ScalarVelocityParametrization, polyfem::solver::PeriodicMeshToMesh, polyfem::solver::BSplineParametrization1DTo2D, polyfem::solver::BSplineParametrization2DTo3D, and polyfem::solver::BoundedBiharmonicWeights2Dto3D.
Definition at line 6 of file Parametrization.cpp.
References polyfem::log_and_throw_adjoint_error().
|
pure virtual |
Compute DOF of y given DOF of x.
| [in] | x_size | The DOF of x. |
Implemented in polyfem::solver::CompositeParametrization, polyfem::solver::ExponentialMap, polyfem::solver::Scaling, polyfem::solver::PowerMap, polyfem::solver::ENu2LambdaMu, polyfem::solver::PerBody2PerNode, polyfem::solver::PerBody2PerElem, polyfem::solver::SliceMap, polyfem::solver::InsertConstantMap, polyfem::solver::LinearFilter, polyfem::solver::ScalarVelocityParametrization, polyfem::solver::PeriodicMeshToMesh, polyfem::solver::BSplineParametrization1DTo2D, polyfem::solver::BSplineParametrization2DTo3D, and polyfem::solver::BoundedBiharmonicWeights2Dto3D.