11#ifndef PBAT_GPU_VBD_INTEGRATOR_H
12#define PBAT_GPU_VBD_INTEGRATOR_H
14#include "PhysicsBasedAnimationToolkitExport.h"
16#include "pbat/sim/vbd/Data.h"
17#include "pbat/sim/vbd/Enums.h"
90 std::string_view dir =
".");
95 PBAT_API
void SetPositions(Eigen::Ref<GpuMatrixX const>
const& X);
100 PBAT_API
void SetVelocities(Eigen::Ref<GpuMatrixX const>
const& v);
133 Eigen::Vector<GpuScalar, 3>
const& min,
134 Eigen::Vector<GpuScalar, 3>
const& max);
VBD integrator anka2024vbd.
Definition Integrator.cuh:39
PBAT_API Integrator(Data const &data)
Construct a new Integrator object.
Definition Integrator.cu:15
PBAT_API ~Integrator()
Destructor.
Definition Integrator.cu:52
PBAT_API GpuMatrixX GetVelocities() const
Get the vertex velocities.
Definition Integrator.cu:122
PBAT_API void SetSceneBoundingBox(Eigen::Vector< GpuScalar, 3 > const &min, Eigen::Vector< GpuScalar, 3 > const &max)
Sets the scene bounding box.
Definition Integrator.cu:110
PBAT_API void SetExternalAcceleration(Eigen::Ref< GpuMatrixX const > const &aext)
Set the external accelerations.
Definition Integrator.cu:85
PBAT_API void SetRayleighDampingCoefficient(GpuScalar kD)
Set the damping coefficient for Rayleigh damping.
Definition Integrator.cu:95
PBAT_API void SetInitializationStrategy(EInitializationStrategy strategy)
Sets the initialization strategy to kick-start the time step minimization.
Definition Integrator.cu:100
PBAT_API void SetPositions(Eigen::Ref< GpuMatrixX const > const &X)
Set the vertex positions.
Definition Integrator.cu:73
PBAT_API GpuMatrixX GetPositions() const
Get the vertex positions.
Definition Integrator.cu:117
pbat::sim::vbd::EInitializationStrategy EInitializationStrategy
Initialization strategy.
Definition Integrator.h:36
PBAT_API void SetVelocities(Eigen::Ref< GpuMatrixX const > const &v)
Set the vertex velocities.
Definition Integrator.cu:79
PBAT_API void SetNumericalZeroForHessianDeterminant(GpuScalar zero)
Set threshold for zero determinant check.
Definition Integrator.cu:90
PBAT_API void TracedStep(GpuScalar dt, GpuIndex iterations, GpuIndex substeps, GpuIndex t, std::string_view dir=".")
Execute one simulation step and trace the result.
Definition Integrator.cu:63
PBAT_API void SetBlockSize(GpuIndex blockSize)
Sets the GPU thread block size, for the BDF1 minimization.
Definition Integrator.cu:105
pbat::sim::vbd::Data Data
VBD data.
Definition Integrator.h:38
PBAT_API void Step(GpuScalar dt, GpuIndex iterations, GpuIndex substeps=GpuIndex{1})
Execute one simulation step.
Definition Integrator.cu:58
Type aliases for GPU code.
Vertex Block Descent (VBD) algorithms.
Definition AndersonIntegrator.cu:13
Vertex Block Descent (VBD) anka2024vbd public GPU API.
Definition Kernels.cu:9
GPU related public functionality.
Definition Buffer.cu:16
EInitializationStrategy
Initialization strategies for the VBD time step minimization.
Definition Enums.h:9
The main namespace of the library.
Definition Aliases.h:15
float GpuScalar
Scalar type for GPU code.
Definition Aliases.h:19
Eigen::Matrix< GpuScalar, Eigen::Dynamic, Eigen::Dynamic > GpuMatrixX
Matrix type for GPU code.
Definition Aliases.h:22
std::int32_t GpuIndex
Index type for GPU code.
Definition Aliases.h:20
VBD simulation configuration.
Definition Data.h:15