packages feed

moonlight-linalg-0.1.0.0: src-public/Moonlight/LinAlg/Statics.hs

-- | Statics types, assembly, equilibrium compilation, and support checking.
module Moonlight.LinAlg.Statics
  ( NodeRef,
    nodeRef,
    nodeRefLabel,
    Axis (..),
    Vec3 (..),
    MemberRef,
    mkMemberRef,
    memberEndpoints,
    memberTouchesNode,
    SupportAxes,
    mkSupportAxes,
    supportAxesList,
    freeSupportAxes,
    fixedSupportAxes,
    ForceNode,
    ForceNetwork,
    nodePosition,
    nodeLoad,
    nodeSupportAxes,
    nodeReactionAxes,
    networkNodeMap,
    networkMemberSet,
    NetworkDeclaration,
    NetworkBuildError (..),
    joint,
    support,
    supportOn,
    load,
    member,
    network,
    UnknownForce (..),
    EquationRef (..),
    CompiledEquilibrium,
    compiledNodeOrder,
    compiledFoundationOrder,
    compiledMemberOrder,
    compiledMemberDirections,
    compiledUnknownOrder,
    compiledEquationOrder,
    compiledCoefficientMatrix,
    compiledRightHandSide,
    EquilibriumSolution (..),
    ForceSign (..),
    EquilibriumViolation (..),
    EquilibriumResult (..),
    allAxes,
    addVec3,
    subVec3,
    negateVec3,
    scaleVec3,
    dotVec3,
    magnitudeVec3,
    normalizeVec3,
    normalizeVec3Safe,
    axisComponent,
    axisVector,
    vec3Zero,
    assembleEquilibriumEquations,
    checkEquilibrium,
    solveGraphicStatics,
  )
where

import Moonlight.LinAlg.Pure.Statics.Algebra
  ( addVec3,
    allAxes,
    axisComponent,
    axisVector,
    dotVec3,
    magnitudeVec3,
    memberEndpoints,
    memberTouchesNode,
    mkMemberRef,
    negateVec3,
    normalizeVec3,
    normalizeVec3Safe,
    scaleVec3,
    subVec3,
    vec3Zero,
  )
import Moonlight.LinAlg.Pure.Statics.Compile
  ( assembleEquilibriumEquations,
  )
import Moonlight.LinAlg.Pure.Statics.Core
  ( checkEquilibrium,
    solveGraphicStatics,
  )
import Moonlight.LinAlg.Pure.Statics.Network
  ( NetworkBuildError (..),
    NetworkDeclaration,
    joint,
    load,
    member,
    network,
    networkMemberSet,
    networkNodeMap,
    nodeLoad,
    nodePosition,
    nodeReactionAxes,
    nodeRef,
    nodeRefLabel,
    nodeSupportAxes,
    support,
    supportOn,
  )
import Moonlight.LinAlg.Pure.Statics.Types
  ( Axis (..),
    CompiledEquilibrium,
    EquationRef (..),
    EquilibriumResult (..),
    EquilibriumSolution (..),
    EquilibriumViolation (..),
    ForceNetwork,
    ForceNode,
    ForceSign (..),
    MemberRef,
    NodeRef,
    SupportAxes,
    UnknownForce (..),
    Vec3 (..),
    compiledCoefficientMatrix,
    compiledEquationOrder,
    compiledFoundationOrder,
    compiledMemberDirections,
    compiledMemberOrder,
    compiledNodeOrder,
    compiledRightHandSide,
    compiledUnknownOrder,
    fixedSupportAxes,
    freeSupportAxes,
    mkSupportAxes,
    supportAxesList,
  )