11#ifndef PBAT_GPU_IMPL_VBD_TRUSTREGIONINTEGRATOR_CUH
12#define PBAT_GPU_IMPL_VBD_TRUSTREGIONINTEGRATOR_CUH
15#include "pbat/math/linalg/mini/Matrix.h"
162 void ConstructModel();
207 using Vector3 = pbat::math::linalg::mini::SVector<GpuScalar, 3>;
208 using Vector5 = pbat::math::linalg::mini::SVector<Scalar, 5>;
219 void ComputePolynomialConstraintCoefficients();
229 Scalar SolveCurvedTrustRegionConstraint(
Scalar R2)
const;
240 void ComputeCurvedPath();
249 void RollbackCurvedStep();
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
TrustRegionIntegrator(Data const &data)
Construct a new Trust Region Integrator object.
Definition TrustRegionIntegrator.cu:18
void SolveWithCurvedAccelerationPath(kernels::BackwardEulerMinimization &bdf, GpuIndex iterations)
Solve the optimization problem using the Trust-Region accelerated VBD method with a curved accelerate...
Definition TrustRegionIntegrator.cu:167
void UpdateIterates()
Rotates .
Definition TrustRegionIntegrator.cu:366
GpuScalar ModelFunction(GpuScalar t) const
Compute the Trust-Region model function .
Definition TrustRegionIntegrator.cu:392
void SolveWithLinearAcceleratedPath(kernels::BackwardEulerMinimization &bdf, GpuIndex iterations)
Solve the optimization problem using the Trust-Region accelerated VBD method with a linear accelerate...
Definition TrustRegionIntegrator.cu:48
virtual void Solve(kernels::BackwardEulerMinimization &bdf, GpuIndex iterations) override
Solve the optimization problem using the Trust-Region accelerated VBD method.
Definition TrustRegionIntegrator.cu:36
GpuScalar ObjectiveFunction(GpuScalar dt, GpuScalar dt2)
Compute the objective function value at .
Definition TrustRegionIntegrator.cu:265
virtual ~TrustRegionIntegrator()=default
Destroy the Trust Region Integrator object.
GpuScalar ModelOptimalStep() const
Compute the model function's minimizer .
Definition TrustRegionIntegrator.cu:400
Vertex Block Descent (VBD) algorithms.
Definition AndersonIntegrator.cu:13
float GpuScalar
Scalar type for GPU code.
Definition Aliases.h:19
double Scalar
Scalar type.
Definition Aliases.h:18
std::int32_t GpuIndex
Index type for GPU code.
Definition Aliases.h:20
Device-side BFD1 minimization problem.
Definition Kernels.cuh:40
VBD integrator implementation.