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
AndersonIntegrator.h
Go to the documentation of this file.
1
10
11#ifndef PBAT_SIM_VBD_ANDERSONINTEGRATOR_H
12#define PBAT_SIM_VBD_ANDERSONINTEGRATOR_H
13
14#include "Integrator.h"
15#include "PhysicsBasedAnimationToolkitExport.h"
16
17namespace pbat::sim::vbd {
18
22class AndersonIntegrator : public Integrator
23{
24 public:
30 PBAT_API AndersonIntegrator(Data data);
31
32 protected:
40 virtual void Solve(Scalar sdt, Scalar sdt2, Index iterations) override;
41
42 private:
43 VectorX Fk;
44 VectorX Fkm1;
45 VectorX Gkm1;
46 VectorX xkm1;
47 MatrixX DFK;
48 MatrixX DGK;
49 VectorX alpha;
50};
51
52} // namespace pbat::sim::vbd
53
54#endif // PBAT_SIM_VBD_ANDERSONINTEGRATOR_H
virtual void Solve(Scalar sdt, Scalar sdt2, Index iterations) override
Run the VBD accelerated optimizer on the BDF1 problem.
Definition AndersonIntegrator.cpp:24
PBAT_API AndersonIntegrator(Data data)
Construct a new Anderson Integrator object.
Definition AndersonIntegrator.cpp:12
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