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

#include <Parametrizations.hpp>

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

Public Member Functions

 PerBody2PerNode (const mesh::Mesh &mesh, const std::vector< basis::ElementBases > &bases, const int n_bases)
 
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, const Eigen::VectorXd &x) const override
 
- Public Member Functions inherited from polyfem::solver::Parametrization
 Parametrization ()
 
virtual ~Parametrization ()
 
virtual Eigen::VectorXd inverse_eval (const Eigen::VectorXd &y)
 

Private Attributes

const mesh::Meshmesh_
 
const std::vector< basis::ElementBases > & bases_
 
int full_size_
 
int reduced_size_
 
Eigen::VectorXi node_id_to_body_id_
 

Detailed Description

Definition at line 91 of file Parametrizations.hpp.

Constructor & Destructor Documentation

◆ PerBody2PerNode()

polyfem::solver::PerBody2PerNode::PerBody2PerNode ( const mesh::Mesh mesh,
const std::vector< basis::ElementBases > &  bases,
const int  n_bases 
)

Definition at line 190 of file Parametrizations.cpp.

References full_size_, polyfem::mesh::Mesh::get_body_id(), polyfem::log_and_throw_adjoint_error(), polyfem::logger(), mesh_, polyfem::mesh::Mesh::n_elements(), node_id_to_body_id_, and reduced_size_.

Here is the call graph for this function:

Member Function Documentation

◆ apply_jacobian()

Eigen::VectorXd polyfem::solver::PerBody2PerNode::apply_jacobian ( const Eigen::VectorXd &  grad,
const Eigen::VectorXd &  x 
) const
overridevirtual

Implements polyfem::solver::Parametrization.

Definition at line 247 of file Parametrizations.cpp.

References full_size_, node_id_to_body_id_, reduced_size_, size(), and x.

Here is the call graph for this function:

◆ eval()

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

Implements polyfem::solver::Parametrization.

Definition at line 224 of file Parametrizations.cpp.

References full_size_, node_id_to_body_id_, reduced_size_, size(), x, and y.

Here is the call graph for this function:

◆ size()

int polyfem::solver::PerBody2PerNode::size ( const int  x_size) const
overridevirtual

Implements polyfem::solver::Parametrization.

Definition at line 241 of file Parametrizations.cpp.

References full_size_, and reduced_size_.

Referenced by apply_jacobian(), and eval().

Here is the caller graph for this function:

Member Data Documentation

◆ bases_

const std::vector<basis::ElementBases>& polyfem::solver::PerBody2PerNode::bases_
private

Definition at line 102 of file Parametrizations.hpp.

◆ full_size_

int polyfem::solver::PerBody2PerNode::full_size_
private

Definition at line 103 of file Parametrizations.hpp.

Referenced by apply_jacobian(), eval(), PerBody2PerNode(), and size().

◆ mesh_

const mesh::Mesh& polyfem::solver::PerBody2PerNode::mesh_
private

Definition at line 101 of file Parametrizations.hpp.

Referenced by PerBody2PerNode().

◆ node_id_to_body_id_

Eigen::VectorXi polyfem::solver::PerBody2PerNode::node_id_to_body_id_
private

Definition at line 105 of file Parametrizations.hpp.

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

◆ reduced_size_

int polyfem::solver::PerBody2PerNode::reduced_size_
private

Definition at line 104 of file Parametrizations.hpp.

Referenced by apply_jacobian(), eval(), PerBody2PerNode(), and size().


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