PolyFEM
Loading...
Searching...
No Matches
AdjointTools.hpp File Reference
#include <polyfem/Common.hpp>
#include <set>
Include dependency graph for AdjointTools.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  polyfem
 
namespace  polyfem::solver
 
namespace  polyfem::solver::AdjointTools
 

Enumerations

enum class  polyfem::solver::ParameterType {
  polyfem::solver::Shape , polyfem::solver::LameParameter , polyfem::solver::FrictionCoefficient , polyfem::solver::DampingCoefficient ,
  polyfem::solver::InitialCondition , polyfem::solver::DirichletBC , polyfem::solver::PressureBC , polyfem::solver::MacroStrain ,
  polyfem::solver::PeriodicShape
}
 
enum class  polyfem::solver::SpatialIntegralType { polyfem::solver::Volume , polyfem::solver::Surface , polyfem::solver::VertexSum }
 

Functions

double polyfem::solver::AdjointTools::integrate_objective (const State &state, const IntegrableFunctional &j, const Eigen::MatrixXd &solution, const std::set< int > &interested_ids, const SpatialIntegralType spatial_integral_type, const int cur_step=0)
 
void polyfem::solver::AdjointTools::dJ_du_step (const State &state, const IntegrableFunctional &j, const Eigen::MatrixXd &solution, const std::set< int > &interested_ids, const SpatialIntegralType spatial_integral_type, const int cur_step, Eigen::VectorXd &term)
 
void polyfem::solver::AdjointTools::compute_shape_derivative_functional_term (const State &state, const Eigen::MatrixXd &solution, const IntegrableFunctional &j, const std::set< int > &interested_ids, const SpatialIntegralType spatial_integral_type, Eigen::VectorXd &term, const int cur_time_step)
 
void polyfem::solver::AdjointTools::dJ_shape_static_adjoint_term (const State &state, const Eigen::MatrixXd &sol, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_shape_homogenization_adjoint_term (const State &state, const Eigen::MatrixXd &sol, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_periodic_shape_adjoint_term (const State &state, const PeriodicMeshToMesh &periodic_mesh_map, const Eigen::VectorXd &periodic_mesh_representation, const Eigen::MatrixXd &sol, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_material_static_adjoint_term (const State &state, const Eigen::MatrixXd &sol, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_material_transient_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_friction_transient_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_damping_transient_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_initial_condition_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_dirichlet_transient_adjoint_term (const State &state, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_pressure_static_adjoint_term (const State &state, const std::vector< int > &boundary_ids, const Eigen::MatrixXd &sol, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &one_form)
 
void polyfem::solver::AdjointTools::dJ_pressure_transient_adjoint_term (const State &state, const std::vector< int > &boundary_ids, const Eigen::MatrixXd &adjoint_nu, const Eigen::MatrixXd &adjoint_p, Eigen::VectorXd &one_form)
 
Eigen::VectorXd polyfem::solver::AdjointTools::map_primitive_to_node_order (const State &state, const Eigen::VectorXd &primitives)
 
Eigen::VectorXd polyfem::solver::AdjointTools::map_node_to_primitive_order (const State &state, const Eigen::VectorXd &nodes)
 
Eigen::MatrixXd polyfem::solver::AdjointTools::edge_normal_gradient (const Eigen::MatrixXd &V)
 
Eigen::MatrixXd polyfem::solver::AdjointTools::face_normal_gradient (const Eigen::MatrixXd &V)
 
Eigen::MatrixXd polyfem::solver::AdjointTools::edge_velocity_divergence (const Eigen::MatrixXd &V)
 
Eigen::MatrixXd polyfem::solver::AdjointTools::face_velocity_divergence (const Eigen::MatrixXd &V)
 
double polyfem::solver::AdjointTools::triangle_jacobian (const Eigen::VectorXd &v1, const Eigen::VectorXd &v2, const Eigen::VectorXd &v3)
 
double polyfem::solver::AdjointTools::tet_determinant (const Eigen::VectorXd &v1, const Eigen::VectorXd &v2, const Eigen::VectorXd &v3, const Eigen::VectorXd &v4)
 
void polyfem::solver::AdjointTools::scaled_jacobian (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, Eigen::VectorXd &quality)
 
bool polyfem::solver::AdjointTools::is_flipped (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F)