Troubleshooting¶
Solutions to common problems with PyFDS.
Installation Issues¶
ImportError: No module named 'pyfds'¶
Cause: PyFDS not installed or wrong Python environment
Solution:
# Check installation
pip list | grep pyfds
# Install if missing
pip install pyfds
# Or with uv
uv add pyfds
Version conflicts¶
Cause: Incompatible dependency versions
Solution: Use fresh virtual environment
Simulation Creation¶
"Obstruction outside mesh bounds"¶
Cause: Geometry coordinates exceed mesh limits
Solution: Check coordinates
from pyfds import Mesh, Obstruction
from pyfds.core.geometry import Bounds3D
# Mesh: (0, 5) in X
sim.add(Mesh(xb=Bounds3D.of(0, 5, 0, 5, 0, 2.5)))
# Bad: X goes to 6
sim.add(Obstruction(xb=Bounds3D.of(4, 6, 0, 5, 0, 2.5)) # ERROR
# Good: X within bounds
sim.add(Obstruction(xb=Bounds3D.of(4, 5, 0, 5, 0, 2.5)) # OK
"Surface ID 'FIRE' not found"¶
Cause: Using surface before defining it
Solution: Define surfaces first
# Correct order
sim.add(Surface(id='FIRE', hrrpua=1000.0))
sim.add(Obstruction(xb=Bounds3D.of(2, 3, 2, 3, 0, 0.1), surf_id='FIRE'))
Validation warnings¶
Cause: Potential issues with simulation
Solution: Review and fix warnings
Execution Problems¶
"FDS not found"¶
Cause: FDS not installed or not in PATH
Solution: Install FDS from https://pages.nist.gov/fds-smv/
Verify installation:
Simulation crashes immediately¶
Causes and solutions:
-
Fire too intense
-
Cells too small
-
Physical inconsistencies
- Check material properties
- Verify boundary conditions
- Review FDS output (.out) file for errors
NaN or Inf values in results¶
Cause: Numerical instability
Solutions: - Reduce fire intensity - Increase cell size - Check for unrealistic inputs - Review FDS warnings in .out file
Performance Issues¶
Simulation too slow¶
Solutions:
-
Reduce cell count
-
Use parallelization
-
Reduce simulation time
Out of memory¶
Cause: Too many cells
Solution: Reduce mesh resolution or use multiple meshes
Results Analysis¶
"File not found" when loading results¶
Cause: Wrong path or simulation didn't complete
Solution: Check file location
# Specify correct directory
results = Results(chid='simulation', output_dir='./outputs')
# Check files exist
import os
print(os.path.exists('simulation_hrr.csv'))
Empty or missing device data¶
Cause: Device output not written
Solution: Ensure simulation completed and devices defined
Development Issues¶
Type checking errors with MyPy¶
Cause: Missing type hints or imports
Solution: Check imports and types
from typing import Optional
from pyfds import Simulation
def create_sim() -> Simulation:
return Simulation(chid='test')
Tests failing¶
Cause: Environment or dependency issues
Solution: Clean install
# Remove existing installation
pip uninstall pyfds
# Reinstall with dev dependencies
uv sync --extra dev
# Run tests
uv run pytest
Getting More Help¶
Check FDS Output¶
Always check the FDS output file ({chid}.out) for detailed error messages:
Enable Logging¶
Ask for Help¶
If you're still stuck:
- Check FAQ
- Search GitHub Issues
- Ask in Discussions
- Open a new issue
When asking for help, include:
- Python version (python --version)
- PyFDS version (pip show pyfds)
- Minimal code that reproduces the issue
- Full error message
- FDS version (if execution issue)