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 &contact_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::TangentialCollisions &friction_collision_set) |
void | cache_quantities_quasistatic (const int cur_step, const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &contact_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::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::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 134 of file DiffCache.hpp.
Referenced by cache_quantities_transient().
|
inline |
Definition at line 107 of file DiffCache.hpp.
References adjoint_mat_.
Referenced by cache_adjoints(), and polyfem::State::get_adjoint_mat().
|
inline |
Definition at line 110 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 106 of file DiffCache.hpp.
References adjoint_mat(), and adjoint_mat_.
Referenced by polyfem::State::solve_adjoint_cached().
|
inline |
Definition at line 89 of file DiffCache.hpp.
References collision_set_, cur_size_, disp_grad(), disp_grad_, gradu_h(), gradu_h_, normal_adhesion_collision_set_, u(), and u_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 42 of file DiffCache.hpp.
References collision_set_, cur_size_, disp_grad(), disp_grad_, friction_collision_set_, gradu_h(), gradu_h_, normal_adhesion_collision_set_, tangential_adhesion_collision_set_, u(), and u_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 63 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_, u(), u_, v(), and v_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 151 of file DiffCache.hpp.
References collision_set_, and size().
Referenced by 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 118 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 158 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 142 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_, tangential_adhesion_collision_set_, u_, and v_.
Referenced by polyfem::State::cache_transient_adjoint_quantities().
|
inline |
Definition at line 165 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 109 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(), tangential_adhesion_collision_set(), u(), v(), and polyfem::solver::SpatialIntegralForm::value_unweighted_step().
|
inline |
Definition at line 172 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 120 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), 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::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::SpatialIntegralForm::value_unweighted_step(), polyfem::solver::ProxyContactForceForm::value_unweighted_step(), and polyfem::solver::NodeTargetForm::value_unweighted_step().
|
inline |
Definition at line 127 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 187 of file DiffCache.hpp.
Referenced by acc(), cache_quantities_transient(), and init().
|
private |
Definition at line 200 of file DiffCache.hpp.
Referenced by adjoint_mat(), and cache_adjoints().
|
private |
Definition at line 189 of file DiffCache.hpp.
Referenced by bdf_order(), cache_quantities_transient(), and init().
|
private |
Definition at line 194 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), collision_set(), and init().
|
private |
Definition at line 182 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), init(), and size().
|
private |
Definition at line 184 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), disp_grad(), and init().
|
private |
Definition at line 195 of file DiffCache.hpp.
Referenced by cache_quantities_static(), cache_quantities_transient(), friction_collision_set(), and init().
|
private |
Definition at line 191 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), gradu_h(), and init().
|
private |
Definition at line 181 of file DiffCache.hpp.
Referenced by init().
|
private |
Definition at line 197 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), init(), and normal_adhesion_collision_set().
|
private |
Definition at line 198 of file DiffCache.hpp.
Referenced by cache_quantities_static(), init(), and tangential_adhesion_collision_set().
|
private |
Definition at line 185 of file DiffCache.hpp.
Referenced by cache_quantities_quasistatic(), cache_quantities_static(), cache_quantities_transient(), init(), and u().
|
private |
Definition at line 186 of file DiffCache.hpp.
Referenced by cache_quantities_transient(), init(), and v().