|
IndexVectorX | V |
| |#collision vertices| array of indices into columns of x
|
|
IndexMatrixX | F |
|
IndexMatrixX | T |
| Tetrahedra.
|
|
IndexVectorX | BV |
| |#particles| array of body indices
|
|
MatrixX | x |
| Vertex positions.
|
|
MatrixX | v |
| Vertex velocities.
|
|
MatrixX | aext |
| Vertex external accelerations.
|
|
VectorX | minv |
| Vertex mass inverses.
|
|
MatrixX | xt |
| Vertex positions at time t.
|
|
MatrixX | xb |
| Vertex positions buffer for contact.
|
|
MatrixX | lame |
| 2x|#quad.pts.| Lame coefficients
|
|
MatrixX | DmInv |
| 3x3x|#elements| array of material shape matrix inverses
|
|
VectorX | gammaSNH |
|
VectorX | muV |
| |#collision vertices| array of collision penalties
|
|
Scalar | muS {0.3} |
| Static friction coefficient.
|
|
Scalar | muD {0.2} |
| Dynamic friction coefficient.
|
|
Index | mActiveSetUpdateFrequency {1} |
| Contact active set update frequency.
|
|
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> | alpha |
|
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> | beta |
|
std::array< VectorX, static_cast< int >(EConstraint::NumberOfConstraintTypes)> | lambda |
|
IndexVectorX | dbc |
| Dirichlet constrained vertices.
|
|
std::vector< Index > | Pptr |
| Compressed sparse storage's pointers for constraint partitions.
|
|
std::vector< Index > | Padj |
| Compressed sparse storage's edges for constraint indices.
|
|
std::vector< Index > | SGptr |
| Supernodal constraint graph's partition pointers.
|
|
std::vector< Index > | SGadj |
| Supernodal constraint graph's partition adjacency.
|
|
std::vector< Index > | Cptr |
|
std::vector< Index > | Cadj |
| Constraint indices in each cluster.
|
|
◆ WithClusterPartitions()
Data & pbat::sim::xpbd::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 [14] for more details.
- Parameters
-
- Returns
◆ alpha
std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)> pbat::sim::xpbd::Data::alpha |
Compliance alpha[0] -> Stable Neo-Hookean constraint compliance alpha[1] -> Collision penalty constraint compliance
◆ beta
std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)> pbat::sim::xpbd::Data::beta |
Damping beta[0] -> Stable Neo-Hookean constraint damping beta[1] -> Collision penalty constraint damping
◆ Cptr
std::vector<Index> pbat::sim::xpbd::Data::Cptr |
Flattened cluster pointers, where [Cptr[c], Cptr[c+1]) gives indices into C to obtain cluster c's constraints
3x|#triangles| array of collision triangles (on the boundary of T), indexing into columns of x
◆ gammaSNH
VectorX pbat::sim::xpbd::Data::gammaSNH |
- + mu/lambda, where mu,lambda are Lame coefficients
◆ lambda
std::array<VectorX, static_cast<int>(EConstraint::NumberOfConstraintTypes)> pbat::sim::xpbd::Data::lambda |
"Lagrange" multipliers: lambda[0] -> Stable Neo-Hookean constraint multipliers lambda[1] -> Collision penalty constraint multipliers
The documentation for this struct was generated from the following files:
- C:/git/PhysicsBasedAnimationToolkit/source/pbat/sim/xpbd/Data.h
- C:/git/PhysicsBasedAnimationToolkit/source/pbat/sim/xpbd/Data.cpp