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.cuh
Go to the documentation of this file.
1
10
11#ifndef PBAT_GPU_IMPL_VBD_ANDERSONINTEGRATOR_CUH
12#define PBAT_GPU_IMPL_VBD_ANDERSONINTEGRATOR_CUH
13
14#include "Integrator.cuh"
15#include "pbat/gpu/impl/common/Buffer.cuh"
19
20namespace pbat::gpu::impl::vbd {
21
26{
27 public:
33 AndersonIntegrator(Data const& data);
39 virtual void Solve(kernels::BackwardEulerMinimization& bdf, GpuIndex iterations) override;
43 virtual ~AndersonIntegrator() = default;
59
60 private:
67 mDFK;
69 mDGK;
70
73 math::Blas mBlas;
74 math::LinearSolver mLinearSolver;
75 common::Buffer<GpuScalar> mLinearSolverWorkspace;
76};
77
78} // namespace pbat::gpu::impl::vbd
79
80#endif // PBAT_GPU_IMPL_VBD_ANDERSONINTEGRATOR_CUH
BLAS API wrapper over cuBLAS.
Linear solver abstractions over cuSolver.
Matrix and vector cuBLAS abstractions.
Definition Buffer.cuh:21
Definition Blas.cuh:37
Definition LinearSolver.cuh:40
AndersonIntegrator(Data const &data)
Construct a new AndersonIntegrator object.
Definition AndersonIntegrator.cu:15
void TakeAndersonAcceleratedStep(GpuIndex k)
Take an Anderson accelerated step.
Definition AndersonIntegrator.cu:72
virtual ~AndersonIntegrator()=default
Destroy the Chebyshev Integrator object.
void UpdateAndersonWindow(GpuIndex k)
Update the Anderson window with the current residual and iterate.
Definition AndersonIntegrator.cu:54
virtual void Solve(kernels::BackwardEulerMinimization &bdf, GpuIndex iterations) override
Solve the optimization problem using the Anderson accelerated VBD method.
Definition AndersonIntegrator.cu:36
void RegularizeRFactor(GpuIndex mk)
Add regularization to the diagonal of the QR factorization.
Definition AndersonIntegrator.cu:93
Integrator(Data const &data)
Construct Integrator from data.
Definition Integrator.cu:22
pbat::sim::vbd::Data Data
Data type for VBD.
Definition Integrator.cuh:43
Vertex Block Descent (VBD) algorithms.
Definition AndersonIntegrator.cu:13
std::int32_t GpuIndex
Index type for GPU code.
Definition Aliases.h:20
Definition Matrix.cuh:150
Definition Matrix.cuh:201
Device-side BFD1 minimization problem.
Definition Kernels.cuh:40
VBD integrator implementation.