1#ifndef PBAT_SIM_XPBD_DATA_H
2#define PBAT_SIM_XPBD_DATA_H
5#include "PhysicsBasedAnimationToolkitExport.h"
18 WithVolumeMesh(Eigen::Ref<MatrixX const>
const&
V, Eigen::Ref<IndexMatrixX const>
const& E);
19 PBAT_API
Data& WithSurfaceMesh(
20 Eigen::Ref<IndexVectorX const>
const&
V,
21 Eigen::Ref<IndexMatrixX const>
const&
F);
22 PBAT_API
Data& WithBodies(Eigen::Ref<IndexVectorX const>
const&
BV);
23 PBAT_API
Data& WithVelocity(Eigen::Ref<MatrixX const>
const&
v);
24 PBAT_API
Data& WithAcceleration(Eigen::Ref<MatrixX const>
const&
aext);
25 PBAT_API
Data& WithMassInverse(Eigen::Ref<VectorX const>
const&
minv);
26 PBAT_API
Data& WithElasticMaterial(Eigen::Ref<MatrixX const>
const&
lame);
27 PBAT_API
Data& WithCollisionPenalties(Eigen::Ref<VectorX const>
const&
muV);
29 PBAT_API
Data& WithActiveSetUpdateFrequency(
Index frequency);
30 PBAT_API
Data& WithDamping(Eigen::Ref<VectorX>
const&
beta, EConstraint constraint);
31 PBAT_API
Data& WithCompliance(Eigen::Ref<VectorX>
const&
alpha, EConstraint constraint);
32 PBAT_API
Data& WithPartitions(std::vector<Index>
const&
Pptr, std::vector<Index>
const&
Padj);
45 std::vector<Index>
const&
SGptr,
46 std::vector<Index>
const&
SGadj,
47 std::vector<Index>
const&
Cptr,
48 std::vector<Index>
const&
Cadj);
50 PBAT_API
Data& Construct(
bool bValidate =
true);
77 std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)>
81 std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)>
85 std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)>
PBAT's (Extended) Position-Based Dynamics (XPBD) bender2015position API.
Definition Data.cpp:13
PBAT simulation algorithms.
The main namespace of the library.
Definition Aliases.h:15
Eigen::Vector< Index, Eigen::Dynamic > IndexVectorX
Dynamic-size index vector type.
Definition Aliases.h:49
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
Eigen::Matrix< Index, Eigen::Dynamic, Eigen::Dynamic > IndexMatrixX
Dynamic-size index matrix type.
Definition Aliases.h:50
double Scalar
Scalar type.
Definition Aliases.h:18
std::vector< Index > SGadj
Supernodal constraint graph's partition adjacency.
Definition Data.h:96
VectorX minv
Vertex mass inverses.
Definition Data.h:63
std::vector< Index > Cptr
Definition Data.h:97
IndexMatrixX T
Tetrahedra.
Definition Data.h:56
MatrixX xb
Vertex positions buffer for contact.
Definition Data.h:66
VectorX gammaSNH
Definition Data.h:70
IndexMatrixX F
Definition Data.h:54
MatrixX lame
2x|#quad.pts.| Lame coefficients
Definition Data.h:68
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> alpha
Definition Data.h:78
std::vector< Index > Padj
Compressed sparse storage's edges for constraint indices.
Definition Data.h:93
VectorX muV
|#collision vertices| array of collision penalties
Definition Data.h:72
IndexVectorX V
|#collision vertices| array of indices into columns of x
Definition Data.h:53
std::vector< Index > Pptr
Compressed sparse storage's pointers for constraint partitions.
Definition Data.h:92
MatrixX v
Vertex velocities.
Definition Data.h:61
Scalar muS
Static friction coefficient.
Definition Data.h:73
MatrixX x
Vertex positions.
Definition Data.h:60
IndexVectorX BV
|#particles| array of body indices
Definition Data.h:58
std::vector< Index > SGptr
Supernodal constraint graph's partition pointers.
Definition Data.h:95
MatrixX aext
Vertex external accelerations.
Definition Data.h:62
MatrixX xt
Vertex positions at time t.
Definition Data.h:65
IndexVectorX dbc
Dirichlet constrained vertices.
Definition Data.h:90
PBAT_API Data & WithClusterPartitions(std::vector< Index > const &SGptr, std::vector< Index > const &SGadj, std::vector< Index > const &Cptr, std::vector< Index > const &Cadj)
See Ton-That et al. 2023 tonthat2023parallel for more details.
Definition Data.cpp:102
MatrixX DmInv
3x3x|#elements| array of material shape matrix inverses
Definition Data.h:69
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> beta
Definition Data.h:82
Scalar muD
Dynamic friction coefficient.
Definition Data.h:74
Index mActiveSetUpdateFrequency
Contact active set update frequency.
Definition Data.h:75
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> lambda
Definition Data.h:86
std::vector< Index > Cadj
Constraint indices in each cluster.
Definition Data.h:99