hypredrive User Manual¶
hypredrive configures and runs hypre solvers for sparse linear systems. Start with Introduction and Installation. Use Input Structure (YAML) as the YAML reference. The example chapters show driver and library workflows.
Contents:
- Introduction
- Installation
- Input Structure (YAML)
- Driver Examples (hypredrive-cli)
- Exploring the Input Schema (
-h/--help) - CLI Overrides (
-a/--args) - Example 1: Minimal configuration
- Example 2: Parallel run with full AMG configuration
- Example 3: Minimal multigrid reduction strategy
- Example 4: Advanced multigrid reduction strategy
- Example 5: Spreading input parameters in multiple files
- Example 6: Full eigenspectrum computation (single rank)
- Example 7: Solving a sequence of linear systems
- Example 8: Multiple preconditioner variants in one YAML
- Exploring the Input Schema (
- Library Examples (libHYPREDRV)
- Examples at a Glance
- Overview of Typical Steps
- Example 1: Laplace’s equation
- Example 2: Mixed Darcy Flow
- Example 3: Linear Elasticity
- Governing Equations (Small-Strain Isotropic Elasticity)
- Variational Formulation
- Discretization: Q1 Hexahedra on a Cartesian Mesh
- Linear System Creation
- Near-Nullspace and Rigid Body Modes (RBMs)
- Linear Solver Setup
- Solver Comparison
- Visualizing the Solution
- Reproducible Run
- Two-Material Bar (Mixed u-p, Near-Incompressible Top)
- B-bar vs Mixed u-p: Solvability at the Near-Incompressible Limit
- Example 4: Nonlinear Heat Flow
- Example 5: Convection-Diffusion
- Example 6: Lid-Driven Cavity (Navier-Stokes)
- Governing Equations (Incompressible Navier-Stokes)
- Geometry and Boundary Conditions
- Numerical Discretization
- Parallel Partitioning
- Linear System Creation
- State Vector Management for Time-Stepping
- Linear Solver Configuration
- Time Stepping and Newton Convergence
- Visualizing the Solution
- Validation Results
- Reproducible Run
- Example 7: Definite curl-curl (AMS)
- Governing Equations (Definite Maxwell)
- Variational Formulation
- Discretization: Lowest-Order Nedelec (Edge) Elements
- Manufactured Solution and Error Measurement
- Auxiliary-Space Inputs: the Discrete de Rham Complex
- Linear System Creation
- Solution Visualization
- Mesh Refinement (Discretization Accuracy)
- Coefficient Robustness
- Example 8: Definite grad-div (ADS)
- Governing Equations (Definite grad-div)
- Variational Formulation
- Discretization: Lowest-Order Raviart-Thomas (Face) Elements
- Manufactured Solution and Error Measurement
- Auxiliary-Space Inputs: the Full de Rham Complex
- Linear System Creation
- Solution Visualization
- Mesh Refinement (Discretization Accuracy)
- Coefficient Robustness
- Performance and Scaling
- Interfaces
- API Reference
- Why use
libHYPREDRV? - Usage Notes
- Reference by Topic
- Detailed API Reference
HYPREDRV_tHYPREDRV_Initialize()HYPREDRV_Finalize()HYPREDRV_ErrorCodeDescribe()HYPREDRV_ErrorCodeClear()HYPREDRV_ErrorInvalidValue()HYPREDRV_SafeCallHandleError()HYPREDRV_Create()HYPREDRV_Destroy()HYPREDRV_PrintLibInfo()HYPREDRV_PrintSystemInfo()HYPREDRV_PrintExitInfo()HYPREDRV_InputArgsParse()HYPREDRV_SetLibraryMode()HYPREDRV_ObjectSetName()HYPREDRV_InputArgsGetWarmup()HYPREDRV_InputArgsGetNumRepetitions()HYPREDRV_InputArgsGetNumLinearSystems()HYPREDRV_InputArgsGetNumPreconVariants()HYPREDRV_InputArgsSetPreconVariant()HYPREDRV_InputArgsSetPreconPreset()HYPREDRV_InputArgsSetSolverPreset()HYPREDRV_SolverPresetRegister()HYPREDRV_PreconPresetRegister()HYPREDRV_LinearSystemBuild()HYPREDRV_LinearSystemReadMatrix()HYPREDRV_LinearSystemSetMatrix()HYPREDRV_LinearSystemSetDiscreteGradient()HYPREDRV_LinearSystemSetDiscreteCurl()HYPREDRV_LinearSystemSetCoordinates()HYPREDRV_LinearSystemSetRHS()HYPREDRV_LinearSystemSetMatrixFromCSR()HYPREDRV_LinearSystemSetRHSFromArray()HYPREDRV_LinearSystemSetInitialGuess()HYPREDRV_LinearSystemSetSolution()HYPREDRV_LinearSystemSetReferenceSolution()HYPREDRV_LinearSystemResetInitialGuess()HYPREDRV_LinearSystemSetPrecMatrix()HYPREDRV_LinearSystemSetDofmap()HYPREDRV_LinearSystemSetInterleavedDofmap()HYPREDRV_LinearSystemSetContiguousDofmap()HYPREDRV_LinearSystemReadDofmap()HYPREDRV_LinearSystemPrintDofmap()HYPREDRV_LinearSystemPrint()HYPREDRV_LinearSystemSetNearNullSpace()HYPREDRV_LinearSystemSetCoarseSchur()HYPREDRV_LinearSystemSetNullSpace()HYPREDRV_LinearSystemGetSolutionValues()HYPREDRV_LinearSystemGetSolutionLength()HYPREDRV_LinearSystemGetSolutionNorm()HYPREDRV_LinearSystemGetSolution()HYPREDRV_LinearSystemGetRHSValues()HYPREDRV_LinearSystemGetRHS()HYPREDRV_LinearSystemGetMatrix()HYPREDRV_StateVectorSet()HYPREDRV_StateVectorGetValues()HYPREDRV_StateVectorCopy()HYPREDRV_StateVectorUpdateAll()HYPREDRV_StateVectorApplyCorrection()HYPREDRV_PreconCreate()HYPREDRV_LinearSolverCreate()HYPREDRV_PreconSetup()HYPREDRV_LinearSolverSetup()HYPREDRV_LinearSolverApply()HYPREDRV_PreconApply()HYPREDRV_PreconDestroy()HYPREDRV_LinearSolverDestroy()HYPREDRV_StatsPrint()HYPREDRV_AnnotateBegin()HYPREDRV_AnnotateEnd()HYPREDRV_AnnotateLevelBegin()HYPREDRV_AnnotateLevelEnd()HYPREDRV_LinearSystemComputeEigenspectrum()HYPREDRV_LinearSolverGetNumIter()HYPREDRV_LinearSolverGetConverged()HYPREDRV_LinearSolverGetFinalRelativeResidualNorm()HYPREDRV_LinearSolverGetSetupTime()HYPREDRV_LinearSolverGetSolveTime()HYPREDRV_StatsLevelGetCount()HYPREDRV_StatsLevelGetEntry()HYPREDRV_StatsLevelPrint()
- Why use
- Developer Notes
- Utilities
- Frequently Asked Questions (FAQ)
- What is hypredrive?
- How do I install hypredrive?
- Which linear system types can hypredrive solve?
- How do I configure hypredrive for my specific problem?
- How can I contribute to hypredrive?
- Can I use hypredrive on GPU-accelerated systems?
- Can I compile hypredrive on Windows machines?
- How do I debug solver failures?
- What do I do if I encounter an issue with hypredrive?
- How is hypredrive licensed?