PolyFEM
|
#include <DiffCache.hpp>
Public Member Functions | |
void | init (const int dimension, const int ndof, const int n_time_steps=0) |
void | cache_quantities_static (const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &collision_set, const ipc::SmoothCollisions &smooth_collision_set, const ipc::TangentialCollisions &friction_constraint_set, const ipc::NormalCollisions &normal_adhesion_set, const ipc::TangentialCollisions &tangential_adhesion_set, const Eigen::MatrixXd &disp_grad) |
void | cache_quantities_transient (const int cur_step, const int cur_bdf_order, const Eigen::MatrixXd &u, const Eigen::MatrixXd &v, const Eigen::MatrixXd &acc, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &collision_set, const ipc::SmoothCollisions &smooth_collision_set, const ipc::TangentialCollisions &friction_collision_set) |
void | cache_quantities_quasistatic (const int cur_step, const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &collision_set, const ipc::SmoothCollisions &smooth_collision_set, const ipc::NormalCollisions &normal_adhesion_set, const Eigen::MatrixXd &disp_grad) |
void | cache_adjoints (const Eigen::MatrixXd &adjoint_mat) |
const Eigen::MatrixXd & | adjoint_mat () const |
int | size () const |
int | bdf_order (int step) const |
Eigen::MatrixXd | disp_grad (int step=0) const |
Eigen::VectorXd | u (int step) const |
Eigen::VectorXd | v (int step) const |
Eigen::VectorXd | acc (int step) const |
const StiffnessMatrix & | gradu_h (int step) const |
const ipc::NormalCollisions & | collision_set (int step) const |
const ipc::SmoothCollisions & | smooth_collision_set (int step) const |
const ipc::TangentialCollisions & | friction_collision_set (int step) const |
const ipc::NormalCollisions & | normal_adhesion_collision_set (int step) const |
const ipc::TangentialCollisions & | tangential_adhesion_collision_set (int step) const |
Private Attributes | |
int | n_time_steps_ = 0 |
int | cur_size_ = 0 |
std::vector< Eigen::MatrixXd > | disp_grad_ |
Eigen::MatrixXd | u_ |
Eigen::MatrixXd | v_ |
Eigen::MatrixXd | acc_ |
Eigen::VectorXi | bdf_order_ |
std::vector< StiffnessMatrix > | gradu_h_ |
std::vector< ipc::NormalCollisions > | collision_set_ |
std::vector< ipc::SmoothCollisions > | smooth_collision_set_ |
std::vector< ipc::TangentialCollisions > | friction_collision_set_ |
std::vector< ipc::NormalCollisions > | normal_adhesion_collision_set_ |
std::vector< ipc::TangentialCollisions > | tangential_adhesion_collision_set_ |
Eigen::MatrixXd | adjoint_mat_ |
Definition at line 18 of file DiffCache.hpp.
|
inline |
Definition at line 141 of file DiffCache.hpp.
Referenced by cache_quantities_transient().
|
inline |
Definition at line 114 of file DiffCache.hpp.
References adjoint_mat_.
Referenced by cache_adjoints(), and polyfem::State::get_adjoint_mat().
|
inline |
Definition at line 117 of file DiffCache.hpp.
References bdf_order_, and size().
Referenced by polyfem::State::compute_force_jacobian_prev(), and polyfem::State::solve_transient_adjoint().
|
inline |
Definition at line 113 of file DiffCache.hpp.
References adjoint_mat(), and adjoint_mat_.
Referenced by polyfem::State::solve_adjoint_cached().
|
inline |
Definition at line 94 of file DiffCache.hpp.
References collision_set(), collision_set_, cur_size_, disp_grad(), disp_grad_, gradu_h(), gradu_h_, normal_adhesion_collision_set_, smooth_collision_set(), smooth_collision_set_, u(), and u_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 43 of file DiffCache.hpp.
References collision_set(), collision_set_, cur_size_, disp_grad(), disp_grad_, friction_collision_set_, gradu_h(), gradu_h_, normal_adhesion_collision_set_, smooth_collision_set(), smooth_collision_set_, tangential_adhesion_collision_set_, u(), and u_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 66 of file DiffCache.hpp.
References acc(), acc_, bdf_order_, collision_set(), collision_set_, cur_size_, friction_collision_set(), friction_collision_set_, gradu_h(), gradu_h_, smooth_collision_set(), smooth_collision_set_, u(), u_, v(), and v_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 158 of file DiffCache.hpp.
References collision_set_, and size().
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), polyfem::solver::AdjointTools::dJ_shape_homogenization_adjoint_term(), polyfem::solver::AdjointTools::dJ_shape_static_adjoint_term(), and polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term().
|
inline |
Definition at line 125 of file DiffCache.hpp.
References disp_grad_, and size().
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), polyfem::solver::SpatialIntegralForm::compute_partial_gradient_step(), and polyfem::solver::AdjointTools::dJ_periodic_shape_adjoint_term().
|
inline |
Definition at line 172 of file DiffCache.hpp.
References friction_collision_set_, and size().
Referenced by cache_quantities_transient(), polyfem::State::compute_force_jacobian_prev(), polyfem::solver::AdjointTools::dJ_friction_transient_adjoint_term(), and polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term().
|
inline |
Definition at line 149 of file DiffCache.hpp.
References gradu_h_, and size().
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), polyfem::solver::AdjointTools::dJ_dirichlet_static_adjoint_term(), polyfem::State::solve_static_adjoint(), and polyfem::State::solve_transient_adjoint().
|
inline |
Definition at line 21 of file DiffCache.hpp.
References acc_, bdf_order_, collision_set_, cur_size_, disp_grad_, friction_collision_set_, gradu_h_, n_time_steps_, normal_adhesion_collision_set_, smooth_collision_set_, tangential_adhesion_collision_set_, u_, and v_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 179 of file DiffCache.hpp.
References normal_adhesion_collision_set_, and size().
Referenced by polyfem::solver::AdjointTools::dJ_shape_homogenization_adjoint_term(), polyfem::solver::AdjointTools::dJ_shape_static_adjoint_term(), and polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term().
|
inline |
Definition at line 116 of file DiffCache.hpp.
References cur_size_.
Referenced by acc(), bdf_order(), collision_set(), polyfem::solver::AdjointForm::compute_adjoint_rhs(), polyfem::solver::StaticForm::compute_adjoint_rhs(), polyfem::solver::MinTargetDistForm::compute_adjoint_rhs(), polyfem::solver::SpatialIntegralForm::compute_adjoint_rhs_step(), polyfem::solver::SpatialIntegralForm::compute_partial_gradient_step(), disp_grad(), friction_collision_set(), gradu_h(), normal_adhesion_collision_set(), smooth_collision_set(), tangential_adhesion_collision_set(), u(), v(), and polyfem::solver::SpatialIntegralForm::value_unweighted_step().
|
inline |
Definition at line 165 of file DiffCache.hpp.
References size(), and smooth_collision_set_.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), polyfem::solver::AdjointTools::dJ_shape_homogenization_adjoint_term(), polyfem::solver::AdjointTools::dJ_shape_static_adjoint_term(), and polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term().
|
inline |
Definition at line 186 of file DiffCache.hpp.
References size(), and tangential_adhesion_collision_set_.
Referenced by polyfem::State::compute_force_jacobian_prev(), and polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term().
|
inline |
Definition at line 127 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), polyfem::solver::SmoothContactForceForm::compute_adjoint_rhs_step(), polyfem::solver::SpatialIntegralForm::compute_adjoint_rhs_step(), polyfem::solver::ProxyContactForceForm::compute_adjoint_rhs_step(), polyfem::solver::NodeTargetForm::compute_adjoint_rhs_step(), polyfem::State::compute_force_jacobian_prev(), polyfem::solver::SmoothContactForceForm::compute_partial_gradient_step(), polyfem::solver::SpatialIntegralForm::compute_partial_gradient_step(), polyfem::solver::ComplianceForm::compute_partial_gradient_step(), polyfem::solver::ProxyContactForceForm::compute_partial_gradient_step(), polyfem::solver::AdjointTools::dJ_damping_transient_adjoint_term(), polyfem::solver::AdjointTools::dJ_friction_transient_adjoint_term(), polyfem::solver::AdjointTools::dJ_material_transient_adjoint_term(), polyfem::solver::AdjointTools::dJ_pressure_transient_adjoint_term(), polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term(), polyfem::solver::DeformedCollisionBarrierForm::get_updated_mesh_nodes(), polyfem::solver::SmoothContactForceForm::solution_changed_step(), polyfem::solver::SmoothContactForceForm::value_unweighted_step(), polyfem::solver::SpatialIntegralForm::value_unweighted_step(), polyfem::solver::ProxyContactForceForm::value_unweighted_step(), and polyfem::solver::NodeTargetForm::value_unweighted_step().
|
inline |
Definition at line 134 of file DiffCache.hpp.
Referenced by cache_quantities_transient(), polyfem::solver::AdjointTools::dJ_shape_transient_adjoint_term(), and polyfem::solver::KineticForm::get_integral_functional().
|
private |
Definition at line 201 of file DiffCache.hpp.
Referenced by acc(), cache_quantities_transient(), and init().
|
private |
Definition at line 215 of file DiffCache.hpp.
Referenced by adjoint_mat(), and cache_adjoints().
|
private |
Definition at line 203 of file DiffCache.hpp.
Referenced by bdf_order(), cache_quantities_transient(), and init().
|
private |
Definition at line 208 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), collision_set(), and init().
|
private |
Definition at line 196 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), init(), and size().
|
private |
Definition at line 198 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), disp_grad(), and init().
|
private |
Definition at line 210 of file DiffCache.hpp.
Referenced by cache_quantities_static(), cache_quantities_transient(), friction_collision_set(), and init().
|
private |
Definition at line 205 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), gradu_h(), and init().
|
private |
Definition at line 195 of file DiffCache.hpp.
Referenced by init().
|
private |
Definition at line 212 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), init(), and normal_adhesion_collision_set().
|
private |
Definition at line 209 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), init(), and smooth_collision_set().
|
private |
Definition at line 213 of file DiffCache.hpp.
Referenced by cache_quantities_static(), init(), and tangential_adhesion_collision_set().
|
private |
Definition at line 199 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), init(), and u().
|
private |
Definition at line 200 of file DiffCache.hpp.
Referenced by cache_quantities_transient(), init(), and v().