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

#include <PeriodicMeshToMesh.hpp>

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

Public Member Functions

 PeriodicMeshToMesh (const Eigen::MatrixXd &V)
 
int size (const int x_size) const override
 
int input_size () const
 
int n_periodic_dof () const
 
int n_full_dof () const
 
int dim () const
 
Eigen::VectorXd eval (const Eigen::VectorXd &x) const override
 
Eigen::VectorXd inverse_eval (const Eigen::VectorXd &y) override
 
Eigen::VectorXd apply_jacobian (const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
 
int full_to_periodic (int i) const
 
- Public Member Functions inherited from polyfem::solver::Parametrization
 Parametrization ()
 
virtual ~Parametrization ()
 

Private Attributes

int dim_
 
int n_periodic_dof_
 
Eigen::VectorXi dependent_map
 
std::array< std::set< std::array< int, 2 > >, 3 > periodic_dependence
 

Detailed Description

Definition at line 10 of file PeriodicMeshToMesh.hpp.

Constructor & Destructor Documentation

◆ PeriodicMeshToMesh()

polyfem::solver::PeriodicMeshToMesh::PeriodicMeshToMesh ( const Eigen::MatrixXd &  V)

Definition at line 7 of file PeriodicMeshToMesh.cpp.

References dependent_map, dim_, polyfem::log_and_throw_error(), n_periodic_dof_, periodic_dependence, and V.

Here is the call graph for this function:

Member Function Documentation

◆ apply_jacobian()

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

Implements polyfem::solver::Parametrization.

Definition at line 137 of file PeriodicMeshToMesh.cpp.

References dependent_map, dim_, polyfem::utils::flatten(), input_size(), n_periodic_dof_, periodic_dependence, polyfem::utils::unflatten(), and x.

Referenced by polyfem::solver::AdjointTools::dJ_periodic_shape_adjoint_term().

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

◆ dim()

int polyfem::solver::PeriodicMeshToMesh::dim ( ) const
inline

Definition at line 19 of file PeriodicMeshToMesh.hpp.

References dim_.

◆ eval()

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

Implements polyfem::solver::Parametrization.

Definition at line 87 of file PeriodicMeshToMesh.cpp.

References dependent_map, dim_, input_size(), periodic_dependence, size(), polyfem::utils::unflatten(), x, and y.

Referenced by inverse_eval().

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

◆ full_to_periodic()

int polyfem::solver::PeriodicMeshToMesh::full_to_periodic ( int  i) const
inline

Definition at line 25 of file PeriodicMeshToMesh.hpp.

References dependent_map.

Referenced by polyfem::solver::PeriodicContactForm::force_periodic_shape_derivative().

Here is the caller graph for this function:

◆ input_size()

int polyfem::solver::PeriodicMeshToMesh::input_size ( ) const
inline

Definition at line 16 of file PeriodicMeshToMesh.hpp.

References dim_, and n_periodic_dof_.

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

Here is the caller graph for this function:

◆ inverse_eval()

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

Reimplemented from polyfem::solver::Parametrization.

Definition at line 107 of file PeriodicMeshToMesh.cpp.

References dependent_map, dim_, eval(), input_size(), polyfem::log_and_throw_adjoint_error(), periodic_dependence, polyfem::utils::unflatten(), V, x, y, and z.

Here is the call graph for this function:

◆ n_full_dof()

int polyfem::solver::PeriodicMeshToMesh::n_full_dof ( ) const
inline

Definition at line 18 of file PeriodicMeshToMesh.hpp.

References dependent_map.

◆ n_periodic_dof()

int polyfem::solver::PeriodicMeshToMesh::n_periodic_dof ( ) const
inline

Definition at line 17 of file PeriodicMeshToMesh.hpp.

References n_periodic_dof_.

◆ size()

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

Implements polyfem::solver::Parametrization.

Definition at line 15 of file PeriodicMeshToMesh.hpp.

References dependent_map, dim_, and input_size().

Referenced by eval().

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

Member Data Documentation

◆ dependent_map

Eigen::VectorXi polyfem::solver::PeriodicMeshToMesh::dependent_map
private

◆ dim_

int polyfem::solver::PeriodicMeshToMesh::dim_
private

◆ n_periodic_dof_

int polyfem::solver::PeriodicMeshToMesh::n_periodic_dof_
private

◆ periodic_dependence

std::array<std::set<std::array<int, 2> >, 3> polyfem::solver::PeriodicMeshToMesh::periodic_dependence
private

Definition at line 31 of file PeriodicMeshToMesh.hpp.

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


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