Welcome to the comprehensive documentation for the Rainflow Counting library.
New to Rainflow counting? Start here:
- algorithm.rst - Understanding the rainflow algorithm
- installation.rst - Building and installing
- examples.rst - Quick code examples
- algorithm.rst
- Core rainflow counting algorithm explanation with 4-point method
- astm_method.rst
- ASTM E 1049 3-point method vs. 4-point algorithm - algorithmic and residue handling comparison
- residue_methods.rst
- Methods for handling unclosed cycles (residue)
- cpp_wrapper.rst
- C++ wrapper guide - RAII, templates, STL integration
- minimal_build.rst
- Building minimal version for embedded systems (RFC_MINIMAL)
- delegates.rst
- Custom behavior via delegate functions
- turning_points.rst
- External turning point storage and management
- damage_history.rst
- Tracking damage accumulation over time
- spread_damage.rst
- Transient damage distribution methods
- tp_prune.rst
- RFC_tp_prune() logic and usage
- features.rst
- Complete feature list and compile-time options
- installation.rst
- Platform-specific build instructions
- examples.rst
- Code examples in Python, C/C++, and MATLAB
- references.rst
- Bibliography and standards citations
# Full featured build
cmake -S. -Bbuild \
-DRFC_TP_SUPPORT=1 \
-DRFC_HCM_SUPPORT=1 \
-DRFC_ASTM_SUPPORT=1 \
-DRFC_DH_SUPPORT=1 \
-DRFC_USE_DELEGATES=1
# Minimal build (embedded systems)
cmake -S. -Bbuild -DRFC_MINIMAL=1- Enable ASTM counting:
- See astm_method.rst
- Track damage over time:
- See damage_history.rst
- Handle residue:
- See residue_methods.rst
- Custom memory allocation:
- See delegates.rst
- Prune turning points:
- See tp_prune.rst
- Embedded Systems
- minimal_build.rst - Minimal configuration
- delegates.rst - Custom memory management
- turning_points.rst - External storage
- Performance Optimization
- tp_prune.rst - Memory management
- features.rst - Feature selection (disable unused features)
- delegates.rst - Custom allocators and lookup tables
- Research & Analysis
- damage_history.rst - Time-based damage
- spread_damage.rst - Damage distribution
- residue_methods.rst - Residue handling
- Integration
- cpp_wrapper.rst - C++ projects
- examples.rst - Python, MATLAB
- delegates.rst - Custom callbacks
- C
- algorithm.rst - Core concepts
- delegates.rst - Function pointers
- minimal_build.rst - Minimal API
- C++
- cpp_wrapper.rst - Complete C++ guide
- turning_points.rst - STL containers
- examples.rst - C++ examples
- Python
- examples.rst - Python API
- damage_history.rst - Visualization
- installation.rst - pip install
- RFC_MINIMAL
- minimal_build.rst
- RFC_TP_SUPPORT
- turning_points.rst
- RFC_HCM_SUPPORT
- algorithm.rst (HCM section)
- RFC_ASTM_SUPPORT
- astm_method.rst
- RFC_DH_SUPPORT
- damage_history.rst
- RFC_USE_DELEGATES
- delegates.rst
- Rainflow Counting
- Algorithm for extracting fatigue cycles from variable amplitude loading
- Turning Point
- Local maximum or minimum in the load signal
- Residue
- Unclosed cycles remaining after rainflow counting
- Damage History
- Per-sample damage increments attributed to each input sample when a cycle closes;
apply a prefix sum (
np.cumsum) to obtain cumulative damage over time - Wöhler Curve (S-N Curve)
- Material fatigue properties relating stress to cycles-to-failure
- Miner's Rule
- Linear damage accumulation hypothesis
- HCM
- Hysteresis Counting Method (Clormann/Seeger)
- ASTM E 1049
- Standard for cycle counting in fatigue analysis
- Delegate
- User-provided callback function for custom behavior
Found an error or want to improve documentation?
- Report issues: https://github.com/a-ma72/rainflow/issues
- Submit PRs: https://github.com/a-ma72/rainflow/pulls
See the main repository for license information.
---
Last Updated: 2026-03-22 Documentation Version: 0.5.2