Frequently Asked Questions (FAQ)¶
This section provides answers to some of the most commonly asked questions about hypredrive.
What is hypredrive?¶
hypredrive is a high-level interface for solving linear systems with hypre.
How do I install hypredrive?¶
You can install hypredrive by downloading and compiling its source files. Please refer to Installation for detailed installation instructions.
Which linear system types can hypredrive solve?¶
hypredrive is capable of solving both symmetric and non-symmetric sparse linear systems. The specific capabilities depend on the underlying HYPRE library and the configuration of hypredrive.
How do I configure hypredrive for my specific problem?¶
You can configure hypredrive by providing YAML — either as a file on disk (for the
hypredrive-cli driver) or as an in-memory string passed to HYPREDRV_InputArgsParse
from application code. The YAML specifies all necessary settings, including solver and
preconditioner configurations. For the full reference, see Input Structure (YAML). For
driver usage examples, see Driver Examples (hypredrive-cli).
How can I contribute to hypredrive?¶
Contributions to hypredrive are welcome! You can contribute by filing issues, submitting pull requests or improving its documentation. Please refer to Contributing for guidelines.
Can I use hypredrive on GPU-accelerated systems?¶
Yes, hypredrive supports GPU acceleration. Note that hypre also needs to be compiled
with GPU support. On GPU-enabled builds, general.exec_policy defaults to device;
set it explicitly only if you want to force host execution.
Can I compile hypredrive on Windows machines?¶
No. At the moment, there are no plans to add Windows support.
How do I debug solver failures?¶
Set the environment variable HYPREDRV_LOG_LEVEL to enable internal traces:
1: lifecycle boundaries (create, setup, solve, destroy)2: decision and context messages (reuse policy, scaling choices)3: detailed subphase traces (parsing, linear system assembly, scaling steps)
Traces are emitted to stderr on rank 0. Set HYPREDRV_LOG_STREAM=stdout to redirect
them to stdout instead.
For error trapping, set HYPREDRV_DEBUG=1 so that HYPREDRV_SAFE_CALL raises
SIGTRAP on failure instead of aborting, which is useful under a debugger.
What should I do if I encounter an issue with hypredrive?¶
If you encounter an issue, you can open a GitHub issue. Providing detailed information about your problem, including configuration files, system details, and error messages, will help in resolving issues more quickly.
How is hypredrive licensed?¶
hypredrive is licensed under the MIT License. For more details, see the LICENSE file in the source distribution.