PolyFEM
Loading...
Searching...
No Matches
polyfem::solver::BSplineParametrization2DTo3D Class Reference

#include <SplineParametrizations.hpp>

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

Public Member Functions

 BSplineParametrization2DTo3D (const Eigen::MatrixXd &initial_control_point_grid, const Eigen::VectorXd &knots_u, const Eigen::VectorXd &knots_v, const bool exclude_ends=true)
 
Eigen::VectorXd inverse_eval (const Eigen::VectorXd &y) override
 Eval x = f^-1 (y).
 
int size (const int x_size) const override
 Compute DOF of y given DOF of x.
 
Eigen::VectorXd eval (const Eigen::VectorXd &x) const override
 Eval y = f(x).
 
Eigen::VectorXd apply_jacobian (const Eigen::VectorXd &grad_full, const Eigen::VectorXd &x) const override
 Apply jacobian for chain rule.
 
- Public Member Functions inherited from polyfem::solver::Parametrization
virtual ~Parametrization ()=default
 

Private Attributes

const Eigen::MatrixXd initial_control_point_grid_
 
const Eigen::VectorXd knots_u_
 
const Eigen::VectorXd knots_v_
 
std::shared_ptr< BSplineParametrization3Dspline_
 
Eigen::VectorXd u_
 
Eigen::VectorXd v_
 
bool invoked_inverse_eval_ = false
 
const bool exclude_ends_
 

Detailed Description

Definition at line 44 of file SplineParametrizations.hpp.

Constructor & Destructor Documentation

◆ BSplineParametrization2DTo3D()

polyfem::solver::BSplineParametrization2DTo3D::BSplineParametrization2DTo3D ( const Eigen::MatrixXd &  initial_control_point_grid,
const Eigen::VectorXd &  knots_u,
const Eigen::VectorXd &  knots_v,
const bool  exclude_ends = true 
)
inline

Definition at line 47 of file SplineParametrizations.hpp.

Member Function Documentation

◆ apply_jacobian()

Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::apply_jacobian ( const Eigen::VectorXd &  grad_full,
const Eigen::VectorXd &  x 
) const
overridevirtual

Apply jacobian for chain rule.

Let g(y) = g(f(x)). Given ∂g/∂y, compute ∂g/∂x = ∂g/∂y * ∂y/∂x.

Parameters
[in]grad_full∂g/∂y.
[in]xWhere ∂g/∂x is evaluated.
Returns
∂g/∂x.

Implements polyfem::solver::Parametrization.

Definition at line 152 of file SplineParametrizations.cpp.

◆ eval()

Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::eval ( const Eigen::VectorXd &  x) const
overridevirtual

Eval y = f(x).

Parameters
[in]xx.
Returns
y.

Implements polyfem::solver::Parametrization.

Definition at line 145 of file SplineParametrizations.cpp.

References invoked_inverse_eval_, and polyfem::log_and_throw_error().

Here is the call graph for this function:

◆ inverse_eval()

Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::inverse_eval ( const Eigen::VectorXd &  y)
overridevirtual

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.

Parameters
[in]yy.
Returns
x.
Exceptions
std::runtime_errorThrow if not implemented.

Reimplemented from polyfem::solver::Parametrization.

Definition at line 138 of file SplineParametrizations.cpp.

References initial_control_point_grid_, invoked_inverse_eval_, knots_u_, knots_v_, spline_, and y.

◆ size()

int polyfem::solver::BSplineParametrization2DTo3D::size ( const int  x_size) const
inlineoverridevirtual

Compute DOF of y given DOF of x.

Parameters
[in]x_sizeThe DOF of x.
Returns
DOF of y.

Implements polyfem::solver::Parametrization.

Definition at line 51 of file SplineParametrizations.hpp.

References u_, and v_.

Member Data Documentation

◆ exclude_ends_

const bool polyfem::solver::BSplineParametrization2DTo3D::exclude_ends_
private

Definition at line 67 of file SplineParametrizations.hpp.

◆ initial_control_point_grid_

const Eigen::MatrixXd polyfem::solver::BSplineParametrization2DTo3D::initial_control_point_grid_
private

Definition at line 56 of file SplineParametrizations.hpp.

Referenced by inverse_eval().

◆ invoked_inverse_eval_

bool polyfem::solver::BSplineParametrization2DTo3D::invoked_inverse_eval_ = false
private

Definition at line 65 of file SplineParametrizations.hpp.

Referenced by eval(), and inverse_eval().

◆ knots_u_

const Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::knots_u_
private

Definition at line 57 of file SplineParametrizations.hpp.

Referenced by inverse_eval().

◆ knots_v_

const Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::knots_v_
private

Definition at line 58 of file SplineParametrizations.hpp.

Referenced by inverse_eval().

◆ spline_

std::shared_ptr<BSplineParametrization3D> polyfem::solver::BSplineParametrization2DTo3D::spline_
private

Definition at line 60 of file SplineParametrizations.hpp.

Referenced by inverse_eval().

◆ u_

Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::u_
private

Definition at line 62 of file SplineParametrizations.hpp.

Referenced by size().

◆ v_

Eigen::VectorXd polyfem::solver::BSplineParametrization2DTo3D::v_
private

Definition at line 63 of file SplineParametrizations.hpp.

Referenced by size().


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