9 class IntegrableFunctional;
12 class PeriodicMeshToMesh;
38 namespace AdjointTools
43 const Eigen::MatrixXd &solution,
44 const std::set<int> &interested_ids,
46 const int cur_step = 0);
50 const Eigen::MatrixXd &solution,
51 const std::set<int> &interested_ids,
54 Eigen::VectorXd &term);
57 const Eigen::MatrixXd &solution,
59 const std::set<int> &interested_ids,
61 Eigen::VectorXd &term,
62 const int cur_time_step);
65 const Eigen::MatrixXd &sol,
66 const Eigen::MatrixXd &adjoint,
67 Eigen::VectorXd &one_form);
78 const Eigen::MatrixXd &sol,
79 const Eigen::MatrixXd &adjoint,
80 Eigen::VectorXd &one_form);
84 const Eigen::VectorXd &periodic_mesh_representation,
85 const Eigen::MatrixXd &sol,
86 const Eigen::MatrixXd &adjoint,
87 Eigen::VectorXd &one_form);
91 const Eigen::MatrixXd &adjoint_nu,
92 const Eigen::MatrixXd &adjoint_p,
93 Eigen::VectorXd &one_form);
96 const Eigen::MatrixXd &sol,
97 const Eigen::MatrixXd &adjoint,
98 Eigen::VectorXd &one_form);
101 const Eigen::MatrixXd &adjoint_nu,
102 const Eigen::MatrixXd &adjoint_p,
103 Eigen::VectorXd &one_form);
106 const Eigen::MatrixXd &adjoint_nu,
107 const Eigen::MatrixXd &adjoint_p,
108 Eigen::VectorXd &one_form);
111 const Eigen::MatrixXd &adjoint_nu,
112 const Eigen::MatrixXd &adjoint_p,
113 Eigen::VectorXd &one_form);
116 const Eigen::MatrixXd &adjoint_nu,
117 const Eigen::MatrixXd &adjoint_p,
118 Eigen::VectorXd &one_form);
121 const Eigen::MatrixXd &adjoint_nu,
122 const Eigen::MatrixXd &adjoint_p,
123 Eigen::VectorXd &one_form);
126 const std::vector<int> &boundary_ids,
127 const Eigen::MatrixXd &sol,
128 const Eigen::MatrixXd &adjoint,
129 Eigen::VectorXd &one_form);
132 const std::vector<int> &boundary_ids,
133 const Eigen::MatrixXd &adjoint_nu,
134 const Eigen::MatrixXd &adjoint_p,
135 Eigen::VectorXd &one_form);
139 const Eigen::VectorXd &primitives);
142 const Eigen::VectorXd &nodes);
145 const Eigen::MatrixXd &
V);
147 const Eigen::MatrixXd &
V);
150 const Eigen::MatrixXd &
V);
152 const Eigen::MatrixXd &
V);
154 double triangle_jacobian(
const Eigen::VectorXd &v1,
const Eigen::VectorXd &v2,
const Eigen::VectorXd &v3);
155 double tet_determinant(
const Eigen::VectorXd &v1,
const Eigen::VectorXd &v2,
const Eigen::VectorXd &v3,
const Eigen::VectorXd &v4);
156 void scaled_jacobian(
const Eigen::MatrixXd &
V,
const Eigen::MatrixXi &
F, Eigen::VectorXd &quality);
157 bool is_flipped(
const Eigen::MatrixXd &
V,
const Eigen::MatrixXi &
F);
main class that contains the polyfem solver and all its state