Getting Started¶
This guide takes you from a clean checkout to your first backend simulation.
Prerequisites¶
- Python 3.10+
- CMake 3.20+
- Ninja
- A C++ toolchain compatible with project requirements
Option A: Build From Source (Recommended for backend development)¶
cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DPULSIM_BUILD_PYTHON=ON
cmake --build build -j
Confirm that the package is importable from the local build tree:
PYTHONPATH=build/python python3 -c "import pulsim as ps; print(ps.__version__)"
Option B: Install Package¶
python3 -m pip install --upgrade pip
python3 -m pip install pulsim
First Simulation (RC Step)¶
PYTHONPATH=build/python python3 - <<'PY'
import pulsim as ps
parser = ps.YamlParser(ps.YamlParserOptions())
circuit, options = parser.load("benchmarks/circuits/rc_step.yaml")
options.newton_options.num_nodes = int(circuit.num_nodes())
options.newton_options.num_branches = int(circuit.num_branches())
options.step_mode = ps.StepMode.Variable
sim = ps.Simulator(circuit, options)
result = sim.run_transient(circuit.initial_state())
print("success:", result.success)
print("steps:", result.total_steps)
print("samples:", len(result.time))
PY
Expected outcome:
success: True- non-zero
stepsandsamples - monotonic RC charging behavior on
V(out)
Run Core Validation Commands¶
# Python runtime tests
PYTHONPATH=build/python pytest python/tests -v --ignore=python/tests/validation
# C++ core tests (if build already includes tests)
ctest --test-dir build --output-on-failure
Next Steps¶
- Read User Guide for canonical backend usage patterns.
- Use Examples and Results for converter scenarios.
- Add CI quality checks from Benchmarks and Parity.