/** * Superconvergent Patch Recovery (SPR) — Zienkiewicz & Zhu (1992) * * Recovers continuous, superconvergent nodal stresses from per-Gauss-point * stress data using least-squares polynomial fitting over element patches. * * For TET10 elements: * - Gauss points are superconvergent sampling locations * - Polynomial basis: P = [1, x, y, z, xy, xz, yz, x², y², z²] (10 terms) * - Each patch = all elements sharing a node → ~4-20 Gauss points * - Least-squares solve: A·a = b where A = Σ P(xg)·P(xg)��, b = Σ P(xg)·σ(xg) * - Evaluate polynomial at the node: σ*(node) = P(x_node)ᵀ · a * * References: * O.C. Zienkiewicz & J.Z. Zhu, "The superconvergent patch recovery and * a posteriori error estimates", Int. J. Numer. Meth. Engng., 1992. */ export interface SPRResult { /** Recovered nodal stress: nodeCount × 6 components [sxx,syy,szz,txy,tyz,txz] */ nodalStress: Float64Array; /** Per-element error indicator η_e = ||σ* - σ_h||_e (if computed) */ elementError?: Float64Array; } /** * Build inverse mapping: for each node, which elements contain it. * O(nodeCount + elementCount × nodesPerElement) construction. */ export declare function buildNodeToElements(tetrahedra: Uint32Array, nodeCount: number, nodesPerElement: number): Uint32Array[]; /** * Perform SPR stress recovery for TET10 elements. * * @param tetrahedra Element connectivity (10 nodes per element) * @param vertices Node coordinates (x,y,z per node) * @param gaussPointStress Per-GP stress: (elemCount×4)×6 components * @param gaussPointCoords Per-GP coordinates: (elemCount×4)×3 * @param nodeCount Total number of nodes * @returns SPRResult with continuous nodal stress field */ export declare function recoverNodalStressSPR(tetrahedra: Uint32Array, vertices: Float64Array | Float32Array, gaussPointStress: Float64Array, gaussPointCoords: Float64Array, nodeCount: number): SPRResult; /** * Compute nodal von Mises stress from SPR-recovered nodal Cauchy stress. * @param nodalStress nodeCount × 6 Cauchy components * @param nodeCount Number of nodes * @returns nodeCount × 1 von Mises values */ export declare function nodalVonMises(nodalStress: Float64Array, nodeCount: number): Float64Array; //# sourceMappingURL=StressRecovery.d.ts.map