SS.Mechanics 1.2.0
Geometric multibody constraint Jacobians, spatial mass assembly, coupled Schur-complement integration and Newton-Euler reaction recovery; validated planar mechanics and three-dimensional rigid-body workflows
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
No package dependencies declared.
Public API
Mechanics.add
export function add(Vector2 left, Vector2 right) -> Vector2Parameters: left: Vector2, right: Vector2
Mechanics.add3D
export function add3D(Vector3D left, Vector3D right)->Vector3DParameters: left: Vector3D, right: Vector3D
Mechanics.angularAcceleration
export function angularAcceleration(double appliedMoment, double polarInertia) -> doubleParameters: appliedMoment: double, polarInertia: double
export function assembleMultibodyMass3D(RigidBody3D[] bodies)->MultibodyMass3DParameters: bodies: RigidBody3D[]
Mechanics.BodyBalance3D
export record BodyBalance3D(public string bodyIdentity, public Vector3D appliedForce, public Vector3D appliedMoment, public Vector3D reactionForce, public Vector3D reactionMoment, public double forceResidual, public double momentResidual, public bool balanced)Parameters: bodyIdentity: string, appliedForce: Vector3D, appliedMoment: Vector3D, reactionForce: Vector3D, reactionMoment: Vector3D, forceResidual: double, momentResidual: double, balanced: bool
Mechanics.centripetalForce
export function centripetalForce(double mass, double speed, double radius) -> doubleParameters: mass: double, speed: double, radius: double
Mechanics.combinePointMasses
export function combinePointMasses(double[] masses, Vector2[] positions) -> MassProperties2DParameters: masses: double[], positions: Vector2[]
Mechanics.constantAcceleration
export function constantAcceleration(double initialPosition, double initialVelocity, double acceleration, double time) -> Motion1DParameters: initialPosition: double, initialVelocity: double, acceleration: double, time: double
Mechanics.constraintJacobian3D
export function constraintJacobian3D(RigidBody3D[] bodies, JointConstraint3D[] joints)->ConstraintJacobian3DParameters: bodies: RigidBody3D[], joints: JointConstraint3D[]
export record ConstraintJacobian3D(public double[] values, public int rows, public int columns, public string[] rowIdentities)Parameters: values: double[], rows: int, columns: int, rowIdentities: string[]
export record CoupledMultibodyIntegration3D(public RigidBody3D[] bodies, public double[] times, public double[] finalMultipliers, public double maximumConstraintResidual, public int steps, public bool converged, public string diagnostic)Parameters: bodies: RigidBody3D[], times: double[], finalMultipliers: double[], maximumConstraintResidual: double, steps: int, converged: bool, diagnostic: string
Mechanics.cross3D
export function cross3D(Vector3D left, Vector3D right)->Vector3DParameters: left: Vector3D, right: Vector3D
Mechanics.dot
export function dot(Vector2 left, Vector2 right) -> doubleParameters: left: Vector2, right: Vector2
Mechanics.dot3D
export function dot3D(Vector3D left, Vector3D right)->doubleParameters: left: Vector3D, right: Vector3D
Mechanics.equilibrium2D
export function equilibrium2D(Vector2[] positions, Vector2[] forces, double forceTolerance, double momentTolerance) -> Equilibrium2DParameters: positions: Vector2[], forces: Vector2[], forceTolerance: double, momentTolerance: double
Mechanics.Equilibrium2D
export record Equilibrium2D(public double forceX, public double forceY, public double moment, public double residual, public bool balanced, public string diagnostic)Parameters: forceX: double, forceY: double, moment: double, residual: double, balanced: bool, diagnostic: string
Mechanics.equilibrium3D
export function equilibrium3D(RigidBody3D[] bodies, SpatialLoad3D[] loads, FixedConstraint3D[] constraintsValue, double forceTolerance, double momentTolerance)->MultibodyEquilibrium3DParameters: bodies: RigidBody3D[], loads: SpatialLoad3D[], constraintsValue: FixedConstraint3D[], forceTolerance: double, momentTolerance: double
Mechanics.fixedConstraint3D
export function fixedConstraint3D(string bodyIdentity, bool x, bool y, bool z, bool rotationX, bool rotationY, bool rotationZ)->FixedConstraint3DParameters: bodyIdentity: string, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool
export record FixedConstraint3D(public string bodyIdentity, public bool x, public bool y, public bool z, public bool rotationX, public bool rotationY, public bool rotationZ)Parameters: bodyIdentity: string, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool
export function gravitationalPotentialEnergy(double mass, double gravity, double elevation) -> doubleParameters: mass: double, gravity: double, elevation: double
Mechanics.impulse
export function impulse(Vector2 force, double duration) -> Vector2Parameters: force: Vector2, duration: double
export function integrateCoupledMultibody3D(RigidBody3D[] initial, SpatialLoadHistory3D history, JointConstraint3D[] joints, Vector3D gravity, double startTime, double timeStep, int steps, double constraintTolerance)->CoupledMultibodyIntegration3DParameters: initial: RigidBody3D[], history: SpatialLoadHistory3D, joints: JointConstraint3D[], gravity: Vector3D, startTime: double, timeStep: double, steps: int, constraintTolerance: double
Mechanics.integrateRigidBodies3D
export function integrateRigidBodies3D(RigidBody3D[] initial, SpatialLoadHistory3D history, FixedConstraint3D[] constraintsValue, Vector3D gravity, double startTime, double timeStep, int steps)->RigidBodyIntegration3DParameters: initial: RigidBody3D[], history: SpatialLoadHistory3D, constraintsValue: FixedConstraint3D[], gravity: Vector3D, startTime: double, timeStep: double, steps: int
export record JointConstraint3D(public string identity, public string firstBodyIdentity, public string secondBodyIdentity, public Vector3D firstLocalPoint, public Vector3D secondLocalPoint, public bool x, public bool y, public bool z, public bool rotationX, public bool rotationY, public bool rotationZ)Parameters: identity: string, firstBodyIdentity: string, secondBodyIdentity: string, firstLocalPoint: Vector3D, secondLocalPoint: Vector3D, x: bool, y: bool, z: bool, rotationX: bool, rotationY: bool, rotationZ: bool
export record JointReaction3D(public string jointIdentity, public Vector3D firstForce, public Vector3D firstMoment, public Vector3D secondForce, public Vector3D secondMoment)Parameters: jointIdentity: string, firstForce: Vector3D, firstMoment: Vector3D, secondForce: Vector3D, secondMoment: Vector3D
export record JointReactionRecovery3D(public JointReaction3D[] joints, public Vector3D[] bodyResidualForces, public Vector3D[] bodyResidualMoments, public double maximumResidual, public bool balanced, public string diagnostic)Parameters: joints: JointReaction3D[], bodyResidualForces: Vector3D[], bodyResidualMoments: Vector3D[], maximumResidual: double, balanced: bool, diagnostic: string
Mechanics.kineticEnergy
export function kineticEnergy(double mass, Vector2 velocity) -> doubleParameters: mass: double, velocity: Vector2
Mechanics.magnitude
export function magnitude(Vector2 value) -> doubleParameters: value: Vector2
Mechanics.magnitude3D
export function magnitude3D(Vector3D value)->doubleParameters: value: Vector3D
export record MassProperties2D(public double mass, public Vector2 centroid, public double polarInertia)Parameters: mass: double, centroid: Vector2, polarInertia: double
Mechanics.momentAbout
export function momentAbout(Vector2 position, Vector2 force) -> doubleParameters: position: Vector2, force: Vector2
Mechanics.Motion1D
export record Motion1D(public double position, public double velocity, public double acceleration, public double time)Parameters: position: double, velocity: double, acceleration: double, time: double
export record MultibodyEquilibrium3D(public BodyBalance3D[] bodies, public double residual, public bool balanced, public string diagnostic)Parameters: bodies: BodyBalance3D[], residual: double, balanced: bool, diagnostic: string
export record MultibodyMass3D(public double[] values, public double[] inverseValues, public int degreesOfFreedom, public string[] degreeIdentities)Parameters: values: double[], inverseValues: double[], degreesOfFreedom: int, degreeIdentities: string[]
Mechanics.parallelAxis
export function parallelAxis(double centroidalInertia, double mass, double distance) -> doubleParameters: centroidalInertia: double, mass: double, distance: double
Mechanics.projectile
export function projectile(double initialX, double initialY, double speed, double angle, double gravity, double time) -> ProjectileStateParameters: initialX: double, initialY: double, speed: double, angle: double, gravity: double, time: double
export record ProjectileState(public double x, public double y, public double velocityX, public double velocityY, public bool aboveDatum)Parameters: x: double, y: double, velocityX: double, velocityY: double, aboveDatum: bool
export function recoverJointReactions3D(RigidBody3D[] bodies, JointConstraint3D[] joints, SpatialLoad3D[] loads, double[] multipliers, Vector3D[] linearAccelerations, Vector3D[] angularAccelerations, double tolerance)->JointReactionRecovery3DParameters: bodies: RigidBody3D[], joints: JointConstraint3D[], loads: SpatialLoad3D[], multipliers: double[], linearAccelerations: Vector3D[], angularAccelerations: Vector3D[], tolerance: double
export function rectangleCentroidalInertia(double mass, double width, double height) -> doubleParameters: mass: double, width: double, height: double
Mechanics.resultant
export function resultant(Vector2[] forces) -> Vector2Parameters: forces: Vector2[]
Mechanics.rigidBody3D
export function rigidBody3D(string identity, double mass, Vector3D principalInertia, Vector3D position, Vector3D velocity, Vector3D rotation, Vector3D angularVelocity)->RigidBody3DParameters: identity: string, mass: double, principalInertia: Vector3D, position: Vector3D, velocity: Vector3D, rotation: Vector3D, angularVelocity: Vector3D
Mechanics.RigidBody3D
export record RigidBody3D(public string identity, public double mass, public Vector3D principalInertia, public Vector3D position, public Vector3D velocity, public Vector3D rotation, public Vector3D angularVelocity)Parameters: identity: string, mass: double, principalInertia: Vector3D, position: Vector3D, velocity: Vector3D, rotation: Vector3D, angularVelocity: Vector3D
export record RigidBodyIntegration3D(public RigidBody3D[] bodies, public double[] times, public double[] mechanicalEnergy, public Vector3D[] linearMomentum, public int steps, public double externalWork, public double energyChange, public double energyResidual, public double momentumResidual, public string diagnostic)Parameters: bodies: RigidBody3D[], times: double[], mechanicalEnergy: double[], linearMomentum: Vector3D[], steps: int, externalWork: double, energyChange: double, energyResidual: double, momentumResidual: double, diagnostic: string
Mechanics.rotate
export function rotate(Vector2 value, double radians) -> Vector2Parameters: value: Vector2, radians: double
Mechanics.scale
export function scale(Vector2 value, double factor) -> Vector2Parameters: value: Vector2, factor: double
Mechanics.scale3D
export function scale3D(Vector3D value, double factor)->Vector3DParameters: value: Vector3D, factor: double
Mechanics.spatialLoad3D
export function spatialLoad3D(string bodyIdentity, Vector3D force, Vector3D applicationPoint, Vector3D moment)->SpatialLoad3DParameters: bodyIdentity: string, force: Vector3D, applicationPoint: Vector3D, moment: Vector3D
Mechanics.SpatialLoad3D
export record SpatialLoad3D(public string bodyIdentity, public Vector3D force, public Vector3D applicationPoint, public Vector3D moment)Parameters: bodyIdentity: string, force: Vector3D, applicationPoint: Vector3D, moment: Vector3D
Mechanics.SpatialLoadHistory3D
export interface SpatialLoadHistory3DMechanics.subtract
export function subtract(Vector2 left, Vector2 right) -> Vector2Parameters: left: Vector2, right: Vector2
Mechanics.subtract3D
export function subtract3D(Vector3D left, Vector3D right)->Vector3DParameters: left: Vector3D, right: Vector3D
Mechanics.vector
export function vector(double x, double y) -> Vector2Parameters: x: double, y: double
Mechanics.Vector2
export record Vector2(public double x, public double y)Parameters: x: double, y: double
Mechanics.vector3D
export function vector3D(double x, double y, double z)->Vector3DParameters: x: double, y: double, z: double
Mechanics.Vector3D
export record Vector3D(public double x, public double y, public double z)Parameters: x: double, y: double, z: double
Mechanics.velocityAfterImpulse
export function velocityAfterImpulse(double mass, Vector2 initialVelocity, Vector2 appliedImpulse) -> Vector2Parameters: mass: double, initialVelocity: Vector2, appliedImpulse: Vector2
Mechanics.work
export function work(Vector2 force, Vector2 displacement) -> doubleParameters: force: Vector2, displacement: Vector2
Documentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.