{
  "title": "Numerical Modeling",
  "version": "1.0",
  "scope": "Curated, non-exhaustive educational catalog of numerical techniques and verification methods.",
  "models": [
    {
      "id": "finite-difference-method",
      "name": "Finite difference method",
      "description": "Approximates derivatives with weighted values on a grid.",
      "example": "Temperature fields in heat sinks and plates.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Second-order accuracy requires a smooth solution and a uniform grid; boundaries need compatible stencils.",
      "google_search": "https://www.google.com/search?q=Finite+difference+method+numerical+method",
      "math": {
        "equation": "u''(x_i)\\approx\\frac{u_{i+1}-2u_i+u_{i-1}}{h^2}",
        "tex": "u''(x_i)\\approx\\frac{u_{i+1}-2u_i+u_{i-1}}{h^2}",
        "derivation": [
          "Expand neighboring values in Taylor series.",
          "Add the expansions to cancel odd derivatives.",
          "Divide by h squared to obtain the centered second derivative."
        ],
        "assumptions": "Second-order accuracy requires a smooth solution and a uniform grid; boundaries need compatible stencils."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Temperature fields in heat sinks and plates.",
        "implementation": {
          "name": "Custom finite-difference solver",
          "url": "https://fncbook.com/finitediffs/",
          "note": "Implementation route: assemble stencils in Python/NumPy or a compiled solver; this reference is a textbook, not a packaged application."
        }
      },
      "references": [
        {
          "title": "Fundamentals of Numerical Computation: finite differences",
          "url": "https://fncbook.com/finitediffs/"
        }
      ],
      "recommendations": [
        {
          "name": "Quantum harmonic oscillator",
          "url": "https://iicsm.org/physicalmodeling/#quantum-harmonic-oscillator",
          "role": "Discretization",
          "note": "For fields on structured grids; design boundary stencils and check mesh convergence.",
          "context": "Describes a quantum degree of freedom in a quadratic potential."
        },
        {
          "name": "Particle-in-a-box model",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-a-box-model",
          "role": "Discretization",
          "note": "For fields on structured grids; design boundary stencils and check mesh convergence.",
          "context": "Confines a quantum particle within idealized boundaries."
        }
      ],
      "relationships": [
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "finite-volume-method",
      "name": "Finite volume method",
      "description": "Balances conserved quantities over control volumes.",
      "example": "Pipe-flow and aerodynamic CFD workflows.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Accuracy depends on reconstruction, numerical flux, mesh quality, and time integration.",
      "google_search": "https://www.google.com/search?q=Finite+volume+method+numerical+method",
      "math": {
        "equation": "V_i\\frac{dU_i}{dt}+\\sum_f\\widehat F_f\\cdot n_f A_f=V_iS_i",
        "tex": "V_i\\frac{dU_i}{dt}+\\sum_f\\widehat F_f\\cdot n_f A_f=V_iS_i",
        "derivation": [
          "Integrate the conservation law over a cell.",
          "Use the divergence theorem to convert volume flux divergence to surface flux.",
          "Approximate each face flux consistently with its neighbor."
        ],
        "assumptions": "Accuracy depends on reconstruction, numerical flux, mesh quality, and time integration."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Pipe-flow and aerodynamic CFD workflows.",
        "implementation": {
          "name": "OpenFOAM",
          "url": "https://doc.openfoam.com/2212/tools/processing/numerics/schemes/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "OpenFOAM finite-volume method",
          "url": "https://doc.openfoam.com/2212/tools/processing/numerics/schemes/"
        }
      ],
      "recommendations": [
        {
          "name": "Population balance model",
          "url": "https://iicsm.org/physicalmodeling/#population-balance-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Tracks the distribution of particle sizes or other internal properties."
        },
        {
          "name": "Mass-action reaction kinetics",
          "url": "https://iicsm.org/physicalmodeling/#mass-action-reaction-kinetics",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Relates reaction rates to species concentrations and reaction orders."
        },
        {
          "name": "Fickian diffusion",
          "url": "https://iicsm.org/physicalmodeling/#fickian-diffusion",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Relates diffusive flux to concentration gradients."
        },
        {
          "name": "Maxwell–Stefan diffusion",
          "url": "https://iicsm.org/physicalmodeling/#maxwellstefan-diffusion",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Represents multicomponent diffusion through interspecies friction."
        },
        {
          "name": "Advection–diffusion–reaction model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondiffusionreaction-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Combines bulk transport, diffusion and reaction sources."
        },
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        },
        {
          "name": "Euler flow model",
          "url": "https://iicsm.org/physicalmodeling/#euler-flow-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Neglects viscous stresses in compressible or incompressible flow."
        },
        {
          "name": "Stokes creeping-flow model",
          "url": "https://iicsm.org/physicalmodeling/#stokes-creeping-flow-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Neglects inertial terms relative to viscosity."
        },
        {
          "name": "Boundary-layer model",
          "url": "https://iicsm.org/physicalmodeling/#boundary-layer-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Resolves thin near-wall regions with scale-based simplifications."
        },
        {
          "name": "Lubrication approximation",
          "url": "https://iicsm.org/physicalmodeling/#lubrication-approximation",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Simplifies viscous flow in thin gaps."
        },
        {
          "name": "Oldroyd-B model",
          "url": "https://iicsm.org/physicalmodeling/#oldroyd-b-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Combines solvent viscosity with an elastic polymer stress."
        },
        {
          "name": "Reynolds-averaged Navier–Stokes (RANS)",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-averaged-navierstokes-rans",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Models mean flow with closure for unresolved turbulent stresses."
        },
        {
          "name": "Spalart–Allmaras model",
          "url": "https://iicsm.org/physicalmodeling/#spalartallmaras-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Uses a transported turbulence variable to obtain eddy viscosity."
        },
        {
          "name": "k–epsilon model",
          "url": "https://iicsm.org/physicalmodeling/#kepsilon-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Uses turbulent kinetic energy and dissipation rate to close mean flow."
        },
        {
          "name": "k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#komega-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Uses turbulent kinetic energy and specific dissipation rate."
        },
        {
          "name": "SST k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#sst-komega-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Blends near-wall and outer-flow behavior with a shear-stress limiter."
        },
        {
          "name": "Reynolds-stress transport model",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-stress-transport-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Transports individual turbulent stress components."
        },
        {
          "name": "Large-eddy simulation (LES)",
          "url": "https://iicsm.org/physicalmodeling/#large-eddy-simulation-les",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Resolves larger turbulent motions and models subgrid effects."
        },
        {
          "name": "Smagorinsky subgrid model",
          "url": "https://iicsm.org/physicalmodeling/#smagorinsky-subgrid-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Relates subgrid eddy viscosity to resolved strain and filter scale."
        },
        {
          "name": "Detached-eddy simulation (DES)",
          "url": "https://iicsm.org/physicalmodeling/#detached-eddy-simulation-des",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Combines RANS near walls with LES-like treatment away from them."
        },
        {
          "name": "Volume-of-fluid (VOF) representation",
          "url": "https://iicsm.org/physicalmodeling/#volume-of-fluid-vof-representation",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Tracks phase volume fractions to represent an interface."
        },
        {
          "name": "Euler–Euler two-fluid model",
          "url": "https://iicsm.org/physicalmodeling/#eulereuler-two-fluid-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Treats phases as interpenetrating continua with exchange terms."
        },
        {
          "name": "Lagrangian particle tracking",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-particle-tracking",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Tracks discrete particles through a carrier flow."
        },
        {
          "name": "Radiative transfer equation",
          "url": "https://iicsm.org/physicalmodeling/#radiative-transfer-equation",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Tracks radiation intensity through emission, absorption and scattering."
        },
        {
          "name": "Poisson–Nernst–Planck model",
          "url": "https://iicsm.org/physicalmodeling/#poissonnernstplanck-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Couples electrostatics to diffusion and migration of ions."
        },
        {
          "name": "Doyle–Fuller–Newman (DFN/P2D) model",
          "url": "https://iicsm.org/physicalmodeling/#doylefullernewman-dfn-p2d-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Combines porous-electrode transport and particle diffusion."
        },
        {
          "name": "Single-particle battery model (SPM)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-battery-model-spm",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Represents each electrode by a representative active-material particle."
        },
        {
          "name": "Single-particle model with electrolyte (SPMe)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-model-with-electrolyte-spme",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Adds electrolyte concentration effects to a single-particle approximation."
        },
        {
          "name": "Saint-Venant shallow-water model",
          "url": "https://iicsm.org/physicalmodeling/#saint-venant-shallow-water-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Depth-averages mass and momentum in free-surface flow."
        },
        {
          "name": "Kinematic-wave routing",
          "url": "https://iicsm.org/physicalmodeling/#kinematic-wave-routing",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Simplifies flow routing by approximating dominant slope and friction balance."
        },
        {
          "name": "Groundwater flow model",
          "url": "https://iicsm.org/physicalmodeling/#groundwater-flow-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Combines water conservation with porous-flow relations."
        },
        {
          "name": "Advection–dispersion groundwater model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondispersion-groundwater-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Represents contaminant transport and spreading through an aquifer."
        },
        {
          "name": "Numerical weather prediction",
          "url": "https://iicsm.org/physicalmodeling/#numerical-weather-prediction",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Evolves atmospheric dynamics and thermodynamics from an analyzed initial state."
        },
        {
          "name": "General circulation model (GCM)",
          "url": "https://iicsm.org/physicalmodeling/#general-circulation-model-gcm",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Represents large-scale atmospheric or oceanic circulation."
        },
        {
          "name": "Earth system model (ESM)",
          "url": "https://iicsm.org/physicalmodeling/#earth-system-model-esm",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Couples atmosphere, ocean, land, ice and biogeochemical processes."
        },
        {
          "name": "Ocean circulation model",
          "url": "https://iicsm.org/physicalmodeling/#ocean-circulation-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Evolves ocean momentum, temperature and salinity."
        },
        {
          "name": "Sea-ice thermodynamic-dynamic model",
          "url": "https://iicsm.org/physicalmodeling/#sea-ice-thermodynamic-dynamic-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Couples freezing, melting and ice motion."
        },
        {
          "name": "Elastic seismic-wave model",
          "url": "https://iicsm.org/physicalmodeling/#elastic-seismic-wave-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Propagates elastic disturbances through Earth materials."
        },
        {
          "name": "Boltzmann kinetic equation",
          "url": "https://iicsm.org/physicalmodeling/#boltzmann-kinetic-equation",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Evolves a particle distribution under transport and collisions."
        },
        {
          "name": "Vlasov–Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovpoisson-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Couples collisionless distribution dynamics to electrostatic fields."
        },
        {
          "name": "Vlasov–Maxwell model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovmaxwell-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Couples collisionless kinetic distributions to electromagnetic fields."
        },
        {
          "name": "Magnetohydrodynamics (MHD)",
          "url": "https://iicsm.org/physicalmodeling/#magnetohydrodynamics-mhd",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Treats a conducting fluid coupled to a magnetic field."
        },
        {
          "name": "Neutron diffusion approximation",
          "url": "https://iicsm.org/physicalmodeling/#neutron-diffusion-approximation",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Simplifies neutron transport to a diffusion description."
        },
        {
          "name": "General relativity model",
          "url": "https://iicsm.org/physicalmodeling/#general-relativity-model",
          "role": "Conservative discretization",
          "note": "For transport/balance-law formulations; use consistent face fluxes and appropriate reconstruction.",
          "context": "Relates spacetime curvature to matter and energy."
        }
      ],
      "relationships": [
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Can be time-integrated by",
          "note": "A method-of-lines discretization can be advanced by a suitable ODE integrator; stability must be checked."
        },
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "finite-element-method",
      "name": "Finite element method",
      "description": "Uses piecewise basis functions and a weak formulation on a mesh.",
      "example": "Structural brackets, heat exchangers, and electromagnetic components.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Diffusion example shown; elements and function spaces must suit the PDE and boundary conditions.",
      "google_search": "https://www.google.com/search?q=Finite+element+method+numerical+method",
      "math": {
        "equation": "u_h=\\sum_j U_jN_j; K_{ij}=\\int_\\Omega\\nabla N_i\\cdot k\\nabla N_j\\,d\\Omega; KU=f",
        "tex": "u_h=\\sum_j U_jN_j; K_{ij}=\\int_\\Omega\\nabla N_i\\cdot k\\nabla N_j\\,d\\Omega; KU=f",
        "derivation": [
          "Multiply a diffusion equation by a test function.",
          "Integrate by parts and impose boundary conditions.",
          "Expand in basis functions and assemble the element contributions."
        ],
        "assumptions": "Diffusion example shown; elements and function spaces must suit the PDE and boundary conditions."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Structural brackets, heat exchangers, and electromagnetic components.",
        "implementation": {
          "name": "MFEM",
          "url": "https://mfem.org/examples/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "MFEM finite-element examples",
          "url": "https://mfem.org/examples/"
        }
      ],
      "recommendations": [
        {
          "name": "Schrödinger model",
          "url": "https://iicsm.org/physicalmodeling/#schrodinger-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Evolves a nonrelativistic quantum state using a Hamiltonian."
        },
        {
          "name": "Dirac model",
          "url": "https://iicsm.org/physicalmodeling/#dirac-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes relativistic spin-half particles with a spinor wave equation."
        },
        {
          "name": "Born–Oppenheimer approximation",
          "url": "https://iicsm.org/physicalmodeling/#bornoppenheimer-approximation",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Separates electronic motion from slower nuclear motion."
        },
        {
          "name": "Potential-flow model",
          "url": "https://iicsm.org/physicalmodeling/#potential-flow-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents irrotational velocity using a scalar potential."
        },
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Relates conductive heat flux to temperature gradient."
        },
        {
          "name": "Transient heat equation",
          "url": "https://iicsm.org/physicalmodeling/#transient-heat-equation",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Balances thermal storage, conduction and heat sources."
        },
        {
          "name": "Stefan phase-change problem",
          "url": "https://iicsm.org/physicalmodeling/#stefan-phase-change-problem",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples heat transport to a moving melting or freezing boundary."
        },
        {
          "name": "Enthalpy–porosity model",
          "url": "https://iicsm.org/physicalmodeling/#enthalpyporosity-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents melting using enthalpy and a porous resistance in the mushy zone."
        },
        {
          "name": "Linear elasticity (Hooke model)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elasticity-hooke-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Relates stress linearly to small elastic strain."
        },
        {
          "name": "Orthotropic elasticity",
          "url": "https://iicsm.org/physicalmodeling/#orthotropic-elasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses direction-dependent elastic properties along material axes."
        },
        {
          "name": "Neo-Hookean hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#neo-hookean-hyperelasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Models large elastic deformation with a strain-energy function."
        },
        {
          "name": "Mooney–Rivlin hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#mooneyrivlin-hyperelasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses multiple strain invariants to fit rubber-like response."
        },
        {
          "name": "Ogden hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#ogden-hyperelasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses powers of principal stretches to represent nonlinear elasticity."
        },
        {
          "name": "Euler–Bernoulli beam model",
          "url": "https://iicsm.org/physicalmodeling/#eulerbernoulli-beam-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes slender-beam bending while neglecting transverse shear deformation."
        },
        {
          "name": "Timoshenko beam model",
          "url": "https://iicsm.org/physicalmodeling/#timoshenko-beam-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Includes transverse shear deformation and rotational effects."
        },
        {
          "name": "Kirchhoff–Love plate model",
          "url": "https://iicsm.org/physicalmodeling/#kirchhofflove-plate-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes thin-plate bending with normals remaining normal."
        },
        {
          "name": "Mindlin–Reissner plate model",
          "url": "https://iicsm.org/physicalmodeling/#mindlinreissner-plate-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Includes transverse shear deformation in plate bending."
        },
        {
          "name": "Shell model",
          "url": "https://iicsm.org/physicalmodeling/#shell-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Combines membrane and bending behavior on a curved surface."
        },
        {
          "name": "Truss model",
          "url": "https://iicsm.org/physicalmodeling/#truss-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents a structure with axial-force members joined at idealized nodes."
        },
        {
          "name": "Cable and membrane models",
          "url": "https://iicsm.org/physicalmodeling/#cable-and-membrane-models",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represent slender or thin structures dominated by tension."
        },
        {
          "name": "von Mises J2 plasticity",
          "url": "https://iicsm.org/physicalmodeling/#von-mises-j2-plasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses deviatoric stress to define yielding in an isotropic ductile material."
        },
        {
          "name": "Tresca yield model",
          "url": "https://iicsm.org/physicalmodeling/#tresca-yield-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Defines yield using maximum shear stress."
        },
        {
          "name": "Drucker–Prager plasticity",
          "url": "https://iicsm.org/physicalmodeling/#druckerprager-plasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses a smooth pressure-dependent yield surface."
        },
        {
          "name": "Mohr–Coulomb model",
          "url": "https://iicsm.org/physicalmodeling/#mohrcoulomb-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Relates frictional shear strength to normal stress and cohesion."
        },
        {
          "name": "Johnson–Cook model",
          "url": "https://iicsm.org/physicalmodeling/#johnsoncook-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses empirical strain, strain-rate and temperature factors."
        },
        {
          "name": "Crystal plasticity",
          "url": "https://iicsm.org/physicalmodeling/#crystal-plasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents plastic flow through crystallographic slip systems."
        },
        {
          "name": "Phase-field fracture model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-fracture-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents cracks with a continuous damage-like field."
        },
        {
          "name": "Linear acoustic wave model",
          "url": "https://iicsm.org/physicalmodeling/#linear-acoustic-wave-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes small pressure perturbations about an equilibrium state."
        },
        {
          "name": "Helmholtz acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#helmholtz-acoustic-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents harmonic acoustic fields at one frequency."
        },
        {
          "name": "Transmission-line acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-acoustic-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses distributed wave propagation in a narrow duct or tube."
        },
        {
          "name": "Maxwell electromagnetic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-electromagnetic-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples electric and magnetic fields with charges and currents."
        },
        {
          "name": "Electrostatic Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#electrostatic-poisson-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Relates electric potential to charge density."
        },
        {
          "name": "Magnetostatic model",
          "url": "https://iicsm.org/physicalmodeling/#magnetostatic-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Represents steady magnetic fields driven by currents and magnetization."
        },
        {
          "name": "Eddy-current model",
          "url": "https://iicsm.org/physicalmodeling/#eddy-current-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Models induced conducting currents in a time-varying magnetic field."
        },
        {
          "name": "Darcy porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#darcy-porous-flow-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Relates averaged fluid flux to hydraulic gradient."
        },
        {
          "name": "Brinkman porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#brinkman-porous-flow-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Adds a viscous shear term to a Darcy-like resistance model."
        },
        {
          "name": "Richards equation",
          "url": "https://iicsm.org/physicalmodeling/#richards-equation",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes variably saturated water movement in porous media."
        },
        {
          "name": "Biot poroelasticity",
          "url": "https://iicsm.org/physicalmodeling/#biot-poroelasticity",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples solid deformation and pore-fluid pressure."
        },
        {
          "name": "Terzaghi consolidation model",
          "url": "https://iicsm.org/physicalmodeling/#terzaghi-consolidation-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Describes time-dependent settlement from pore-pressure dissipation."
        },
        {
          "name": "Modified Cam-Clay model",
          "url": "https://iicsm.org/physicalmodeling/#modified-cam-clay-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses critical-state plasticity for idealized clay behavior."
        },
        {
          "name": "Pennes bioheat model",
          "url": "https://iicsm.org/physicalmodeling/#pennes-bioheat-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Adds perfusion and metabolic heat to tissue heat transfer."
        },
        {
          "name": "Reaction–diffusion morphogenesis model",
          "url": "https://iicsm.org/physicalmodeling/#reactiondiffusion-morphogenesis-model",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples reacting substances with diffusion."
        },
        {
          "name": "Homogenization",
          "url": "https://iicsm.org/physicalmodeling/#homogenization",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Derives effective properties or equations from smaller-scale structure."
        },
        {
          "name": "Representative volume element (RVE)",
          "url": "https://iicsm.org/physicalmodeling/#representative-volume-element-rve",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Uses a finite microstructural sample to estimate bulk response."
        },
        {
          "name": "FE² computational homogenization",
          "url": "https://iicsm.org/physicalmodeling/#fe2-computational-homogenization",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Solves microscale problems within a macroscale finite-element calculation."
        },
        {
          "name": "QM/MM coupling",
          "url": "https://iicsm.org/physicalmodeling/#qm-mm-coupling",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Combines quantum mechanics in a selected region with molecular mechanics around it."
        },
        {
          "name": "Atomistic–continuum coupling",
          "url": "https://iicsm.org/physicalmodeling/#atomisticcontinuum-coupling",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Connects particle-level and continuum descriptions."
        },
        {
          "name": "Fluid–structure interaction (FSI)",
          "url": "https://iicsm.org/physicalmodeling/#fluidstructure-interaction-fsi",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples fluid loads with structural motion or deformation."
        },
        {
          "name": "Thermomechanical coupling",
          "url": "https://iicsm.org/physicalmodeling/#thermomechanical-coupling",
          "role": "Discretization",
          "note": "For a suitable weak-form spatial problem; choose function spaces and boundary conditions for the operator.",
          "context": "Couples temperature evolution and mechanical response."
        }
      ],
      "relationships": [
        {
          "target": "gaussian-quadrature",
          "type": "Commonly uses",
          "note": "Quadrature assembles element operators and load vectors."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Includes discontinuous family",
          "note": "Uses element-local spaces with interface flux coupling."
        },
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "discontinuous-galerkin-method",
      "name": "Discontinuous Galerkin method",
      "description": "Combines element-local trial functions with numerical fluxes across interfaces.",
      "example": "Compressible-flow simulation for nozzles and wings.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Flux choice and stabilization matter; explicit high-order schemes can need small time steps.",
      "google_search": "https://www.google.com/search?q=Discontinuous+Galerkin+method+numerical+method",
      "math": {
        "equation": "\\int_K v\\partial_tu_h-\\int_K\\nabla v\\cdot F(u_h)+\\int_{\\partial K}v\\widehat F\\cdot n=0",
        "tex": "\\int_K v\\partial_tu_h-\\int_K\\nabla v\\cdot F(u_h)+\\int_{\\partial K}v\\widehat F\\cdot n=0",
        "derivation": [
          "Use independent polynomial spaces on each element.",
          "Integrate the conservation law against local test functions.",
          "Couple neighbors through a stable numerical flux."
        ],
        "assumptions": "Flux choice and stabilization matter; explicit high-order schemes can need small time steps."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Compressible-flow simulation for nozzles and wings.",
        "implementation": {
          "name": "MFEM",
          "url": "https://mfem.org/features/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "MFEM discontinuous Galerkin features",
          "url": "https://mfem.org/features/"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Discretization",
          "note": "For element-local high-order transport or wave formulations; stable interface fluxes and time steps are essential.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        },
        {
          "name": "Linear acoustic wave model",
          "url": "https://iicsm.org/physicalmodeling/#linear-acoustic-wave-model",
          "role": "Discretization",
          "note": "For element-local high-order transport or wave formulations; stable interface fluxes and time steps are essential.",
          "context": "Describes small pressure perturbations about an equilibrium state."
        },
        {
          "name": "Helmholtz acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#helmholtz-acoustic-model",
          "role": "Discretization",
          "note": "For element-local high-order transport or wave formulations; stable interface fluxes and time steps are essential.",
          "context": "Represents harmonic acoustic fields at one frequency."
        },
        {
          "name": "Transmission-line acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-acoustic-model",
          "role": "Discretization",
          "note": "For element-local high-order transport or wave formulations; stable interface fluxes and time steps are essential.",
          "context": "Uses distributed wave propagation in a narrow duct or tube."
        }
      ],
      "relationships": [
        {
          "target": "finite-element-method",
          "type": "Discontinuous finite-element family of",
          "note": "Uses element-local spaces with interface flux coupling."
        },
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "boundary-element-method",
      "name": "Boundary element method",
      "description": "Transfers suitable linear PDE problems to boundary integral equations.",
      "example": "Exterior acoustics, electrostatics, and scattering models.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Representative Laplace formulation; singular quadrature and dense matrices require care.",
      "google_search": "https://www.google.com/search?q=Boundary+element+method+numerical+method",
      "math": {
        "equation": "c(x)u(x)+\\int_\\Gamma u\\partial_nG\\,d\\Gamma=\\int_\\Gamma G\\partial_nu\\,d\\Gamma",
        "tex": "c(x)u(x)+\\int_\\Gamma u\\partial_nG\\,d\\Gamma=\\int_\\Gamma G\\partial_nu\\,d\\Gamma",
        "derivation": [
          "Apply Green's identity with a fundamental solution.",
          "Take the observation point to the boundary.",
          "Discretize the boundary fields and integrals."
        ],
        "assumptions": "Representative Laplace formulation; singular quadrature and dense matrices require care."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Exterior acoustics, electrostatics, and scattering models.",
        "implementation": {
          "name": "Bempp",
          "url": "https://bempp.com/handbook/api/boundary_operators.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "Bempp boundary-element handbook",
          "url": "https://bempp.com/handbook/api/boundary_operators.html"
        }
      ],
      "recommendations": [
        {
          "name": "Potential-flow model",
          "url": "https://iicsm.org/physicalmodeling/#potential-flow-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Represents irrotational velocity using a scalar potential."
        },
        {
          "name": "Linear acoustic wave model",
          "url": "https://iicsm.org/physicalmodeling/#linear-acoustic-wave-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Describes small pressure perturbations about an equilibrium state."
        },
        {
          "name": "Helmholtz acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#helmholtz-acoustic-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Represents harmonic acoustic fields at one frequency."
        },
        {
          "name": "Transmission-line acoustic model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-acoustic-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Uses distributed wave propagation in a narrow duct or tube."
        },
        {
          "name": "Electrostatic Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#electrostatic-poisson-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Relates electric potential to charge density."
        },
        {
          "name": "Magnetostatic model",
          "url": "https://iicsm.org/physicalmodeling/#magnetostatic-model",
          "role": "Boundary formulation",
          "note": "For a linear homogeneous-domain formulation with a known fundamental solution; general nonlinear/inhomogeneous problems need extensions.",
          "context": "Represents steady magnetic fields driven by currents and magnetization."
        }
      ],
      "relationships": [
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "spectral-collocation",
      "name": "Spectral collocation",
      "description": "Approximates smooth fields globally and enforces the equation at selected nodes.",
      "example": "Smooth fluid instabilities and wave propagation.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Rapid convergence requires sufficient smoothness; discontinuities cause oscillations and aliasing.",
      "google_search": "https://www.google.com/search?q=Spectral+collocation+numerical+method",
      "math": {
        "equation": "u_N(x)=\\sum_{j=0}^NU_j\\ell_j(x); u_N'(x_i)=\\sum_jD_{ij}U_j",
        "tex": "u_N(x)=\\sum_{j=0}^NU_j\\ell_j(x); u_N'(x_i)=\\sum_jD_{ij}U_j",
        "derivation": [
          "Interpolate a field with a global polynomial or Fourier basis.",
          "Differentiate the basis analytically.",
          "Enforce the PDE at collocation nodes."
        ],
        "assumptions": "Rapid convergence requires sufficient smoothness; discontinuities cause oscillations and aliasing."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Smooth fluid instabilities and wave propagation.",
        "implementation": {
          "name": "Dedalus",
          "url": "https://doi.org/10.1103/PhysRevResearch.2.023068",
          "note": "Dedalus provides spectral methods; the paper discusses its formulation and implementation. Collocation details depend on basis and problem."
        }
      },
      "references": [
        {
          "title": "Dedalus methods paper",
          "url": "https://doi.org/10.1103/PhysRevResearch.2.023068"
        }
      ],
      "recommendations": [
        {
          "name": "Schrödinger model",
          "url": "https://iicsm.org/physicalmodeling/#schrodinger-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Evolves a nonrelativistic quantum state using a Hamiltonian."
        },
        {
          "name": "Dirac model",
          "url": "https://iicsm.org/physicalmodeling/#dirac-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Describes relativistic spin-half particles with a spinor wave equation."
        },
        {
          "name": "Born–Oppenheimer approximation",
          "url": "https://iicsm.org/physicalmodeling/#bornoppenheimer-approximation",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Separates electronic motion from slower nuclear motion."
        },
        {
          "name": "Time-dependent DFT (TDDFT)",
          "url": "https://iicsm.org/physicalmodeling/#time-dependent-dft-tddft",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Evolves electron density to approximate excited-state response."
        },
        {
          "name": "Quantum harmonic oscillator",
          "url": "https://iicsm.org/physicalmodeling/#quantum-harmonic-oscillator",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Describes a quantum degree of freedom in a quadratic potential."
        },
        {
          "name": "Particle-in-a-box model",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-a-box-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Confines a quantum particle within idealized boundaries."
        },
        {
          "name": "Cahn–Hilliard model",
          "url": "https://iicsm.org/physicalmodeling/#cahnhilliard-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Evolves a conserved composition field through chemical-potential gradients."
        },
        {
          "name": "Allen–Cahn model",
          "url": "https://iicsm.org/physicalmodeling/#allencahn-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Evolves a nonconserved order parameter toward lower free energy."
        },
        {
          "name": "Phase-field crystal model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-crystal-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Uses a periodic density-like field to represent crystalline ordering."
        },
        {
          "name": "Scalar diffraction model",
          "url": "https://iicsm.org/physicalmodeling/#scalar-diffraction-model",
          "role": "Smooth-field discretization",
          "note": "For sufficiently smooth fields in compatible geometries; use suitable bases, dealiasing, and boundary treatment.",
          "context": "Uses a scalar wave approximation for light diffraction."
        }
      ],
      "relationships": [
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "radial-basis-function-discretization",
      "name": "Radial basis function discretization",
      "description": "Builds meshfree interpolants or derivative stencils from radial kernels.",
      "example": "Scattered geometry interpolation and meshfree field approximation.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Polynomial augmentation and shape parameters affect solvability and conditioning.",
      "google_search": "https://www.google.com/search?q=Radial+basis+function+discretization+numerical+method",
      "math": {
        "equation": "u_h(x)=\\sum_jc_j\\phi(\\lVert x-x_j\\rVert); (L\\Phi)c=f",
        "tex": "u_h(x)=\\sum_jc_j\\phi(\\lVert x-x_j\\rVert); (L\\Phi)c=f",
        "derivation": [
          "Choose kernel centers and a radial basis.",
          "Apply the differential operator to the basis functions.",
          "Collocate interior and boundary equations to solve for coefficients."
        ],
        "assumptions": "Polynomial augmentation and shape parameters affect solvability and conditioning."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Scattered geometry interpolation and meshfree field approximation.",
        "implementation": {
          "name": "SciPy RBFInterpolator",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RBFInterpolator.html",
          "note": "Interpolation implementation; a PDE collocation solver requires applying operators and boundary conditions separately."
        }
      },
      "references": [
        {
          "title": "SciPy RBFInterpolator",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RBFInterpolator.html"
        }
      ],
      "recommendations": [
        {
          "name": "Fickian diffusion",
          "url": "https://iicsm.org/physicalmodeling/#fickian-diffusion",
          "role": "Scattered-field approximation",
          "note": "For scattered samples or a suitable meshfree collocation formulation; test conditioning and boundary accuracy.",
          "context": "Relates diffusive flux to concentration gradients."
        }
      ],
      "relationships": [
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-mesh-refinement",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "adaptive-mesh-refinement",
      "name": "Adaptive mesh refinement",
      "description": "Concentrates degrees of freedom where a numerical error indicator is large.",
      "example": "Resolving stress concentrations and localized heat sources.",
      "discipline": "Spatial discretization",
      "scale": "Discretize",
      "kind": "Numerical technique",
      "limitations": "Bulk-marking criterion shown; an indicator is not automatically a rigorous error bound.",
      "google_search": "https://www.google.com/search?q=Adaptive+mesh+refinement+numerical+method",
      "math": {
        "equation": "\\eta^2=\\sum_K\\eta_K^2; \\sum_{K\\in\\mathcal M}\\eta_K^2\\ge\\theta\\eta^2",
        "tex": "\\eta^2=\\sum_K\\eta_K^2; \\sum_{K\\in\\mathcal M}\\eta_K^2\\ge\\theta\\eta^2",
        "derivation": [
          "Solve on the current mesh.",
          "Estimate local error and mark cells carrying a chosen error fraction.",
          "Refine, transfer the solution, and repeat."
        ],
        "assumptions": "Bulk-marking criterion shown; an indicator is not automatically a rigorous error bound."
      },
      "application": {
        "area": "Spatial discretization",
        "product_examples": "Resolving stress concentrations and localized heat sources.",
        "implementation": {
          "name": "MFEM",
          "url": "https://mfem.org/examples/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "MFEM adaptive mesh refinement examples",
          "url": "https://mfem.org/examples/"
        }
      ],
      "recommendations": [
        {
          "name": "Discrete dislocation dynamics",
          "url": "https://iicsm.org/physicalmodeling/#discrete-dislocation-dynamics",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Tracks line defects and their interactions."
        },
        {
          "name": "Neo-Hookean hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#neo-hookean-hyperelasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Models large elastic deformation with a strain-energy function."
        },
        {
          "name": "Mooney–Rivlin hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#mooneyrivlin-hyperelasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Uses multiple strain invariants to fit rubber-like response."
        },
        {
          "name": "Ogden hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#ogden-hyperelasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Uses powers of principal stretches to represent nonlinear elasticity."
        },
        {
          "name": "von Mises J2 plasticity",
          "url": "https://iicsm.org/physicalmodeling/#von-mises-j2-plasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Uses deviatoric stress to define yielding in an isotropic ductile material."
        },
        {
          "name": "Tresca yield model",
          "url": "https://iicsm.org/physicalmodeling/#tresca-yield-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Defines yield using maximum shear stress."
        },
        {
          "name": "Drucker–Prager plasticity",
          "url": "https://iicsm.org/physicalmodeling/#druckerprager-plasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Uses a smooth pressure-dependent yield surface."
        },
        {
          "name": "Mohr–Coulomb model",
          "url": "https://iicsm.org/physicalmodeling/#mohrcoulomb-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Relates frictional shear strength to normal stress and cohesion."
        },
        {
          "name": "Johnson–Cook model",
          "url": "https://iicsm.org/physicalmodeling/#johnsoncook-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Uses empirical strain, strain-rate and temperature factors."
        },
        {
          "name": "Crystal plasticity",
          "url": "https://iicsm.org/physicalmodeling/#crystal-plasticity",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Represents plastic flow through crystallographic slip systems."
        },
        {
          "name": "Phase-field fracture model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-fracture-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Represents cracks with a continuous damage-like field."
        },
        {
          "name": "Maxwell electromagnetic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-electromagnetic-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Couples electric and magnetic fields with charges and currents."
        },
        {
          "name": "Eddy-current model",
          "url": "https://iicsm.org/physicalmodeling/#eddy-current-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Models induced conducting currents in a time-varying magnetic field."
        },
        {
          "name": "Boltzmann kinetic equation",
          "url": "https://iicsm.org/physicalmodeling/#boltzmann-kinetic-equation",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Evolves a particle distribution under transport and collisions."
        },
        {
          "name": "Vlasov–Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovpoisson-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Couples collisionless distribution dynamics to electrostatic fields."
        },
        {
          "name": "Vlasov–Maxwell model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovmaxwell-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Couples collisionless kinetic distributions to electromagnetic fields."
        },
        {
          "name": "Magnetohydrodynamics (MHD)",
          "url": "https://iicsm.org/physicalmodeling/#magnetohydrodynamics-mhd",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Treats a conducting fluid coupled to a magnetic field."
        },
        {
          "name": "Neutron diffusion approximation",
          "url": "https://iicsm.org/physicalmodeling/#neutron-diffusion-approximation",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Simplifies neutron transport to a diffusion description."
        },
        {
          "name": "General relativity model",
          "url": "https://iicsm.org/physicalmodeling/#general-relativity-model",
          "role": "Spatial error control",
          "note": "Refine localized gradients or error indicators after choosing the PDE discretization.",
          "context": "Relates spacetime curvature to matter and energy."
        }
      ],
      "relationships": [
        {
          "target": "residual-based-error-estimation",
          "type": "Can be guided by",
          "note": "Local residual indicators can mark cells for refinement."
        },
        {
          "target": "finite-difference-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-volume-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "finite-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "discontinuous-galerkin-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "boundary-element-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "spectral-collocation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "radial-basis-function-discretization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "lu-factorization",
      "name": "LU factorization",
      "description": "Solves a linear system through triangular factors with pivoting.",
      "example": "Circuit matrices and repeated small-to-medium engineering solves.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Pivoting is important; sparse fill-in and ill-conditioning can dominate cost and accuracy.",
      "google_search": "https://www.google.com/search?q=LU+factorization+numerical+method",
      "math": {
        "equation": "PA=LU; Ly=Pb; Ux=y",
        "tex": "PA=LU; Ly=Pb; Ux=y",
        "derivation": [
          "Eliminate entries below the diagonal.",
          "Record elimination multipliers in a lower triangular factor.",
          "Apply the row permutation and solve two triangular systems."
        ],
        "assumptions": "Pivoting is important; sparse fill-in and ill-conditioning can dominate cost and accuracy."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Circuit matrices and repeated small-to-medium engineering solves.",
        "implementation": {
          "name": "SciPy linalg.lu",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.lu.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: linalg.lu",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.lu.html"
        }
      ],
      "recommendations": [
        {
          "name": "Lumped-capacitance thermal model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-capacitance-thermal-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents a body with one spatially uniform temperature."
        },
        {
          "name": "Thermal resistance-capacitance network",
          "url": "https://iicsm.org/physicalmodeling/#thermal-resistance-capacitance-network",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents heat paths and storage with connected lumped elements."
        },
        {
          "name": "Newton cooling model",
          "url": "https://iicsm.org/physicalmodeling/#newton-cooling-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Uses a heat-transfer coefficient between a surface and a fluid."
        },
        {
          "name": "Surface-to-surface radiosity model",
          "url": "https://iicsm.org/physicalmodeling/#surface-to-surface-radiosity-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Balances diffuse radiation exchange between surfaces."
        },
        {
          "name": "Neo-Hookean hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#neo-hookean-hyperelasticity",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Models large elastic deformation with a strain-energy function."
        },
        {
          "name": "Mooney–Rivlin hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#mooneyrivlin-hyperelasticity",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Uses multiple strain invariants to fit rubber-like response."
        },
        {
          "name": "Ogden hyperelasticity",
          "url": "https://iicsm.org/physicalmodeling/#ogden-hyperelasticity",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Uses powers of principal stretches to represent nonlinear elasticity."
        },
        {
          "name": "Lumped RLC circuit model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-rlc-circuit-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Uses resistors, capacitors and inductors connected by Kirchhoff laws."
        },
        {
          "name": "Transmission-line electrical model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-electrical-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents distributed inductance, capacitance and losses."
        },
        {
          "name": "Drift–diffusion semiconductor model",
          "url": "https://iicsm.org/physicalmodeling/#driftdiffusion-semiconductor-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Combines electrostatics with carrier drift, diffusion and continuity."
        },
        {
          "name": "Hydrodynamic carrier model",
          "url": "https://iicsm.org/physicalmodeling/#hydrodynamic-carrier-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Adds carrier-energy or momentum information to transport."
        },
        {
          "name": "Equivalent-circuit battery model",
          "url": "https://iicsm.org/physicalmodeling/#equivalent-circuit-battery-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Uses fitted electrical elements to approximate terminal behavior."
        },
        {
          "name": "AC power-flow model",
          "url": "https://iicsm.org/physicalmodeling/#ac-power-flow-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Balances complex power on an electrical network."
        },
        {
          "name": "DC power-flow approximation",
          "url": "https://iicsm.org/physicalmodeling/#dc-power-flow-approximation",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Linearizes active-power flow under restrictive grid assumptions."
        },
        {
          "name": "State-space model",
          "url": "https://iicsm.org/physicalmodeling/#state-space-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents system evolution with internal states, inputs and outputs."
        },
        {
          "name": "Transfer-function model",
          "url": "https://iicsm.org/physicalmodeling/#transfer-function-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Relates linear time-invariant input and output in the transform domain."
        },
        {
          "name": "Bond-graph model",
          "url": "https://iicsm.org/physicalmodeling/#bond-graph-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents energy exchange across mechanical, electrical and other domains."
        },
        {
          "name": "System-dynamics stock-flow model",
          "url": "https://iicsm.org/physicalmodeling/#system-dynamics-stock-flow-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents accumulated quantities and their rates of change."
        },
        {
          "name": "Markov state model",
          "url": "https://iicsm.org/physicalmodeling/#markov-state-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Represents probabilistic transitions between a finite set of states."
        },
        {
          "name": "Proper orthogonal decomposition (POD)",
          "url": "https://iicsm.org/physicalmodeling/#proper-orthogonal-decomposition-pod",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Builds a compact basis from representative field snapshots."
        },
        {
          "name": "Reduced basis model",
          "url": "https://iicsm.org/physicalmodeling/#reduced-basis-model",
          "role": "Linear solve",
          "note": "For assembled nonsingular linear systems; pivoting, conditioning, and sparse fill-in determine reliability and cost.",
          "context": "Projects a parameterized governing model onto a small approximation space."
        }
      ],
      "relationships": [
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "cholesky-factorization",
      "name": "Cholesky factorization",
      "description": "Factors a symmetric positive-definite matrix efficiently.",
      "example": "Elasticity systems with sufficient constraints and covariance calculations.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Requires positive definiteness; the complex analogue uses a conjugate transpose.",
      "google_search": "https://www.google.com/search?q=Cholesky+factorization+numerical+method",
      "math": {
        "equation": "A=LL^{\\mathsf T}; Ly=b; L^{\\mathsf T}x=y",
        "tex": "A=LL^{\\mathsf T}; Ly=b; L^{\\mathsf T}x=y",
        "derivation": [
          "Match entries in the product of a lower triangular factor and its transpose.",
          "Compute each positive diagonal square root.",
          "Use forward and backward substitution."
        ],
        "assumptions": "Requires positive definiteness; the complex analogue uses a conjugate transpose."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Elasticity systems with sufficient constraints and covariance calculations.",
        "implementation": {
          "name": "SciPy linalg.cholesky",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.cholesky.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: linalg.cholesky",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.cholesky.html"
        }
      ],
      "recommendations": [
        {
          "name": "Linear elasticity (Hooke model)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elasticity-hooke-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Relates stress linearly to small elastic strain."
        },
        {
          "name": "Orthotropic elasticity",
          "url": "https://iicsm.org/physicalmodeling/#orthotropic-elasticity",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Uses direction-dependent elastic properties along material axes."
        },
        {
          "name": "Euler–Bernoulli beam model",
          "url": "https://iicsm.org/physicalmodeling/#eulerbernoulli-beam-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Describes slender-beam bending while neglecting transverse shear deformation."
        },
        {
          "name": "Timoshenko beam model",
          "url": "https://iicsm.org/physicalmodeling/#timoshenko-beam-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Includes transverse shear deformation and rotational effects."
        },
        {
          "name": "Kirchhoff–Love plate model",
          "url": "https://iicsm.org/physicalmodeling/#kirchhofflove-plate-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Describes thin-plate bending with normals remaining normal."
        },
        {
          "name": "Mindlin–Reissner plate model",
          "url": "https://iicsm.org/physicalmodeling/#mindlinreissner-plate-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Includes transverse shear deformation in plate bending."
        },
        {
          "name": "Shell model",
          "url": "https://iicsm.org/physicalmodeling/#shell-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Combines membrane and bending behavior on a curved surface."
        },
        {
          "name": "Truss model",
          "url": "https://iicsm.org/physicalmodeling/#truss-model",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Represents a structure with axial-force members joined at idealized nodes."
        },
        {
          "name": "Cable and membrane models",
          "url": "https://iicsm.org/physicalmodeling/#cable-and-membrane-models",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Represent slender or thin structures dominated by tension."
        },
        {
          "name": "Kalman state estimator",
          "url": "https://iicsm.org/physicalmodeling/#kalman-state-estimator",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Combines a dynamical model with noisy observations using covariance updates."
        },
        {
          "name": "Gaussian-process surrogate",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-process-surrogate",
          "role": "Linear solve",
          "note": "Only for symmetric positive-definite assembled systems after constraints are handled; not for general coupled saddle-point systems.",
          "context": "Predicts responses with a probabilistic function model fitted to samples."
        }
      ],
      "relationships": [
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "qr-factorization",
      "name": "QR factorization",
      "description": "Uses an orthogonal factorization to solve least-squares systems.",
      "example": "Sensor calibration and polynomial parameter fitting.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Thin full-rank form shown; rank-deficient problems need pivoting or SVD.",
      "google_search": "https://www.google.com/search?q=QR+factorization+numerical+method",
      "math": {
        "equation": "A=QR; R x=Q^{\\mathsf T}b",
        "tex": "A=QR; R x=Q^{\\mathsf T}b",
        "derivation": [
          "Apply orthogonal transformations to eliminate subdiagonal entries.",
          "Orthogonality preserves the residual norm.",
          "Solve the triangular least-squares problem."
        ],
        "assumptions": "Thin full-rank form shown; rank-deficient problems need pivoting or SVD."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Sensor calibration and polynomial parameter fitting.",
        "implementation": {
          "name": "SciPy linalg.qr",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.qr.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: linalg.qr",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.qr.html"
        }
      ],
      "recommendations": [
        {
          "name": "Kalman state estimator",
          "url": "https://iicsm.org/physicalmodeling/#kalman-state-estimator",
          "role": "Stable fitting / linear solve",
          "note": "For a linearized least-squares or calibration problem; use pivoting or SVD when rank is uncertain.",
          "context": "Combines a dynamical model with noisy observations using covariance updates."
        },
        {
          "name": "Proper orthogonal decomposition (POD)",
          "url": "https://iicsm.org/physicalmodeling/#proper-orthogonal-decomposition-pod",
          "role": "Stable fitting / linear solve",
          "note": "For a linearized least-squares or calibration problem; use pivoting or SVD when rank is uncertain.",
          "context": "Builds a compact basis from representative field snapshots."
        },
        {
          "name": "Reduced basis model",
          "url": "https://iicsm.org/physicalmodeling/#reduced-basis-model",
          "role": "Stable fitting / linear solve",
          "note": "For a linearized least-squares or calibration problem; use pivoting or SVD when rank is uncertain.",
          "context": "Projects a parameterized governing model onto a small approximation space."
        }
      ],
      "relationships": [
        {
          "target": "gauss-newton-least-squares",
          "type": "Can solve linearized systems for",
          "note": "QR avoids explicitly forming the normal equations."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "singular-value-decomposition",
      "name": "Singular value decomposition",
      "description": "Separates matrix directions by their amplification strengths.",
      "example": "Inverse imaging, reduced-order models, and signal denoising.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Threshold choice affects effective rank; SVD can be expensive for large dense systems.",
      "google_search": "https://www.google.com/search?q=Singular+value+decomposition+numerical+method",
      "math": {
        "equation": "A=U\\Sigma V^{\\mathsf T}; x=V\\Sigma^+U^{\\mathsf T}b",
        "tex": "A=U\\Sigma V^{\\mathsf T}; x=V\\Sigma^+U^{\\mathsf T}b",
        "derivation": [
          "Diagonalize the action of the matrix into orthogonal input and output directions.",
          "Invert retained nonzero singular values.",
          "Discard or regularize poorly determined directions if required."
        ],
        "assumptions": "Threshold choice affects effective rank; SVD can be expensive for large dense systems."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Inverse imaging, reduced-order models, and signal denoising.",
        "implementation": {
          "name": "SciPy linalg.svd",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: linalg.svd",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html"
        }
      ],
      "recommendations": [
        {
          "name": "Tight-binding model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-model",
          "role": "Rank / inverse analysis",
          "note": "For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Represents electronic states with localized orbitals and hopping parameters."
        },
        {
          "name": "Hubbard model",
          "url": "https://iicsm.org/physicalmodeling/#hubbard-model",
          "role": "Rank / inverse analysis",
          "note": "For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Models competition between particle hopping and local electron interactions."
        },
        {
          "name": "Proper orthogonal decomposition (POD)",
          "url": "https://iicsm.org/physicalmodeling/#proper-orthogonal-decomposition-pod",
          "role": "Rank / inverse analysis",
          "note": "For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Builds a compact basis from representative field snapshots."
        },
        {
          "name": "Reduced basis model",
          "url": "https://iicsm.org/physicalmodeling/#reduced-basis-model",
          "role": "Rank / inverse analysis",
          "note": "For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Projects a parameterized governing model onto a small approximation space."
        },
        {
          "name": "Tight-binding electronic model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-electronic-model",
          "role": "Rank / inverse analysis",
          "note": "Use SVD on H(k)-E I to check null states, condition analysis to assess sensitivity, and quadrature for Brillouin-zone averages. General bands require a Hermitian eigensolver, not SVD singular values interpreted as signed energies. For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Builds crystal electronic bands from localized orbitals and intersite hopping."
        },
        {
          "name": "Nearly-free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#nearly-free-electron-model",
          "role": "Rank / inverse analysis",
          "note": "Use SVD for null-state diagnostics, sensitivity checks for small gaps, and quadrature for band averages. Diagonalize the Hermitian plane-wave Hamiltonian for actual energies. For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Predicts band gaps by perturbing free electrons with a weak periodic potential."
        },
        {
          "name": "Harmonic lattice dynamics",
          "url": "https://iicsm.org/physicalmodeling/#harmonic-lattice-dynamics",
          "role": "Rank / inverse analysis",
          "note": "Fit force constants with SVD, cross-check real-time harmonic motion with Verlet, and test displacement/time-step refinement. Obtain phonon frequencies with a Hermitian dynamical-matrix eigensolver. For reduced bases, rank diagnosis, or regularized inverse fitting; select truncation using the data and error budget.",
          "context": "Computes phonon modes from a quadratic expansion of crystal potential energy."
        }
      ],
      "relationships": [
        {
          "target": "dynamic-mode-decomposition",
          "type": "Supports projected fit in",
          "note": "SVD supports a low-rank least-squares evolution fit."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Supplies dominant modes for",
          "note": "Truncated singular vectors define the snapshot-based reduced space."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "jacobi-iteration",
      "name": "Jacobi iteration",
      "description": "Updates each unknown from the previous iterate using the diagonal.",
      "example": "Parallel smoothing and simple stationary iterative solvers.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Convergence requires the iteration matrix spectral radius below one; diagonal dominance is a sufficient condition.",
      "google_search": "https://www.google.com/search?q=Jacobi+iteration+numerical+method",
      "math": {
        "equation": "A=D+L+U; x^{k+1}=D^{-1}[b-(L+U)x^k]",
        "tex": "A=D+L+U; x^{k+1}=D^{-1}[b-(L+U)x^k]",
        "derivation": [
          "Split the matrix into diagonal and off-diagonal parts.",
          "Move the off-diagonal contribution to the right-hand side.",
          "Evaluate all new components from the old iterate."
        ],
        "assumptions": "Convergence requires the iteration matrix spectral radius below one; diagonal dominance is a sufficient condition."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Parallel smoothing and simple stationary iterative solvers.",
        "implementation": {
          "name": "PETSc PCJACOBI",
          "url": "https://petsc.org/release/manualpages/PC/PCJACOBI/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: PCJACOBI",
          "url": "https://petsc.org/release/manualpages/PC/PCJACOBI/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Relaxation / preconditioning",
          "note": "Use as a diagonal preconditioner or suitable smoother; standalone iteration requires a convergence check.",
          "context": "Relates conductive heat flux to temperature gradient."
        }
      ],
      "relationships": [
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gauss-seidel-iteration",
      "name": "Gauss-Seidel iteration",
      "description": "Uses newly updated values immediately within each sweep.",
      "example": "Smoothers inside multigrid and structured-grid elliptic solvers.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Ordering influences convergence and parallelism; convergence is not guaranteed for arbitrary matrices.",
      "google_search": "https://www.google.com/search?q=Gauss-Seidel+iteration+numerical+method",
      "math": {
        "equation": "(D+L)x^{k+1}=b-Ux^k",
        "tex": "(D+L)x^{k+1}=b-Ux^k",
        "derivation": [
          "Split the matrix into lower triangular and upper parts.",
          "Sweep through the unknowns in a fixed order.",
          "Reuse new components as soon as they are available."
        ],
        "assumptions": "Ordering influences convergence and parallelism; convergence is not guaranteed for arbitrary matrices."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Smoothers inside multigrid and structured-grid elliptic solvers.",
        "implementation": {
          "name": "PETSc PCSOR",
          "url": "https://petsc.org/release/manualpages/PC/PCSOR/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: PCSOR",
          "url": "https://petsc.org/release/manualpages/PC/PCSOR/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Relaxation / smoothing",
          "note": "Useful for suitable diffusion-like matrices or multigrid smoothing; ordering and parallelism matter.",
          "context": "Relates conductive heat flux to temperature gradient."
        }
      ],
      "relationships": [
        {
          "target": "successive-over-relaxation",
          "type": "Generalized by relaxation in",
          "note": "Setting omega to one recovers the Gauss-Seidel iteration."
        },
        {
          "target": "geometric-multigrid",
          "type": "Can smooth within",
          "note": "Relaxation damps components of the error before and after coarse correction."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "successive-over-relaxation",
      "name": "Successive over-relaxation",
      "description": "Relaxes a Gauss-Seidel correction with a tunable weight.",
      "example": "Elliptic potential and diffusion calculations.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "For symmetric positive-definite systems, 0 < omega < 2 gives convergence; an optimal weight is problem dependent.",
      "google_search": "https://www.google.com/search?q=Successive+over-relaxation+numerical+method",
      "math": {
        "equation": "x^{k+1}=(D+\\omega L)^{-1}[\\omega b-((\\omega-1)D+\\omega U)x^k]",
        "tex": "x^{k+1}=(D+\\omega L)^{-1}[\\omega b-((\\omega-1)D+\\omega U)x^k]",
        "derivation": [
          "Form the Gauss-Seidel component update.",
          "Blend its correction using relaxation weight omega.",
          "Choose the weight to improve convergence for the problem class."
        ],
        "assumptions": "For symmetric positive-definite systems, 0 < omega < 2 gives convergence; an optimal weight is problem dependent."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Elliptic potential and diffusion calculations.",
        "implementation": {
          "name": "PETSc PCSOR",
          "url": "https://petsc.org/release/manualpages/PC/PCSOR/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: PCSOR",
          "url": "https://petsc.org/release/manualpages/PC/PCSOR/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Relaxation",
          "note": "For suitable elliptic systems; choose relaxation carefully and verify convergence rather than assuming acceleration.",
          "context": "Relates conductive heat flux to temperature gradient."
        }
      ],
      "relationships": [
        {
          "target": "gauss-seidel-iteration",
          "type": "Relaxed variant of",
          "note": "Setting omega to one recovers the Gauss-Seidel iteration."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "conjugate-gradient",
      "name": "Conjugate gradient",
      "description": "Solves symmetric positive-definite systems using conjugate search directions.",
      "example": "Large constrained elasticity and diffusion systems.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Unpreconditioned step shown; A must be symmetric positive definite, with compatible preconditioning.",
      "google_search": "https://www.google.com/search?q=Conjugate+gradient+numerical+method",
      "math": {
        "equation": "\\alpha_k=\\frac{r_k^{\\mathsf T}r_k}{p_k^{\\mathsf T}Ap_k}; x_{k+1}=x_k+\\alpha_kp_k; r_{k+1}=r_k-\\alpha_kAp_k",
        "tex": "\\alpha_k=\\frac{r_k^{\\mathsf T}r_k}{p_k^{\\mathsf T}Ap_k}; x_{k+1}=x_k+\\alpha_kp_k; r_{k+1}=r_k-\\alpha_kAp_k",
        "derivation": [
          "Minimize the quadratic energy along a search direction.",
          "Choose successive directions to be A-conjugate.",
          "Update residuals and stop using a scaled tolerance."
        ],
        "assumptions": "Unpreconditioned step shown; A must be symmetric positive definite, with compatible preconditioning."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Large constrained elasticity and diffusion systems.",
        "implementation": {
          "name": "PETSc KSPCG",
          "url": "https://petsc.org/release/manualpages/KSP/KSPCG/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: KSPCG",
          "url": "https://petsc.org/release/manualpages/KSP/KSPCG/"
        }
      ],
      "recommendations": [
        {
          "name": "Potential-flow model",
          "url": "https://iicsm.org/physicalmodeling/#potential-flow-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Represents irrotational velocity using a scalar potential."
        },
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Relates conductive heat flux to temperature gradient."
        },
        {
          "name": "Transient heat equation",
          "url": "https://iicsm.org/physicalmodeling/#transient-heat-equation",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Balances thermal storage, conduction and heat sources."
        },
        {
          "name": "Stefan phase-change problem",
          "url": "https://iicsm.org/physicalmodeling/#stefan-phase-change-problem",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Couples heat transport to a moving melting or freezing boundary."
        },
        {
          "name": "Enthalpy–porosity model",
          "url": "https://iicsm.org/physicalmodeling/#enthalpyporosity-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Represents melting using enthalpy and a porous resistance in the mushy zone."
        },
        {
          "name": "Linear elasticity (Hooke model)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elasticity-hooke-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Relates stress linearly to small elastic strain."
        },
        {
          "name": "Orthotropic elasticity",
          "url": "https://iicsm.org/physicalmodeling/#orthotropic-elasticity",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Uses direction-dependent elastic properties along material axes."
        },
        {
          "name": "Euler–Bernoulli beam model",
          "url": "https://iicsm.org/physicalmodeling/#eulerbernoulli-beam-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Describes slender-beam bending while neglecting transverse shear deformation."
        },
        {
          "name": "Timoshenko beam model",
          "url": "https://iicsm.org/physicalmodeling/#timoshenko-beam-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Includes transverse shear deformation and rotational effects."
        },
        {
          "name": "Kirchhoff–Love plate model",
          "url": "https://iicsm.org/physicalmodeling/#kirchhofflove-plate-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Describes thin-plate bending with normals remaining normal."
        },
        {
          "name": "Mindlin–Reissner plate model",
          "url": "https://iicsm.org/physicalmodeling/#mindlinreissner-plate-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Includes transverse shear deformation in plate bending."
        },
        {
          "name": "Shell model",
          "url": "https://iicsm.org/physicalmodeling/#shell-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Combines membrane and bending behavior on a curved surface."
        },
        {
          "name": "Truss model",
          "url": "https://iicsm.org/physicalmodeling/#truss-model",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Represents a structure with axial-force members joined at idealized nodes."
        },
        {
          "name": "Cable and membrane models",
          "url": "https://iicsm.org/physicalmodeling/#cable-and-membrane-models",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Represent slender or thin structures dominated by tension."
        },
        {
          "name": "DC power-flow approximation",
          "url": "https://iicsm.org/physicalmodeling/#dc-power-flow-approximation",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Linearizes active-power flow under restrictive grid assumptions."
        },
        {
          "name": "Homogenization",
          "url": "https://iicsm.org/physicalmodeling/#homogenization",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Derives effective properties or equations from smaller-scale structure."
        },
        {
          "name": "Representative volume element (RVE)",
          "url": "https://iicsm.org/physicalmodeling/#representative-volume-element-rve",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Uses a finite microstructural sample to estimate bulk response."
        },
        {
          "name": "FE² computational homogenization",
          "url": "https://iicsm.org/physicalmodeling/#fe2-computational-homogenization",
          "role": "Linear solve",
          "note": "Only when both the matrix and preconditioner satisfy the required symmetry and positive-definiteness conditions.",
          "context": "Solves microscale problems within a macroscale finite-element calculation."
        }
      ],
      "relationships": [
        {
          "target": "algebraic-multigrid",
          "type": "Can be preconditioned by",
          "note": "The multigrid cycle must preserve the symmetry and positivity required by CG."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gmres",
      "name": "GMRES",
      "description": "Minimizes the residual over a Krylov subspace for nonsymmetric systems.",
      "example": "Advection-diffusion and coupled multiphysics linearizations.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Restarting limits storage but may slow or stall convergence; preconditioning is often essential.",
      "google_search": "https://www.google.com/search?q=GMRES+numerical+method",
      "math": {
        "equation": "x_m=x_0+V_my_m; y_m=\\arg\\min_y\\lVert\\beta e_1-\\bar H_my\\rVert_2",
        "tex": "x_m=x_0+V_my_m; y_m=\\arg\\min_y\\lVert\\beta e_1-\\bar H_my\\rVert_2",
        "derivation": [
          "Build an orthonormal Krylov basis with Arnoldi iteration.",
          "Represent the matrix action by an upper Hessenberg matrix.",
          "Solve the small residual-minimization problem."
        ],
        "assumptions": "Restarting limits storage but may slow or stall convergence; preconditioning is often essential."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Advection-diffusion and coupled multiphysics linearizations.",
        "implementation": {
          "name": "PETSc KSPGMRES",
          "url": "https://petsc.org/release/manualpages/KSP/KSPGMRES/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: KSPGMRES",
          "url": "https://petsc.org/release/manualpages/KSP/KSPGMRES/"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        },
        {
          "name": "Euler flow model",
          "url": "https://iicsm.org/physicalmodeling/#euler-flow-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Neglects viscous stresses in compressible or incompressible flow."
        },
        {
          "name": "Stokes creeping-flow model",
          "url": "https://iicsm.org/physicalmodeling/#stokes-creeping-flow-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Neglects inertial terms relative to viscosity."
        },
        {
          "name": "Boundary-layer model",
          "url": "https://iicsm.org/physicalmodeling/#boundary-layer-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Resolves thin near-wall regions with scale-based simplifications."
        },
        {
          "name": "Lubrication approximation",
          "url": "https://iicsm.org/physicalmodeling/#lubrication-approximation",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Simplifies viscous flow in thin gaps."
        },
        {
          "name": "Oldroyd-B model",
          "url": "https://iicsm.org/physicalmodeling/#oldroyd-b-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Combines solvent viscosity with an elastic polymer stress."
        },
        {
          "name": "Reynolds-averaged Navier–Stokes (RANS)",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-averaged-navierstokes-rans",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Models mean flow with closure for unresolved turbulent stresses."
        },
        {
          "name": "Spalart–Allmaras model",
          "url": "https://iicsm.org/physicalmodeling/#spalartallmaras-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Uses a transported turbulence variable to obtain eddy viscosity."
        },
        {
          "name": "k–epsilon model",
          "url": "https://iicsm.org/physicalmodeling/#kepsilon-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Uses turbulent kinetic energy and dissipation rate to close mean flow."
        },
        {
          "name": "k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#komega-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Uses turbulent kinetic energy and specific dissipation rate."
        },
        {
          "name": "SST k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#sst-komega-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Blends near-wall and outer-flow behavior with a shear-stress limiter."
        },
        {
          "name": "Reynolds-stress transport model",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-stress-transport-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Transports individual turbulent stress components."
        },
        {
          "name": "Large-eddy simulation (LES)",
          "url": "https://iicsm.org/physicalmodeling/#large-eddy-simulation-les",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Resolves larger turbulent motions and models subgrid effects."
        },
        {
          "name": "Smagorinsky subgrid model",
          "url": "https://iicsm.org/physicalmodeling/#smagorinsky-subgrid-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Relates subgrid eddy viscosity to resolved strain and filter scale."
        },
        {
          "name": "Detached-eddy simulation (DES)",
          "url": "https://iicsm.org/physicalmodeling/#detached-eddy-simulation-des",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Combines RANS near walls with LES-like treatment away from them."
        },
        {
          "name": "Volume-of-fluid (VOF) representation",
          "url": "https://iicsm.org/physicalmodeling/#volume-of-fluid-vof-representation",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Tracks phase volume fractions to represent an interface."
        },
        {
          "name": "Euler–Euler two-fluid model",
          "url": "https://iicsm.org/physicalmodeling/#eulereuler-two-fluid-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Treats phases as interpenetrating continua with exchange terms."
        },
        {
          "name": "Lagrangian particle tracking",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-particle-tracking",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Tracks discrete particles through a carrier flow."
        },
        {
          "name": "Surface-to-surface radiosity model",
          "url": "https://iicsm.org/physicalmodeling/#surface-to-surface-radiosity-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Balances diffuse radiation exchange between surfaces."
        },
        {
          "name": "Maxwell electromagnetic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-electromagnetic-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Couples electric and magnetic fields with charges and currents."
        },
        {
          "name": "Eddy-current model",
          "url": "https://iicsm.org/physicalmodeling/#eddy-current-model",
          "role": "Linear solve",
          "note": "For nonsymmetric linearized or discretized systems; plan preconditioning and restart/storage settings.",
          "context": "Models induced conducting currents in a time-varying magnetic field."
        }
      ],
      "relationships": [
        {
          "target": "newton-krylov-method",
          "type": "Can solve inner systems in",
          "note": "Matrix-free Jacobian-vector products can drive a preconditioned GMRES iteration."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Can be preconditioned by",
          "note": "A fixed suitable multigrid operator can accelerate a GMRES solve; variable operators call for flexible variants."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "bicgstab",
      "name": "BiCGSTAB",
      "description": "Uses short recurrences to stabilize a nonsymmetric Krylov iteration.",
      "example": "Memory-limited nonsymmetric CFD matrix solves.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Polynomial viewpoint only; breakdown and irregular convergence are possible.",
      "google_search": "https://www.google.com/search?q=BiCGSTAB+numerical+method",
      "math": {
        "equation": "r_k=p_k(A)r_0; p_k(0)=1",
        "tex": "r_k=p_k(A)r_0; p_k(0)=1",
        "derivation": [
          "Construct a bi-conjugate residual polynomial.",
          "Combine it with local residual-smoothing factors.",
          "Use short vector recurrences to avoid storing a full Krylov basis."
        ],
        "assumptions": "Polynomial viewpoint only; breakdown and irregular convergence are possible."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Memory-limited nonsymmetric CFD matrix solves.",
        "implementation": {
          "name": "PETSc KSPBCGS",
          "url": "https://petsc.org/release/manualpages/KSP/KSPBCGS/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: KSPBCGS",
          "url": "https://petsc.org/release/manualpages/KSP/KSPBCGS/"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Linear solve",
          "note": "A short-recurrence option for nonsymmetric systems; monitor breakdown and irregular residual convergence.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        }
      ],
      "relationships": [
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "geometric-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "geometric-multigrid",
      "name": "Geometric multigrid",
      "description": "Removes error at multiple mesh resolutions.",
      "example": "Large Poisson and diffusion problems on mesh hierarchies.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Transfers, coarse operators, boundary conditions, and smoothers must work together.",
      "google_search": "https://www.google.com/search?q=Geometric+multigrid+numerical+method",
      "math": {
        "equation": "r_h=b_h-A_hx_h; A_He_H=Rr_h; x_h\\leftarrow x_h+Pe_H",
        "tex": "r_h=b_h-A_hx_h; A_He_H=Rr_h; x_h\\leftarrow x_h+Pe_H",
        "derivation": [
          "Smooth high-frequency error on the fine grid.",
          "Restrict the residual and solve for coarse-grid error.",
          "Prolong the correction and apply additional smoothing."
        ],
        "assumptions": "Transfers, coarse operators, boundary conditions, and smoothers must work together."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Large Poisson and diffusion problems on mesh hierarchies.",
        "implementation": {
          "name": "PETSc PCMG",
          "url": "https://petsc.org/release/manualpages/PC/PCMG/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: PCMG",
          "url": "https://petsc.org/release/manualpages/PC/PCMG/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Linear acceleration",
          "note": "For suitable elliptic operators with a mesh hierarchy and compatible transfer operators and smoothers.",
          "context": "Relates conductive heat flux to temperature gradient."
        },
        {
          "name": "Electrostatic Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#electrostatic-poisson-model",
          "role": "Linear acceleration",
          "note": "For suitable elliptic operators with a mesh hierarchy and compatible transfer operators and smoothers.",
          "context": "Relates electric potential to charge density."
        },
        {
          "name": "Magnetostatic model",
          "url": "https://iicsm.org/physicalmodeling/#magnetostatic-model",
          "role": "Linear acceleration",
          "note": "For suitable elliptic operators with a mesh hierarchy and compatible transfer operators and smoothers.",
          "context": "Represents steady magnetic fields driven by currents and magnetization."
        }
      ],
      "relationships": [
        {
          "target": "gauss-seidel-iteration",
          "type": "Can use as smoother",
          "note": "Relaxation damps components of the error before and after coarse correction."
        },
        {
          "target": "algebraic-multigrid",
          "type": "Has algebraic alternative",
          "note": "Both combine smoothing and coarse corrections; the hierarchy is constructed differently."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "conjugate-gradient",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gmres",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "algebraic-multigrid",
      "name": "Algebraic multigrid",
      "description": "Constructs coarse spaces from matrix structure rather than an explicit mesh hierarchy.",
      "example": "Large sparse elliptic systems on complex engineering meshes.",
      "discipline": "Linear algebra",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "One correction shown; performance depends on operator structure and coarsening choices.",
      "google_search": "https://www.google.com/search?q=Algebraic+multigrid+numerical+method",
      "math": {
        "equation": "A_c=RAP; x\\leftarrow x+PA_c^{-1}R(b-Ax)",
        "tex": "A_c=RAP; x\\leftarrow x+PA_c^{-1}R(b-Ax)",
        "derivation": [
          "Identify algebraically strong connections.",
          "Construct interpolation and a coarse operator.",
          "Combine coarse corrections with relaxation."
        ],
        "assumptions": "One correction shown; performance depends on operator structure and coarsening choices."
      },
      "application": {
        "area": "Linear algebra",
        "product_examples": "Large sparse elliptic systems on complex engineering meshes.",
        "implementation": {
          "name": "PETSc PCGAMG",
          "url": "https://petsc.org/release/manualpages/PC/PCGAMG/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: PCGAMG",
          "url": "https://petsc.org/release/manualpages/PC/PCGAMG/"
        }
      ],
      "recommendations": [
        {
          "name": "Darcy porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#darcy-porous-flow-model",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Relates averaged fluid flux to hydraulic gradient."
        },
        {
          "name": "Brinkman porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#brinkman-porous-flow-model",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Adds a viscous shear term to a Darcy-like resistance model."
        },
        {
          "name": "Richards equation",
          "url": "https://iicsm.org/physicalmodeling/#richards-equation",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Describes variably saturated water movement in porous media."
        },
        {
          "name": "Biot poroelasticity",
          "url": "https://iicsm.org/physicalmodeling/#biot-poroelasticity",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Couples solid deformation and pore-fluid pressure."
        },
        {
          "name": "Terzaghi consolidation model",
          "url": "https://iicsm.org/physicalmodeling/#terzaghi-consolidation-model",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Describes time-dependent settlement from pore-pressure dissipation."
        },
        {
          "name": "Modified Cam-Clay model",
          "url": "https://iicsm.org/physicalmodeling/#modified-cam-clay-model",
          "role": "Linear acceleration",
          "note": "For suitable sparse elliptic blocks; coupled, indefinite, or strongly anisotropic operators need tailored treatment.",
          "context": "Uses critical-state plasticity for idealized clay behavior."
        }
      ],
      "relationships": [
        {
          "target": "gmres",
          "type": "Can precondition",
          "note": "A fixed suitable multigrid operator can accelerate a GMRES solve; variable operators call for flexible variants."
        },
        {
          "target": "conjugate-gradient",
          "type": "Can precondition",
          "note": "The multigrid cycle must preserve the symmetry and positivity required by CG."
        },
        {
          "target": "geometric-multigrid",
          "type": "Algebraic alternative to",
          "note": "Both combine smoothing and coarse corrections; the hierarchy is constructed differently."
        },
        {
          "target": "lu-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cholesky-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "qr-factorization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "singular-value-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "jacobi-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-seidel-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "successive-over-relaxation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bicgstab",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "bisection",
      "name": "Bisection",
      "description": "Reliably narrows a continuous scalar root bracket.",
      "example": "Finding operating points from monotone balance equations.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Continuity and a valid bracket are required; even-multiplicity roots may not change sign.",
      "google_search": "https://www.google.com/search?q=Bisection+numerical+method",
      "math": {
        "equation": "c_k=\\frac{a_k+b_k}{2}; b_k-a_k=\\frac{b_0-a_0}{2^k}",
        "tex": "c_k=\\frac{a_k+b_k}{2}; b_k-a_k=\\frac{b_0-a_0}{2^k}",
        "derivation": [
          "Begin with opposite endpoint signs.",
          "Evaluate the midpoint.",
          "Retain the half interval that preserves a sign change."
        ],
        "assumptions": "Continuity and a valid bracket are required; even-multiplicity roots may not change sign."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Finding operating points from monotone balance equations.",
        "implementation": {
          "name": "SciPy optimize.bisect",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.bisect.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.bisect",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.bisect.html"
        }
      ],
      "recommendations": [
        {
          "name": "NRTL activity model",
          "url": "https://iicsm.org/physicalmodeling/#nrtl-activity-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Uses local-composition parameters to describe nonideal liquid mixtures."
        },
        {
          "name": "UNIQUAC activity model",
          "url": "https://iicsm.org/physicalmodeling/#uniquac-activity-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Combines molecular size, shape and interaction contributions."
        },
        {
          "name": "Debye–Hückel model",
          "url": "https://iicsm.org/physicalmodeling/#debyehuckel-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Approximates ionic activity using screened electrostatic interactions."
        },
        {
          "name": "Arrhenius rate model",
          "url": "https://iicsm.org/physicalmodeling/#arrhenius-rate-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Relates a rate coefficient to temperature through an activation energy."
        },
        {
          "name": "Transition-state theory",
          "url": "https://iicsm.org/physicalmodeling/#transition-state-theory",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Estimates reaction rates from a free-energy barrier."
        },
        {
          "name": "Michaelis–Menten kinetics",
          "url": "https://iicsm.org/physicalmodeling/#michaelismenten-kinetics",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Approximates enzyme reaction rates with substrate saturation."
        },
        {
          "name": "Langmuir adsorption isotherm",
          "url": "https://iicsm.org/physicalmodeling/#langmuir-adsorption-isotherm",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Models adsorption on equivalent sites with finite occupancy."
        },
        {
          "name": "Langmuir–Hinshelwood kinetics",
          "url": "https://iicsm.org/physicalmodeling/#langmuirhinshelwood-kinetics",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Models surface reactions involving adsorbed reactants."
        },
        {
          "name": "Hagen–Poiseuille model",
          "url": "https://iicsm.org/physicalmodeling/#hagenpoiseuille-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Predicts fully developed laminar flow in a circular pipe."
        },
        {
          "name": "Darcy–Weisbach model",
          "url": "https://iicsm.org/physicalmodeling/#darcyweisbach-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Relates pipe pressure loss to friction factor and flow speed."
        },
        {
          "name": "Non-Newtonian power-law fluid",
          "url": "https://iicsm.org/physicalmodeling/#non-newtonian-power-law-fluid",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Relates shear stress to a power of shear rate."
        },
        {
          "name": "Bingham plastic model",
          "url": "https://iicsm.org/physicalmodeling/#bingham-plastic-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Represents a material with a yield stress and post-yield viscosity."
        },
        {
          "name": "Herschel–Bulkley model",
          "url": "https://iicsm.org/physicalmodeling/#herschelbulkley-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Combines yield stress with nonlinear post-yield flow."
        },
        {
          "name": "Hybrid dynamical model",
          "url": "https://iicsm.org/physicalmodeling/#hybrid-dynamical-model",
          "role": "Scalar root",
          "note": "For a continuous scalar closure or balance with a known sign-changing bracket.",
          "context": "Combines continuous dynamics with discrete state changes."
        },
        {
          "name": "Carnahan-Starling hard-sphere equation of state",
          "url": "https://iicsm.org/physicalmodeling/#carnahan-starling-hard-sphere-equation-of-state",
          "role": "Scalar root",
          "note": "A robust bracketed alternative for EOS inversion; restrict the bracket to the physically intended fluid branch.",
          "context": "Approximates the compressibility factor of a monodisperse hard-sphere fluid from its packing fraction."
        }
      ],
      "relationships": [
        {
          "target": "brent-root-finding",
          "type": "Provides safeguard for",
          "note": "Bracketing is retained while interpolation proposes faster steps."
        },
        {
          "target": "newton-raphson-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "secant-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "newton-raphson-method",
      "name": "Newton-Raphson method",
      "description": "Solves nonlinear equations by repeated local linearization.",
      "example": "Nonlinear material equilibria and implicit time-step equations.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Fast local convergence requires a suitable initial guess, smoothness, and a nonsingular Jacobian.",
      "google_search": "https://www.google.com/search?q=Newton-Raphson+method+numerical+method",
      "math": {
        "equation": "J(x_k)s_k=-F(x_k); x_{k+1}=x_k+s_k",
        "tex": "J(x_k)s_k=-F(x_k); x_{k+1}=x_k+s_k",
        "derivation": [
          "Expand the residual to first order at the current state.",
          "Set the linearized residual to zero.",
          "Solve for a correction and repeat, with damping if needed."
        ],
        "assumptions": "Fast local convergence requires a suitable initial guess, smoothness, and a nonsingular Jacobian."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Nonlinear material equilibria and implicit time-step equations.",
        "implementation": {
          "name": "SciPy optimize.newton",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.newton",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton.html"
        },
        {
          "title": "PETSc nonlinear system solvers",
          "url": "https://petsc.org/release/manual/snes/"
        }
      ],
      "recommendations": [
        {
          "name": "Ideal gas equation of state",
          "url": "https://iicsm.org/physicalmodeling/#ideal-gas-equation-of-state",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Relates pressure, volume and temperature for a dilute noninteracting gas."
        },
        {
          "name": "Van der Waals equation of state",
          "url": "https://iicsm.org/physicalmodeling/#van-der-waals-equation-of-state",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Adds molecular attraction and excluded volume to an ideal gas model."
        },
        {
          "name": "Peng–Robinson equation of state",
          "url": "https://iicsm.org/physicalmodeling/#pengrobinson-equation-of-state",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses a cubic equation of state for real-fluid behavior."
        },
        {
          "name": "Soave–Redlich–Kwong equation of state",
          "url": "https://iicsm.org/physicalmodeling/#soaveredlichkwong-equation-of-state",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses a temperature-dependent attraction correction in a cubic fluid model."
        },
        {
          "name": "Virial equation of state",
          "url": "https://iicsm.org/physicalmodeling/#virial-equation-of-state",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents nonideal behavior as a density or pressure expansion."
        },
        {
          "name": "Gibbs-energy minimization",
          "url": "https://iicsm.org/physicalmodeling/#gibbs-energy-minimization",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Finds equilibrium by minimizing free energy under conservation constraints."
        },
        {
          "name": "CALPHAD model",
          "url": "https://iicsm.org/physicalmodeling/#calphad-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Combines assessed phase free energies to predict equilibria."
        },
        {
          "name": "Mass-action reaction kinetics",
          "url": "https://iicsm.org/physicalmodeling/#mass-action-reaction-kinetics",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Relates reaction rates to species concentrations and reaction orders."
        },
        {
          "name": "Continuous stirred-tank reactor (CSTR)",
          "url": "https://iicsm.org/physicalmodeling/#continuous-stirred-tank-reactor-cstr",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Assumes a well-mixed reactor with inlet and outlet flows."
        },
        {
          "name": "Plug-flow reactor (PFR)",
          "url": "https://iicsm.org/physicalmodeling/#plug-flow-reactor-pfr",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Approximates axial evolution without axial back-mixing."
        },
        {
          "name": "Batch reactor model",
          "url": "https://iicsm.org/physicalmodeling/#batch-reactor-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Evolves composition and energy in a closed reacting charge."
        },
        {
          "name": "von Mises J2 plasticity",
          "url": "https://iicsm.org/physicalmodeling/#von-mises-j2-plasticity",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses deviatoric stress to define yielding in an isotropic ductile material."
        },
        {
          "name": "Tresca yield model",
          "url": "https://iicsm.org/physicalmodeling/#tresca-yield-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Defines yield using maximum shear stress."
        },
        {
          "name": "Drucker–Prager plasticity",
          "url": "https://iicsm.org/physicalmodeling/#druckerprager-plasticity",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses a smooth pressure-dependent yield surface."
        },
        {
          "name": "Mohr–Coulomb model",
          "url": "https://iicsm.org/physicalmodeling/#mohrcoulomb-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Relates frictional shear strength to normal stress and cohesion."
        },
        {
          "name": "Johnson–Cook model",
          "url": "https://iicsm.org/physicalmodeling/#johnsoncook-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses empirical strain, strain-rate and temperature factors."
        },
        {
          "name": "Crystal plasticity",
          "url": "https://iicsm.org/physicalmodeling/#crystal-plasticity",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents plastic flow through crystallographic slip systems."
        },
        {
          "name": "Phase-field fracture model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-fracture-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents cracks with a continuous damage-like field."
        },
        {
          "name": "Lumped RLC circuit model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-rlc-circuit-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses resistors, capacitors and inductors connected by Kirchhoff laws."
        },
        {
          "name": "Transmission-line electrical model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-electrical-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents distributed inductance, capacitance and losses."
        },
        {
          "name": "Shockley diode model",
          "url": "https://iicsm.org/physicalmodeling/#shockley-diode-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Approximates diode current with an exponential voltage relation."
        },
        {
          "name": "Ebers–Moll transistor model",
          "url": "https://iicsm.org/physicalmodeling/#ebersmoll-transistor-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Models coupled junction currents in a bipolar transistor."
        },
        {
          "name": "MOSFET square-law model",
          "url": "https://iicsm.org/physicalmodeling/#mosfet-square-law-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Approximates long-channel transistor current from terminal voltages."
        },
        {
          "name": "BSIM compact-model family",
          "url": "https://iicsm.org/physicalmodeling/#bsim-compact-model-family",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Uses detailed parameterized MOS transistor relations."
        },
        {
          "name": "Drift–diffusion semiconductor model",
          "url": "https://iicsm.org/physicalmodeling/#driftdiffusion-semiconductor-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Combines electrostatics with carrier drift, diffusion and continuity."
        },
        {
          "name": "Hydrodynamic carrier model",
          "url": "https://iicsm.org/physicalmodeling/#hydrodynamic-carrier-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Adds carrier-energy or momentum information to transport."
        },
        {
          "name": "Nernst equilibrium potential",
          "url": "https://iicsm.org/physicalmodeling/#nernst-equilibrium-potential",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Relates electrochemical equilibrium potential to species activities."
        },
        {
          "name": "Butler–Volmer kinetics",
          "url": "https://iicsm.org/physicalmodeling/#butlervolmer-kinetics",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Relates interfacial current to electrochemical overpotential."
        },
        {
          "name": "Tafel approximation",
          "url": "https://iicsm.org/physicalmodeling/#tafel-approximation",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Approximates high-overpotential behavior of Butler–Volmer kinetics."
        },
        {
          "name": "Six-degree-of-freedom flight model",
          "url": "https://iicsm.org/physicalmodeling/#six-degree-of-freedom-flight-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Evolves vehicle translation and rotation using aerodynamic and propulsion forces."
        },
        {
          "name": "Bicycle vehicle model",
          "url": "https://iicsm.org/physicalmodeling/#bicycle-vehicle-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Combines left and right wheels into a planar steering model."
        },
        {
          "name": "Quarter-car suspension model",
          "url": "https://iicsm.org/physicalmodeling/#quarter-car-suspension-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents one wheel assembly and a fraction of vehicle body mass."
        },
        {
          "name": "AC power-flow model",
          "url": "https://iicsm.org/physicalmodeling/#ac-power-flow-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Balances complex power on an electrical network."
        },
        {
          "name": "Swing-equation generator model",
          "url": "https://iicsm.org/physicalmodeling/#swing-equation-generator-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Represents rotor-angle dynamics from mechanical-electrical power imbalance."
        },
        {
          "name": "Stellar structure model",
          "url": "https://iicsm.org/physicalmodeling/#stellar-structure-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Couples hydrostatic balance, energy transport and energy generation."
        },
        {
          "name": "FLRW cosmological model",
          "url": "https://iicsm.org/physicalmodeling/#flrw-cosmological-model",
          "role": "Nonlinear solve",
          "note": "For differentiable residuals with a suitable initial guess; use globalization and consistent Jacobians.",
          "context": "Assumes a homogeneous and isotropic expanding spacetime."
        }
      ],
      "relationships": [
        {
          "target": "backward-euler",
          "type": "Can solve implicit step in",
          "note": "An implicit step is a nonlinear equation unless the dynamics are linear."
        },
        {
          "target": "broyden-method",
          "type": "Has quasi-Newton alternative",
          "note": "Rank-one secant updates reduce repeated Jacobian evaluation."
        },
        {
          "target": "newton-krylov-method",
          "type": "Can use Krylov implementation",
          "note": "A Krylov method approximately solves each linearized Newton correction."
        },
        {
          "target": "secant-method",
          "type": "Has derivative-free scalar variant",
          "note": "A divided difference replaces the scalar derivative."
        },
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "brent-root-finding",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "secant-method",
      "name": "Secant method",
      "description": "Approximates a scalar derivative from two previous points.",
      "example": "Scalar balance equations with expensive derivatives.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Does not preserve a root bracket; small denominator differences can cause large steps.",
      "google_search": "https://www.google.com/search?q=Secant+method+numerical+method",
      "math": {
        "equation": "x_{k+1}=x_k-f(x_k)\\frac{x_k-x_{k-1}}{f(x_k)-f(x_{k-1})}",
        "tex": "x_{k+1}=x_k-f(x_k)\\frac{x_k-x_{k-1}}{f(x_k)-f(x_{k-1})}",
        "derivation": [
          "Replace Newton's derivative with a divided difference.",
          "Intersect the resulting secant line with the horizontal axis.",
          "Advance the pair of iterates."
        ],
        "assumptions": "Does not preserve a root bracket; small denominator differences can cause large steps."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Scalar balance equations with expensive derivatives.",
        "implementation": {
          "name": "SciPy optimize.newton",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.newton",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton.html"
        }
      ],
      "recommendations": [
        {
          "name": "Stefan–Boltzmann surface model",
          "url": "https://iicsm.org/physicalmodeling/#stefanboltzmann-surface-model",
          "role": "Scalar root",
          "note": "For smooth scalar equations when derivatives are costly; it does not preserve a bracket and can fail.",
          "context": "Relates idealized surface radiant emission to the fourth power of temperature."
        }
      ],
      "relationships": [
        {
          "target": "brent-root-finding",
          "type": "Provides interpolation step for",
          "note": "Secant and inverse-quadratic proposals are accepted only when suitable."
        },
        {
          "target": "newton-raphson-method",
          "type": "Derivative approximation to",
          "note": "A divided difference replaces the scalar derivative."
        },
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "brent-root-finding",
      "name": "Brent root finding",
      "description": "Combines bracket reliability with interpolation-based acceleration.",
      "example": "Robust engineering threshold and equilibrium calculations.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Invariant shown rather than a full algorithm; the function must be continuous on a valid bracket.",
      "google_search": "https://www.google.com/search?q=Brent+root+finding+numerical+method",
      "math": {
        "equation": "f(a_k)f(b_k)\\le0; c_k\\in(a_k,b_k)",
        "tex": "f(a_k)f(b_k)\\le0; c_k\\in(a_k,b_k)",
        "derivation": [
          "Maintain a sign-changing bracket.",
          "Try secant or inverse-quadratic interpolation when its step is acceptable.",
          "Fall back to bisection when interpolation is unsafe."
        ],
        "assumptions": "Invariant shown rather than a full algorithm; the function must be continuous on a valid bracket."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Robust engineering threshold and equilibrium calculations.",
        "implementation": {
          "name": "SciPy optimize.brentq",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.brentq.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.brentq",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.brentq.html"
        }
      ],
      "recommendations": [
        {
          "name": "Ideal gas equation of state",
          "url": "https://iicsm.org/physicalmodeling/#ideal-gas-equation-of-state",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates pressure, volume and temperature for a dilute noninteracting gas."
        },
        {
          "name": "Van der Waals equation of state",
          "url": "https://iicsm.org/physicalmodeling/#van-der-waals-equation-of-state",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Adds molecular attraction and excluded volume to an ideal gas model."
        },
        {
          "name": "Peng–Robinson equation of state",
          "url": "https://iicsm.org/physicalmodeling/#pengrobinson-equation-of-state",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses a cubic equation of state for real-fluid behavior."
        },
        {
          "name": "Soave–Redlich–Kwong equation of state",
          "url": "https://iicsm.org/physicalmodeling/#soaveredlichkwong-equation-of-state",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses a temperature-dependent attraction correction in a cubic fluid model."
        },
        {
          "name": "Virial equation of state",
          "url": "https://iicsm.org/physicalmodeling/#virial-equation-of-state",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Represents nonideal behavior as a density or pressure expansion."
        },
        {
          "name": "NRTL activity model",
          "url": "https://iicsm.org/physicalmodeling/#nrtl-activity-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses local-composition parameters to describe nonideal liquid mixtures."
        },
        {
          "name": "UNIQUAC activity model",
          "url": "https://iicsm.org/physicalmodeling/#uniquac-activity-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Combines molecular size, shape and interaction contributions."
        },
        {
          "name": "Debye–Hückel model",
          "url": "https://iicsm.org/physicalmodeling/#debyehuckel-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates ionic activity using screened electrostatic interactions."
        },
        {
          "name": "Arrhenius rate model",
          "url": "https://iicsm.org/physicalmodeling/#arrhenius-rate-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates a rate coefficient to temperature through an activation energy."
        },
        {
          "name": "Transition-state theory",
          "url": "https://iicsm.org/physicalmodeling/#transition-state-theory",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Estimates reaction rates from a free-energy barrier."
        },
        {
          "name": "Michaelis–Menten kinetics",
          "url": "https://iicsm.org/physicalmodeling/#michaelismenten-kinetics",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates enzyme reaction rates with substrate saturation."
        },
        {
          "name": "Langmuir adsorption isotherm",
          "url": "https://iicsm.org/physicalmodeling/#langmuir-adsorption-isotherm",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Models adsorption on equivalent sites with finite occupancy."
        },
        {
          "name": "Langmuir–Hinshelwood kinetics",
          "url": "https://iicsm.org/physicalmodeling/#langmuirhinshelwood-kinetics",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Models surface reactions involving adsorbed reactants."
        },
        {
          "name": "Hagen–Poiseuille model",
          "url": "https://iicsm.org/physicalmodeling/#hagenpoiseuille-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Predicts fully developed laminar flow in a circular pipe."
        },
        {
          "name": "Darcy–Weisbach model",
          "url": "https://iicsm.org/physicalmodeling/#darcyweisbach-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates pipe pressure loss to friction factor and flow speed."
        },
        {
          "name": "Non-Newtonian power-law fluid",
          "url": "https://iicsm.org/physicalmodeling/#non-newtonian-power-law-fluid",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates shear stress to a power of shear rate."
        },
        {
          "name": "Bingham plastic model",
          "url": "https://iicsm.org/physicalmodeling/#bingham-plastic-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Represents a material with a yield stress and post-yield viscosity."
        },
        {
          "name": "Herschel–Bulkley model",
          "url": "https://iicsm.org/physicalmodeling/#herschelbulkley-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Combines yield stress with nonlinear post-yield flow."
        },
        {
          "name": "Stefan–Boltzmann surface model",
          "url": "https://iicsm.org/physicalmodeling/#stefanboltzmann-surface-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates idealized surface radiant emission to the fourth power of temperature."
        },
        {
          "name": "Norton creep law",
          "url": "https://iicsm.org/physicalmodeling/#norton-creep-law",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates creep rate to a power of stress."
        },
        {
          "name": "Linear elastic fracture mechanics (LEFM)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elastic-fracture-mechanics-lefm",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses crack-tip intensity parameters in an elastic body."
        },
        {
          "name": "Cohesive-zone model",
          "url": "https://iicsm.org/physicalmodeling/#cohesive-zone-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses traction-separation relations across a fracture process zone."
        },
        {
          "name": "Paris fatigue crack-growth law",
          "url": "https://iicsm.org/physicalmodeling/#paris-fatigue-crack-growth-law",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates cyclic crack-growth rate to stress-intensity-factor range."
        },
        {
          "name": "Miner cumulative damage rule",
          "url": "https://iicsm.org/physicalmodeling/#miner-cumulative-damage-rule",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Adds fractions of fatigue life consumed by load cycles."
        },
        {
          "name": "Archard wear model",
          "url": "https://iicsm.org/physicalmodeling/#archard-wear-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates wear volume to load, sliding distance and hardness."
        },
        {
          "name": "Magnetic-circuit model",
          "url": "https://iicsm.org/physicalmodeling/#magnetic-circuit-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses reluctance and magnetomotive force in lumped magnetic paths."
        },
        {
          "name": "Jiles–Atherton hysteresis model",
          "url": "https://iicsm.org/physicalmodeling/#jilesatherton-hysteresis-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Represents path-dependent magnetization with phenomenological parameters."
        },
        {
          "name": "Gaussian beam model",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-beam-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Represents a paraxial beam with a Gaussian transverse profile."
        },
        {
          "name": "Drude–Lorentz optical model",
          "url": "https://iicsm.org/physicalmodeling/#drudelorentz-optical-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Represents free-carrier and bound-charge contributions to permittivity."
        },
        {
          "name": "Shockley diode model",
          "url": "https://iicsm.org/physicalmodeling/#shockley-diode-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates diode current with an exponential voltage relation."
        },
        {
          "name": "Ebers–Moll transistor model",
          "url": "https://iicsm.org/physicalmodeling/#ebersmoll-transistor-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Models coupled junction currents in a bipolar transistor."
        },
        {
          "name": "MOSFET square-law model",
          "url": "https://iicsm.org/physicalmodeling/#mosfet-square-law-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates long-channel transistor current from terminal voltages."
        },
        {
          "name": "BSIM compact-model family",
          "url": "https://iicsm.org/physicalmodeling/#bsim-compact-model-family",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Uses detailed parameterized MOS transistor relations."
        },
        {
          "name": "Nernst equilibrium potential",
          "url": "https://iicsm.org/physicalmodeling/#nernst-equilibrium-potential",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates electrochemical equilibrium potential to species activities."
        },
        {
          "name": "Butler–Volmer kinetics",
          "url": "https://iicsm.org/physicalmodeling/#butlervolmer-kinetics",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates interfacial current to electrochemical overpotential."
        },
        {
          "name": "Tafel approximation",
          "url": "https://iicsm.org/physicalmodeling/#tafel-approximation",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates high-overpotential behavior of Butler–Volmer kinetics."
        },
        {
          "name": "Forchheimer model",
          "url": "https://iicsm.org/physicalmodeling/#forchheimer-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Adds inertial resistance to porous flow."
        },
        {
          "name": "van Genuchten retention model",
          "url": "https://iicsm.org/physicalmodeling/#van-genuchten-retention-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Relates water saturation to pressure head with fitted parameters."
        },
        {
          "name": "Lifting-line model",
          "url": "https://iicsm.org/physicalmodeling/#lifting-line-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Approximates finite-wing lift using a spanwise circulation distribution."
        },
        {
          "name": "Blade-element momentum model",
          "url": "https://iicsm.org/physicalmodeling/#blade-element-momentum-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Combines blade-section loads with momentum balances."
        },
        {
          "name": "Hybrid dynamical model",
          "url": "https://iicsm.org/physicalmodeling/#hybrid-dynamical-model",
          "role": "Scalar root",
          "note": "For continuous scalar closures with a valid sign-changing bracket; verify the intended physical root.",
          "context": "Combines continuous dynamics with discrete state changes."
        },
        {
          "name": "Carnahan-Starling hard-sphere equation of state",
          "url": "https://iicsm.org/physicalmodeling/#carnahan-starling-hard-sphere-equation-of-state",
          "role": "Scalar root",
          "note": "Invert the hard-sphere EOS for packing fraction at a specified pressure using a bracket within the fluid regime. Direct pressure evaluation requires no root solver.",
          "context": "Approximates the compressibility factor of a monodisperse hard-sphere fluid from its packing fraction."
        }
      ],
      "relationships": [
        {
          "target": "secant-method",
          "type": "Can use interpolation from",
          "note": "Secant and inverse-quadratic proposals are accepted only when suitable."
        },
        {
          "target": "bisection",
          "type": "Uses safeguarding from",
          "note": "Bracketing is retained while interpolation proposes faster steps."
        },
        {
          "target": "newton-raphson-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "fixed-point-iteration",
      "name": "Fixed-point iteration",
      "description": "Iterates a rearranged equation until the state stops changing.",
      "example": "Partitioned coupling and simple nonlinear balance solvers.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "A poor rearrangement can diverge even when the original equation has a root.",
      "google_search": "https://www.google.com/search?q=Fixed-point+iteration+numerical+method",
      "math": {
        "equation": "x_{k+1}=g(x_k); \\lVert g(x)-g(y)\\rVert\\le q\\lVert x-y\\rVert,\\quad q<1",
        "tex": "x_{k+1}=g(x_k); \\lVert g(x)-g(y)\\rVert\\le q\\lVert x-y\\rVert,\\quad q<1",
        "derivation": [
          "Rewrite the equation as x = g(x).",
          "Use the latest state on the right-hand side.",
          "A contraction on an invariant complete set guarantees convergence."
        ],
        "assumptions": "A poor rearrangement can diverge even when the original equation has a root."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Partitioned coupling and simple nonlinear balance solvers.",
        "implementation": {
          "name": "SciPy optimize.fixed_point",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fixed_point.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.fixed_point",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fixed_point.html"
        }
      ],
      "recommendations": [
        {
          "name": "Hartree–Fock model",
          "url": "https://iicsm.org/physicalmodeling/#hartreefock-model",
          "role": "Self-consistency / coupling",
          "note": "For a contractive or suitably relaxed fixed-point formulation; monitor residuals and possible divergence.",
          "context": "Approximates a many-electron wavefunction by one self-consistent Slater determinant."
        },
        {
          "name": "Density functional theory (DFT)",
          "url": "https://iicsm.org/physicalmodeling/#density-functional-theory-dft",
          "role": "Self-consistency / coupling",
          "note": "For a contractive or suitably relaxed fixed-point formulation; monitor residuals and possible divergence.",
          "context": "Uses electron density to determine ground-state properties with an approximate exchange-correlation functional."
        },
        {
          "name": "Lifting-line model",
          "url": "https://iicsm.org/physicalmodeling/#lifting-line-model",
          "role": "Self-consistency / coupling",
          "note": "For a contractive or suitably relaxed fixed-point formulation; monitor residuals and possible divergence.",
          "context": "Approximates finite-wing lift using a spanwise circulation distribution."
        },
        {
          "name": "Blade-element momentum model",
          "url": "https://iicsm.org/physicalmodeling/#blade-element-momentum-model",
          "role": "Self-consistency / coupling",
          "note": "For a contractive or suitably relaxed fixed-point formulation; monitor residuals and possible divergence.",
          "context": "Combines blade-section loads with momentum balances."
        },
        {
          "name": "Ornstein-Zernike equation",
          "url": "https://iicsm.org/physicalmodeling/#ornstein-zernike-equation",
          "role": "Self-consistency / coupling",
          "note": "Iterate the coupled OZ/closure equations with damping; check residuals and grid convergence, especially at high density.",
          "context": "Relates total and direct pair correlations in a homogeneous liquid, linking microscopic structure to scattering."
        },
        {
          "name": "Percus-Yevick closure",
          "url": "https://iicsm.org/physicalmodeling/#percus-yevick-closure",
          "role": "Self-consistency / coupling",
          "note": "Iterate the coupled OZ/closure equations with damping; check residuals and grid convergence, especially at high density.",
          "context": "Closes the liquid integral equation using an approximate relation between pair correlations and interactions."
        },
        {
          "name": "Hypernetted-chain (HNC) closure",
          "url": "https://iicsm.org/physicalmodeling/#hypernetted-chain-hnc-closure",
          "role": "Self-consistency / coupling",
          "note": "Iterate the coupled OZ/closure equations with damping; check residuals and grid convergence, especially at high density.",
          "context": "Approximates liquid pair structure by neglecting bridge diagrams in the exact closure."
        }
      ],
      "relationships": [
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-raphson-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "secant-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "brent-root-finding",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "broyden-method",
      "name": "Broyden method",
      "description": "Updates an approximate Jacobian from observed changes.",
      "example": "Nonlinear systems when full Jacobians are costly.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Good-Broyden Jacobian form shown; scaling, safeguards, and initial approximation matter.",
      "google_search": "https://www.google.com/search?q=Broyden+method+numerical+method",
      "math": {
        "equation": "B_{k+1}=B_k+\\frac{(y_k-B_ks_k)s_k^{\\mathsf T}}{s_k^{\\mathsf T}s_k}; y_k=F(x_{k+1})-F(x_k)",
        "tex": "B_{k+1}=B_k+\\frac{(y_k-B_ks_k)s_k^{\\mathsf T}}{s_k^{\\mathsf T}s_k}; y_k=F(x_{k+1})-F(x_k)",
        "derivation": [
          "Take a step using the current Jacobian approximation.",
          "Measure the residual change.",
          "Apply a rank-one correction satisfying the new secant condition."
        ],
        "assumptions": "Good-Broyden Jacobian form shown; scaling, safeguards, and initial approximation matter."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Nonlinear systems when full Jacobians are costly.",
        "implementation": {
          "name": "SciPy optimize.broyden1",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.broyden1.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.broyden1",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.broyden1.html"
        }
      ],
      "recommendations": [
        {
          "name": "Hartree–Fock model",
          "url": "https://iicsm.org/physicalmodeling/#hartreefock-model",
          "role": "Nonlinear solve",
          "note": "For smooth nonlinear residuals when repeated full Jacobians are expensive; scale and safeguard the iteration.",
          "context": "Approximates a many-electron wavefunction by one self-consistent Slater determinant."
        },
        {
          "name": "Density functional theory (DFT)",
          "url": "https://iicsm.org/physicalmodeling/#density-functional-theory-dft",
          "role": "Nonlinear solve",
          "note": "For smooth nonlinear residuals when repeated full Jacobians are expensive; scale and safeguard the iteration.",
          "context": "Uses electron density to determine ground-state properties with an approximate exchange-correlation functional."
        },
        {
          "name": "Ornstein-Zernike equation",
          "url": "https://iicsm.org/physicalmodeling/#ornstein-zernike-equation",
          "role": "Nonlinear solve",
          "note": "Solve the discretized OZ/closure residual with quasi-Newton mixing when simple iteration is slow; enforce core conditions and inspect convergence.",
          "context": "Relates total and direct pair correlations in a homogeneous liquid, linking microscopic structure to scattering."
        },
        {
          "name": "Percus-Yevick closure",
          "url": "https://iicsm.org/physicalmodeling/#percus-yevick-closure",
          "role": "Nonlinear solve",
          "note": "Solve the discretized OZ/closure residual with quasi-Newton mixing when simple iteration is slow; enforce core conditions and inspect convergence.",
          "context": "Closes the liquid integral equation using an approximate relation between pair correlations and interactions."
        },
        {
          "name": "Hypernetted-chain (HNC) closure",
          "url": "https://iicsm.org/physicalmodeling/#hypernetted-chain-hnc-closure",
          "role": "Nonlinear solve",
          "note": "Solve the discretized OZ/closure residual with quasi-Newton mixing when simple iteration is slow; enforce core conditions and inspect convergence.",
          "context": "Approximates liquid pair structure by neglecting bridge diagrams in the exact closure."
        }
      ],
      "relationships": [
        {
          "target": "newton-raphson-method",
          "type": "Quasi-Newton alternative to",
          "note": "Rank-one secant updates reduce repeated Jacobian evaluation."
        },
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "secant-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "brent-root-finding",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "newton-krylov-method",
      "name": "Newton-Krylov method",
      "description": "Solves each Newton correction approximately with a Krylov method.",
      "example": "Large nonlinear PDE systems and implicit multiphysics.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Finite-difference perturbations balance truncation and roundoff; preconditioning remains critical.",
      "google_search": "https://www.google.com/search?q=Newton-Krylov+method+numerical+method",
      "math": {
        "equation": "J(x)v\\approx\\frac{F(x+\\varepsilon v)-F(x)}{\\varepsilon}; Js=-F(x)",
        "tex": "J(x)v\\approx\\frac{F(x+\\varepsilon v)-F(x)}{\\varepsilon}; Js=-F(x)",
        "derivation": [
          "Linearize the nonlinear residual.",
          "Supply Jacobian-vector products without necessarily forming a matrix.",
          "Use a preconditioned Krylov solve and globalize the Newton step."
        ],
        "assumptions": "Finite-difference perturbations balance truncation and roundoff; preconditioning remains critical."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Large nonlinear PDE systems and implicit multiphysics.",
        "implementation": {
          "name": "SciPy optimize.newton_krylov",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton_krylov.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.newton_krylov",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton_krylov.html"
        }
      ],
      "recommendations": [
        {
          "name": "Poisson–Nernst–Planck model",
          "url": "https://iicsm.org/physicalmodeling/#poissonnernstplanck-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Couples electrostatics to diffusion and migration of ions."
        },
        {
          "name": "Doyle–Fuller–Newman (DFN/P2D) model",
          "url": "https://iicsm.org/physicalmodeling/#doylefullernewman-dfn-p2d-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Combines porous-electrode transport and particle diffusion."
        },
        {
          "name": "Single-particle battery model (SPM)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-battery-model-spm",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Represents each electrode by a representative active-material particle."
        },
        {
          "name": "Single-particle model with electrolyte (SPMe)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-model-with-electrolyte-spme",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Adds electrolyte concentration effects to a single-particle approximation."
        },
        {
          "name": "Darcy porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#darcy-porous-flow-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Relates averaged fluid flux to hydraulic gradient."
        },
        {
          "name": "Brinkman porous-flow model",
          "url": "https://iicsm.org/physicalmodeling/#brinkman-porous-flow-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Adds a viscous shear term to a Darcy-like resistance model."
        },
        {
          "name": "Richards equation",
          "url": "https://iicsm.org/physicalmodeling/#richards-equation",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Describes variably saturated water movement in porous media."
        },
        {
          "name": "Biot poroelasticity",
          "url": "https://iicsm.org/physicalmodeling/#biot-poroelasticity",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Couples solid deformation and pore-fluid pressure."
        },
        {
          "name": "Terzaghi consolidation model",
          "url": "https://iicsm.org/physicalmodeling/#terzaghi-consolidation-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Describes time-dependent settlement from pore-pressure dissipation."
        },
        {
          "name": "Modified Cam-Clay model",
          "url": "https://iicsm.org/physicalmodeling/#modified-cam-clay-model",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Uses critical-state plasticity for idealized clay behavior."
        },
        {
          "name": "Fluid–structure interaction (FSI)",
          "url": "https://iicsm.org/physicalmodeling/#fluidstructure-interaction-fsi",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Couples fluid loads with structural motion or deformation."
        },
        {
          "name": "Thermomechanical coupling",
          "url": "https://iicsm.org/physicalmodeling/#thermomechanical-coupling",
          "role": "Large nonlinear solve",
          "note": "For large smooth residual systems; matrix-free products still need effective preconditioning and globalization.",
          "context": "Couples temperature evolution and mechanical response."
        }
      ],
      "relationships": [
        {
          "target": "gmres",
          "type": "Can use inner linear solver",
          "note": "Matrix-free Jacobian-vector products can drive a preconditioned GMRES iteration."
        },
        {
          "target": "newton-raphson-method",
          "type": "Krylov implementation of",
          "note": "A Krylov method approximately solves each linearized Newton correction."
        },
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "secant-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "brent-root-finding",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "pseudo-arclength-continuation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "pseudo-arclength-continuation",
      "name": "Pseudo-arclength continuation",
      "description": "Tracks solution branches through turning points by augmenting the nonlinear system.",
      "example": "Buckling, bifurcation, and nonlinear operating-envelope analysis.",
      "discipline": "Nonlinear equations",
      "scale": "Solve algebra",
      "kind": "Numerical technique",
      "limitations": "Step-size adaptation and branch switching need additional logic; the constraint is local.",
      "google_search": "https://www.google.com/search?q=Pseudo-arclength+continuation+numerical+method",
      "math": {
        "equation": "F(x,\\lambda)=0; t_x^{\\mathsf T}(x-x_0)+t_\\lambda(\\lambda-\\lambda_0)=\\Delta s",
        "tex": "F(x,\\lambda)=0; t_x^{\\mathsf T}(x-x_0)+t_\\lambda(\\lambda-\\lambda_0)=\\Delta s",
        "derivation": [
          "Compute a tangent to the known solution branch.",
          "Predict along that tangent.",
          "Correct using the original residual and an arclength constraint."
        ],
        "assumptions": "Step-size adaptation and branch switching need additional logic; the constraint is local."
      },
      "application": {
        "area": "Nonlinear equations",
        "product_examples": "Buckling, bifurcation, and nonlinear operating-envelope analysis.",
        "implementation": {
          "name": "AUTO-07p",
          "url": "https://github.com/auto-07p/auto-07p",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "AUTO-07p continuation and bifurcation software",
          "url": "https://github.com/auto-07p/auto-07p"
        }
      ],
      "recommendations": [
        {
          "name": "Duffing oscillator",
          "url": "https://iicsm.org/physicalmodeling/#duffing-oscillator",
          "role": "Branch following",
          "note": "For equilibrium branches or parameter sweeps near turning points; it is not a time integrator.",
          "context": "Adds nonlinear stiffness to an oscillator."
        }
      ],
      "relationships": [
        {
          "target": "bisection",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-raphson-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "secant-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "brent-root-finding",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "fixed-point-iteration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "broyden-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-krylov-method",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "forward-euler",
      "name": "Forward Euler",
      "description": "Advances an ODE using the current slope.",
      "example": "Simple dynamics prototypes and teaching simulations.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "First-order global accuracy; the explicit stability region is limited.",
      "google_search": "https://www.google.com/search?q=Forward+Euler+numerical+method",
      "math": {
        "equation": "y_{n+1}=y_n+h f(t_n,y_n)",
        "tex": "y_{n+1}=y_n+h f(t_n,y_n)",
        "derivation": [
          "Integrate the ODE over one time interval.",
          "Approximate the integral with its left-endpoint slope.",
          "Repeat with a step size that satisfies stability and accuracy needs."
        ],
        "assumptions": "First-order global accuracy; the explicit stability region is limited."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Simple dynamics prototypes and teaching simulations.",
        "implementation": {
          "name": "PETSc TSEULER",
          "url": "https://petsc.org/release/manualpages/TS/TSEULER/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: TSEULER",
          "url": "https://petsc.org/release/manualpages/TS/TSEULER/"
        }
      ],
      "recommendations": [
        {
          "name": "Transient heat equation",
          "url": "https://iicsm.org/physicalmodeling/#transient-heat-equation",
          "role": "Time integration",
          "note": "For a nonstiff ODE or semidiscrete equation when the explicit stability bound and error budget permit; usually a baseline rather than the most efficient choice.",
          "context": "Balances thermal storage, conduction and heat sources."
        }
      ],
      "relationships": [
        {
          "target": "backward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "backward-euler",
      "name": "Backward Euler",
      "description": "Uses the next-step slope and solves an implicit equation.",
      "example": "Stiff thermal and dissipative systems.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "First order and strongly damping; an implicit solve does not guarantee an accurate large step.",
      "google_search": "https://www.google.com/search?q=Backward+Euler+numerical+method",
      "math": {
        "equation": "y_{n+1}=y_n+h f(t_{n+1},y_{n+1})",
        "tex": "y_{n+1}=y_n+h f(t_{n+1},y_{n+1})",
        "derivation": [
          "Approximate the time integral with its right-endpoint slope.",
          "Rearrange as a nonlinear residual for the new state.",
          "Solve that residual each step."
        ],
        "assumptions": "First order and strongly damping; an implicit solve does not guarantee an accurate large step."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Stiff thermal and dissipative systems.",
        "implementation": {
          "name": "PETSc TSBEULER",
          "url": "https://petsc.org/release/manualpages/TS/TSBEULER/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: TSBEULER",
          "url": "https://petsc.org/release/manualpages/TS/TSBEULER/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Relates conductive heat flux to temperature gradient."
        },
        {
          "name": "Transient heat equation",
          "url": "https://iicsm.org/physicalmodeling/#transient-heat-equation",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Balances thermal storage, conduction and heat sources."
        },
        {
          "name": "Lumped-capacitance thermal model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-capacitance-thermal-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Represents a body with one spatially uniform temperature."
        },
        {
          "name": "Thermal resistance-capacitance network",
          "url": "https://iicsm.org/physicalmodeling/#thermal-resistance-capacitance-network",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Represents heat paths and storage with connected lumped elements."
        },
        {
          "name": "Newton cooling model",
          "url": "https://iicsm.org/physicalmodeling/#newton-cooling-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Uses a heat-transfer coefficient between a surface and a fluid."
        },
        {
          "name": "Stefan phase-change problem",
          "url": "https://iicsm.org/physicalmodeling/#stefan-phase-change-problem",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Couples heat transport to a moving melting or freezing boundary."
        },
        {
          "name": "Enthalpy–porosity model",
          "url": "https://iicsm.org/physicalmodeling/#enthalpyporosity-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Represents melting using enthalpy and a porous resistance in the mushy zone."
        },
        {
          "name": "Rainfall–runoff model",
          "url": "https://iicsm.org/physicalmodeling/#rainfallrunoff-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Converts precipitation and catchment storage into streamflow."
        },
        {
          "name": "Energy-balance climate model",
          "url": "https://iicsm.org/physicalmodeling/#energy-balance-climate-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Balances incoming and outgoing energy in a simplified climate system."
        },
        {
          "name": "Building thermal-zone model",
          "url": "https://iicsm.org/physicalmodeling/#building-thermal-zone-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Balances heat gains, losses and storage within building zones."
        },
        {
          "name": "Point reactor kinetics",
          "url": "https://iicsm.org/physicalmodeling/#point-reactor-kinetics",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Approximates time-dependent neutron population with delayed-neutron groups."
        },
        {
          "name": "Bateman decay-chain model",
          "url": "https://iicsm.org/physicalmodeling/#bateman-decay-chain-model",
          "role": "Time integration",
          "note": "For dissipative stiff evolution when first-order accuracy and damping are acceptable; solve each implicit step.",
          "context": "Evolves coupled radioactive parent and daughter populations."
        }
      ],
      "relationships": [
        {
          "target": "imex-integration",
          "type": "Can supply implicit component of",
          "note": "The representative IMEX Euler formula combines forward and backward Euler parts."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Is first-order member of",
          "note": "Backward Euler is the first-order BDF formula."
        },
        {
          "target": "newton-raphson-method",
          "type": "May require nonlinear solve by",
          "note": "An implicit step is a nonlinear equation unless the dynamics are linear."
        },
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "crank-nicolson",
      "name": "Crank-Nicolson",
      "description": "Averages endpoint slopes to obtain a second-order implicit step.",
      "example": "Transient diffusion and parabolic PDE discretizations.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "Second order for smooth solutions; A-stable for the test equation but not L-stable, so stiff oscillations can persist.",
      "google_search": "https://www.google.com/search?q=Crank-Nicolson+numerical+method",
      "math": {
        "equation": "y_{n+1}=y_n+\\frac h2[f(t_n,y_n)+f(t_{n+1},y_{n+1})]",
        "tex": "y_{n+1}=y_n+\\frac h2[f(t_n,y_n)+f(t_{n+1},y_{n+1})]",
        "derivation": [
          "Integrate over one time step.",
          "Use trapezoidal quadrature for the right-hand side.",
          "Solve the resulting implicit system."
        ],
        "assumptions": "Second order for smooth solutions; A-stable for the test equation but not L-stable, so stiff oscillations can persist."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Transient diffusion and parabolic PDE discretizations.",
        "implementation": {
          "name": "PETSc TSCN",
          "url": "https://petsc.org/release/manualpages/TS/TSCN/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: TSCN",
          "url": "https://petsc.org/release/manualpages/TS/TSCN/"
        }
      ],
      "recommendations": [
        {
          "name": "Time-dependent DFT (TDDFT)",
          "url": "https://iicsm.org/physicalmodeling/#time-dependent-dft-tddft",
          "role": "Time integration",
          "note": "For smooth evolution where a second-order implicit scheme fits; stiff transients may ring without adequate resolution.",
          "context": "Evolves electron density to approximate excited-state response."
        }
      ],
      "relationships": [
        {
          "target": "composite-trapezoidal-rule",
          "type": "Uses quadrature principle of",
          "note": "Trapezoidal integration of the time derivative produces the endpoint-average method."
        },
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "classical-runge-kutta-rk4",
      "name": "Classical Runge-Kutta RK4",
      "description": "Combines four explicit slope evaluations in a fourth-order step.",
      "example": "Nonstiff flight, vibration, and control simulations.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "Explicit and not suited to strongly stiff problems without very small steps; no embedded error estimate.",
      "google_search": "https://www.google.com/search?q=Classical+Runge-Kutta+RK4+numerical+method",
      "math": {
        "equation": "k_1=f(t_n,y_n); k_2=f(t_n+h/2,y_n+hk_1/2); k_3=f(t_n+h/2,y_n+hk_2/2); k_4=f(t_n+h,y_n+hk_3); y_{n+1}=y_n+\\frac h6(k_1+2k_2+2k_3+k_4)",
        "tex": "k_1=f(t_n,y_n); k_2=f(t_n+h/2,y_n+hk_1/2); k_3=f(t_n+h/2,y_n+hk_2/2); k_4=f(t_n+h,y_n+hk_3); y_{n+1}=y_n+\\frac h6(k_1+2k_2+2k_3+k_4)",
        "derivation": [
          "Evaluate beginning, midpoint, and endpoint slopes.",
          "Choose weights to match the Taylor expansion through fourth order.",
          "Combine the stages to update the state."
        ],
        "assumptions": "Explicit and not suited to strongly stiff problems without very small steps; no embedded error estimate."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Nonstiff flight, vibration, and control simulations.",
        "implementation": {
          "name": "PETSc TSRK",
          "url": "https://petsc.org/release/manualpages/TS/TSRK/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: TSRK",
          "url": "https://petsc.org/release/manualpages/TS/TSRK/"
        }
      ],
      "recommendations": [
        {
          "name": "Newton–Euler rigid-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtoneuler-rigid-body-model",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Balances forces and moments on translating and rotating bodies."
        },
        {
          "name": "Lagrangian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-mechanics",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Derives motion from kinetic and potential energy with constraints."
        },
        {
          "name": "Hamiltonian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#hamiltonian-mechanics",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Describes dynamics in generalized coordinates and momenta."
        },
        {
          "name": "Mass–spring–damper model",
          "url": "https://iicsm.org/physicalmodeling/#massspringdamper-model",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Represents inertia, stiffness and dissipation with lumped elements."
        },
        {
          "name": "Modal superposition model",
          "url": "https://iicsm.org/physicalmodeling/#modal-superposition-model",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Expands linear structural response into vibration modes."
        },
        {
          "name": "Duffing oscillator",
          "url": "https://iicsm.org/physicalmodeling/#duffing-oscillator",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Adds nonlinear stiffness to an oscillator."
        },
        {
          "name": "Multibody dynamics",
          "url": "https://iicsm.org/physicalmodeling/#multibody-dynamics",
          "role": "Time integration",
          "note": "For smooth nonstiff ODEs with a carefully selected fixed step; perform a time-step convergence study.",
          "context": "Couples rigid or flexible bodies through joints and force elements."
        }
      ],
      "relationships": [
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "embedded-runge-kutta-rk45",
      "name": "Embedded Runge-Kutta RK45",
      "description": "Uses two related formulas to estimate local error and adapt the step.",
      "example": "Adaptive nonstiff ODE simulation.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "Representative embedded-pair form; RK45 commonly uses a Dormand-Prince 5(4) pair. Local control is not a global error guarantee.",
      "google_search": "https://www.google.com/search?q=Embedded+Runge-Kutta+RK45+numerical+method",
      "math": {
        "equation": "y_{n+1}^{(p)}=y_n+h\\sum_i b_i k_i; e=h\\sum_i(b_i-\\widehat b_i)k_i",
        "tex": "y_{n+1}^{(p)}=y_n+h\\sum_i b_i k_i; e=h\\sum_i(b_i-\\widehat b_i)k_i",
        "derivation": [
          "Reuse a shared set of stage slopes in two formulas of different order.",
          "Compare their updates to estimate local error.",
          "Accept or reject and adjust the step using scaled tolerances."
        ],
        "assumptions": "Representative embedded-pair form; RK45 commonly uses a Dormand-Prince 5(4) pair. Local control is not a global error guarantee."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Adaptive nonstiff ODE simulation.",
        "implementation": {
          "name": "SciPy integrate.RK45",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.RK45.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.RK45",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.RK45.html"
        }
      ],
      "recommendations": [
        {
          "name": "Discrete dislocation dynamics",
          "url": "https://iicsm.org/physicalmodeling/#discrete-dislocation-dynamics",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Tracks line defects and their interactions."
        },
        {
          "name": "Continuous stirred-tank reactor (CSTR)",
          "url": "https://iicsm.org/physicalmodeling/#continuous-stirred-tank-reactor-cstr",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Assumes a well-mixed reactor with inlet and outlet flows."
        },
        {
          "name": "Plug-flow reactor (PFR)",
          "url": "https://iicsm.org/physicalmodeling/#plug-flow-reactor-pfr",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Approximates axial evolution without axial back-mixing."
        },
        {
          "name": "Batch reactor model",
          "url": "https://iicsm.org/physicalmodeling/#batch-reactor-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Evolves composition and energy in a closed reacting charge."
        },
        {
          "name": "Lumped-capacitance thermal model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-capacitance-thermal-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents a body with one spatially uniform temperature."
        },
        {
          "name": "Thermal resistance-capacitance network",
          "url": "https://iicsm.org/physicalmodeling/#thermal-resistance-capacitance-network",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents heat paths and storage with connected lumped elements."
        },
        {
          "name": "Newton cooling model",
          "url": "https://iicsm.org/physicalmodeling/#newton-cooling-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Uses a heat-transfer coefficient between a surface and a fluid."
        },
        {
          "name": "Maxwell viscoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-viscoelastic-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Combines an elastic spring and viscous dashpot in series."
        },
        {
          "name": "Kelvin–Voigt model",
          "url": "https://iicsm.org/physicalmodeling/#kelvinvoigt-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Combines an elastic spring and viscous dashpot in parallel."
        },
        {
          "name": "Standard linear solid",
          "url": "https://iicsm.org/physicalmodeling/#standard-linear-solid",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Combines elastic and viscoelastic branches."
        },
        {
          "name": "Newton–Euler rigid-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtoneuler-rigid-body-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Balances forces and moments on translating and rotating bodies."
        },
        {
          "name": "Lagrangian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-mechanics",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Derives motion from kinetic and potential energy with constraints."
        },
        {
          "name": "Hamiltonian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#hamiltonian-mechanics",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Describes dynamics in generalized coordinates and momenta."
        },
        {
          "name": "Mass–spring–damper model",
          "url": "https://iicsm.org/physicalmodeling/#massspringdamper-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents inertia, stiffness and dissipation with lumped elements."
        },
        {
          "name": "Modal superposition model",
          "url": "https://iicsm.org/physicalmodeling/#modal-superposition-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Expands linear structural response into vibration modes."
        },
        {
          "name": "Duffing oscillator",
          "url": "https://iicsm.org/physicalmodeling/#duffing-oscillator",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Adds nonlinear stiffness to an oscillator."
        },
        {
          "name": "Multibody dynamics",
          "url": "https://iicsm.org/physicalmodeling/#multibody-dynamics",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Couples rigid or flexible bodies through joints and force elements."
        },
        {
          "name": "Geometrical optics",
          "url": "https://iicsm.org/physicalmodeling/#geometrical-optics",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Approximates light propagation as rays."
        },
        {
          "name": "Equivalent-circuit battery model",
          "url": "https://iicsm.org/physicalmodeling/#equivalent-circuit-battery-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Uses fitted electrical elements to approximate terminal behavior."
        },
        {
          "name": "Rainfall–runoff model",
          "url": "https://iicsm.org/physicalmodeling/#rainfallrunoff-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Converts precipitation and catchment storage into streamflow."
        },
        {
          "name": "Energy-balance climate model",
          "url": "https://iicsm.org/physicalmodeling/#energy-balance-climate-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Balances incoming and outgoing energy in a simplified climate system."
        },
        {
          "name": "Six-degree-of-freedom flight model",
          "url": "https://iicsm.org/physicalmodeling/#six-degree-of-freedom-flight-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Evolves vehicle translation and rotation using aerodynamic and propulsion forces."
        },
        {
          "name": "Bicycle vehicle model",
          "url": "https://iicsm.org/physicalmodeling/#bicycle-vehicle-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Combines left and right wheels into a planar steering model."
        },
        {
          "name": "Quarter-car suspension model",
          "url": "https://iicsm.org/physicalmodeling/#quarter-car-suspension-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents one wheel assembly and a fraction of vehicle body mass."
        },
        {
          "name": "Swing-equation generator model",
          "url": "https://iicsm.org/physicalmodeling/#swing-equation-generator-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents rotor-angle dynamics from mechanical-electrical power imbalance."
        },
        {
          "name": "Building thermal-zone model",
          "url": "https://iicsm.org/physicalmodeling/#building-thermal-zone-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Balances heat gains, losses and storage within building zones."
        },
        {
          "name": "State-space model",
          "url": "https://iicsm.org/physicalmodeling/#state-space-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents system evolution with internal states, inputs and outputs."
        },
        {
          "name": "Transfer-function model",
          "url": "https://iicsm.org/physicalmodeling/#transfer-function-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Relates linear time-invariant input and output in the transform domain."
        },
        {
          "name": "Hybrid dynamical model",
          "url": "https://iicsm.org/physicalmodeling/#hybrid-dynamical-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Combines continuous dynamics with discrete state changes."
        },
        {
          "name": "Bond-graph model",
          "url": "https://iicsm.org/physicalmodeling/#bond-graph-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents energy exchange across mechanical, electrical and other domains."
        },
        {
          "name": "System-dynamics stock-flow model",
          "url": "https://iicsm.org/physicalmodeling/#system-dynamics-stock-flow-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents accumulated quantities and their rates of change."
        },
        {
          "name": "Hodgkin–Huxley membrane model",
          "url": "https://iicsm.org/physicalmodeling/#hodgkinhuxley-membrane-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Uses voltage-dependent ion-channel conductances."
        },
        {
          "name": "FitzHugh–Nagumo model",
          "url": "https://iicsm.org/physicalmodeling/#fitzhughnagumo-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Simplifies excitation and recovery into two dynamical variables."
        },
        {
          "name": "Hill muscle model",
          "url": "https://iicsm.org/physicalmodeling/#hill-muscle-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents muscle mechanics with active and passive elements."
        },
        {
          "name": "Windkessel circulation model",
          "url": "https://iicsm.org/physicalmodeling/#windkessel-circulation-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents vascular resistance and compliance with lumped elements."
        },
        {
          "name": "Monod growth model",
          "url": "https://iicsm.org/physicalmodeling/#monod-growth-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Relates microbial growth to a limiting substrate."
        },
        {
          "name": "Physiologically based compartment model",
          "url": "https://iicsm.org/physicalmodeling/#physiologically-based-compartment-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Represents exchange between anatomically motivated compartments."
        },
        {
          "name": "Newtonian gravitational N-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtonian-gravitational-n-body-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Evolves masses under mutual inverse-square attraction."
        },
        {
          "name": "Stellar structure model",
          "url": "https://iicsm.org/physicalmodeling/#stellar-structure-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Couples hydrostatic balance, energy transport and energy generation."
        },
        {
          "name": "FLRW cosmological model",
          "url": "https://iicsm.org/physicalmodeling/#flrw-cosmological-model",
          "role": "Adaptive time integration",
          "note": "For nonstiff ODEs; detect events and check whether constraints or fast scales require another solver.",
          "context": "Assumes a homogeneous and isotropic expanding spacetime."
        }
      ],
      "relationships": [
        {
          "target": "finite-volume-method",
          "type": "Can advance",
          "note": "A method-of-lines discretization can be advanced by a suitable ODE integrator; stability must be checked."
        },
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "backward-differentiation-formulas",
      "name": "Backward differentiation formulas",
      "description": "Use several past states to approximate the new-time derivative.",
      "example": "Chemical kinetics, batteries, and other stiff systems.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "Constant-step BDF2 shown; higher-order formulas have different stability limits and require startup/history handling.",
      "google_search": "https://www.google.com/search?q=Backward+differentiation+formulas+numerical+method",
      "math": {
        "equation": "\\frac{3y_{n+1}-4y_n+y_{n-1}}{2h}=f(t_{n+1},y_{n+1})",
        "tex": "\\frac{3y_{n+1}-4y_n+y_{n-1}}{2h}=f(t_{n+1},y_{n+1})",
        "derivation": [
          "Interpolate recent states with a polynomial.",
          "Differentiate that polynomial at the newest time.",
          "Solve the implicit residual for the new state."
        ],
        "assumptions": "Constant-step BDF2 shown; higher-order formulas have different stability limits and require startup/history handling."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Chemical kinetics, batteries, and other stiff systems.",
        "implementation": {
          "name": "SciPy integrate.BDF",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.BDF.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.BDF",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.BDF.html"
        }
      ],
      "recommendations": [
        {
          "name": "Mass-action reaction kinetics",
          "url": "https://iicsm.org/physicalmodeling/#mass-action-reaction-kinetics",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Relates reaction rates to species concentrations and reaction orders."
        },
        {
          "name": "Continuous stirred-tank reactor (CSTR)",
          "url": "https://iicsm.org/physicalmodeling/#continuous-stirred-tank-reactor-cstr",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Assumes a well-mixed reactor with inlet and outlet flows."
        },
        {
          "name": "Plug-flow reactor (PFR)",
          "url": "https://iicsm.org/physicalmodeling/#plug-flow-reactor-pfr",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Approximates axial evolution without axial back-mixing."
        },
        {
          "name": "Batch reactor model",
          "url": "https://iicsm.org/physicalmodeling/#batch-reactor-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Evolves composition and energy in a closed reacting charge."
        },
        {
          "name": "Maxwell viscoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-viscoelastic-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Combines an elastic spring and viscous dashpot in series."
        },
        {
          "name": "Kelvin–Voigt model",
          "url": "https://iicsm.org/physicalmodeling/#kelvinvoigt-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Combines an elastic spring and viscous dashpot in parallel."
        },
        {
          "name": "Standard linear solid",
          "url": "https://iicsm.org/physicalmodeling/#standard-linear-solid",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Combines elastic and viscoelastic branches."
        },
        {
          "name": "Lumped RLC circuit model",
          "url": "https://iicsm.org/physicalmodeling/#lumped-rlc-circuit-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Uses resistors, capacitors and inductors connected by Kirchhoff laws."
        },
        {
          "name": "Transmission-line electrical model",
          "url": "https://iicsm.org/physicalmodeling/#transmission-line-electrical-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Represents distributed inductance, capacitance and losses."
        },
        {
          "name": "Drift–diffusion semiconductor model",
          "url": "https://iicsm.org/physicalmodeling/#driftdiffusion-semiconductor-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Combines electrostatics with carrier drift, diffusion and continuity."
        },
        {
          "name": "Hydrodynamic carrier model",
          "url": "https://iicsm.org/physicalmodeling/#hydrodynamic-carrier-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Adds carrier-energy or momentum information to transport."
        },
        {
          "name": "Poisson–Nernst–Planck model",
          "url": "https://iicsm.org/physicalmodeling/#poissonnernstplanck-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Couples electrostatics to diffusion and migration of ions."
        },
        {
          "name": "Doyle–Fuller–Newman (DFN/P2D) model",
          "url": "https://iicsm.org/physicalmodeling/#doylefullernewman-dfn-p2d-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Combines porous-electrode transport and particle diffusion."
        },
        {
          "name": "Single-particle battery model (SPM)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-battery-model-spm",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Represents each electrode by a representative active-material particle."
        },
        {
          "name": "Single-particle model with electrolyte (SPMe)",
          "url": "https://iicsm.org/physicalmodeling/#single-particle-model-with-electrolyte-spme",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Adds electrolyte concentration effects to a single-particle approximation."
        },
        {
          "name": "Hodgkin–Huxley membrane model",
          "url": "https://iicsm.org/physicalmodeling/#hodgkinhuxley-membrane-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Uses voltage-dependent ion-channel conductances."
        },
        {
          "name": "FitzHugh–Nagumo model",
          "url": "https://iicsm.org/physicalmodeling/#fitzhughnagumo-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Simplifies excitation and recovery into two dynamical variables."
        },
        {
          "name": "Hill muscle model",
          "url": "https://iicsm.org/physicalmodeling/#hill-muscle-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Represents muscle mechanics with active and passive elements."
        },
        {
          "name": "Windkessel circulation model",
          "url": "https://iicsm.org/physicalmodeling/#windkessel-circulation-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Represents vascular resistance and compliance with lumped elements."
        },
        {
          "name": "Monod growth model",
          "url": "https://iicsm.org/physicalmodeling/#monod-growth-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Relates microbial growth to a limiting substrate."
        },
        {
          "name": "Physiologically based compartment model",
          "url": "https://iicsm.org/physicalmodeling/#physiologically-based-compartment-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Represents exchange between anatomically motivated compartments."
        },
        {
          "name": "Point reactor kinetics",
          "url": "https://iicsm.org/physicalmodeling/#point-reactor-kinetics",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Approximates time-dependent neutron population with delayed-neutron groups."
        },
        {
          "name": "Bateman decay-chain model",
          "url": "https://iicsm.org/physicalmodeling/#bateman-decay-chain-model",
          "role": "Stiff time integration",
          "note": "For stiff ODEs; constrained or algebraic formulations require an appropriate DAE-capable implementation, not a plain ODE routine.",
          "context": "Evolves coupled radioactive parent and daughter populations."
        }
      ],
      "relationships": [
        {
          "target": "backward-euler",
          "type": "Multistep generalization of",
          "note": "Backward Euler is the first-order BDF formula."
        },
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "velocity-verlet",
      "name": "Velocity Verlet",
      "description": "Advances positions and velocities with a symmetric force update.",
      "example": "Molecular dynamics and long-time particle mechanics.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "Second order and symplectic for suitable separable Hamiltonian systems at fixed step; arbitrary damping changes these properties.",
      "google_search": "https://www.google.com/search?q=Velocity+Verlet+numerical+method",
      "math": {
        "equation": "q_{n+1}=q_n+h v_n+\\frac{h^2}{2}a(q_n); v_{n+1}=v_n+\\frac h2[a(q_n)+a(q_{n+1})]",
        "tex": "q_{n+1}=q_n+h v_n+\\frac{h^2}{2}a(q_n); v_{n+1}=v_n+\\frac h2[a(q_n)+a(q_{n+1})]",
        "derivation": [
          "Apply a half velocity kick.",
          "Drift the position with the intermediate velocity.",
          "Apply the remaining half kick using the new force."
        ],
        "assumptions": "Second order and symplectic for suitable separable Hamiltonian systems at fixed step; arbitrary damping changes these properties."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Molecular dynamics and long-time particle mechanics.",
        "implementation": {
          "name": "LAMMPS",
          "url": "https://docs.lammps.org/Developer_flow.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "LAMMPS Verlet time integration",
          "url": "https://docs.lammps.org/Developer_flow.html"
        }
      ],
      "recommendations": [
        {
          "name": "Classical molecular dynamics (MD)",
          "url": "https://iicsm.org/physicalmodeling/#classical-molecular-dynamics-md",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Integrates atomic motion under specified interaction forces."
        },
        {
          "name": "Ab initio molecular dynamics",
          "url": "https://iicsm.org/physicalmodeling/#ab-initio-molecular-dynamics",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Computes interatomic forces from electronic-structure calculations during motion."
        },
        {
          "name": "Lennard–Jones potential",
          "url": "https://iicsm.org/physicalmodeling/#lennardjones-potential",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Combines short-range repulsion with an inverse-sixth-power attraction."
        },
        {
          "name": "Morse potential",
          "url": "https://iicsm.org/physicalmodeling/#morse-potential",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Represents an anharmonic bond with a finite dissociation energy."
        },
        {
          "name": "Embedded-atom method (EAM)",
          "url": "https://iicsm.org/physicalmodeling/#embedded-atom-method-eam",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Combines pair interactions with an embedding energy dependent on local electron density."
        },
        {
          "name": "Modified embedded-atom method (MEAM)",
          "url": "https://iicsm.org/physicalmodeling/#modified-embedded-atom-method-meam",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Extends embedding models with angular information."
        },
        {
          "name": "Tersoff bond-order potential",
          "url": "https://iicsm.org/physicalmodeling/#tersoff-bond-order-potential",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Makes bond strength depend on the local bonding environment."
        },
        {
          "name": "Stillinger–Weber potential",
          "url": "https://iicsm.org/physicalmodeling/#stillingerweber-potential",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses two-body and three-body terms to favor local tetrahedral structure."
        },
        {
          "name": "ReaxFF reactive force field",
          "url": "https://iicsm.org/physicalmodeling/#reaxff-reactive-force-field",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses variable bond orders and charge equilibration to represent chemical reactions."
        },
        {
          "name": "AMBER force-field family",
          "url": "https://iicsm.org/physicalmodeling/#amber-force-field-family",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses parameterized bonded and nonbonded interactions for biomolecules."
        },
        {
          "name": "CHARMM force-field family",
          "url": "https://iicsm.org/physicalmodeling/#charmm-force-field-family",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Models biomolecular interactions with chemistry-specific parameter sets."
        },
        {
          "name": "OPLS force-field family",
          "url": "https://iicsm.org/physicalmodeling/#opls-force-field-family",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses parameterized molecular interactions developed for condensed phases."
        },
        {
          "name": "SPC/E water model",
          "url": "https://iicsm.org/physicalmodeling/#spc-e-water-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Approximates water using a rigid three-site classical model."
        },
        {
          "name": "TIP4P water-model family",
          "url": "https://iicsm.org/physicalmodeling/#tip4p-water-model-family",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses a four-site geometry with an off-oxygen charge site."
        },
        {
          "name": "Drude polarizable model",
          "url": "https://iicsm.org/physicalmodeling/#drude-polarizable-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses auxiliary charged particles to represent induced polarization."
        },
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        },
        {
          "name": "Coarse-grained molecular model",
          "url": "https://iicsm.org/physicalmodeling/#coarse-grained-molecular-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Groups atoms into effective interaction sites."
        },
        {
          "name": "Martini coarse-grained model",
          "url": "https://iicsm.org/physicalmodeling/#martini-coarse-grained-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Uses mapped molecular beads and parameterized interactions."
        },
        {
          "name": "Newton–Euler rigid-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtoneuler-rigid-body-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Balances forces and moments on translating and rotating bodies."
        },
        {
          "name": "Lagrangian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-mechanics",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Derives motion from kinetic and potential energy with constraints."
        },
        {
          "name": "Hamiltonian mechanics",
          "url": "https://iicsm.org/physicalmodeling/#hamiltonian-mechanics",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Describes dynamics in generalized coordinates and momenta."
        },
        {
          "name": "Mass–spring–damper model",
          "url": "https://iicsm.org/physicalmodeling/#massspringdamper-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Represents inertia, stiffness and dissipation with lumped elements."
        },
        {
          "name": "Modal superposition model",
          "url": "https://iicsm.org/physicalmodeling/#modal-superposition-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Expands linear structural response into vibration modes."
        },
        {
          "name": "Duffing oscillator",
          "url": "https://iicsm.org/physicalmodeling/#duffing-oscillator",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Adds nonlinear stiffness to an oscillator."
        },
        {
          "name": "Multibody dynamics",
          "url": "https://iicsm.org/physicalmodeling/#multibody-dynamics",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Couples rigid or flexible bodies through joints and force elements."
        },
        {
          "name": "Newtonian gravitational N-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtonian-gravitational-n-body-model",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Evolves masses under mutual inverse-square attraction."
        },
        {
          "name": "QM/MM coupling",
          "url": "https://iicsm.org/physicalmodeling/#qm-mm-coupling",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Combines quantum mechanics in a selected region with molecular mechanics around it."
        },
        {
          "name": "Atomistic–continuum coupling",
          "url": "https://iicsm.org/physicalmodeling/#atomisticcontinuum-coupling",
          "role": "Mechanical time integration",
          "note": "For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Connects particle-level and continuum descriptions."
        },
        {
          "name": "Green-Kubo viscosity relation",
          "url": "https://iicsm.org/physicalmodeling/#green-kubo-viscosity-relation",
          "role": "Mechanical time integration",
          "note": "Generate equilibrium MD trajectories and shear-pressure samples with a compatible ensemble and force field; this time integrator alone does not estimate viscosity.",
          "context": "Obtains equilibrium shear viscosity from the time integral of microscopic shear-stress fluctuations."
        },
        {
          "name": "Harmonic lattice dynamics",
          "url": "https://iicsm.org/physicalmodeling/#harmonic-lattice-dynamics",
          "role": "Mechanical time integration",
          "note": "Fit force constants with SVD, cross-check real-time harmonic motion with Verlet, and test displacement/time-step refinement. Obtain phonon frequencies with a Hermitian dynamical-matrix eigensolver. For compatible position-dependent conservative forces; constraints, thermostats, and stochastic forces require specialized extensions.",
          "context": "Computes phonon modes from a quadratic expansion of crystal potential energy."
        }
      ],
      "relationships": [
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "imex-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "imex-integration",
      "name": "IMEX integration",
      "description": "Treats stiff terms implicitly and nonstiff terms explicitly.",
      "example": "Reaction-transport and advection-diffusion systems.",
      "discipline": "Time integration",
      "scale": "Advance in time",
      "kind": "Numerical technique",
      "limitations": "First-order IMEX Euler shown; splitting and stability constraints remain problem dependent.",
      "google_search": "https://www.google.com/search?q=IMEX+integration+numerical+method",
      "math": {
        "equation": "y_{n+1}=y_n+h f_E(y_n)+h f_I(y_{n+1})",
        "tex": "y_{n+1}=y_n+h f_E(y_n)+h f_I(y_{n+1})",
        "derivation": [
          "Split the dynamics by stiffness or computational structure.",
          "Use an explicit update for one part and an implicit update for the other.",
          "Combine with compatible order and stability conditions."
        ],
        "assumptions": "First-order IMEX Euler shown; splitting and stability constraints remain problem dependent."
      },
      "application": {
        "area": "Time integration",
        "product_examples": "Reaction-transport and advection-diffusion systems.",
        "implementation": {
          "name": "PETSc TSARKIMEX",
          "url": "https://petsc.org/release/manualpages/TS/TSARKIMEX/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PETSc: TSARKIMEX",
          "url": "https://petsc.org/release/manualpages/TS/TSARKIMEX/"
        }
      ],
      "recommendations": [
        {
          "name": "Cahn–Hilliard model",
          "url": "https://iicsm.org/physicalmodeling/#cahnhilliard-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Evolves a conserved composition field through chemical-potential gradients."
        },
        {
          "name": "Allen–Cahn model",
          "url": "https://iicsm.org/physicalmodeling/#allencahn-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Evolves a nonconserved order parameter toward lower free energy."
        },
        {
          "name": "Phase-field crystal model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-crystal-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Uses a periodic density-like field to represent crystalline ordering."
        },
        {
          "name": "Population balance model",
          "url": "https://iicsm.org/physicalmodeling/#population-balance-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Tracks the distribution of particle sizes or other internal properties."
        },
        {
          "name": "Fickian diffusion",
          "url": "https://iicsm.org/physicalmodeling/#fickian-diffusion",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Relates diffusive flux to concentration gradients."
        },
        {
          "name": "Maxwell–Stefan diffusion",
          "url": "https://iicsm.org/physicalmodeling/#maxwellstefan-diffusion",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Represents multicomponent diffusion through interspecies friction."
        },
        {
          "name": "Advection–diffusion–reaction model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondiffusionreaction-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Combines bulk transport, diffusion and reaction sources."
        },
        {
          "name": "Reynolds-averaged Navier–Stokes (RANS)",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-averaged-navierstokes-rans",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Models mean flow with closure for unresolved turbulent stresses."
        },
        {
          "name": "Spalart–Allmaras model",
          "url": "https://iicsm.org/physicalmodeling/#spalartallmaras-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Uses a transported turbulence variable to obtain eddy viscosity."
        },
        {
          "name": "k–epsilon model",
          "url": "https://iicsm.org/physicalmodeling/#kepsilon-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Uses turbulent kinetic energy and dissipation rate to close mean flow."
        },
        {
          "name": "k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#komega-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Uses turbulent kinetic energy and specific dissipation rate."
        },
        {
          "name": "SST k–omega model",
          "url": "https://iicsm.org/physicalmodeling/#sst-komega-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Blends near-wall and outer-flow behavior with a shear-stress limiter."
        },
        {
          "name": "Reynolds-stress transport model",
          "url": "https://iicsm.org/physicalmodeling/#reynolds-stress-transport-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Transports individual turbulent stress components."
        },
        {
          "name": "Large-eddy simulation (LES)",
          "url": "https://iicsm.org/physicalmodeling/#large-eddy-simulation-les",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Resolves larger turbulent motions and models subgrid effects."
        },
        {
          "name": "Smagorinsky subgrid model",
          "url": "https://iicsm.org/physicalmodeling/#smagorinsky-subgrid-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Relates subgrid eddy viscosity to resolved strain and filter scale."
        },
        {
          "name": "Detached-eddy simulation (DES)",
          "url": "https://iicsm.org/physicalmodeling/#detached-eddy-simulation-des",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Combines RANS near walls with LES-like treatment away from them."
        },
        {
          "name": "Volume-of-fluid (VOF) representation",
          "url": "https://iicsm.org/physicalmodeling/#volume-of-fluid-vof-representation",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Tracks phase volume fractions to represent an interface."
        },
        {
          "name": "Euler–Euler two-fluid model",
          "url": "https://iicsm.org/physicalmodeling/#eulereuler-two-fluid-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Treats phases as interpenetrating continua with exchange terms."
        },
        {
          "name": "Lagrangian particle tracking",
          "url": "https://iicsm.org/physicalmodeling/#lagrangian-particle-tracking",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Tracks discrete particles through a carrier flow."
        },
        {
          "name": "Saint-Venant shallow-water model",
          "url": "https://iicsm.org/physicalmodeling/#saint-venant-shallow-water-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Depth-averages mass and momentum in free-surface flow."
        },
        {
          "name": "Kinematic-wave routing",
          "url": "https://iicsm.org/physicalmodeling/#kinematic-wave-routing",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Simplifies flow routing by approximating dominant slope and friction balance."
        },
        {
          "name": "Groundwater flow model",
          "url": "https://iicsm.org/physicalmodeling/#groundwater-flow-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Combines water conservation with porous-flow relations."
        },
        {
          "name": "Advection–dispersion groundwater model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondispersion-groundwater-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Represents contaminant transport and spreading through an aquifer."
        },
        {
          "name": "Numerical weather prediction",
          "url": "https://iicsm.org/physicalmodeling/#numerical-weather-prediction",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Evolves atmospheric dynamics and thermodynamics from an analyzed initial state."
        },
        {
          "name": "General circulation model (GCM)",
          "url": "https://iicsm.org/physicalmodeling/#general-circulation-model-gcm",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Represents large-scale atmospheric or oceanic circulation."
        },
        {
          "name": "Earth system model (ESM)",
          "url": "https://iicsm.org/physicalmodeling/#earth-system-model-esm",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples atmosphere, ocean, land, ice and biogeochemical processes."
        },
        {
          "name": "Ocean circulation model",
          "url": "https://iicsm.org/physicalmodeling/#ocean-circulation-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Evolves ocean momentum, temperature and salinity."
        },
        {
          "name": "Sea-ice thermodynamic-dynamic model",
          "url": "https://iicsm.org/physicalmodeling/#sea-ice-thermodynamic-dynamic-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples freezing, melting and ice motion."
        },
        {
          "name": "Elastic seismic-wave model",
          "url": "https://iicsm.org/physicalmodeling/#elastic-seismic-wave-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Propagates elastic disturbances through Earth materials."
        },
        {
          "name": "Pennes bioheat model",
          "url": "https://iicsm.org/physicalmodeling/#pennes-bioheat-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Adds perfusion and metabolic heat to tissue heat transfer."
        },
        {
          "name": "Reaction–diffusion morphogenesis model",
          "url": "https://iicsm.org/physicalmodeling/#reactiondiffusion-morphogenesis-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples reacting substances with diffusion."
        },
        {
          "name": "Boltzmann kinetic equation",
          "url": "https://iicsm.org/physicalmodeling/#boltzmann-kinetic-equation",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Evolves a particle distribution under transport and collisions."
        },
        {
          "name": "Vlasov–Poisson model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovpoisson-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples collisionless distribution dynamics to electrostatic fields."
        },
        {
          "name": "Vlasov–Maxwell model",
          "url": "https://iicsm.org/physicalmodeling/#vlasovmaxwell-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples collisionless kinetic distributions to electromagnetic fields."
        },
        {
          "name": "Magnetohydrodynamics (MHD)",
          "url": "https://iicsm.org/physicalmodeling/#magnetohydrodynamics-mhd",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Treats a conducting fluid coupled to a magnetic field."
        },
        {
          "name": "Neutron diffusion approximation",
          "url": "https://iicsm.org/physicalmodeling/#neutron-diffusion-approximation",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Simplifies neutron transport to a diffusion description."
        },
        {
          "name": "General relativity model",
          "url": "https://iicsm.org/physicalmodeling/#general-relativity-model",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Relates spacetime curvature to matter and energy."
        },
        {
          "name": "Fluid–structure interaction (FSI)",
          "url": "https://iicsm.org/physicalmodeling/#fluidstructure-interaction-fsi",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples fluid loads with structural motion or deformation."
        },
        {
          "name": "Thermomechanical coupling",
          "url": "https://iicsm.org/physicalmodeling/#thermomechanical-coupling",
          "role": "Split time integration",
          "note": "When a meaningful stiff/nonstiff split exists; check the stability and coupling error of both parts.",
          "context": "Couples temperature evolution and mechanical response."
        }
      ],
      "relationships": [
        {
          "target": "backward-euler",
          "type": "Uses implicit step in first-order form",
          "note": "The representative IMEX Euler formula combines forward and backward Euler parts."
        },
        {
          "target": "forward-euler",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "crank-nicolson",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "classical-runge-kutta-rk4",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "embedded-runge-kutta-rk45",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "backward-differentiation-formulas",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "velocity-verlet",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gradient-descent",
      "name": "Gradient descent",
      "description": "Moves downhill along the negative objective gradient.",
      "example": "Parameter tuning and inverse-model fitting.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Convergence depends on smoothness and step size; nonconvex objectives may have local minima.",
      "google_search": "https://www.google.com/search?q=Gradient+descent+numerical+method",
      "math": {
        "equation": "x_{k+1}=x_k-\\alpha_k\\nabla f(x_k)",
        "tex": "x_{k+1}=x_k-\\alpha_k\\nabla f(x_k)",
        "derivation": [
          "Use a first-order local objective approximation.",
          "Choose a descent direction opposite to the gradient.",
          "Select a step using a line search or a justified fixed rule."
        ],
        "assumptions": "Convergence depends on smoothness and step size; nonconvex objectives may have local minima."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Parameter tuning and inverse-model fitting.",
        "implementation": {
          "name": "SciPy optimize.line_search",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.line_search.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.line_search",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.line_search.html"
        }
      ],
      "recommendations": [
        {
          "name": "Physics-informed neural network (PINN)",
          "url": "https://iicsm.org/physicalmodeling/#physics-informed-neural-network-pinn",
          "role": "Parameter fitting",
          "note": "For a differentiable calibration objective with a justified step rule; slow convergence is possible under poor scaling.",
          "context": "Trains a neural approximation using data and governing-equation residuals."
        },
        {
          "name": "Neural operator",
          "url": "https://iicsm.org/physicalmodeling/#neural-operator",
          "role": "Parameter fitting",
          "note": "For a differentiable calibration objective with a justified step rule; slow convergence is possible under poor scaling.",
          "context": "Learns a map between function-valued inputs and outputs."
        }
      ],
      "relationships": [
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "newton-optimization",
      "name": "Newton optimization",
      "description": "Uses curvature to compute a local stationary-point correction.",
      "example": "Smooth engineering design optimization.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "An indefinite Hessian may not produce descent; regularization or trust-region safeguards may be needed.",
      "google_search": "https://www.google.com/search?q=Newton+optimization+numerical+method",
      "math": {
        "equation": "\\nabla^2 f(x_k)p_k=-\\nabla f(x_k); x_{k+1}=x_k+\\alpha_kp_k",
        "tex": "\\nabla^2 f(x_k)p_k=-\\nabla f(x_k); x_{k+1}=x_k+\\alpha_kp_k",
        "derivation": [
          "Build a second-order Taylor model of the objective.",
          "Set its gradient to zero.",
          "Globalize the step with line search or a trust region."
        ],
        "assumptions": "An indefinite Hessian may not produce descent; regularization or trust-region safeguards may be needed."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Smooth engineering design optimization.",
        "implementation": {
          "name": "SciPy Newton-CG",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy minimization: Newton-CG",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html"
        }
      ],
      "recommendations": [
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Design / calibration",
          "note": "For a smooth objective with usable curvature; distinguish optimization from solving the physical state equations.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        }
      ],
      "relationships": [
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Can use gradients from",
          "note": "An adjoint supplies objective sensitivities; Hessian information requires additional work."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Has quasi-Newton alternative",
          "note": "Gradient differences replace direct Hessian evaluation."
        },
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "bfgs-quasi-newton",
      "name": "BFGS quasi-Newton",
      "description": "Updates an inverse-Hessian approximation using gradient differences.",
      "example": "Smooth unconstrained calibration and shape optimization.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Positive definiteness needs positive curvature y dot s; noisy gradients can be problematic.",
      "google_search": "https://www.google.com/search?q=BFGS+quasi-Newton+numerical+method",
      "math": {
        "equation": "H_{k+1}=(I-\\rho s y^{\\mathsf T})H_k(I-\\rho y s^{\\mathsf T})+\\rho ss^{\\mathsf T}; \\rho=\\frac1{y^{\\mathsf T}s}",
        "tex": "H_{k+1}=(I-\\rho s y^{\\mathsf T})H_k(I-\\rho y s^{\\mathsf T})+\\rho ss^{\\mathsf T}; \\rho=\\frac1{y^{\\mathsf T}s}",
        "derivation": [
          "Take a descent step and measure the gradient change.",
          "Enforce a secant relation while preserving symmetry.",
          "Use the BFGS update and a curvature-respecting line search."
        ],
        "assumptions": "Positive definiteness needs positive curvature y dot s; noisy gradients can be problematic."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Smooth unconstrained calibration and shape optimization.",
        "implementation": {
          "name": "SciPy BFGS",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy minimization: BFGS",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html"
        }
      ],
      "recommendations": [
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Design / calibration",
          "note": "For smooth moderate-size parameter fitting without explicit Hessians; use accurate gradients and a line search.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        }
      ],
      "relationships": [
        {
          "target": "l-bfgs-b",
          "type": "Has limited-memory relative",
          "note": "Stores curvature pairs and incorporates bound-aware steps."
        },
        {
          "target": "newton-optimization",
          "type": "Curvature approximation to",
          "note": "Gradient differences replace direct Hessian evaluation."
        },
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "l-bfgs-b",
      "name": "L-BFGS-B",
      "description": "Uses limited curvature history with bound constraints.",
      "example": "Large parameter estimation with physical parameter bounds.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Schematic direction shown; the algorithm includes generalized Cauchy and subspace steps. Bounds do not make a nonconvex problem globally solvable.",
      "google_search": "https://www.google.com/search?q=L-BFGS-B+numerical+method",
      "math": {
        "equation": "\\min_x f(x); l_i\\le x_i\\le u_i; p_k\\approx-H_k\\nabla f(x_k)",
        "tex": "\\min_x f(x); l_i\\le x_i\\le u_i; p_k\\approx-H_k\\nabla f(x_k)",
        "derivation": [
          "Store a limited set of displacement and gradient-difference pairs.",
          "Identify bound-active variables and a feasible search direction.",
          "Apply a line search within bounds."
        ],
        "assumptions": "Schematic direction shown; the algorithm includes generalized Cauchy and subspace steps. Bounds do not make a nonconvex problem globally solvable."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Large parameter estimation with physical parameter bounds.",
        "implementation": {
          "name": "SciPy L-BFGS-B",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy minimization: L-BFGS-B",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html"
        }
      ],
      "recommendations": [
        {
          "name": "Classical molecular dynamics (MD)",
          "url": "https://iicsm.org/physicalmodeling/#classical-molecular-dynamics-md",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Integrates atomic motion under specified interaction forces."
        },
        {
          "name": "Ab initio molecular dynamics",
          "url": "https://iicsm.org/physicalmodeling/#ab-initio-molecular-dynamics",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Computes interatomic forces from electronic-structure calculations during motion."
        },
        {
          "name": "Lennard–Jones potential",
          "url": "https://iicsm.org/physicalmodeling/#lennardjones-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Combines short-range repulsion with an inverse-sixth-power attraction."
        },
        {
          "name": "Morse potential",
          "url": "https://iicsm.org/physicalmodeling/#morse-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Represents an anharmonic bond with a finite dissociation energy."
        },
        {
          "name": "Embedded-atom method (EAM)",
          "url": "https://iicsm.org/physicalmodeling/#embedded-atom-method-eam",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Combines pair interactions with an embedding energy dependent on local electron density."
        },
        {
          "name": "Modified embedded-atom method (MEAM)",
          "url": "https://iicsm.org/physicalmodeling/#modified-embedded-atom-method-meam",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Extends embedding models with angular information."
        },
        {
          "name": "Tersoff bond-order potential",
          "url": "https://iicsm.org/physicalmodeling/#tersoff-bond-order-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Makes bond strength depend on the local bonding environment."
        },
        {
          "name": "Stillinger–Weber potential",
          "url": "https://iicsm.org/physicalmodeling/#stillingerweber-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses two-body and three-body terms to favor local tetrahedral structure."
        },
        {
          "name": "ReaxFF reactive force field",
          "url": "https://iicsm.org/physicalmodeling/#reaxff-reactive-force-field",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses variable bond orders and charge equilibration to represent chemical reactions."
        },
        {
          "name": "AMBER force-field family",
          "url": "https://iicsm.org/physicalmodeling/#amber-force-field-family",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses parameterized bonded and nonbonded interactions for biomolecules."
        },
        {
          "name": "CHARMM force-field family",
          "url": "https://iicsm.org/physicalmodeling/#charmm-force-field-family",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Models biomolecular interactions with chemistry-specific parameter sets."
        },
        {
          "name": "OPLS force-field family",
          "url": "https://iicsm.org/physicalmodeling/#opls-force-field-family",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses parameterized molecular interactions developed for condensed phases."
        },
        {
          "name": "SPC/E water model",
          "url": "https://iicsm.org/physicalmodeling/#spc-e-water-model",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Approximates water using a rigid three-site classical model."
        },
        {
          "name": "TIP4P water-model family",
          "url": "https://iicsm.org/physicalmodeling/#tip4p-water-model-family",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses a four-site geometry with an off-oxygen charge site."
        },
        {
          "name": "Drude polarizable model",
          "url": "https://iicsm.org/physicalmodeling/#drude-polarizable-model",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses auxiliary charged particles to represent induced polarization."
        },
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        },
        {
          "name": "Shockley diode model",
          "url": "https://iicsm.org/physicalmodeling/#shockley-diode-model",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Approximates diode current with an exponential voltage relation."
        },
        {
          "name": "Ebers–Moll transistor model",
          "url": "https://iicsm.org/physicalmodeling/#ebersmoll-transistor-model",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Models coupled junction currents in a bipolar transistor."
        },
        {
          "name": "MOSFET square-law model",
          "url": "https://iicsm.org/physicalmodeling/#mosfet-square-law-model",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Approximates long-channel transistor current from terminal voltages."
        },
        {
          "name": "BSIM compact-model family",
          "url": "https://iicsm.org/physicalmodeling/#bsim-compact-model-family",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Uses detailed parameterized MOS transistor relations."
        },
        {
          "name": "Nernst equilibrium potential",
          "url": "https://iicsm.org/physicalmodeling/#nernst-equilibrium-potential",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Relates electrochemical equilibrium potential to species activities."
        },
        {
          "name": "Butler–Volmer kinetics",
          "url": "https://iicsm.org/physicalmodeling/#butlervolmer-kinetics",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Relates interfacial current to electrochemical overpotential."
        },
        {
          "name": "Tafel approximation",
          "url": "https://iicsm.org/physicalmodeling/#tafel-approximation",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Approximates high-overpotential behavior of Butler–Volmer kinetics."
        },
        {
          "name": "Gaussian-process surrogate",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-process-surrogate",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Predicts responses with a probabilistic function model fitted to samples."
        },
        {
          "name": "Physics-informed neural network (PINN)",
          "url": "https://iicsm.org/physicalmodeling/#physics-informed-neural-network-pinn",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Trains a neural approximation using data and governing-equation residuals."
        },
        {
          "name": "Neural operator",
          "url": "https://iicsm.org/physicalmodeling/#neural-operator",
          "role": "Bounded calibration",
          "note": "For smooth parameter fitting with physical bounds; local minima and identifiability still require assessment.",
          "context": "Learns a map between function-valued inputs and outputs."
        }
      ],
      "relationships": [
        {
          "target": "bfgs-quasi-newton",
          "type": "Limited-memory bound-constrained relative of",
          "note": "Stores curvature pairs and incorporates bound-aware steps."
        },
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gauss-newton-least-squares",
      "name": "Gauss-Newton least squares",
      "description": "Linearizes residuals to solve a nonlinear least-squares problem.",
      "example": "Calibration of sensors and constitutive parameters.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Normal equations show the concept but square the condition number; QR/SVD can be preferable. Best near a suitable small-residual solution.",
      "google_search": "https://www.google.com/search?q=Gauss-Newton+least+squares+numerical+method",
      "math": {
        "equation": "\\min_x\\frac12\\lVert r(x)\\rVert^2; J^{\\mathsf T}Jp=-J^{\\mathsf T}r",
        "tex": "\\min_x\\frac12\\lVert r(x)\\rVert^2; J^{\\mathsf T}Jp=-J^{\\mathsf T}r",
        "derivation": [
          "Expand each residual to first order.",
          "Minimize the squared norm of the linearized residual.",
          "Update and repeat, preferably solving the least-squares system by stable factorization."
        ],
        "assumptions": "Normal equations show the concept but square the condition number; QR/SVD can be preferable. Best near a suitable small-residual solution."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Calibration of sensors and constitutive parameters.",
        "implementation": {
          "name": "SciPy optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html"
        }
      ],
      "recommendations": [
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Calibration",
          "note": "For differentiable residual-based parameter fitting, especially near a suitable small-residual solution.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        }
      ],
      "relationships": [
        {
          "target": "qr-factorization",
          "type": "Can use stable linear solve by",
          "note": "QR avoids explicitly forming the normal equations."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Can be stabilized by",
          "note": "Damping limits the correction when the local least-squares model is unreliable."
        },
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "levenberg-marquardt",
      "name": "Levenberg-Marquardt",
      "description": "Regularizes a Gauss-Newton step to balance stability and progress.",
      "example": "Nonlinear curve fitting and experimental model calibration.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Identity-scaled schematic form; practical implementations use scaling and trust-region logic.",
      "google_search": "https://www.google.com/search?q=Levenberg-Marquardt+numerical+method",
      "math": {
        "equation": "(J^{\\mathsf T}J+\\lambda I)p=-J^{\\mathsf T}r",
        "tex": "(J^{\\mathsf T}J+\\lambda I)p=-J^{\\mathsf T}r",
        "derivation": [
          "Construct the linearized residual objective.",
          "Add a penalty on the correction size.",
          "Adjust damping according to agreement between predicted and actual reduction."
        ],
        "assumptions": "Identity-scaled schematic form; practical implementations use scaling and trust-region logic."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Nonlinear curve fitting and experimental model calibration.",
        "implementation": {
          "name": "SciPy optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html"
        }
      ],
      "recommendations": [
        {
          "name": "NRTL activity model",
          "url": "https://iicsm.org/physicalmodeling/#nrtl-activity-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses local-composition parameters to describe nonideal liquid mixtures."
        },
        {
          "name": "UNIQUAC activity model",
          "url": "https://iicsm.org/physicalmodeling/#uniquac-activity-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Combines molecular size, shape and interaction contributions."
        },
        {
          "name": "Debye–Hückel model",
          "url": "https://iicsm.org/physicalmodeling/#debyehuckel-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Approximates ionic activity using screened electrostatic interactions."
        },
        {
          "name": "Arrhenius rate model",
          "url": "https://iicsm.org/physicalmodeling/#arrhenius-rate-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates a rate coefficient to temperature through an activation energy."
        },
        {
          "name": "Transition-state theory",
          "url": "https://iicsm.org/physicalmodeling/#transition-state-theory",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Estimates reaction rates from a free-energy barrier."
        },
        {
          "name": "Michaelis–Menten kinetics",
          "url": "https://iicsm.org/physicalmodeling/#michaelismenten-kinetics",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Approximates enzyme reaction rates with substrate saturation."
        },
        {
          "name": "Langmuir adsorption isotherm",
          "url": "https://iicsm.org/physicalmodeling/#langmuir-adsorption-isotherm",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Models adsorption on equivalent sites with finite occupancy."
        },
        {
          "name": "Langmuir–Hinshelwood kinetics",
          "url": "https://iicsm.org/physicalmodeling/#langmuirhinshelwood-kinetics",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Models surface reactions involving adsorbed reactants."
        },
        {
          "name": "Maxwell viscoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#maxwell-viscoelastic-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Combines an elastic spring and viscous dashpot in series."
        },
        {
          "name": "Kelvin–Voigt model",
          "url": "https://iicsm.org/physicalmodeling/#kelvinvoigt-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Combines an elastic spring and viscous dashpot in parallel."
        },
        {
          "name": "Standard linear solid",
          "url": "https://iicsm.org/physicalmodeling/#standard-linear-solid",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Combines elastic and viscoelastic branches."
        },
        {
          "name": "Norton creep law",
          "url": "https://iicsm.org/physicalmodeling/#norton-creep-law",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates creep rate to a power of stress."
        },
        {
          "name": "Linear elastic fracture mechanics (LEFM)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elastic-fracture-mechanics-lefm",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses crack-tip intensity parameters in an elastic body."
        },
        {
          "name": "Cohesive-zone model",
          "url": "https://iicsm.org/physicalmodeling/#cohesive-zone-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses traction-separation relations across a fracture process zone."
        },
        {
          "name": "Paris fatigue crack-growth law",
          "url": "https://iicsm.org/physicalmodeling/#paris-fatigue-crack-growth-law",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates cyclic crack-growth rate to stress-intensity-factor range."
        },
        {
          "name": "Miner cumulative damage rule",
          "url": "https://iicsm.org/physicalmodeling/#miner-cumulative-damage-rule",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Adds fractions of fatigue life consumed by load cycles."
        },
        {
          "name": "Archard wear model",
          "url": "https://iicsm.org/physicalmodeling/#archard-wear-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates wear volume to load, sliding distance and hardness."
        },
        {
          "name": "Magnetic-circuit model",
          "url": "https://iicsm.org/physicalmodeling/#magnetic-circuit-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses reluctance and magnetomotive force in lumped magnetic paths."
        },
        {
          "name": "Jiles–Atherton hysteresis model",
          "url": "https://iicsm.org/physicalmodeling/#jilesatherton-hysteresis-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents path-dependent magnetization with phenomenological parameters."
        },
        {
          "name": "Gaussian beam model",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-beam-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents a paraxial beam with a Gaussian transverse profile."
        },
        {
          "name": "Drude–Lorentz optical model",
          "url": "https://iicsm.org/physicalmodeling/#drudelorentz-optical-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents free-carrier and bound-charge contributions to permittivity."
        },
        {
          "name": "Equivalent-circuit battery model",
          "url": "https://iicsm.org/physicalmodeling/#equivalent-circuit-battery-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses fitted electrical elements to approximate terminal behavior."
        },
        {
          "name": "Forchheimer model",
          "url": "https://iicsm.org/physicalmodeling/#forchheimer-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Adds inertial resistance to porous flow."
        },
        {
          "name": "van Genuchten retention model",
          "url": "https://iicsm.org/physicalmodeling/#van-genuchten-retention-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates water saturation to pressure head with fitted parameters."
        },
        {
          "name": "Rainfall–runoff model",
          "url": "https://iicsm.org/physicalmodeling/#rainfallrunoff-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Converts precipitation and catchment storage into streamflow."
        },
        {
          "name": "Energy-balance climate model",
          "url": "https://iicsm.org/physicalmodeling/#energy-balance-climate-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Balances incoming and outgoing energy in a simplified climate system."
        },
        {
          "name": "Six-degree-of-freedom flight model",
          "url": "https://iicsm.org/physicalmodeling/#six-degree-of-freedom-flight-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Evolves vehicle translation and rotation using aerodynamic and propulsion forces."
        },
        {
          "name": "Bicycle vehicle model",
          "url": "https://iicsm.org/physicalmodeling/#bicycle-vehicle-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Combines left and right wheels into a planar steering model."
        },
        {
          "name": "Quarter-car suspension model",
          "url": "https://iicsm.org/physicalmodeling/#quarter-car-suspension-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents one wheel assembly and a fraction of vehicle body mass."
        },
        {
          "name": "Pacejka tire model",
          "url": "https://iicsm.org/physicalmodeling/#pacejka-tire-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses empirical nonlinear formulas for tire forces."
        },
        {
          "name": "Swing-equation generator model",
          "url": "https://iicsm.org/physicalmodeling/#swing-equation-generator-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents rotor-angle dynamics from mechanical-electrical power imbalance."
        },
        {
          "name": "Building thermal-zone model",
          "url": "https://iicsm.org/physicalmodeling/#building-thermal-zone-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Balances heat gains, losses and storage within building zones."
        },
        {
          "name": "Hodgkin–Huxley membrane model",
          "url": "https://iicsm.org/physicalmodeling/#hodgkinhuxley-membrane-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Uses voltage-dependent ion-channel conductances."
        },
        {
          "name": "FitzHugh–Nagumo model",
          "url": "https://iicsm.org/physicalmodeling/#fitzhughnagumo-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Simplifies excitation and recovery into two dynamical variables."
        },
        {
          "name": "Hill muscle model",
          "url": "https://iicsm.org/physicalmodeling/#hill-muscle-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents muscle mechanics with active and passive elements."
        },
        {
          "name": "Windkessel circulation model",
          "url": "https://iicsm.org/physicalmodeling/#windkessel-circulation-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents vascular resistance and compliance with lumped elements."
        },
        {
          "name": "Monod growth model",
          "url": "https://iicsm.org/physicalmodeling/#monod-growth-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Relates microbial growth to a limiting substrate."
        },
        {
          "name": "Physiologically based compartment model",
          "url": "https://iicsm.org/physicalmodeling/#physiologically-based-compartment-model",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Represents exchange between anatomically motivated compartments."
        },
        {
          "name": "Digital twin framework",
          "url": "https://iicsm.org/physicalmodeling/#digital-twin-framework",
          "role": "Calibration",
          "note": "For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Links an evolving model of a specific asset with observations."
        },
        {
          "name": "Stokes-Einstein diffusion relation",
          "url": "https://iicsm.org/physicalmodeling/#stokes-einstein-diffusion-relation",
          "role": "Calibration",
          "note": "Fit a positive hydrodynamic radius or viscosity to diffusion measurements; parameters may be unidentifiable if fitted together.",
          "context": "Connects Brownian translational diffusion to temperature, solvent viscosity, and hydrodynamic particle radius."
        },
        {
          "name": "Einstein crystal heat-capacity model",
          "url": "https://iicsm.org/physicalmodeling/#einstein-crystal-heat-capacity-model",
          "role": "Calibration",
          "note": "Use fitting for an Einstein temperature, interpolation for tabulated responses, or refinement to check derived quantities; the displayed formula itself is explicit. For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Treats crystal vibrations as independent quantum oscillators at a single frequency."
        },
        {
          "name": "Debye phonon model",
          "url": "https://iicsm.org/physicalmodeling/#debye-phonon-model",
          "role": "Calibration",
          "note": "Use quadrature for the full Debye integral and fitting for a Debye temperature; the cubic law is only a low-temperature asymptote. For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Approximates acoustic phonons by a continuum spectrum with a mode-count cutoff."
        },
        {
          "name": "Sommerfeld free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#sommerfeld-free-electron-model",
          "role": "Calibration",
          "note": "Integrate the free-electron density of states with Fermi occupations at finite temperature, or fit a low-temperature heat-capacity coefficient; preserve electron number. For nonlinear least-squares fitting with damping; standard LM does not handle arbitrary constraints.",
          "context": "Describes conduction electrons as a degenerate, noninteracting Fermi gas."
        }
      ],
      "relationships": [
        {
          "target": "gauss-newton-least-squares",
          "type": "Regularized relative of",
          "note": "Damping limits the correction when the local least-squares model is unreliable."
        },
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "sequential-quadratic-programming",
      "name": "Sequential quadratic programming",
      "description": "Solves a sequence of locally quadratic constrained subproblems.",
      "example": "Constrained geometry and operating-point optimization.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Equality form shown; inequality constraints require active-set or related treatment and constraint qualifications.",
      "google_search": "https://www.google.com/search?q=Sequential+quadratic+programming+numerical+method",
      "math": {
        "equation": "\\min_p\\frac12p^{\\mathsf T}B_kp+\\nabla f_k^{\\mathsf T}p; c_k+J_kp=0",
        "tex": "\\min_p\\frac12p^{\\mathsf T}B_kp+\\nabla f_k^{\\mathsf T}p; c_k+J_kp=0",
        "derivation": [
          "Approximate the Lagrangian curvature.",
          "Linearize constraints and solve a quadratic subproblem.",
          "Globalize and update primal and multiplier estimates."
        ],
        "assumptions": "Equality form shown; inequality constraints require active-set or related treatment and constraint qualifications."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Constrained geometry and operating-point optimization.",
        "implementation": {
          "name": "SciPy SLSQP",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy minimization: SLSQP",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html"
        }
      ],
      "recommendations": [
        {
          "name": "Gibbs-energy minimization",
          "url": "https://iicsm.org/physicalmodeling/#gibbs-energy-minimization",
          "role": "Constrained design",
          "note": "For smooth constrained parameter/design optimization with derivatives and constraint regularity.",
          "context": "Finds equilibrium by minimizing free energy under conservation constraints."
        },
        {
          "name": "CALPHAD model",
          "url": "https://iicsm.org/physicalmodeling/#calphad-model",
          "role": "Constrained design",
          "note": "For smooth constrained parameter/design optimization with derivatives and constraint regularity.",
          "context": "Combines assessed phase free energies to predict equilibria."
        },
        {
          "name": "Model predictive control",
          "url": "https://iicsm.org/physicalmodeling/#model-predictive-control",
          "role": "Constrained design",
          "note": "For smooth constrained parameter/design optimization with derivatives and constraint regularity.",
          "context": "Optimizes future actions using a predictive model and constraints."
        }
      ],
      "relationships": [
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "interior-point-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "interior-point-optimization",
      "name": "Interior-point optimization",
      "description": "Approaches inequality-constrained solutions through barrier subproblems.",
      "example": "Large constrained engineering design problems.",
      "discipline": "Optimization & inverse problems",
      "scale": "Optimize",
      "kind": "Numerical technique",
      "limitations": "Feasibility, scaling, and conditioning near active constraints need care; nonconvex problems lack a general global guarantee.",
      "google_search": "https://www.google.com/search?q=Interior-point+optimization+numerical+method",
      "math": {
        "equation": "\\min_x f(x)-\\mu\\sum_i\\ln s_i(x); s_i(x)>0",
        "tex": "\\min_x f(x)-\\mu\\sum_i\\ln s_i(x); s_i(x)>0",
        "derivation": [
          "Represent inequalities by positive slack functions.",
          "Penalize approach to the feasible boundary with a logarithmic barrier.",
          "Solve a sequence of primal-dual or barrier systems as the parameter decreases."
        ],
        "assumptions": "Feasibility, scaling, and conditioning near active constraints need care; nonconvex problems lack a general global guarantee."
      },
      "application": {
        "area": "Optimization & inverse problems",
        "product_examples": "Large constrained engineering design problems.",
        "implementation": {
          "name": "SciPy trust-constr",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy minimization: trust-constr",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html"
        }
      ],
      "recommendations": [
        {
          "name": "Gibbs-energy minimization",
          "url": "https://iicsm.org/physicalmodeling/#gibbs-energy-minimization",
          "role": "Constrained design",
          "note": "For appropriately formulated inequality-constrained design or control problems; scale constraints and verify feasibility.",
          "context": "Finds equilibrium by minimizing free energy under conservation constraints."
        },
        {
          "name": "CALPHAD model",
          "url": "https://iicsm.org/physicalmodeling/#calphad-model",
          "role": "Constrained design",
          "note": "For appropriately formulated inequality-constrained design or control problems; scale constraints and verify feasibility.",
          "context": "Combines assessed phase free energies to predict equilibria."
        },
        {
          "name": "Model predictive control",
          "url": "https://iicsm.org/physicalmodeling/#model-predictive-control",
          "role": "Constrained design",
          "note": "For appropriately formulated inequality-constrained design or control problems; scale constraints and verify feasibility.",
          "context": "Optimizes future actions using a predictive model and constraints."
        }
      ],
      "relationships": [
        {
          "target": "gradient-descent",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "newton-optimization",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "bfgs-quasi-newton",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "l-bfgs-b",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gauss-newton-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "levenberg-marquardt",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "sequential-quadratic-programming",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "lagrange-interpolation",
      "name": "Lagrange interpolation",
      "description": "Passes a polynomial through prescribed distinct data points.",
      "example": "Tabulated material-property interpolation.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "High-degree equispaced interpolation can oscillate badly; noisy data may need fitting instead.",
      "google_search": "https://www.google.com/search?q=Lagrange+interpolation+numerical+method",
      "math": {
        "equation": "p(x)=\\sum_i y_i\\ell_i(x); \\ell_i(x)=\\prod_{j\\ne i}\\frac{x-x_j}{x_i-x_j}",
        "tex": "p(x)=\\sum_i y_i\\ell_i(x); \\ell_i(x)=\\prod_{j\\ne i}\\frac{x-x_j}{x_i-x_j}",
        "derivation": [
          "Construct a basis that is one at its own node and zero at all others.",
          "Weight each basis function by its data value.",
          "Sum to reproduce the nodal data."
        ],
        "assumptions": "High-degree equispaced interpolation can oscillate badly; noisy data may need fitting instead."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Tabulated material-property interpolation.",
        "implementation": {
          "name": "SciPy interpolate.lagrange",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.lagrange.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: interpolate.lagrange",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.lagrange.html"
        }
      ],
      "recommendations": [
        {
          "name": "Arrhenius rate model",
          "url": "https://iicsm.org/physicalmodeling/#arrhenius-rate-model",
          "role": "Tabulated data",
          "note": "For small, well-chosen interpolation grids; avoid high-degree equispaced interpolation and extrapolation.",
          "context": "Relates a rate coefficient to temperature through an activation energy."
        }
      ],
      "relationships": [
        {
          "target": "barycentric-interpolation",
          "type": "Can be evaluated using",
          "note": "The same interpolation polynomial is evaluated with precomputed barycentric weights."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "barycentric-interpolation",
      "name": "Barycentric interpolation",
      "description": "Evaluates the interpolation polynomial using precomputed weights.",
      "example": "Repeated evaluations of polynomial surrogate tables.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "A stable evaluation form cannot eliminate poor node choice or intrinsic interpolation conditioning.",
      "google_search": "https://www.google.com/search?q=Barycentric+interpolation+numerical+method",
      "math": {
        "equation": "p(x)=\\frac{\\sum_i w_i y_i/(x-x_i)}{\\sum_i w_i/(x-x_i)}; w_i=\\frac1{\\prod_{j\\ne i}(x_i-x_j)}",
        "tex": "p(x)=\\frac{\\sum_i w_i y_i/(x-x_i)}{\\sum_i w_i/(x-x_i)}; w_i=\\frac1{\\prod_{j\\ne i}(x_i-x_j)}",
        "derivation": [
          "Factor common products from the Lagrange basis.",
          "Cancel the common factor between numerator and denominator.",
          "At a node, return the stored nodal value directly."
        ],
        "assumptions": "A stable evaluation form cannot eliminate poor node choice or intrinsic interpolation conditioning."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Repeated evaluations of polynomial surrogate tables.",
        "implementation": {
          "name": "SciPy interpolate.BarycentricInterpolator",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BarycentricInterpolator.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: interpolate.BarycentricInterpolator",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BarycentricInterpolator.html"
        }
      ],
      "recommendations": [
        {
          "name": "Forchheimer model",
          "url": "https://iicsm.org/physicalmodeling/#forchheimer-model",
          "role": "Tabulated data",
          "note": "For repeated evaluation of a polynomial interpolant with suitable nodes; this is not itself a physical solver.",
          "context": "Adds inertial resistance to porous flow."
        },
        {
          "name": "van Genuchten retention model",
          "url": "https://iicsm.org/physicalmodeling/#van-genuchten-retention-model",
          "role": "Tabulated data",
          "note": "For repeated evaluation of a polynomial interpolant with suitable nodes; this is not itself a physical solver.",
          "context": "Relates water saturation to pressure head with fitted parameters."
        }
      ],
      "relationships": [
        {
          "target": "lagrange-interpolation",
          "type": "Evaluation form of",
          "note": "The same interpolation polynomial is evaluated with precomputed barycentric weights."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "cubic-spline-interpolation",
      "name": "Cubic spline interpolation",
      "description": "Joins piecewise cubic polynomials with continuity constraints.",
      "example": "Smooth material curves and measured trajectory reconstruction.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Endpoint choices affect the result; ordinary cubic splines need not preserve positivity or monotonicity.",
      "google_search": "https://www.google.com/search?q=Cubic+spline+interpolation+numerical+method",
      "math": {
        "equation": "S_i(x)=a_i+b_i\\xi+c_i\\xi^2+d_i\\xi^3; S,S',S''\\text{ are continuous}",
        "tex": "S_i(x)=a_i+b_i\\xi+c_i\\xi^2+d_i\\xi^3; S,S',S''\\text{ are continuous}",
        "derivation": [
          "Fit a cubic on each interval.",
          "Match values and first two derivatives at interior knots.",
          "Add endpoint conditions to close the system."
        ],
        "assumptions": "Endpoint choices affect the result; ordinary cubic splines need not preserve positivity or monotonicity."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Smooth material curves and measured trajectory reconstruction.",
        "implementation": {
          "name": "SciPy interpolate.CubicSpline",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: interpolate.CubicSpline",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html"
        }
      ],
      "recommendations": [
        {
          "name": "Pacejka tire model",
          "url": "https://iicsm.org/physicalmodeling/#pacejka-tire-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Uses empirical nonlinear formulas for tire forces."
        },
        {
          "name": "Geometrically scaled physical model",
          "url": "https://iicsm.org/physicalmodeling/#geometrically-scaled-physical-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Reproduces a system's shape at another size."
        },
        {
          "name": "Wind-tunnel model",
          "url": "https://iicsm.org/physicalmodeling/#wind-tunnel-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Uses a controlled air stream around a physical specimen."
        },
        {
          "name": "Hydraulic flume model",
          "url": "https://iicsm.org/physicalmodeling/#hydraulic-flume-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Uses physical water flow with selected similarity conditions."
        },
        {
          "name": "Shake-table structural model",
          "url": "https://iicsm.org/physicalmodeling/#shake-table-structural-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Excites a physical structure with controlled base motion."
        },
        {
          "name": "Photoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#photoelastic-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Uses stress-induced optical birefringence to visualize stress patterns."
        },
        {
          "name": "Electrical analog model",
          "url": "https://iicsm.org/physicalmodeling/#electrical-analog-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Maps another physical system onto an electrical network."
        },
        {
          "name": "Hardware-in-the-loop model",
          "url": "https://iicsm.org/physicalmodeling/#hardware-in-the-loop-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Couples actual hardware to simulated parts of a system."
        },
        {
          "name": "Dimensional-analysis similarity model",
          "url": "https://iicsm.org/physicalmodeling/#dimensional-analysis-similarity-model",
          "role": "Tabulated data",
          "note": "For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Uses dimensionless groups to relate tests across scales."
        },
        {
          "name": "Stokes-Einstein diffusion relation",
          "url": "https://iicsm.org/physicalmodeling/#stokes-einstein-diffusion-relation",
          "role": "Tabulated data",
          "note": "Interpolate tabulated solvent viscosity versus temperature before evaluating diffusivity; avoid extrapolation and preserve positive viscosity.",
          "context": "Connects Brownian translational diffusion to temperature, solvent viscosity, and hydrodynamic particle radius."
        },
        {
          "name": "Einstein crystal heat-capacity model",
          "url": "https://iicsm.org/physicalmodeling/#einstein-crystal-heat-capacity-model",
          "role": "Tabulated data",
          "note": "Use fitting for an Einstein temperature, interpolation for tabulated responses, or refinement to check derived quantities; the displayed formula itself is explicit. For smooth interpolation of coefficients or responses; ordinary splines do not guarantee positivity or monotonicity.",
          "context": "Treats crystal vibrations as independent quantum oscillators at a single frequency."
        }
      ],
      "relationships": [
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "polynomial-least-squares",
      "name": "Polynomial least squares",
      "description": "Fits basis coefficients by minimizing data residuals.",
      "example": "Calibration curves and response-surface approximations.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Scale coordinates and avoid unnecessarily high degree; outliers and correlated errors require additional treatment.",
      "google_search": "https://www.google.com/search?q=Polynomial+least+squares+numerical+method",
      "math": {
        "equation": "c^*=\\arg\\min_c\\lVert Ac-y\\rVert_2^2; A_{ij}=\\phi_j(x_i)",
        "tex": "c^*=\\arg\\min_c\\lVert Ac-y\\rVert_2^2; A_{ij}=\\phi_j(x_i)",
        "derivation": [
          "Choose a polynomial basis and assemble a design matrix.",
          "Project the data onto its column space.",
          "Use QR or SVD to obtain a stable least-squares solution."
        ],
        "assumptions": "Scale coordinates and avoid unnecessarily high degree; outliers and correlated errors require additional treatment."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Calibration curves and response-surface approximations.",
        "implementation": {
          "name": "SciPy linalg.lstsq",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.lstsq.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: linalg.lstsq",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.lstsq.html"
        }
      ],
      "recommendations": [
        {
          "name": "Hagen–Poiseuille model",
          "url": "https://iicsm.org/physicalmodeling/#hagenpoiseuille-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Predicts fully developed laminar flow in a circular pipe."
        },
        {
          "name": "Darcy–Weisbach model",
          "url": "https://iicsm.org/physicalmodeling/#darcyweisbach-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Relates pipe pressure loss to friction factor and flow speed."
        },
        {
          "name": "Non-Newtonian power-law fluid",
          "url": "https://iicsm.org/physicalmodeling/#non-newtonian-power-law-fluid",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Relates shear stress to a power of shear rate."
        },
        {
          "name": "Bingham plastic model",
          "url": "https://iicsm.org/physicalmodeling/#bingham-plastic-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Represents a material with a yield stress and post-yield viscosity."
        },
        {
          "name": "Herschel–Bulkley model",
          "url": "https://iicsm.org/physicalmodeling/#herschelbulkley-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Combines yield stress with nonlinear post-yield flow."
        },
        {
          "name": "Polynomial chaos expansion",
          "url": "https://iicsm.org/physicalmodeling/#polynomial-chaos-expansion",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Represents uncertain responses with polynomial functions of random inputs."
        },
        {
          "name": "Geometrically scaled physical model",
          "url": "https://iicsm.org/physicalmodeling/#geometrically-scaled-physical-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Reproduces a system's shape at another size."
        },
        {
          "name": "Wind-tunnel model",
          "url": "https://iicsm.org/physicalmodeling/#wind-tunnel-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Uses a controlled air stream around a physical specimen."
        },
        {
          "name": "Hydraulic flume model",
          "url": "https://iicsm.org/physicalmodeling/#hydraulic-flume-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Uses physical water flow with selected similarity conditions."
        },
        {
          "name": "Shake-table structural model",
          "url": "https://iicsm.org/physicalmodeling/#shake-table-structural-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Excites a physical structure with controlled base motion."
        },
        {
          "name": "Photoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#photoelastic-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Uses stress-induced optical birefringence to visualize stress patterns."
        },
        {
          "name": "Electrical analog model",
          "url": "https://iicsm.org/physicalmodeling/#electrical-analog-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Maps another physical system onto an electrical network."
        },
        {
          "name": "Hardware-in-the-loop model",
          "url": "https://iicsm.org/physicalmodeling/#hardware-in-the-loop-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Couples actual hardware to simulated parts of a system."
        },
        {
          "name": "Dimensional-analysis similarity model",
          "url": "https://iicsm.org/physicalmodeling/#dimensional-analysis-similarity-model",
          "role": "Data fitting",
          "note": "For fitting a low-dimensional response or constitutive curve; scale variables and validate independently.",
          "context": "Uses dimensionless groups to relate tests across scales."
        },
        {
          "name": "Carnahan-Starling hard-sphere equation of state",
          "url": "https://iicsm.org/physicalmodeling/#carnahan-starling-hard-sphere-equation-of-state",
          "role": "Data fitting",
          "note": "Fit a limited-range surrogate to EOS evaluations only when repeated calls require it; verify the fit against the explicit formula.",
          "context": "Approximates the compressibility factor of a monodisperse hard-sphere fluid from its packing fraction."
        }
      ],
      "relationships": [
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "chebyshev-approximation",
      "name": "Chebyshev approximation",
      "description": "Uses Chebyshev bases and clustered nodes to approximate smooth functions.",
      "example": "Accurate one-dimensional property and response surrogates.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Smoothness controls convergence; discontinuities cause Gibbs-type behavior.",
      "google_search": "https://www.google.com/search?q=Chebyshev+approximation+numerical+method",
      "math": {
        "equation": "p_N(x)=\\sum_{k=0}^Na_kT_k(x); T_k(\\cos\\theta)=\\cos(k\\theta)",
        "tex": "p_N(x)=\\sum_{k=0}^Na_kT_k(x); T_k(\\cos\\theta)=\\cos(k\\theta)",
        "derivation": [
          "Map the domain to the standard interval.",
          "Sample or project using Chebyshev structure.",
          "Truncate the expansion after checking coefficient decay or error."
        ],
        "assumptions": "Smoothness controls convergence; discontinuities cause Gibbs-type behavior."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Accurate one-dimensional property and response surrogates.",
        "implementation": {
          "name": "Chebfun",
          "url": "https://www.chebfun.org/docs/guide/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "Chebfun numerical approximation guide",
          "url": "https://www.chebfun.org/docs/guide/"
        }
      ],
      "recommendations": [
        {
          "name": "Arrhenius rate model",
          "url": "https://iicsm.org/physicalmodeling/#arrhenius-rate-model",
          "role": "Smooth surrogate",
          "note": "For smooth responses on a bounded interval; check coefficient decay and interpolation error.",
          "context": "Relates a rate coefficient to temperature through an activation energy."
        }
      ],
      "relationships": [
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "proper-orthogonal-decomposition",
      "name": "Proper orthogonal decomposition",
      "description": "Extracts dominant modes from a snapshot matrix.",
      "example": "Reduced fluid, structural, and thermal models.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Optimal low-rank snapshot error does not guarantee predictive accuracy or stable reduced dynamics.",
      "google_search": "https://www.google.com/search?q=Proper+orthogonal+decomposition+numerical+method",
      "math": {
        "equation": "X=U\\Sigma V^{\\mathsf T}; X_r=U_r\\Sigma_rV_r^{\\mathsf T}",
        "tex": "X=U\\Sigma V^{\\mathsf T}; X_r=U_r\\Sigma_rV_r^{\\mathsf T}",
        "derivation": [
          "Collect representative, consistently scaled snapshots.",
          "Compute their singular value decomposition.",
          "Retain dominant modes and project the dynamics or data onto that subspace."
        ],
        "assumptions": "Optimal low-rank snapshot error does not guarantee predictive accuracy or stable reduced dynamics."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Reduced fluid, structural, and thermal models.",
        "implementation": {
          "name": "pyMOR",
          "url": "https://docs.pymor.org/latest/autoapi/pymor/algorithms/pod/index.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "pyMOR POD algorithms",
          "url": "https://docs.pymor.org/latest/autoapi/pymor/algorithms/pod/index.html"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Reduced-order modeling",
          "note": "Build a reduced basis from representative snapshots; check predictive accuracy, conservation, and stability after projection.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        }
      ],
      "relationships": [
        {
          "target": "singular-value-decomposition",
          "type": "Commonly computed by",
          "note": "Truncated singular vectors define the snapshot-based reduced space."
        },
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "dynamic-mode-decomposition",
      "name": "Dynamic mode decomposition",
      "description": "Fits a linear evolution map between successive snapshots.",
      "example": "Flow-pattern analysis and data-driven dynamics prediction.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Sampling, noise, rank truncation, and nonlinearity affect interpretation and extrapolation.",
      "google_search": "https://www.google.com/search?q=Dynamic+mode+decomposition+numerical+method",
      "math": {
        "equation": "A\\approx YX^+; \\widetilde A=U_r^{\\mathsf T}YV_r\\Sigma_r^{-1}",
        "tex": "A\\approx YX^+; \\widetilde A=U_r^{\\mathsf T}YV_r\\Sigma_r^{-1}",
        "derivation": [
          "Arrange consecutive snapshots in paired matrices.",
          "Fit a least-squares map from present to future snapshots.",
          "Project the map and analyze its eigenvalues and modes."
        ],
        "assumptions": "Sampling, noise, rank truncation, and nonlinearity affect interpretation and extrapolation."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Flow-pattern analysis and data-driven dynamics prediction.",
        "implementation": {
          "name": "PyDMD",
          "url": "https://pydmd.github.io/PyDMD/",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PyDMD documentation",
          "url": "https://pydmd.github.io/PyDMD/"
        }
      ],
      "recommendations": [
        {
          "name": "Digital twin framework",
          "url": "https://iicsm.org/physicalmodeling/#digital-twin-framework",
          "role": "Dynamics analysis",
          "note": "For time-resolved snapshots; modes describe a fitted evolution map and need not capture all nonlinear behavior.",
          "context": "Links an evolving model of a specific asset with observations."
        }
      ],
      "relationships": [
        {
          "target": "singular-value-decomposition",
          "type": "Commonly uses",
          "note": "SVD supports a low-rank least-squares evolution fit."
        },
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-process-regression",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gaussian-process-regression",
      "name": "Gaussian-process regression",
      "description": "Predicts a response using a covariance model and observed data.",
      "example": "Expensive-simulation surrogates and uncertainty-aware design exploration.",
      "discipline": "Approximation & reduction",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Zero-mean formula shown; uncertainty is conditional on the kernel/noise assumptions, not a guarantee of physical accuracy.",
      "google_search": "https://www.google.com/search?q=Gaussian-process+regression+numerical+method",
      "math": {
        "equation": "m_*=k_*^{\\mathsf T}(K+\\sigma_n^2I)^{-1}y; v_*=k_{**}-k_*^{\\mathsf T}(K+\\sigma_n^2I)^{-1}k_*",
        "tex": "m_*=k_*^{\\mathsf T}(K+\\sigma_n^2I)^{-1}y; v_*=k_{**}-k_*^{\\mathsf T}(K+\\sigma_n^2I)^{-1}k_*",
        "derivation": [
          "Specify a prior mean and covariance kernel.",
          "Condition the joint Gaussian distribution on observations.",
          "Compute the posterior mean and variance at a query point."
        ],
        "assumptions": "Zero-mean formula shown; uncertainty is conditional on the kernel/noise assumptions, not a guarantee of physical accuracy."
      },
      "application": {
        "area": "Approximation & reduction",
        "product_examples": "Expensive-simulation surrogates and uncertainty-aware design exploration.",
        "implementation": {
          "name": "scikit-learn GaussianProcessRegressor",
          "url": "https://scikit-learn.org/stable/modules/gaussian_process.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "scikit-learn Gaussian processes",
          "url": "https://scikit-learn.org/stable/modules/gaussian_process.html"
        }
      ],
      "recommendations": [
        {
          "name": "Digital twin framework",
          "url": "https://iicsm.org/physicalmodeling/#digital-twin-framework",
          "role": "Surrogate / uncertainty",
          "note": "For an expensive-simulation or data surrogate; predictive uncertainty is conditional on kernel and noise assumptions.",
          "context": "Links an evolving model of a specific asset with observations."
        },
        {
          "name": "Wind-tunnel model",
          "url": "https://iicsm.org/physicalmodeling/#wind-tunnel-model",
          "role": "Surrogate / uncertainty",
          "note": "For an expensive-simulation or data surrogate; predictive uncertainty is conditional on kernel and noise assumptions.",
          "context": "Uses a controlled air stream around a physical specimen."
        }
      ],
      "relationships": [
        {
          "target": "lagrange-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "barycentric-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "cubic-spline-interpolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "polynomial-least-squares",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "chebyshev-approximation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "proper-orthogonal-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "dynamic-mode-decomposition",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "composite-trapezoidal-rule",
      "name": "Composite trapezoidal rule",
      "description": "Integrates sampled data by joining neighboring values with straight lines.",
      "example": "Integrating measured heat-flow, force, or current histories.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Uniform-spacing formula shown; second-order error for sufficiently smooth functions.",
      "google_search": "https://www.google.com/search?q=Composite+trapezoidal+rule+numerical+method",
      "math": {
        "equation": "I_h=h[\\tfrac12 f_0+\\sum_{i=1}^{n-1}f_i+\\tfrac12 f_n]",
        "tex": "I_h=h[\\tfrac12 f_0+\\sum_{i=1}^{n-1}f_i+\\tfrac12 f_n]",
        "derivation": [
          "Interpolate each interval linearly.",
          "Integrate that line exactly.",
          "Sum the interval contributions."
        ],
        "assumptions": "Uniform-spacing formula shown; second-order error for sufficiently smooth functions."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Integrating measured heat-flow, force, or current histories.",
        "implementation": {
          "name": "SciPy integrate.trapezoid",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.trapezoid.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.trapezoid",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.trapezoid.html"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Integral / post-processing",
          "note": "For sampled loads, fluxes, or response histories with enough resolution; account for nonsmooth events.",
          "context": "Relates conductive heat flux to temperature gradient."
        }
      ],
      "relationships": [
        {
          "target": "crank-nicolson",
          "type": "Underlies time-stepping formula",
          "note": "Trapezoidal integration of the time derivative produces the endpoint-average method."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "monte-carlo-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "composite-simpson-rule",
      "name": "Composite Simpson rule",
      "description": "Integrates pairs of intervals using quadratic interpolation.",
      "example": "Integrating smooth sampled loads and response curves.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Uniform grid with even n shown; fourth-order convergence requires smoothness.",
      "google_search": "https://www.google.com/search?q=Composite+Simpson+rule+numerical+method",
      "math": {
        "equation": "I_h=\\frac h3[f_0+4\\sum_{i\\text{ odd}}f_i+2\\sum_{i\\text{ even},\\,0<i<n}f_i+f_n]",
        "tex": "I_h=\\frac h3[f_0+4\\sum_{i\\text{ odd}}f_i+2\\sum_{i\\text{ even},\\,0<i<n}f_i+f_n]",
        "derivation": [
          "Fit a quadratic across each consecutive pair of intervals.",
          "Integrate the polynomial exactly.",
          "Add the repeated weights across the domain."
        ],
        "assumptions": "Uniform grid with even n shown; fourth-order convergence requires smoothness."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Integrating smooth sampled loads and response curves.",
        "implementation": {
          "name": "SciPy integrate.simpson",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.simpson.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.simpson",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.simpson.html"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Integral / post-processing",
          "note": "For smooth sampled responses with compatible spacing; do not apply its uniform-grid error order blindly.",
          "context": "Relates conductive heat flux to temperature gradient."
        },
        {
          "name": "Hydraulic flume model",
          "url": "https://iicsm.org/physicalmodeling/#hydraulic-flume-model",
          "role": "Integral / post-processing",
          "note": "For smooth sampled responses with compatible spacing; do not apply its uniform-grid error order blindly.",
          "context": "Uses physical water flow with selected similarity conditions."
        }
      ],
      "relationships": [
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "monte-carlo-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "gaussian-quadrature",
      "name": "Gaussian quadrature",
      "description": "Chooses nodes and weights to integrate high-degree polynomials efficiently.",
      "example": "Element stiffness and load integrals in finite-element analysis.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Gauss-Legendre is exact through degree 2n-1; singular or nonsmooth integrands need special treatment.",
      "google_search": "https://www.google.com/search?q=Gaussian+quadrature+numerical+method",
      "math": {
        "equation": "\\int_{-1}^1 f(x)\\,dx\\approx\\sum_{i=1}^nw_if(x_i)",
        "tex": "\\int_{-1}^1 f(x)\\,dx\\approx\\sum_{i=1}^nw_if(x_i)",
        "derivation": [
          "Choose nodes as roots of the relevant orthogonal polynomial.",
          "Determine weights by exactness conditions.",
          "Map the rule to the integration interval or element."
        ],
        "assumptions": "Gauss-Legendre is exact through degree 2n-1; singular or nonsmooth integrands need special treatment."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Element stiffness and load integrals in finite-element analysis.",
        "implementation": {
          "name": "SciPy integrate.fixed_quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.fixed_quad.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.fixed_quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.fixed_quad.html"
        }
      ],
      "recommendations": [
        {
          "name": "Schrödinger model",
          "url": "https://iicsm.org/physicalmodeling/#schrodinger-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Evolves a nonrelativistic quantum state using a Hamiltonian."
        },
        {
          "name": "Dirac model",
          "url": "https://iicsm.org/physicalmodeling/#dirac-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Describes relativistic spin-half particles with a spinor wave equation."
        },
        {
          "name": "Born–Oppenheimer approximation",
          "url": "https://iicsm.org/physicalmodeling/#bornoppenheimer-approximation",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Separates electronic motion from slower nuclear motion."
        },
        {
          "name": "Hartree–Fock model",
          "url": "https://iicsm.org/physicalmodeling/#hartreefock-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Approximates a many-electron wavefunction by one self-consistent Slater determinant."
        },
        {
          "name": "Density functional theory (DFT)",
          "url": "https://iicsm.org/physicalmodeling/#density-functional-theory-dft",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Uses electron density to determine ground-state properties with an approximate exchange-correlation functional."
        },
        {
          "name": "Tight-binding model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Represents electronic states with localized orbitals and hopping parameters."
        },
        {
          "name": "Hubbard model",
          "url": "https://iicsm.org/physicalmodeling/#hubbard-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Models competition between particle hopping and local electron interactions."
        },
        {
          "name": "Quantum harmonic oscillator",
          "url": "https://iicsm.org/physicalmodeling/#quantum-harmonic-oscillator",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Describes a quantum degree of freedom in a quadratic potential."
        },
        {
          "name": "Particle-in-a-box model",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-a-box-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Confines a quantum particle within idealized boundaries."
        },
        {
          "name": "Radiative transfer equation",
          "url": "https://iicsm.org/physicalmodeling/#radiative-transfer-equation",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Tracks radiation intensity through emission, absorption and scattering."
        },
        {
          "name": "Surface-to-surface radiosity model",
          "url": "https://iicsm.org/physicalmodeling/#surface-to-surface-radiosity-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Balances diffuse radiation exchange between surfaces."
        },
        {
          "name": "Scalar diffraction model",
          "url": "https://iicsm.org/physicalmodeling/#scalar-diffraction-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Uses a scalar wave approximation for light diffraction."
        },
        {
          "name": "Lifting-line model",
          "url": "https://iicsm.org/physicalmodeling/#lifting-line-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Approximates finite-wing lift using a spanwise circulation distribution."
        },
        {
          "name": "Blade-element momentum model",
          "url": "https://iicsm.org/physicalmodeling/#blade-element-momentum-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Combines blade-section loads with momentum balances."
        },
        {
          "name": "Neutron transport model",
          "url": "https://iicsm.org/physicalmodeling/#neutron-transport-model",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Tracks neutron angular and energy-dependent transport with interactions."
        },
        {
          "name": "Homogenization",
          "url": "https://iicsm.org/physicalmodeling/#homogenization",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Derives effective properties or equations from smaller-scale structure."
        },
        {
          "name": "Representative volume element (RVE)",
          "url": "https://iicsm.org/physicalmodeling/#representative-volume-element-rve",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Uses a finite microstructural sample to estimate bulk response."
        },
        {
          "name": "FE² computational homogenization",
          "url": "https://iicsm.org/physicalmodeling/#fe2-computational-homogenization",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Solves microscale problems within a macroscale finite-element calculation."
        },
        {
          "name": "Polynomial chaos expansion",
          "url": "https://iicsm.org/physicalmodeling/#polynomial-chaos-expansion",
          "role": "Integral assembly",
          "note": "For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Represents uncertain responses with polynomial functions of random inputs."
        },
        {
          "name": "Debye phonon model",
          "url": "https://iicsm.org/physicalmodeling/#debye-phonon-model",
          "role": "Integral assembly",
          "note": "Use quadrature for the full Debye integral and fitting for a Debye temperature; the cubic law is only a low-temperature asymptote. For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Approximates acoustic phonons by a continuum spectrum with a mode-count cutoff."
        },
        {
          "name": "Sommerfeld free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#sommerfeld-free-electron-model",
          "role": "Integral assembly",
          "note": "Integrate the free-electron density of states with Fermi occupations at finite temperature, or fit a low-temperature heat-capacity coefficient; preserve electron number. For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Describes conduction electrons as a degenerate, noninteracting Fermi gas."
        },
        {
          "name": "Tight-binding electronic model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-electronic-model",
          "role": "Integral assembly",
          "note": "Use SVD on H(k)-E I to check null states, condition analysis to assess sensitivity, and quadrature for Brillouin-zone averages. General bands require a Hermitian eigensolver, not SVD singular values interpreted as signed energies. For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Builds crystal electronic bands from localized orbitals and intersite hopping."
        },
        {
          "name": "Nearly-free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#nearly-free-electron-model",
          "role": "Integral assembly",
          "note": "Use SVD for null-state diagnostics, sensitivity checks for small gaps, and quadrature for band averages. Diagonalize the Hermitian plane-wave Hamiltonian for actual energies. For smooth element, energy, or moment integrals; singular or discontinuous integrands need special rules.",
          "context": "Predicts band gaps by perturbing free electrons with a weak periodic potential."
        }
      ],
      "relationships": [
        {
          "target": "finite-element-method",
          "type": "Can evaluate integrals for",
          "note": "Quadrature assembles element operators and load vectors."
        },
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "monte-carlo-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "adaptive-quadrature",
      "name": "Adaptive quadrature",
      "description": "Subdivides intervals according to local integration-error estimates.",
      "example": "Accurate one-dimensional response and probability integrals.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Estimates can miss singularities or narrow features; supply known breakpoints and examine diagnostics.",
      "google_search": "https://www.google.com/search?q=Adaptive+quadrature+numerical+method",
      "math": {
        "equation": "I\\approx\\sum_KQ_K; \\sum_K e_K\\le\\max(\\varepsilon_{\\mathrm{abs}},\\varepsilon_{\\mathrm{rel}}|I|)",
        "tex": "I\\approx\\sum_KQ_K; \\sum_K e_K\\le\\max(\\varepsilon_{\\mathrm{abs}},\\varepsilon_{\\mathrm{rel}}|I|)",
        "derivation": [
          "Compare paired integration rules to estimate local error.",
          "Refine intervals with the largest estimated contribution.",
          "Stop when the global estimated tolerance is met."
        ],
        "assumptions": "Estimates can miss singularities or narrow features; supply known breakpoints and examine diagnostics."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Accurate one-dimensional response and probability integrals.",
        "implementation": {
          "name": "SciPy integrate.quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.html"
        }
      ],
      "recommendations": [
        {
          "name": "Population balance model",
          "url": "https://iicsm.org/physicalmodeling/#population-balance-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Tracks the distribution of particle sizes or other internal properties."
        },
        {
          "name": "Ideal gas equation of state",
          "url": "https://iicsm.org/physicalmodeling/#ideal-gas-equation-of-state",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Relates pressure, volume and temperature for a dilute noninteracting gas."
        },
        {
          "name": "Van der Waals equation of state",
          "url": "https://iicsm.org/physicalmodeling/#van-der-waals-equation-of-state",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Adds molecular attraction and excluded volume to an ideal gas model."
        },
        {
          "name": "Peng–Robinson equation of state",
          "url": "https://iicsm.org/physicalmodeling/#pengrobinson-equation-of-state",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses a cubic equation of state for real-fluid behavior."
        },
        {
          "name": "Soave–Redlich–Kwong equation of state",
          "url": "https://iicsm.org/physicalmodeling/#soaveredlichkwong-equation-of-state",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses a temperature-dependent attraction correction in a cubic fluid model."
        },
        {
          "name": "Virial equation of state",
          "url": "https://iicsm.org/physicalmodeling/#virial-equation-of-state",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Represents nonideal behavior as a density or pressure expansion."
        },
        {
          "name": "Stefan–Boltzmann surface model",
          "url": "https://iicsm.org/physicalmodeling/#stefanboltzmann-surface-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Relates idealized surface radiant emission to the fourth power of temperature."
        },
        {
          "name": "Norton creep law",
          "url": "https://iicsm.org/physicalmodeling/#norton-creep-law",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Relates creep rate to a power of stress."
        },
        {
          "name": "Linear elastic fracture mechanics (LEFM)",
          "url": "https://iicsm.org/physicalmodeling/#linear-elastic-fracture-mechanics-lefm",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses crack-tip intensity parameters in an elastic body."
        },
        {
          "name": "Cohesive-zone model",
          "url": "https://iicsm.org/physicalmodeling/#cohesive-zone-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses traction-separation relations across a fracture process zone."
        },
        {
          "name": "Paris fatigue crack-growth law",
          "url": "https://iicsm.org/physicalmodeling/#paris-fatigue-crack-growth-law",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Relates cyclic crack-growth rate to stress-intensity-factor range."
        },
        {
          "name": "Miner cumulative damage rule",
          "url": "https://iicsm.org/physicalmodeling/#miner-cumulative-damage-rule",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Adds fractions of fatigue life consumed by load cycles."
        },
        {
          "name": "Archard wear model",
          "url": "https://iicsm.org/physicalmodeling/#archard-wear-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Relates wear volume to load, sliding distance and hardness."
        },
        {
          "name": "Magnetic-circuit model",
          "url": "https://iicsm.org/physicalmodeling/#magnetic-circuit-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses reluctance and magnetomotive force in lumped magnetic paths."
        },
        {
          "name": "Jiles–Atherton hysteresis model",
          "url": "https://iicsm.org/physicalmodeling/#jilesatherton-hysteresis-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Represents path-dependent magnetization with phenomenological parameters."
        },
        {
          "name": "Geometrical optics",
          "url": "https://iicsm.org/physicalmodeling/#geometrical-optics",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Approximates light propagation as rays."
        },
        {
          "name": "Scalar diffraction model",
          "url": "https://iicsm.org/physicalmodeling/#scalar-diffraction-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Uses a scalar wave approximation for light diffraction."
        },
        {
          "name": "Gaussian beam model",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-beam-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Represents a paraxial beam with a Gaussian transverse profile."
        },
        {
          "name": "Drude–Lorentz optical model",
          "url": "https://iicsm.org/physicalmodeling/#drudelorentz-optical-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Represents free-carrier and bound-charge contributions to permittivity."
        },
        {
          "name": "Stellar structure model",
          "url": "https://iicsm.org/physicalmodeling/#stellar-structure-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Couples hydrostatic balance, energy transport and energy generation."
        },
        {
          "name": "FLRW cosmological model",
          "url": "https://iicsm.org/physicalmodeling/#flrw-cosmological-model",
          "role": "Integral evaluation",
          "note": "For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Assumes a homogeneous and isotropic expanding spacetime."
        },
        {
          "name": "Ornstein-Zernike equation",
          "url": "https://iicsm.org/physicalmodeling/#ornstein-zernike-equation",
          "role": "Integral evaluation",
          "note": "Evaluate radial correlation integrals or Fourier-Bessel transforms with controlled truncation and oscillatory-integration error.",
          "context": "Relates total and direct pair correlations in a homogeneous liquid, linking microscopic structure to scattering."
        },
        {
          "name": "Percus-Yevick closure",
          "url": "https://iicsm.org/physicalmodeling/#percus-yevick-closure",
          "role": "Integral evaluation",
          "note": "Evaluate radial correlation integrals or Fourier-Bessel transforms with controlled truncation and oscillatory-integration error.",
          "context": "Closes the liquid integral equation using an approximate relation between pair correlations and interactions."
        },
        {
          "name": "Hypernetted-chain (HNC) closure",
          "url": "https://iicsm.org/physicalmodeling/#hypernetted-chain-hnc-closure",
          "role": "Integral evaluation",
          "note": "Evaluate radial correlation integrals or Fourier-Bessel transforms with controlled truncation and oscillatory-integration error.",
          "context": "Approximates liquid pair structure by neglecting bridge diagrams in the exact closure."
        },
        {
          "name": "Green-Kubo viscosity relation",
          "url": "https://iicsm.org/physicalmodeling/#green-kubo-viscosity-relation",
          "role": "Integral evaluation",
          "note": "Integrate a smooth fitted stress-autocorrelation function; account separately for finite sampling and the unobserved long-time tail.",
          "context": "Obtains equilibrium shear viscosity from the time integral of microscopic shear-stress fluctuations."
        },
        {
          "name": "Debye phonon model",
          "url": "https://iicsm.org/physicalmodeling/#debye-phonon-model",
          "role": "Integral evaluation",
          "note": "Use quadrature for the full Debye integral and fitting for a Debye temperature; the cubic law is only a low-temperature asymptote. For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Approximates acoustic phonons by a continuum spectrum with a mode-count cutoff."
        },
        {
          "name": "Sommerfeld free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#sommerfeld-free-electron-model",
          "role": "Integral evaluation",
          "note": "Integrate the free-electron density of states with Fermi occupations at finite temperature, or fit a low-temperature heat-capacity coefficient; preserve electron number. For deterministic low-dimensional integrals; identify singularities and verify error estimates.",
          "context": "Describes conduction electrons as a degenerate, noninteracting Fermi gas."
        }
      ],
      "relationships": [
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "monte-carlo-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "monte-carlo-integration",
      "name": "Monte Carlo integration",
      "description": "Estimates an integral by averaging independent random samples.",
      "example": "Uncertain-load propagation and probabilistic engineering estimates.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Finite-variance independent-sample form; dimension-independent rate can still have a large variance constant.",
      "google_search": "https://www.google.com/search?q=Monte+Carlo+integration+numerical+method",
      "math": {
        "equation": "\\widehat I_N=\\frac1N\\sum_{i=1}^Nf(X_i); \\operatorname{SE}(\\widehat I_N)\\approx\\frac s{\\sqrt N}",
        "tex": "\\widehat I_N=\\frac1N\\sum_{i=1}^Nf(X_i); \\operatorname{SE}(\\widehat I_N)\\approx\\frac s{\\sqrt N}",
        "derivation": [
          "Express the target as an expectation under a chosen sampling distribution.",
          "Generate independent samples and average the integrand.",
          "Estimate uncertainty from sample variability."
        ],
        "assumptions": "Finite-variance independent-sample form; dimension-independent rate can still have a large variance constant."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Uncertain-load propagation and probabilistic engineering estimates.",
        "implementation": {
          "name": "NumPy Generator",
          "url": "https://numpy.org/doc/stable/reference/random/generator.html",
          "note": "Sampling building block; construct the integrand estimator and its uncertainty analysis in application code."
        }
      },
      "references": [
        {
          "title": "NumPy random sampling",
          "url": "https://numpy.org/doc/stable/reference/random/generator.html"
        }
      ],
      "recommendations": [
        {
          "name": "Heisenberg spin model",
          "url": "https://iicsm.org/physicalmodeling/#heisenberg-spin-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents interacting localized magnetic moments."
        },
        {
          "name": "Ising model",
          "url": "https://iicsm.org/physicalmodeling/#ising-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents discrete spins with interaction energies."
        },
        {
          "name": "Classical molecular dynamics (MD)",
          "url": "https://iicsm.org/physicalmodeling/#classical-molecular-dynamics-md",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Integrates atomic motion under specified interaction forces."
        },
        {
          "name": "Ab initio molecular dynamics",
          "url": "https://iicsm.org/physicalmodeling/#ab-initio-molecular-dynamics",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Computes interatomic forces from electronic-structure calculations during motion."
        },
        {
          "name": "Lennard–Jones potential",
          "url": "https://iicsm.org/physicalmodeling/#lennardjones-potential",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Combines short-range repulsion with an inverse-sixth-power attraction."
        },
        {
          "name": "Morse potential",
          "url": "https://iicsm.org/physicalmodeling/#morse-potential",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents an anharmonic bond with a finite dissociation energy."
        },
        {
          "name": "Embedded-atom method (EAM)",
          "url": "https://iicsm.org/physicalmodeling/#embedded-atom-method-eam",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Combines pair interactions with an embedding energy dependent on local electron density."
        },
        {
          "name": "Modified embedded-atom method (MEAM)",
          "url": "https://iicsm.org/physicalmodeling/#modified-embedded-atom-method-meam",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Extends embedding models with angular information."
        },
        {
          "name": "Tersoff bond-order potential",
          "url": "https://iicsm.org/physicalmodeling/#tersoff-bond-order-potential",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Makes bond strength depend on the local bonding environment."
        },
        {
          "name": "Stillinger–Weber potential",
          "url": "https://iicsm.org/physicalmodeling/#stillingerweber-potential",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses two-body and three-body terms to favor local tetrahedral structure."
        },
        {
          "name": "ReaxFF reactive force field",
          "url": "https://iicsm.org/physicalmodeling/#reaxff-reactive-force-field",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses variable bond orders and charge equilibration to represent chemical reactions."
        },
        {
          "name": "AMBER force-field family",
          "url": "https://iicsm.org/physicalmodeling/#amber-force-field-family",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses parameterized bonded and nonbonded interactions for biomolecules."
        },
        {
          "name": "CHARMM force-field family",
          "url": "https://iicsm.org/physicalmodeling/#charmm-force-field-family",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Models biomolecular interactions with chemistry-specific parameter sets."
        },
        {
          "name": "OPLS force-field family",
          "url": "https://iicsm.org/physicalmodeling/#opls-force-field-family",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses parameterized molecular interactions developed for condensed phases."
        },
        {
          "name": "SPC/E water model",
          "url": "https://iicsm.org/physicalmodeling/#spc-e-water-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Approximates water using a rigid three-site classical model."
        },
        {
          "name": "TIP4P water-model family",
          "url": "https://iicsm.org/physicalmodeling/#tip4p-water-model-family",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses a four-site geometry with an off-oxygen charge site."
        },
        {
          "name": "Drude polarizable model",
          "url": "https://iicsm.org/physicalmodeling/#drude-polarizable-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses auxiliary charged particles to represent induced polarization."
        },
        {
          "name": "Machine-learned interatomic potential",
          "url": "https://iicsm.org/physicalmodeling/#machine-learned-interatomic-potential",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Fits atomic energies and forces from reference data using statistical learning."
        },
        {
          "name": "Coarse-grained molecular model",
          "url": "https://iicsm.org/physicalmodeling/#coarse-grained-molecular-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Groups atoms into effective interaction sites."
        },
        {
          "name": "Martini coarse-grained model",
          "url": "https://iicsm.org/physicalmodeling/#martini-coarse-grained-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses mapped molecular beads and parameterized interactions."
        },
        {
          "name": "Dissipative particle dynamics (DPD)",
          "url": "https://iicsm.org/physicalmodeling/#dissipative-particle-dynamics-dpd",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Combines conservative, dissipative and random pair forces."
        },
        {
          "name": "Brownian dynamics",
          "url": "https://iicsm.org/physicalmodeling/#brownian-dynamics",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses overdamped stochastic motion for particles in a surrounding medium."
        },
        {
          "name": "Langevin dynamics",
          "url": "https://iicsm.org/physicalmodeling/#langevin-dynamics",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Adds friction and random forces to a dynamical model."
        },
        {
          "name": "Kinetic Monte Carlo",
          "url": "https://iicsm.org/physicalmodeling/#kinetic-monte-carlo",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Samples transitions between states using event rates."
        },
        {
          "name": "Potts grain-growth model",
          "url": "https://iicsm.org/physicalmodeling/#potts-grain-growth-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents grain orientations as discrete lattice states."
        },
        {
          "name": "Radiative transfer equation",
          "url": "https://iicsm.org/physicalmodeling/#radiative-transfer-equation",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Tracks radiation intensity through emission, absorption and scattering."
        },
        {
          "name": "Discrete-event simulation",
          "url": "https://iicsm.org/physicalmodeling/#discrete-event-simulation",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Advances a system through scheduled events."
        },
        {
          "name": "Agent-based physical-system model",
          "url": "https://iicsm.org/physicalmodeling/#agent-based-physical-system-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents interacting entities following local rules."
        },
        {
          "name": "Markov state model",
          "url": "https://iicsm.org/physicalmodeling/#markov-state-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Represents probabilistic transitions between a finite set of states."
        },
        {
          "name": "Neutron transport model",
          "url": "https://iicsm.org/physicalmodeling/#neutron-transport-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Tracks neutron angular and energy-dependent transport with interactions."
        },
        {
          "name": "Smoothed particle hydrodynamics (SPH)",
          "url": "https://iicsm.org/physicalmodeling/#smoothed-particle-hydrodynamics-sph",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Approximates continuum fields through moving particles and kernels."
        },
        {
          "name": "Discrete element method (DEM)",
          "url": "https://iicsm.org/physicalmodeling/#discrete-element-method-dem",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Evolves contacting discrete bodies with contact laws."
        },
        {
          "name": "Lattice Boltzmann method (LBM)",
          "url": "https://iicsm.org/physicalmodeling/#lattice-boltzmann-method-lbm",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Evolves discrete velocity populations to recover suitable macroscopic flow equations."
        },
        {
          "name": "Direct simulation Monte Carlo (DSMC)",
          "url": "https://iicsm.org/physicalmodeling/#direct-simulation-monte-carlo-dsmc",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Samples particle motion and collisions in a rarefied gas."
        },
        {
          "name": "Particle-in-cell (PIC)",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-cell-pic",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Couples moving computational particles to fields on a mesh."
        },
        {
          "name": "Material point method (MPM)",
          "url": "https://iicsm.org/physicalmodeling/#material-point-method-mpm",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Transfers particle-carried material state to a computational grid."
        },
        {
          "name": "Monte Carlo transport",
          "url": "https://iicsm.org/physicalmodeling/#monte-carlo-transport",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Samples particle histories and interactions statistically."
        },
        {
          "name": "Physics-informed neural network (PINN)",
          "url": "https://iicsm.org/physicalmodeling/#physics-informed-neural-network-pinn",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Trains a neural approximation using data and governing-equation residuals."
        },
        {
          "name": "Neural operator",
          "url": "https://iicsm.org/physicalmodeling/#neural-operator",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Learns a map between function-valued inputs and outputs."
        },
        {
          "name": "Geometrically scaled physical model",
          "url": "https://iicsm.org/physicalmodeling/#geometrically-scaled-physical-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Reproduces a system's shape at another size."
        },
        {
          "name": "Wind-tunnel model",
          "url": "https://iicsm.org/physicalmodeling/#wind-tunnel-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses a controlled air stream around a physical specimen."
        },
        {
          "name": "Hydraulic flume model",
          "url": "https://iicsm.org/physicalmodeling/#hydraulic-flume-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses physical water flow with selected similarity conditions."
        },
        {
          "name": "Shake-table structural model",
          "url": "https://iicsm.org/physicalmodeling/#shake-table-structural-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Excites a physical structure with controlled base motion."
        },
        {
          "name": "Photoelastic model",
          "url": "https://iicsm.org/physicalmodeling/#photoelastic-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses stress-induced optical birefringence to visualize stress patterns."
        },
        {
          "name": "Electrical analog model",
          "url": "https://iicsm.org/physicalmodeling/#electrical-analog-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Maps another physical system onto an electrical network."
        },
        {
          "name": "Hardware-in-the-loop model",
          "url": "https://iicsm.org/physicalmodeling/#hardware-in-the-loop-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Couples actual hardware to simulated parts of a system."
        },
        {
          "name": "Dimensional-analysis similarity model",
          "url": "https://iicsm.org/physicalmodeling/#dimensional-analysis-similarity-model",
          "role": "Statistical estimation",
          "note": "For expectation or uncertainty calculations with a stated sampling law; this does not replace a specialized stochastic time integrator.",
          "context": "Uses dimensionless groups to relate tests across scales."
        },
        {
          "name": "Stokes-Einstein diffusion relation",
          "url": "https://iicsm.org/physicalmodeling/#stokes-einstein-diffusion-relation",
          "role": "Statistical estimation",
          "note": "Propagate uncertainty in temperature, viscosity, and radius through D=kBT/(6πηR); no numerical integration is needed for the nominal value.",
          "context": "Connects Brownian translational diffusion to temperature, solvent viscosity, and hydrodynamic particle radius."
        }
      ],
      "relationships": [
        {
          "target": "importance-sampling",
          "type": "Can use variance reduction from",
          "note": "Change the proposal and correct with density-ratio weights."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Has low-discrepancy alternative",
          "note": "Both average integrand values, but their sampling designs and uncertainty analyses differ."
        },
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "quasi-monte-carlo",
      "name": "Quasi-Monte Carlo",
      "description": "Uses low-discrepancy points to cover an integration domain evenly.",
      "example": "High-dimensional uncertainty propagation and design integration.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Performance depends on smoothness and effective dimension; deterministic points do not give an IID standard error.",
      "google_search": "https://www.google.com/search?q=Quasi-Monte+Carlo+numerical+method",
      "math": {
        "equation": "I\\approx\\frac1N\\sum_{i=1}^Nf(u_i); u_i\\in[0,1]^d",
        "tex": "I\\approx\\frac1N\\sum_{i=1}^Nf(u_i); u_i\\in[0,1]^d",
        "derivation": [
          "Map the integral to a unit cube.",
          "Generate a low-discrepancy design such as Sobol points.",
          "Average values; use independent randomized scramblings for error assessment."
        ],
        "assumptions": "Performance depends on smoothness and effective dimension; deterministic points do not give an IID standard error."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "High-dimensional uncertainty propagation and design integration.",
        "implementation": {
          "name": "SciPy integrate.qmc_quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.qmc_quad.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: integrate.qmc_quad",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.qmc_quad.html"
        }
      ],
      "recommendations": [
        {
          "name": "Discrete-event simulation",
          "url": "https://iicsm.org/physicalmodeling/#discrete-event-simulation",
          "role": "Uncertainty integration",
          "note": "For well-behaved parameter integrals where low-discrepancy coverage helps; use randomized replicates for uncertainty assessment.",
          "context": "Advances a system through scheduled events."
        },
        {
          "name": "Agent-based physical-system model",
          "url": "https://iicsm.org/physicalmodeling/#agent-based-physical-system-model",
          "role": "Uncertainty integration",
          "note": "For well-behaved parameter integrals where low-discrepancy coverage helps; use randomized replicates for uncertainty assessment.",
          "context": "Represents interacting entities following local rules."
        },
        {
          "name": "Monte Carlo transport",
          "url": "https://iicsm.org/physicalmodeling/#monte-carlo-transport",
          "role": "Uncertainty integration",
          "note": "For well-behaved parameter integrals where low-discrepancy coverage helps; use randomized replicates for uncertainty assessment.",
          "context": "Samples particle histories and interactions statistically."
        },
        {
          "name": "Bayesian model calibration",
          "url": "https://iicsm.org/physicalmodeling/#bayesian-model-calibration",
          "role": "Uncertainty integration",
          "note": "For well-behaved parameter integrals where low-discrepancy coverage helps; use randomized replicates for uncertainty assessment.",
          "context": "Updates uncertain parameters using observations and a statistical likelihood."
        },
        {
          "name": "Polynomial chaos expansion",
          "url": "https://iicsm.org/physicalmodeling/#polynomial-chaos-expansion",
          "role": "Uncertainty integration",
          "note": "For well-behaved parameter integrals where low-discrepancy coverage helps; use randomized replicates for uncertainty assessment.",
          "context": "Represents uncertain responses with polynomial functions of random inputs."
        }
      ],
      "relationships": [
        {
          "target": "monte-carlo-integration",
          "type": "Low-discrepancy alternative to",
          "note": "Both average integrand values, but their sampling designs and uncertainty analyses differ."
        },
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "importance-sampling",
      "name": "Importance sampling",
      "description": "Changes the sampling distribution to focus on influential regions.",
      "example": "Rare-event estimation and reliability calculations.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Support coverage and finite weight variance are essential; extreme weights can destroy efficiency.",
      "google_search": "https://www.google.com/search?q=Importance+sampling+numerical+method",
      "math": {
        "equation": "I=\\int f(x)p(x)\\,dx=\\mathbb E_q[f(X)p(X)/q(X)]",
        "tex": "I=\\int f(x)p(x)\\,dx=\\mathbb E_q[f(X)p(X)/q(X)]",
        "derivation": [
          "Choose a proposal density covering the target contribution.",
          "Sample from that proposal.",
          "Weight each value by the target-to-proposal density ratio."
        ],
        "assumptions": "Support coverage and finite weight variance are essential; extreme weights can destroy efficiency."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Rare-event estimation and reliability calculations.",
        "implementation": {
          "name": "Custom importance-sampling estimator",
          "url": "https://arxiv.org/abs/2102.05407",
          "note": "Implementation route: use a sampling library and compute density-ratio weights; verify support and weight diagnostics. The review explains the construction and its assumptions."
        }
      },
      "references": [
        {
          "title": "Advances in Importance Sampling",
          "url": "https://arxiv.org/abs/2102.05407"
        }
      ],
      "recommendations": [
        {
          "name": "Coarse-grained molecular model",
          "url": "https://iicsm.org/physicalmodeling/#coarse-grained-molecular-model",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Groups atoms into effective interaction sites."
        },
        {
          "name": "Martini coarse-grained model",
          "url": "https://iicsm.org/physicalmodeling/#martini-coarse-grained-model",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Uses mapped molecular beads and parameterized interactions."
        },
        {
          "name": "Dissipative particle dynamics (DPD)",
          "url": "https://iicsm.org/physicalmodeling/#dissipative-particle-dynamics-dpd",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Combines conservative, dissipative and random pair forces."
        },
        {
          "name": "Brownian dynamics",
          "url": "https://iicsm.org/physicalmodeling/#brownian-dynamics",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Uses overdamped stochastic motion for particles in a surrounding medium."
        },
        {
          "name": "Langevin dynamics",
          "url": "https://iicsm.org/physicalmodeling/#langevin-dynamics",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Adds friction and random forces to a dynamical model."
        },
        {
          "name": "Kinetic Monte Carlo",
          "url": "https://iicsm.org/physicalmodeling/#kinetic-monte-carlo",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Samples transitions between states using event rates."
        },
        {
          "name": "Potts grain-growth model",
          "url": "https://iicsm.org/physicalmodeling/#potts-grain-growth-model",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Represents grain orientations as discrete lattice states."
        },
        {
          "name": "Discrete-event simulation",
          "url": "https://iicsm.org/physicalmodeling/#discrete-event-simulation",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Advances a system through scheduled events."
        },
        {
          "name": "Agent-based physical-system model",
          "url": "https://iicsm.org/physicalmodeling/#agent-based-physical-system-model",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Represents interacting entities following local rules."
        },
        {
          "name": "Neutron transport model",
          "url": "https://iicsm.org/physicalmodeling/#neutron-transport-model",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Tracks neutron angular and energy-dependent transport with interactions."
        },
        {
          "name": "Monte Carlo transport",
          "url": "https://iicsm.org/physicalmodeling/#monte-carlo-transport",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Samples particle histories and interactions statistically."
        },
        {
          "name": "Bayesian model calibration",
          "url": "https://iicsm.org/physicalmodeling/#bayesian-model-calibration",
          "role": "Rare-event / expectation estimation",
          "note": "For a known target and proposal with correct support and controlled weight variance.",
          "context": "Updates uncertain parameters using observations and a statistical likelihood."
        }
      ],
      "relationships": [
        {
          "target": "monte-carlo-integration",
          "type": "Variance-reduction approach for",
          "note": "Change the proposal and correct with density-ratio weights."
        },
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "metropolis-hastings-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "metropolis-hastings-sampling",
      "name": "Metropolis-Hastings sampling",
      "description": "Builds a Markov chain with a desired stationary density.",
      "example": "Bayesian inverse problems and posterior uncertainty exploration.",
      "discipline": "Quadrature & sampling",
      "scale": "Approximate & sample",
      "kind": "Numerical technique",
      "limitations": "Samples are correlated; initialization, ergodicity, effective sample size, and multimodality matter.",
      "google_search": "https://www.google.com/search?q=Metropolis-Hastings+sampling+numerical+method",
      "math": {
        "equation": "\\alpha(x,y)=\\min\\left(1,\\frac{\\pi(y)q(x\\mid y)}{\\pi(x)q(y\\mid x)}\\right)",
        "tex": "\\alpha(x,y)=\\min\\left(1,\\frac{\\pi(y)q(x\\mid y)}{\\pi(x)q(y\\mid x)}\\right)",
        "derivation": [
          "Propose a move using a chosen transition distribution.",
          "Accept according to the target/proposal ratio.",
          "Repeat and diagnose mixing and convergence."
        ],
        "assumptions": "Samples are correlated; initialization, ergodicity, effective sample size, and multimodality matter."
      },
      "application": {
        "area": "Quadrature & sampling",
        "product_examples": "Bayesian inverse problems and posterior uncertainty exploration.",
        "implementation": {
          "name": "PyMC Metropolis",
          "url": "https://github.com/pymc-devs/pymc/blob/main/pymc/step_methods/metropolis.py",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "PyMC Metropolis sampler",
          "url": "https://github.com/pymc-devs/pymc/blob/main/pymc/step_methods/metropolis.py"
        }
      ],
      "recommendations": [
        {
          "name": "Heisenberg spin model",
          "url": "https://iicsm.org/physicalmodeling/#heisenberg-spin-model",
          "role": "Equilibrium / posterior sampling",
          "note": "For a specified target distribution; diagnose mixing and correlation. Samples do not generally represent physical time.",
          "context": "Represents interacting localized magnetic moments."
        },
        {
          "name": "Ising model",
          "url": "https://iicsm.org/physicalmodeling/#ising-model",
          "role": "Equilibrium / posterior sampling",
          "note": "For a specified target distribution; diagnose mixing and correlation. Samples do not generally represent physical time.",
          "context": "Represents discrete spins with interaction energies."
        },
        {
          "name": "Bayesian model calibration",
          "url": "https://iicsm.org/physicalmodeling/#bayesian-model-calibration",
          "role": "Equilibrium / posterior sampling",
          "note": "For a specified target distribution; diagnose mixing and correlation. Samples do not generally represent physical time.",
          "context": "Updates uncertain parameters using observations and a statistical likelihood."
        }
      ],
      "relationships": [
        {
          "target": "composite-trapezoidal-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "composite-simpson-rule",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "gaussian-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adaptive-quadrature",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "monte-carlo-integration",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "quasi-monte-carlo",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "importance-sampling",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "richardson-extrapolation",
      "name": "Richardson extrapolation",
      "description": "Cancels a leading discretization-error term using two resolutions.",
      "example": "Checking mesh and time-step convergence.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Requires an asymptotic convergence regime and a valid order estimate; shocks and inconsistent grids can invalidate the assumption.",
      "google_search": "https://www.google.com/search?q=Richardson+extrapolation+numerical+method",
      "math": {
        "equation": "u_*\\approx u_{h/r}+\\frac{u_{h/r}-u_h}{r^p-1}",
        "tex": "u_*\\approx u_{h/r}+\\frac{u_{h/r}-u_h}{r^p-1}",
        "derivation": [
          "Assume a leading error term proportional to h to the power p.",
          "Write that expansion at two consistently refined resolutions.",
          "Eliminate the leading coefficient."
        ],
        "assumptions": "Requires an asymptotic convergence regime and a valid order estimate; shocks and inconsistent grids can invalidate the assumption."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Checking mesh and time-step convergence.",
        "implementation": {
          "name": "Post-processing refinement study",
          "url": "https://www.grc.nasa.gov/www/wind/valid/tutorial/spatconv.html",
          "note": "Implementation route: compare systematically refined solver runs and evaluate the error model; no particular solver is certified by the estimate."
        }
      },
      "references": [
        {
          "title": "NASA spatial convergence tutorial",
          "url": "https://www.grc.nasa.gov/www/wind/valid/tutorial/spatconv.html"
        }
      ],
      "recommendations": [
        {
          "name": "Time-dependent DFT (TDDFT)",
          "url": "https://iicsm.org/physicalmodeling/#time-dependent-dft-tddft",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Evolves electron density to approximate excited-state response."
        },
        {
          "name": "Dissipative particle dynamics (DPD)",
          "url": "https://iicsm.org/physicalmodeling/#dissipative-particle-dynamics-dpd",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Combines conservative, dissipative and random pair forces."
        },
        {
          "name": "Brownian dynamics",
          "url": "https://iicsm.org/physicalmodeling/#brownian-dynamics",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Uses overdamped stochastic motion for particles in a surrounding medium."
        },
        {
          "name": "Langevin dynamics",
          "url": "https://iicsm.org/physicalmodeling/#langevin-dynamics",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Adds friction and random forces to a dynamical model."
        },
        {
          "name": "Kinetic Monte Carlo",
          "url": "https://iicsm.org/physicalmodeling/#kinetic-monte-carlo",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Samples transitions between states using event rates."
        },
        {
          "name": "Potts grain-growth model",
          "url": "https://iicsm.org/physicalmodeling/#potts-grain-growth-model",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Represents grain orientations as discrete lattice states."
        },
        {
          "name": "Discrete dislocation dynamics",
          "url": "https://iicsm.org/physicalmodeling/#discrete-dislocation-dynamics",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Tracks line defects and their interactions."
        },
        {
          "name": "Geometrical optics",
          "url": "https://iicsm.org/physicalmodeling/#geometrical-optics",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Approximates light propagation as rays."
        },
        {
          "name": "Point reactor kinetics",
          "url": "https://iicsm.org/physicalmodeling/#point-reactor-kinetics",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Approximates time-dependent neutron population with delayed-neutron groups."
        },
        {
          "name": "Bateman decay-chain model",
          "url": "https://iicsm.org/physicalmodeling/#bateman-decay-chain-model",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Evolves coupled radioactive parent and daughter populations."
        },
        {
          "name": "Newtonian gravitational N-body model",
          "url": "https://iicsm.org/physicalmodeling/#newtonian-gravitational-n-body-model",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Evolves masses under mutual inverse-square attraction."
        },
        {
          "name": "Finite element method (FEM / FEA)",
          "url": "https://iicsm.org/physicalmodeling/#finite-element-method-fem-fea",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Approximates fields with basis functions over elements."
        },
        {
          "name": "Finite volume method (FVM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-volume-method-fvm",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Discretizes conservation laws using fluxes across control-volume boundaries."
        },
        {
          "name": "Finite difference method (FDM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-method-fdm",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Approximates derivatives with differences on a grid."
        },
        {
          "name": "Boundary element method (BEM)",
          "url": "https://iicsm.org/physicalmodeling/#boundary-element-method-bem",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Recasts suitable field problems as boundary integral equations."
        },
        {
          "name": "Spectral method",
          "url": "https://iicsm.org/physicalmodeling/#spectral-method",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Represents fields with global or element-wise high-order basis expansions."
        },
        {
          "name": "Smoothed particle hydrodynamics (SPH)",
          "url": "https://iicsm.org/physicalmodeling/#smoothed-particle-hydrodynamics-sph",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Approximates continuum fields through moving particles and kernels."
        },
        {
          "name": "Discrete element method (DEM)",
          "url": "https://iicsm.org/physicalmodeling/#discrete-element-method-dem",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Evolves contacting discrete bodies with contact laws."
        },
        {
          "name": "Lattice Boltzmann method (LBM)",
          "url": "https://iicsm.org/physicalmodeling/#lattice-boltzmann-method-lbm",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Evolves discrete velocity populations to recover suitable macroscopic flow equations."
        },
        {
          "name": "Direct numerical simulation (DNS)",
          "url": "https://iicsm.org/physicalmodeling/#direct-numerical-simulation-dns",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Resolves turbulence without a turbulence closure for the selected flow equations."
        },
        {
          "name": "Direct simulation Monte Carlo (DSMC)",
          "url": "https://iicsm.org/physicalmodeling/#direct-simulation-monte-carlo-dsmc",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Samples particle motion and collisions in a rarefied gas."
        },
        {
          "name": "Particle-in-cell (PIC)",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-cell-pic",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Couples moving computational particles to fields on a mesh."
        },
        {
          "name": "Finite-difference time-domain (FDTD)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-time-domain-fdtd",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Advances discretized electromagnetic fields in time."
        },
        {
          "name": "Material point method (MPM)",
          "url": "https://iicsm.org/physicalmodeling/#material-point-method-mpm",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Transfers particle-carried material state to a computational grid."
        },
        {
          "name": "QM/MM coupling",
          "url": "https://iicsm.org/physicalmodeling/#qm-mm-coupling",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Combines quantum mechanics in a selected region with molecular mechanics around it."
        },
        {
          "name": "Atomistic–continuum coupling",
          "url": "https://iicsm.org/physicalmodeling/#atomisticcontinuum-coupling",
          "role": "Verification",
          "note": "For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Connects particle-level and continuum descriptions."
        },
        {
          "name": "Green-Kubo viscosity relation",
          "url": "https://iicsm.org/physicalmodeling/#green-kubo-viscosity-relation",
          "role": "Verification",
          "note": "Check time-step or correlation-integration refinement where a regular error expansion holds; it does not remove statistical trajectory noise.",
          "context": "Obtains equilibrium shear viscosity from the time integral of microscopic shear-stress fluctuations."
        },
        {
          "name": "Einstein crystal heat-capacity model",
          "url": "https://iicsm.org/physicalmodeling/#einstein-crystal-heat-capacity-model",
          "role": "Verification",
          "note": "Use fitting for an Einstein temperature, interpolation for tabulated responses, or refinement to check derived quantities; the displayed formula itself is explicit. For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Treats crystal vibrations as independent quantum oscillators at a single frequency."
        },
        {
          "name": "Harmonic lattice dynamics",
          "url": "https://iicsm.org/physicalmodeling/#harmonic-lattice-dynamics",
          "role": "Verification",
          "note": "Fit force constants with SVD, cross-check real-time harmonic motion with Verlet, and test displacement/time-step refinement. Obtain phonon frequencies with a Hermitian dynamical-matrix eigensolver. For systematically refined computations in an established asymptotic error regime; use consistent geometry and boundary data.",
          "context": "Computes phonon modes from a quadratic expansion of crystal potential energy."
        }
      ],
      "relationships": [
        {
          "target": "grid-convergence-index",
          "type": "Provides error model for",
          "note": "The Richardson-style estimate is multiplied by a documented safety factor."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "grid-convergence-index",
      "name": "Grid convergence index",
      "description": "Reports a safety-factored estimate of discretization uncertainty.",
      "example": "Documenting numerical uncertainty in CFD outputs.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Relative form fails near zero output; nonmonotonic convergence and coupled grid/time errors need special analysis.",
      "google_search": "https://www.google.com/search?q=Grid+convergence+index+numerical+method",
      "math": {
        "equation": "\\mathrm{GCI}_{\\mathrm{fine}}=F_s\\frac{|(u_f-u_c)/u_f|}{r^p-1}",
        "tex": "\\mathrm{GCI}_{\\mathrm{fine}}=F_s\\frac{|(u_f-u_c)/u_f|}{r^p-1}",
        "derivation": [
          "Estimate the observed convergence order using a systematic refinement study.",
          "Use a Richardson-style fine-grid error estimate.",
          "Apply the chosen safety factor and report assumptions."
        ],
        "assumptions": "Relative form fails near zero output; nonmonotonic convergence and coupled grid/time errors need special analysis."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Documenting numerical uncertainty in CFD outputs.",
        "implementation": {
          "name": "Grid-convergence post-processing",
          "url": "https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8298.pdf",
          "note": "Implementation route: compute the index from a documented systematic refinement study; the report explains numerical verification practices."
        }
      },
      "references": [
        {
          "title": "NIST IR 8298: CFD verification and uncertainty",
          "url": "https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8298.pdf"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        },
        {
          "name": "Euler flow model",
          "url": "https://iicsm.org/physicalmodeling/#euler-flow-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Neglects viscous stresses in compressible or incompressible flow."
        },
        {
          "name": "Stokes creeping-flow model",
          "url": "https://iicsm.org/physicalmodeling/#stokes-creeping-flow-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Neglects inertial terms relative to viscosity."
        },
        {
          "name": "Boundary-layer model",
          "url": "https://iicsm.org/physicalmodeling/#boundary-layer-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Resolves thin near-wall regions with scale-based simplifications."
        },
        {
          "name": "Lubrication approximation",
          "url": "https://iicsm.org/physicalmodeling/#lubrication-approximation",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Simplifies viscous flow in thin gaps."
        },
        {
          "name": "Oldroyd-B model",
          "url": "https://iicsm.org/physicalmodeling/#oldroyd-b-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Combines solvent viscosity with an elastic polymer stress."
        },
        {
          "name": "Saint-Venant shallow-water model",
          "url": "https://iicsm.org/physicalmodeling/#saint-venant-shallow-water-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Depth-averages mass and momentum in free-surface flow."
        },
        {
          "name": "Kinematic-wave routing",
          "url": "https://iicsm.org/physicalmodeling/#kinematic-wave-routing",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Simplifies flow routing by approximating dominant slope and friction balance."
        },
        {
          "name": "Groundwater flow model",
          "url": "https://iicsm.org/physicalmodeling/#groundwater-flow-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Combines water conservation with porous-flow relations."
        },
        {
          "name": "Advection–dispersion groundwater model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondispersion-groundwater-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Represents contaminant transport and spreading through an aquifer."
        },
        {
          "name": "Numerical weather prediction",
          "url": "https://iicsm.org/physicalmodeling/#numerical-weather-prediction",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Evolves atmospheric dynamics and thermodynamics from an analyzed initial state."
        },
        {
          "name": "General circulation model (GCM)",
          "url": "https://iicsm.org/physicalmodeling/#general-circulation-model-gcm",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Represents large-scale atmospheric or oceanic circulation."
        },
        {
          "name": "Earth system model (ESM)",
          "url": "https://iicsm.org/physicalmodeling/#earth-system-model-esm",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Couples atmosphere, ocean, land, ice and biogeochemical processes."
        },
        {
          "name": "Ocean circulation model",
          "url": "https://iicsm.org/physicalmodeling/#ocean-circulation-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Evolves ocean momentum, temperature and salinity."
        },
        {
          "name": "Sea-ice thermodynamic-dynamic model",
          "url": "https://iicsm.org/physicalmodeling/#sea-ice-thermodynamic-dynamic-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Couples freezing, melting and ice motion."
        },
        {
          "name": "Elastic seismic-wave model",
          "url": "https://iicsm.org/physicalmodeling/#elastic-seismic-wave-model",
          "role": "Discretization uncertainty",
          "note": "For a systematic grid-refinement study with a justified observed order and safety factor; it is not physical validation.",
          "context": "Propagates elastic disturbances through Earth materials."
        }
      ],
      "relationships": [
        {
          "target": "richardson-extrapolation",
          "type": "Builds uncertainty estimate from",
          "note": "The Richardson-style estimate is multiplied by a documented safety factor."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "method-of-manufactured-solutions",
      "name": "Method of manufactured solutions",
      "description": "Tests a PDE implementation using a constructed exact solution.",
      "example": "Code verification for PDE and multiphysics solvers.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Tests implementation accuracy, not whether the governing physical model describes reality.",
      "google_search": "https://www.google.com/search?q=Method+of+manufactured+solutions+numerical+method",
      "math": {
        "equation": "Lu=f; u=u_m\\ \\Rightarrow\\ f_m=Lu_m",
        "tex": "Lu=f; u=u_m\\ \\Rightarrow\\ f_m=Lu_m",
        "derivation": [
          "Choose a smooth analytic manufactured solution.",
          "Substitute it into the governing operator to compute forcing and boundary data.",
          "Solve and verify that error decreases at the expected rate."
        ],
        "assumptions": "Tests implementation accuracy, not whether the governing physical model describes reality."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Code verification for PDE and multiphysics solvers.",
        "implementation": {
          "name": "MOOSE MMS tools",
          "url": "https://mooseframework.inl.gov/python/mms.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "MOOSE method of manufactured solutions",
          "url": "https://mooseframework.inl.gov/python/mms.html"
        }
      ],
      "recommendations": [
        {
          "name": "Cahn–Hilliard model",
          "url": "https://iicsm.org/physicalmodeling/#cahnhilliard-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Evolves a conserved composition field through chemical-potential gradients."
        },
        {
          "name": "Allen–Cahn model",
          "url": "https://iicsm.org/physicalmodeling/#allencahn-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Evolves a nonconserved order parameter toward lower free energy."
        },
        {
          "name": "Phase-field crystal model",
          "url": "https://iicsm.org/physicalmodeling/#phase-field-crystal-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Uses a periodic density-like field to represent crystalline ordering."
        },
        {
          "name": "Fickian diffusion",
          "url": "https://iicsm.org/physicalmodeling/#fickian-diffusion",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Relates diffusive flux to concentration gradients."
        },
        {
          "name": "Maxwell–Stefan diffusion",
          "url": "https://iicsm.org/physicalmodeling/#maxwellstefan-diffusion",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Represents multicomponent diffusion through interspecies friction."
        },
        {
          "name": "Advection–diffusion–reaction model",
          "url": "https://iicsm.org/physicalmodeling/#advectiondiffusionreaction-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Combines bulk transport, diffusion and reaction sources."
        },
        {
          "name": "Pennes bioheat model",
          "url": "https://iicsm.org/physicalmodeling/#pennes-bioheat-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Adds perfusion and metabolic heat to tissue heat transfer."
        },
        {
          "name": "Reaction–diffusion morphogenesis model",
          "url": "https://iicsm.org/physicalmodeling/#reactiondiffusion-morphogenesis-model",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Couples reacting substances with diffusion."
        },
        {
          "name": "Finite element method (FEM / FEA)",
          "url": "https://iicsm.org/physicalmodeling/#finite-element-method-fem-fea",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Approximates fields with basis functions over elements."
        },
        {
          "name": "Finite volume method (FVM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-volume-method-fvm",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Discretizes conservation laws using fluxes across control-volume boundaries."
        },
        {
          "name": "Finite difference method (FDM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-method-fdm",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Approximates derivatives with differences on a grid."
        },
        {
          "name": "Boundary element method (BEM)",
          "url": "https://iicsm.org/physicalmodeling/#boundary-element-method-bem",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Recasts suitable field problems as boundary integral equations."
        },
        {
          "name": "Spectral method",
          "url": "https://iicsm.org/physicalmodeling/#spectral-method",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Represents fields with global or element-wise high-order basis expansions."
        },
        {
          "name": "Direct numerical simulation (DNS)",
          "url": "https://iicsm.org/physicalmodeling/#direct-numerical-simulation-dns",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Resolves turbulence without a turbulence closure for the selected flow equations."
        },
        {
          "name": "Finite-difference time-domain (FDTD)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-time-domain-fdtd",
          "role": "Code verification",
          "note": "For an accessible differential operator, construct compatible forcing and boundaries; this tests implementation rather than physical realism.",
          "context": "Advances discretized electromagnetic fields in time."
        }
      ],
      "relationships": [
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "residual-based-error-estimation",
      "name": "Residual-based error estimation",
      "description": "Uses equation and interface residuals to guide error assessment.",
      "example": "Adaptive refinement in finite-element simulation.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Schematic elliptic estimator; reliability constants and boundary terms depend on assumptions and discretization.",
      "google_search": "https://www.google.com/search?q=Residual-based+error+estimation+numerical+method",
      "math": {
        "equation": "\\eta_K^2=h_K^2\\lVert f+\\nabla\\cdot(k\\nabla u_h)\\rVert_K^2+\\sum_{e\\subset\\partial K}h_e\\lVert J_e\\rVert_e^2",
        "tex": "\\eta_K^2=h_K^2\\lVert f+\\nabla\\cdot(k\\nabla u_h)\\rVert_K^2+\\sum_{e\\subset\\partial K}h_e\\lVert J_e\\rVert_e^2",
        "derivation": [
          "Measure how strongly the approximate solution violates the PDE inside cells.",
          "Add flux-jump contributions on interfaces.",
          "Combine with problem-dependent weights and refine where indicators are large."
        ],
        "assumptions": "Schematic elliptic estimator; reliability constants and boundary terms depend on assumptions and discretization."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Adaptive refinement in finite-element simulation.",
        "implementation": {
          "name": "MFEM error-estimator/adaptivity framework",
          "url": "https://mfem.org/examples/",
          "note": "MFEM supports estimator-driven adaptivity; the displayed residual form is schematic and is not a claim about the exact estimator selected by an example."
        }
      },
      "references": [
        {
          "title": "MFEM adaptive refinement examples",
          "url": "https://mfem.org/examples/"
        }
      ],
      "recommendations": [
        {
          "name": "Fourier heat conduction",
          "url": "https://iicsm.org/physicalmodeling/#fourier-heat-conduction",
          "role": "Spatial verification",
          "note": "For a suitable PDE discretization with an estimator derived for its operator; a small solver residual alone is not a full error bound.",
          "context": "Relates conductive heat flux to temperature gradient."
        }
      ],
      "relationships": [
        {
          "target": "adaptive-mesh-refinement",
          "type": "Can guide",
          "note": "Local residual indicators can mark cells for refinement."
        },
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "von-neumann-stability-analysis",
      "name": "Von Neumann stability analysis",
      "description": "Tests Fourier-mode amplification for linear grid schemes.",
      "example": "Selecting stable explicit diffusion and wave time steps.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Typically periodic or infinite uniform grids; boundary effects and nonlinear stability need separate analysis.",
      "google_search": "https://www.google.com/search?q=Von+Neumann+stability+analysis+numerical+method",
      "math": {
        "equation": "u_j^n=G^n e^{ij\\theta}; |G(\\theta)|\\le1",
        "tex": "u_j^n=G^n e^{ij\\theta}; |G(\\theta)|\\le1",
        "derivation": [
          "Insert a Fourier mode into a linear constant-coefficient difference scheme.",
          "Solve for its amplification factor.",
          "Require bounded amplification for every resolvable wave number."
        ],
        "assumptions": "Typically periodic or infinite uniform grids; boundary effects and nonlinear stability need separate analysis."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Selecting stable explicit diffusion and wave time steps.",
        "implementation": {
          "name": "Symbolic or scripted stability analysis",
          "url": "https://fncbook.com/absstab-diffusion/",
          "note": "Implementation route: derive the amplification factor and evaluate its magnitude over wave numbers; this is an analysis procedure rather than a solver product."
        }
      },
      "references": [
        {
          "title": "Fundamentals of Numerical Computation: absolute stability",
          "url": "https://fncbook.com/absstab-diffusion/"
        }
      ],
      "recommendations": [
        {
          "name": "Transient heat equation",
          "url": "https://iicsm.org/physicalmodeling/#transient-heat-equation",
          "role": "Scheme analysis",
          "note": "For a linearized constant-coefficient uniform-grid subproblem; boundaries and nonlinear effects need separate checks.",
          "context": "Balances thermal storage, conduction and heat sources."
        }
      ],
      "relationships": [
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "condition-number-analysis",
      "name": "Condition-number analysis",
      "description": "Measures how perturbations in inputs can affect a computed solution.",
      "example": "Diagnosing sensitive inverse problems and poorly scaled matrix systems.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "The bound shown concerns right-hand-side perturbations; conditioning is a problem property, distinct from algorithm stability.",
      "google_search": "https://www.google.com/search?q=Condition-number+analysis+numerical+method",
      "math": {
        "equation": "\\kappa(A)=\\lVert A\\rVert\\lVert A^{-1}\\rVert; \\frac{\\lVert\\delta x\\rVert}{\\lVert x\\rVert}\\le\\kappa(A)\\frac{\\lVert\\delta b\\rVert}{\\lVert b\\rVert}",
        "tex": "\\kappa(A)=\\lVert A\\rVert\\lVert A^{-1}\\rVert; \\frac{\\lVert\\delta x\\rVert}{\\lVert x\\rVert}\\le\\kappa(A)\\frac{\\lVert\\delta b\\rVert}{\\lVert b\\rVert}",
        "derivation": [
          "Perturb a nonsingular linear system with fixed A.",
          "Bound the solution change using operator norms.",
          "Compare relative input and output perturbations."
        ],
        "assumptions": "The bound shown concerns right-hand-side perturbations; conditioning is a problem property, distinct from algorithm stability."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Diagnosing sensitive inverse problems and poorly scaled matrix systems.",
        "implementation": {
          "name": "NumPy linalg.cond",
          "url": "https://numpy.org/doc/stable/reference/generated/numpy.linalg.cond.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "NumPy matrix condition number",
          "url": "https://numpy.org/doc/stable/reference/generated/numpy.linalg.cond.html"
        }
      ],
      "recommendations": [
        {
          "name": "Tight-binding model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents electronic states with localized orbitals and hopping parameters."
        },
        {
          "name": "Hubbard model",
          "url": "https://iicsm.org/physicalmodeling/#hubbard-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Models competition between particle hopping and local electron interactions."
        },
        {
          "name": "Heisenberg spin model",
          "url": "https://iicsm.org/physicalmodeling/#heisenberg-spin-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents interacting localized magnetic moments."
        },
        {
          "name": "Ising model",
          "url": "https://iicsm.org/physicalmodeling/#ising-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents discrete spins with interaction energies."
        },
        {
          "name": "AC power-flow model",
          "url": "https://iicsm.org/physicalmodeling/#ac-power-flow-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Balances complex power on an electrical network."
        },
        {
          "name": "DC power-flow approximation",
          "url": "https://iicsm.org/physicalmodeling/#dc-power-flow-approximation",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Linearizes active-power flow under restrictive grid assumptions."
        },
        {
          "name": "State-space model",
          "url": "https://iicsm.org/physicalmodeling/#state-space-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents system evolution with internal states, inputs and outputs."
        },
        {
          "name": "Transfer-function model",
          "url": "https://iicsm.org/physicalmodeling/#transfer-function-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Relates linear time-invariant input and output in the transform domain."
        },
        {
          "name": "Bond-graph model",
          "url": "https://iicsm.org/physicalmodeling/#bond-graph-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents energy exchange across mechanical, electrical and other domains."
        },
        {
          "name": "System-dynamics stock-flow model",
          "url": "https://iicsm.org/physicalmodeling/#system-dynamics-stock-flow-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents accumulated quantities and their rates of change."
        },
        {
          "name": "Markov state model",
          "url": "https://iicsm.org/physicalmodeling/#markov-state-model",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents probabilistic transitions between a finite set of states."
        },
        {
          "name": "Kalman state estimator",
          "url": "https://iicsm.org/physicalmodeling/#kalman-state-estimator",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Combines a dynamical model with noisy observations using covariance updates."
        },
        {
          "name": "Finite element method (FEM / FEA)",
          "url": "https://iicsm.org/physicalmodeling/#finite-element-method-fem-fea",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Approximates fields with basis functions over elements."
        },
        {
          "name": "Finite volume method (FVM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-volume-method-fvm",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Discretizes conservation laws using fluxes across control-volume boundaries."
        },
        {
          "name": "Finite difference method (FDM)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-method-fdm",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Approximates derivatives with differences on a grid."
        },
        {
          "name": "Boundary element method (BEM)",
          "url": "https://iicsm.org/physicalmodeling/#boundary-element-method-bem",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Recasts suitable field problems as boundary integral equations."
        },
        {
          "name": "Spectral method",
          "url": "https://iicsm.org/physicalmodeling/#spectral-method",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Represents fields with global or element-wise high-order basis expansions."
        },
        {
          "name": "Smoothed particle hydrodynamics (SPH)",
          "url": "https://iicsm.org/physicalmodeling/#smoothed-particle-hydrodynamics-sph",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Approximates continuum fields through moving particles and kernels."
        },
        {
          "name": "Discrete element method (DEM)",
          "url": "https://iicsm.org/physicalmodeling/#discrete-element-method-dem",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Evolves contacting discrete bodies with contact laws."
        },
        {
          "name": "Lattice Boltzmann method (LBM)",
          "url": "https://iicsm.org/physicalmodeling/#lattice-boltzmann-method-lbm",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Evolves discrete velocity populations to recover suitable macroscopic flow equations."
        },
        {
          "name": "Direct numerical simulation (DNS)",
          "url": "https://iicsm.org/physicalmodeling/#direct-numerical-simulation-dns",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Resolves turbulence without a turbulence closure for the selected flow equations."
        },
        {
          "name": "Direct simulation Monte Carlo (DSMC)",
          "url": "https://iicsm.org/physicalmodeling/#direct-simulation-monte-carlo-dsmc",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Samples particle motion and collisions in a rarefied gas."
        },
        {
          "name": "Particle-in-cell (PIC)",
          "url": "https://iicsm.org/physicalmodeling/#particle-in-cell-pic",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Couples moving computational particles to fields on a mesh."
        },
        {
          "name": "Finite-difference time-domain (FDTD)",
          "url": "https://iicsm.org/physicalmodeling/#finite-difference-time-domain-fdtd",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Advances discretized electromagnetic fields in time."
        },
        {
          "name": "Material point method (MPM)",
          "url": "https://iicsm.org/physicalmodeling/#material-point-method-mpm",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Transfers particle-carried material state to a computational grid."
        },
        {
          "name": "Gaussian-process surrogate",
          "url": "https://iicsm.org/physicalmodeling/#gaussian-process-surrogate",
          "role": "Sensitivity diagnosis",
          "note": "For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Predicts responses with a probabilistic function model fitted to samples."
        },
        {
          "name": "Tight-binding electronic model",
          "url": "https://iicsm.org/physicalmodeling/#tight-binding-electronic-model",
          "role": "Sensitivity diagnosis",
          "note": "Use SVD on H(k)-E I to check null states, condition analysis to assess sensitivity, and quadrature for Brillouin-zone averages. General bands require a Hermitian eigensolver, not SVD singular values interpreted as signed energies. For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Builds crystal electronic bands from localized orbitals and intersite hopping."
        },
        {
          "name": "Nearly-free-electron model",
          "url": "https://iicsm.org/physicalmodeling/#nearly-free-electron-model",
          "role": "Sensitivity diagnosis",
          "note": "Use SVD for null-state diagnostics, sensitivity checks for small gaps, and quadrature for band averages. Diagonalize the Hermitian plane-wave Hamiltonian for actual energies. For assembled linear systems or fitting matrices; separate problem conditioning from algorithm stability.",
          "context": "Predicts band gaps by perturbing free electrons with a weak periodic potential."
        }
      ],
      "relationships": [
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "complex-step-differentiation",
      "name": "Complex-step differentiation",
      "description": "Estimates an analytic derivative without real subtractive cancellation.",
      "example": "Checking gradients in smooth engineering optimization code.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Requires holomorphic operations and complex-compatible code; absolute values, branches, or discarded imaginary parts can break it.",
      "google_search": "https://www.google.com/search?q=Complex-step+differentiation+numerical+method",
      "math": {
        "equation": "f'(x)\\approx\\frac{\\operatorname{Im}f(x+ih)}h",
        "tex": "f'(x)\\approx\\frac{\\operatorname{Im}f(x+ih)}h",
        "derivation": [
          "Expand an analytic function in a complex Taylor series.",
          "Extract the imaginary part.",
          "Divide by the perturbation to recover the derivative with second-order truncation error."
        ],
        "assumptions": "Requires holomorphic operations and complex-compatible code; absolute values, branches, or discarded imaginary parts can break it."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Checking gradients in smooth engineering optimization code.",
        "implementation": {
          "name": "SciPy optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "SciPy: optimize.least_squares",
          "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html"
        }
      ],
      "recommendations": [
        {
          "name": "Pacejka tire model",
          "url": "https://iicsm.org/physicalmodeling/#pacejka-tire-model",
          "role": "Derivative verification",
          "note": "Only for smooth analytic, complex-compatible code paths; clipping, absolute values, and phase switches can invalidate it.",
          "context": "Uses empirical nonlinear formulas for tire forces."
        }
      ],
      "relationships": [
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "adjoint-sensitivity-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    },
    {
      "id": "adjoint-sensitivity-analysis",
      "name": "Adjoint sensitivity analysis",
      "description": "Computes gradients of scalar outputs with respect to many parameters.",
      "example": "Aerodynamic shape optimization and inverse design.",
      "discipline": "Error analysis & verification",
      "scale": "Verify & assess",
      "kind": "Verification / analysis",
      "limitations": "Discrete formulation shown; consistent boundary conditions, differentiation, and solver tolerances are essential.",
      "google_search": "https://www.google.com/search?q=Adjoint+sensitivity+analysis+numerical+method",
      "math": {
        "equation": "R(u,p)=0; R_u^{\\mathsf T}\\lambda=J_u^{\\mathsf T}; \\frac{dJ}{dp}=J_p-\\lambda^{\\mathsf T}R_p",
        "tex": "R(u,p)=0; R_u^{\\mathsf T}\\lambda=J_u^{\\mathsf T}; \\frac{dJ}{dp}=J_p-\\lambda^{\\mathsf T}R_p",
        "derivation": [
          "Differentiate the state residual and objective.",
          "Introduce an adjoint variable to eliminate the expensive state sensitivity.",
          "Solve one adjoint system per scalar objective and assemble parameter gradients."
        ],
        "assumptions": "Discrete formulation shown; consistent boundary conditions, differentiation, and solver tolerances are essential."
      },
      "application": {
        "area": "Error analysis & verification",
        "product_examples": "Aerodynamic shape optimization and inverse design.",
        "implementation": {
          "name": "dolfin-adjoint",
          "url": "https://www.dolfin-adjoint.org/en/latest/documentation/maths/index.html",
          "note": "Named software documentation describes this method or a directly relevant implementation component; verify the selected routine and its assumptions."
        }
      },
      "references": [
        {
          "title": "dolfin-adjoint mathematical background",
          "url": "https://www.dolfin-adjoint.org/en/latest/documentation/maths/index.html"
        }
      ],
      "recommendations": [
        {
          "name": "Navier–Stokes model",
          "url": "https://iicsm.org/physicalmodeling/#navierstokes-model",
          "role": "Many-parameter gradients",
          "note": "For a differentiable discretized state problem and scalar objectives; use consistent derivatives, boundary conditions, and solver tolerances.",
          "context": "Conserves mass and momentum for a viscous continuum fluid."
        },
        {
          "name": "Model predictive control",
          "url": "https://iicsm.org/physicalmodeling/#model-predictive-control",
          "role": "Many-parameter gradients",
          "note": "For a differentiable discretized state problem and scalar objectives; use consistent derivatives, boundary conditions, and solver tolerances.",
          "context": "Optimizes future actions using a predictive model and constraints."
        }
      ],
      "relationships": [
        {
          "target": "newton-optimization",
          "type": "Can supply gradients to",
          "note": "An adjoint supplies objective sensitivities; Hessian information requires additional work."
        },
        {
          "target": "richardson-extrapolation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "grid-convergence-index",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "method-of-manufactured-solutions",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "residual-based-error-estimation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "von-neumann-stability-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "condition-number-analysis",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        },
        {
          "target": "complex-step-differentiation",
          "type": "Same discipline",
          "note": "Catalog grouping; this does not imply a derivation or equivalent assumptions."
        }
      ]
    }
  ]
}