PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
BroydenIntegrator.h
Go to the documentation of this file.
1
10
11#ifndef PBAT_SIM_VBD_BROYDENINTEGRATOR_H
12#define PBAT_SIM_VBD_BROYDENINTEGRATOR_H
13
14#include "Integrator.h"
15#include "PhysicsBasedAnimationToolkitExport.h"
16
17#include <Eigen/SparseCholesky>
18
19namespace pbat::sim::vbd {
20
24class BroydenIntegrator : public Integrator
25{
26 public:
32 PBAT_API BroydenIntegrator(Data data);
33
34 protected:
42 virtual void Solve(Scalar sdt, Scalar sdt2, Index iterations) override;
43
44 private:
45 MatrixX GvbdFk;
46 MatrixX Xk;
47 VectorX gammak;
48 VectorX xkm1;
49 VectorX vbdfk;
50 VectorX vbdfkm1;
51
52 // Eigen::SimplicialLDLT<Eigen::SparseMatrix<Scalar, Eigen::ColMajor, Index>>
53 // Gkm; ///< VBD preconditioner
54};
55
56} // namespace pbat::sim::vbd
57
58#endif // PBAT_SIM_VBD_BROYDENINTEGRATOR_H
virtual void Solve(Scalar sdt, Scalar sdt2, Index iterations) override
Run the VBD accelerated optimizer on the BDF1 problem.
Definition BroydenIntegrator.cpp:41
PBAT_API BroydenIntegrator(Data data)
Construct a new Broyden Integrator object.
Definition BroydenIntegrator.cpp:15
PBAT's Vertex Block Descent (VBD) anka2024vbd API.
Definition AndersonIntegrator.cpp:10
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic-size matrix type.
Definition Aliases.h:34
Eigen::Vector< Scalar, Eigen::Dynamic > VectorX
Dynamic-size vector type.
Definition Aliases.h:33
std::ptrdiff_t Index
Index type.
Definition Aliases.h:17
double Scalar
Scalar type.
Definition Aliases.h:18
VBD simulation configuration.
Definition Data.h:15