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

#include <SplineParametrizations.hpp>

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

Public Member Functions

 BoundedBiharmonicWeights2Dto3D (const int num_control_vertices, const int num_vertices, const Eigen::MatrixXd &V_surface, const Eigen::MatrixXi &F_surface)
 
 BoundedBiharmonicWeights2Dto3D (const int num_control_vertices, const int num_vertices, const State &state, const bool allow_rotations)
 
Eigen::VectorXd inverse_eval (const Eigen::VectorXd &y) override
 
int size (const int x_size) const override
 
Eigen::VectorXd eval (const Eigen::VectorXd &x) const override
 
Eigen::VectorXd apply_jacobian (const Eigen::VectorXd &grad_full, const Eigen::VectorXd &x) const override
 
Eigen::MatrixXd get_bbw_weights ()
 
- Public Member Functions inherited from polyfem::solver::Parametrization
 Parametrization ()
 
virtual ~Parametrization ()
 

Private Member Functions

void compute_faces_for_partial_vertices (const Eigen::MatrixXd &V, Eigen::MatrixXi &F) const
 
int optimal_new_control_point_idx (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::VectorXi &boundary_loop, const std::vector< int > &existing_points) const
 

Private Attributes

const int num_control_vertices_
 
const int num_vertices_
 
Eigen::MatrixXd control_points_
 
Eigen::MatrixXd bbw_weights_
 
Eigen::MatrixXd boundary_bbw_weights_
 
Eigen::MatrixXd V_surface_
 
Eigen::MatrixXi F_surface_
 
Eigen::VectorXd y_start
 
bool invoked_inverse_eval_ = false
 
const bool allow_rotations_
 

Detailed Description

Definition at line 70 of file SplineParametrizations.hpp.

Constructor & Destructor Documentation

◆ BoundedBiharmonicWeights2Dto3D() [1/2]

polyfem::solver::BoundedBiharmonicWeights2Dto3D::BoundedBiharmonicWeights2Dto3D ( const int  num_control_vertices,
const int  num_vertices,
const Eigen::MatrixXd &  V_surface,
const Eigen::MatrixXi &  F_surface 
)
inline

Definition at line 73 of file SplineParametrizations.hpp.

◆ BoundedBiharmonicWeights2Dto3D() [2/2]

polyfem::solver::BoundedBiharmonicWeights2Dto3D::BoundedBiharmonicWeights2Dto3D ( const int  num_control_vertices,
const int  num_vertices,
const State state,
const bool  allow_rotations 
)

Definition at line 157 of file SplineParametrizations.cpp.

References polyfem::State::bases, F_surface_, polyfem::State::geom_bases(), polyfem::State::get_vertices(), polyfem::State::mesh, polyfem::State::node_to_primitive(), polyfem::State::total_local_boundary, V, and V_surface_.

Here is the call graph for this function:

Member Function Documentation

◆ apply_jacobian()

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

◆ compute_faces_for_partial_vertices()

void polyfem::solver::BoundedBiharmonicWeights2Dto3D::compute_faces_for_partial_vertices ( const Eigen::MatrixXd &  V,
Eigen::MatrixXi &  F 
) const
private

Definition at line 374 of file SplineParametrizations.cpp.

References polyfem::F, F_surface_, V, V_surface_, and x.

Referenced by inverse_eval().

Here is the caller graph for this function:

◆ eval()

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

Implements polyfem::solver::Parametrization.

Definition at line 328 of file SplineParametrizations.cpp.

References allow_rotations_, bbw_weights_, boundary_bbw_weights_, control_points_, invoked_inverse_eval_, polyfem::log_and_throw_error(), x, y, and y_start.

Referenced by inverse_eval().

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

◆ get_bbw_weights()

Eigen::MatrixXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::get_bbw_weights ( )
inline

Definition at line 82 of file SplineParametrizations.hpp.

References bbw_weights_.

◆ inverse_eval()

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

Reimplemented from polyfem::solver::Parametrization.

Definition at line 236 of file SplineParametrizations.cpp.

References allow_rotations_, bbw_weights_, boundary_bbw_weights_, compute_faces_for_partial_vertices(), control_points_, eval(), polyfem::F, invoked_inverse_eval_, polyfem::log_and_throw_error(), polyfem::logger(), num_control_vertices_, optimal_new_control_point_idx(), size(), polyfem::utils::unflatten(), V, y, and y_start.

Here is the call graph for this function:

◆ optimal_new_control_point_idx()

int polyfem::solver::BoundedBiharmonicWeights2Dto3D::optimal_new_control_point_idx ( const Eigen::MatrixXd &  V,
const Eigen::MatrixXi &  F,
const Eigen::VectorXi &  boundary_loop,
const std::vector< int > &  existing_points 
) const
private

Definition at line 192 of file SplineParametrizations.cpp.

References polyfem::F, and V.

Referenced by inverse_eval().

Here is the caller graph for this function:

◆ size()

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

Implements polyfem::solver::Parametrization.

Definition at line 78 of file SplineParametrizations.hpp.

References num_vertices_.

Referenced by inverse_eval().

Here is the caller graph for this function:

Member Data Documentation

◆ allow_rotations_

const bool polyfem::solver::BoundedBiharmonicWeights2Dto3D::allow_rotations_
private

Definition at line 102 of file SplineParametrizations.hpp.

Referenced by apply_jacobian(), eval(), and inverse_eval().

◆ bbw_weights_

Eigen::MatrixXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::bbw_weights_
private

Definition at line 92 of file SplineParametrizations.hpp.

Referenced by apply_jacobian(), eval(), get_bbw_weights(), and inverse_eval().

◆ boundary_bbw_weights_

Eigen::MatrixXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::boundary_bbw_weights_
private

Definition at line 93 of file SplineParametrizations.hpp.

Referenced by eval(), and inverse_eval().

◆ control_points_

Eigen::MatrixXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::control_points_
private

Definition at line 91 of file SplineParametrizations.hpp.

Referenced by apply_jacobian(), eval(), and inverse_eval().

◆ F_surface_

Eigen::MatrixXi polyfem::solver::BoundedBiharmonicWeights2Dto3D::F_surface_
private

◆ invoked_inverse_eval_

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

Definition at line 100 of file SplineParametrizations.hpp.

Referenced by eval(), and inverse_eval().

◆ num_control_vertices_

const int polyfem::solver::BoundedBiharmonicWeights2Dto3D::num_control_vertices_
private

Definition at line 89 of file SplineParametrizations.hpp.

Referenced by inverse_eval().

◆ num_vertices_

const int polyfem::solver::BoundedBiharmonicWeights2Dto3D::num_vertices_
private

Definition at line 90 of file SplineParametrizations.hpp.

Referenced by size().

◆ V_surface_

Eigen::MatrixXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::V_surface_
private

◆ y_start

Eigen::VectorXd polyfem::solver::BoundedBiharmonicWeights2Dto3D::y_start
private

Definition at line 98 of file SplineParametrizations.hpp.

Referenced by apply_jacobian(), eval(), and inverse_eval().


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