11#ifndef PBAT_GPU_IMPL_VBD_ANDERSONINTEGRATOR_CUH
12#define PBAT_GPU_IMPL_VBD_ANDERSONINTEGRATOR_CUH
15#include "pbat/gpu/impl/common/Buffer.cuh"
BLAS API wrapper over cuBLAS.
Linear solver abstractions over cuSolver.
Matrix and vector cuBLAS abstractions.
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.