import { CellComplex, type CellGroup } from '@holotope/core'; import { SimplexConstitutiveFamilyN, type SimplexConstitutiveFamilyElementContextN, type SimplexConstitutiveFamilyElementEvaluationN, type SimplexConstitutiveFamilyElementN, type SimplexConstitutiveFamilyEvaluationN, type SimplexConstitutiveFamilyHessianBlockN, type SimplexConstitutiveFamilyHessianVectorEvaluationN, type SimplexConstitutiveFamilyMaterialN } from './simplex-constitutive-family.js'; import { type SimplexCompressibleNeoHookeanEvaluationN, type SimplexCompressibleNeoHookeanMaterialN } from './simplex-neo-hookean-material.js'; import { type XpbdConservativeHessianBlockN, type XpbdConservativeHessianBlockProviderN, type XpbdConservativeHessianVectorEvaluationN, type XpbdConservativeHessianVectorProviderN, type XpbdParticleDirectionQueryN } from './xpbd-incremental-potential-analytic-curvature.js'; import { XpbdParticleN, XpbdWorldN, type XpbdConservativeForceProviderN, type XpbdParticlePositionQueryN } from './xpbd-world.js'; export interface SimplexCompressibleNeoHookeanFamilyElementContextN extends SimplexConstitutiveFamilyElementContextN { } export type SimplexCompressibleNeoHookeanFamilyMaterialN = SimplexConstitutiveFamilyMaterialN; export interface CompileSimplexCompressibleNeoHookeanFamilyNOptions { readonly id: string; readonly source: CellComplex; readonly simplexGroup: CellGroup; /** One live particle per source vertex, in source-vertex order. */ readonly particles: readonly XpbdParticleN[]; readonly material: SimplexCompressibleNeoHookeanFamilyMaterialN; } export interface SimplexCompressibleNeoHookeanFamilyElementN extends SimplexConstitutiveFamilyElementN { } export interface SimplexCompressibleNeoHookeanFamilyElementEvaluationN extends SimplexConstitutiveFamilyElementEvaluationN { } export interface SimplexCompressibleNeoHookeanFamilyEvaluationN extends SimplexConstitutiveFamilyEvaluationN { } /** Exact assembled Neo-Hookean potential curvature in family particle order. */ export interface SimplexCompressibleNeoHookeanFamilyHessianVectorEvaluationN extends SimplexConstitutiveFamilyHessianVectorEvaluationN { /** Stable Neo-Hookean law identity retained by the named wrapper. */ readonly lawId: string; } /** Source-identified compressible Neo-Hookean family over shared RN particles. */ export declare class SimplexCompressibleNeoHookeanFamilyN implements XpbdConservativeForceProviderN, XpbdConservativeHessianVectorProviderN, XpbdConservativeHessianBlockProviderN { readonly constitutiveFamily: SimplexConstitutiveFamilyN; readonly id: string; readonly dimension: number; readonly source: CellComplex; readonly sourceSimplexGroup: CellGroup; readonly particles: readonly XpbdParticleN[]; readonly elements: readonly SimplexCompressibleNeoHookeanFamilyElementN[]; readonly potentialHessianBlocks: readonly SimplexConstitutiveFamilyHessianBlockN[]; private attachedWorld; private constructor(); static compile(options: CompileSimplexCompressibleNeoHookeanFamilyNOptions): SimplexCompressibleNeoHookeanFamilyN; evaluate(): SimplexCompressibleNeoHookeanFamilyEvaluationN; evaluateAt(positionOf: XpbdParticlePositionQueryN): SimplexCompressibleNeoHookeanFamilyEvaluationN; /** Evaluates exact Neo-Hookean curvature without mutating live particles. */ evaluatePotentialHessianVectorAt(positionOf: XpbdParticlePositionQueryN, directionOf: XpbdParticleDirectionQueryN): SimplexCompressibleNeoHookeanFamilyHessianVectorEvaluationN; /** Evaluates one exact source-simplex Neo-Hookean Hessian block. */ evaluatePotentialHessianBlockVectorAt(block: XpbdConservativeHessianBlockN, positionOf: XpbdParticlePositionQueryN, directionOf: XpbdParticleDirectionQueryN): XpbdConservativeHessianVectorEvaluationN; /** Registers this provider; particles must already belong to the world. */ addToWorld(world: XpbdWorldN): XpbdWorldN; } export declare function compileSimplexCompressibleNeoHookeanFamilyN(options: CompileSimplexCompressibleNeoHookeanFamilyNOptions): SimplexCompressibleNeoHookeanFamilyN; //# sourceMappingURL=simplex-neo-hookean-family.d.ts.map