import { VecN } from '@holotope/core'; import { XpbdParticleN, type XpbdConservativeForceProviderEvaluationN, type XpbdConservativeForceProviderN } from './xpbd-world.js'; export interface EvaluateXpbdPotentialStateNOptions { readonly dimension: number; /** Particle identities defining the result order. */ readonly particles: readonly XpbdParticleN[]; /** Candidate positions paired one-to-one with `particles`. */ readonly positions: readonly VecN[]; readonly providers: readonly XpbdConservativeForceProviderN[]; } export interface XpbdPotentialStateProviderResultN { readonly provider: XpbdConservativeForceProviderN; readonly evaluation: XpbdConservativeForceProviderEvaluationN; } /** Immutable Float64 potential and gradient assembly at one trial RN state. */ export interface XpbdPotentialStateEvaluationN { readonly dimension: number; readonly potentialEnergy: number; /** Mathematical gradients, `dU/dx`, in authored particle order. */ readonly gradients: readonly VecN[]; readonly providers: readonly XpbdPotentialStateProviderResultN[]; readonly gradientNorm: number; readonly maximumParticleGradientNorm: number; } /** * Evaluates conservative providers at a candidate state without writing the * live particles. Provider forces are assembled by particle identity and * negated into mathematical potential gradients. */ export declare function evaluateXpbdPotentialStateN(options: EvaluateXpbdPotentialStateNOptions): XpbdPotentialStateEvaluationN; //# sourceMappingURL=xpbd-potential-state.d.ts.map