▼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 |