14 const Eigen::MatrixXd &
x,
15 const Eigen::MatrixXd &adjoint,
16 Eigen::VectorXd &term)
18 Eigen::MatrixXd adjoint_zeroed = adjoint;
24 term = -hessian.transpose() * adjoint_zeroed;
31 const int pressure_boundary_id,
32 const Eigen::MatrixXd &
x,
33 const Eigen::MatrixXd &adjoint)
35 Eigen::MatrixXd adjoint_zeroed = adjoint;
38 Eigen::VectorXd pressure_gradv;
43 term = pressure_gradv.transpose() * adjoint_zeroed;
46 assert(term.size() == 1);
void compute_grad_volume_id(const Eigen::MatrixXd &displacement, const int boundary_id, const std::vector< mesh::LocalBoundary > &local_boundary, const std::vector< int > &dirichlet_nodes, const QuadratureOrders &resolution, Eigen::VectorXd &grad, const double t=0, const bool multiply_pressure=false) const
void compute_force_jacobian(const Eigen::MatrixXd &displacement, const std::vector< mesh::LocalBoundary > &local_pressure_boundary, const std::vector< int > &dirichlet_nodes, const QuadratureOrders &resolution, const double t, const int n_vertices, StiffnessMatrix &hess) const
static void force_shape_derivative(PressureForm &form, const int n_verts, const double t, const Eigen::MatrixXd &x, const Eigen::MatrixXd &adjoint, Eigen::VectorXd &term)
static double force_pressure_derivative(PressureForm &form, const int n_verts, const double t, const int pressure_boundary_id, const Eigen::MatrixXd &x, const Eigen::MatrixXd &adjoint)
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix