| ▼Npbat | The main namespace of the library |
| ▼Ncommon | Common functionality |
| CBinaryRadixTree | Binary radix tree implementation |
| CBruteSet | Fixed-size brute-force set implementation |
| CHeap | Fixed-size max heap |
| COverloaded | C++20 feature to allow multiple inheritance of operator() for lambdas |
| CQueue | Fixed-size queue implementation |
| CStack | Fixed-size stack implementation |
| ▼Nfem | Finite Element Method (FEM) |
| CMesh | A generic stateful finite element mesh representation |
| ▼Ngeometry | Geometric queries, quantities and data structures |
| ►Nsdf | Namespace for signed distance functions (SDFs) and related operations |
| CBend | Bend operation around the z axis |
| CBinaryNode | Base struct for all binary nodes |
| CBox | Axis-aligned box centered in \( (0,0,0) \) with half extents \( \text{he} \in
\mathbb{R}^3 \) |
| CBoxFrame | Box frame with half extents \( \text{he} \in \mathbb{R}^3 \) and thickness \( t \) |
| CBump | Wave-like bumpiness operation along the axes |
| CCappedCylinder | Capped cylinder shape with endpoints \( a, b \in \mathbb{R}^3 \) and radius \( r \) |
| CCappedTorus | Capped torus centered in \( (0,0,0) \) with parameters sc, ra, rb |
| CCapsule | Capsule shape with endpoints \( a, b \in \mathbb{R}^3 \) and radius \( r \) |
| CComposite | Composite signed distance function represented as a forest of SDFs |
| CCone | Cone shape |
| CCutHollowSphere | Cut hollow sphere shape with radius \( r \), cut height \( h \) and thickness \( t
\) |
| CDifference | Difference operation |
| CElongate | Elongation operation along the axes |
| CExclusiveOr | Exclusive or operation |
| CForest | CPU storage for a forest (of SDFs) |
| CHexagonalPrism | Hexagonal prism shape |
| CInfiniteCone | Infinite cone shape |
| CInfiniteCylinder | Infinite cylinder |
| CIntersection | Intersection operation |
| CLink | Link shape as elongated torus with elongation length \( le \) and minor+major radius \(t = (r,R) \) |
| COctahedron | Octahedron shape |
| COnion | Onion operation (i.e. carving interior) |
| CPlane | Plane shape with normal \( n=(0,0,1) \) and point on the plane \( o=(0,0,0) \) |
| CPrimitive | Base struct for all primitive shapes |
| CPyramid | Pyramid shape |
| CQuadrilateral | Quadrilateral shape with vertices \( a, b, c, d \in \mathbb{R}^3 \) |
| CRepeat | Grid-like repetition operation along the axes |
| CRotationalRepeat | Circular repetition operation around axe |
| CRound | Rounding operation (i.e. positive offset surface) |
| CRoundedCylinder | Rounded cylinder shape with height \( h \), radius \( \text{ra} \) and rounding radius \( \text{rb} \) |
| CScale | Uniform scaling operation |
| CSmoothDifference | Smooth difference operation |
| CSmoothIntersection | Smooth intersection operation |
| CSmoothUnion | Smooth union operation |
| CSphere | Sphere centered in \( (0,0,0) \) with radius \( R \) |
| CSymmetrize | Symmetrization operation along the x axis |
| CTorus | Torus centered in \( (0,0,0) \) with minor+major radius \( t = (r,R) \) |
| CTransform | A 3D rigid transform |
| CTriangle | Triangle shape |
| CTwist | Twist operation around the y axis |
| CUnaryNode | Base struct for all unary nodes |
| CUnion | Union operation |
| CVerticalCappedCone | Capped cone shape with height \( h \) and minor+major radius \( r^1, r^2 \) |
| CVerticalCappedCylinder | Vertical capped cylinder shape with height \( h \) and radius \( r \) |
| CVerticalCapsule | Capsule shape with height \( h \) and radius \( r \) |
| CVerticalRoundCone | Vertical round cone shape with height \( h \), radii \( \text{r}^1, \text{r}^2 \) at endpoints |
| CAabbKdTreeHierarchy | Axis-aligned k-D tree hierarchy of axis-aligned bounding boxes |
| CAabbRadixTreeHierarchy | Axis-aligned radix tree hierarchy of axis-aligned bounding boxes |
| CAxisAlignedBoundingBox | Axis-aligned bounding box class |
| CBoundingVolumeHierarchy | CRTP base class for BVHs |
| CHashGrid | HashGrid is a spatial partitioning data structure that divides 3D space into a sparse grid of cells, allowing for efficient querying of point neighbours within a certain region |
| CHierarchicalHashGrid | Spatial partitioning data structure that divides 3D space into a set of sparse grids. Allowing for efficient querying of point neighbours within a certain region. Implements [4] |
| CKdTree | KDTree class |
| CKdTreeNode | Node of a KDTree |
| CTetrahedralAabbHierarchy | Tetrahedral AABB hierarchy class |
| CTriangleAabbHierarchy2D | Bounding volume hierarchy for triangles in 2D |
| CTriangleAabbHierarchy3D | Bounding volume hierarchy for triangles in 3D |
| ▼Ngpu | GPU related public functionality |
| ►Ncommon | Public API to core GPU utilities |
| CBuffer | 1- or 2-dimensional GPU buffer of numeric types |
| ►Ncontact | Contact detection public GPU API |
| CVertexTriangleMixedCcdDcd | Public API of vertex-triangle mixed continuous collision detection (CCD) and discrete collision detection system on the GPU |
| ►Ngeometry | Public geometry API for GPU |
| CAabb | GPU axis-aligned bounding box (AABB) buffer public API |
| CBvh | GPU linear BVH [6] public API |
| CSweepAndPrune | GPU Sweep and Prune public API |
| ►Nimpl | GPU algorithm implementations |
| ►Ncommon | |
| CBuffer | |
| CDeviceSynchronizedList | |
| CSynchronizedList | |
| CVar | |
| ►Ncontact | |
| CVertexTriangleMixedCcdDcd | Vertex-triangle contact detection using a mixed CCD/DCD approach |
| ►Ngeometry | |
| ►Nkernels | |
| ►CFGenerateHierarchy | |
| CRange | |
| CAabb | |
| CBvh | Radix-tree linear BVH |
| CMorton | |
| CSweepAndPrune | Single-axis parallel sweep and prune algorithm for detecting overlapping bounding boxes |
| ►Nmath | GPU implementations of math functions |
| CBlas | |
| CLinearSolver | |
| CMatrix | |
| CMatrixView | |
| CVector | |
| CVectorView | |
| ►Nvbd | Vertex Block Descent (VBD) algorithms |
| ►Nkernels | Device-side VBD kernels |
| CBackwardEulerMinimization | Device-side BFD1 minimization problem |
| CContactPenalty | Penalty rescaler for mesh independent contact response |
| CVbdIterationTraits | Traits for VBD iteration kernel |
| CAndersonIntegrator | AndersonIntegrator accelerated VBD integrator |
| CChebyshevIntegrator | Chebyshev semi-iterated method accelerated VBD integrator |
| CIntegrator | VBD integrator [2] |
| CTrustRegionIntegrator | Trust-Region accelerated VBD integrator |
| ►Nxpbd | |
| CIntegrator | |
| ►Nprofiling | Namespace for host-side GPU profiling utilities |
| CZone | RAII class wrapping Tracy zones for CUDA host code |
| ►Nvbd | Vertex Block Descent (VBD) [2] public GPU API |
| CIntegrator | The VBD public API wrapper around the VBD integrator implementation. [2] |
| ►Nxpbd | (eXtended) Position-Based Dynamics (XPBD) [1] public GPU API |
| CIntegrator | Public API of the GPU XPBD integrator |
| ▼Ngraph | |
| CBreadthFirstSearch | |
| CDepthFirstSearch | |
| CDisjointSetUnionFind | Disjoint Set Union-Find data structure |
| CPartitioningOptions | Options for graph partitioning |
| CWeightedEdgeTraits | Traits for WeightedEdge |
| ▼Nio | Namespace for I/O |
| CArchive | Archive class for reading and writing data to HDF5 files |
| ▼Nmath | Math related functionality |
| ►Nlinalg | Linear Algebra related functionality |
| ►Nmini | Mini linear algebra related functionality |
| CAbsolute | |
| CCastView | |
| CConstDiagonal | |
| CConstEigenMatrixWrapper | |
| CConstSubMatrix | |
| CConstTransposeSubMatrix | |
| CConstTransposeView | |
| CCrossProduct | |
| CDiagonal | |
| CEigenMatrixWrapper | |
| CFlatView | |
| CHorizontalStack | |
| CIdentity | |
| CMatrixMatrixPredicate | |
| CMatrixScalarPredicate | |
| CMaximum | |
| CMinimum | |
| COnes | |
| CProduct | |
| CReciprocal | |
| CScale | |
| CSMatrix | |
| CSMatrixView | |
| CSquare | |
| CSubMatrix | |
| CSubtraction | |
| CSubtractionScalar | |
| CSum | |
| CSumScalar | |
| CTiledView | |
| CTransposeSubMatrix | |
| CTransposeView | |
| CVerticalStack | |
| CZeros | |
| CSparsityPattern | Sparsity pattern precomputer to accelerate sparse matrix assembly |
| ►Noptimization | Namespace for optimization algorithms |
| CBackTrackingLineSearch | |
| CNewton | Newton's method for optimization |
| ►Npolynomial | The namespace for the Polynomial module |
| CDivergenceFreeBasis | Divergence-free polynomial basis \( \left\{ \mathbf{P}_i(X) \; \text{s.t.} \; \nabla_X
\mathbf{P}_i = 0 \right\} \) in dimensions \( d \) and order \( p \) |
| CMonomialBasis | Polynomial basis \( \left\{ \Pi_{i=1}^{d} \mathbf{X}_i^{p_i} \; \text{s.t.} \; 0 \leq
\sum_{i=1}^d p_i \leq p \right\} \) in dimensions \( d \) and order \( p \) |
| COrthonormalBasis | Orthonormal polynomial basis \( \left\{ P_i(X) \right\} \) in dimensions \( d \) and order \( p
\) |
| CDynamicQuadrature | Quadrature rule with variable points and weights |
| CFixedSizeVariableQuadrature | Represents a quadrature scheme that can be constructed via existing quadrature schemes |
| CLinearOperator | Zero-overhead composite type satisfying the CLinearOperator concept |
| COverflowChecked | Wrapper around integer types that throws when integer overflow is detected |
| CRational | Fixed size rational number \( \frac{a}{b} \) using std::int64_t for numerator and denominator |
| ▼Nphysics | |
| CSaintVenantKirchhoffEnergy | |
| CSaintVenantKirchhoffEnergy< 1 > | Saint-Venant Kirchhoff hyperelastic energy for 1D |
| CSaintVenantKirchhoffEnergy< 2 > | Saint-Venant Kirchhoff hyperelastic energy for 2D |
| CSaintVenantKirchhoffEnergy< 3 > | Saint-Venant Kirchhoff hyperelastic energy for 3D |
| CStableNeoHookeanEnergy | |
| CStableNeoHookeanEnergy< 1 > | Stable Neo-Hookean hyperelastic energy for 1D |
| CStableNeoHookeanEnergy< 2 > | Stable Neo-Hookean hyperelastic energy for 2D |
| CStableNeoHookeanEnergy< 3 > | Stable Neo-Hookean hyperelastic energy for 3D |
| ▼Nsim | PBAT simulation algorithms |
| ►Nalgorithm | Namespace for PBAT simulation algorithms |
| ►Nnewton | Namespace for Newton simulation algorithms |
| CConfig | Newton integrator configuration |
| CIntegrator | Newton dynamics integrator |
| CPreconditioner | Cholesky preconditioner |
| CPreconditionerOperator | Preconditioner operator Non-owning view over stateful preconditioner, to use with Eigen's matrix-free solvers |
| ►Ncontact | Namespace for contact detection algorithms |
| CEnvironment | Static environment geometry for contact simulation |
| CMeshVertexTetrahedronDcd | Discrete contact detection system for vertex-tetrahedron contacts between multiple tetrahedral meshes |
| ►CMultibodyMeshMixedCcdDcd | Multibody triangle mesh continuous collision detection system |
| CEdgeEdgeContact | Edge-edge contact pair |
| CVertexTriangleContact | Vertex-triangle contact pair (i,f) |
| CMultibodyTetrahedralMeshSystem | Multibody Tetrahedral Mesh System |
| ►Ndynamics | Namespace for the dynamics module of the PBAT simulation library |
| CFemElastoDynamics | Finite Element Elasto-Dynamics initial value problem with Dirichlet boundary conditions using BDF (backward differentiation formula) as the time discretization |
| ►Nintegration | ODE integration schemes |
| CBdf | BDF (Backward Differentiation Formula) time integration scheme for a system of ODEs for an initial value problem (IVP) |
| ►Nvbd | PBAT's Vertex Block Descent (VBD) [2] API |
| ►Nmultigrid | |
| CHierarchy | |
| CHyperReduction | |
| CIntegrator | |
| CLevel | |
| CSMatrix | |
| CSmoother | |
| CZeros | |
| CAndersonIntegrator | Anderson accelerated VBD integrator |
| CBroydenIntegrator | Accelerated Anderson accelerated VBD integrator |
| CChebyshevIntegrator | |
| CData | VBD simulation configuration |
| CIntegrator | |
| CNesterovIntegrator | |
| ►Nxpbd | PBAT's (Extended) Position-Based Dynamics (XPBD) [1] API |
| CData | |
| CIntegrator | |
| ▼Npython | |
| ▼Npbatoolkit | |
| ►Npy | |
| ►Ngeometry | |
| CCell | |
| ►Nmath | |
| ►Nlinalg | |
| COrdering | |
| CSolverBackend | |
| ►Nprofiling | |
| CProfiler | |
| ▼Nstd | |
| Chash< pair< pbat::Index, pbat::Index > > | Hash function for pair of Index |
| Chash< pbat::IndexVector< 2 > > | Hash function for pbat::IndexVector<2> |
| Chash< pbat::IndexVector< 3 > > | Hash function for pbat::IndexVector<3> |
| Chash< tuple< pbat::Index, pbat::Index > > | Hash function for 2-tuple of Index |
| Chash< tuple< pbat::Index, pbat::Index, pbat::Index > > | Hash function for 3-tuple of Index |