Fatigue constrained topology optimization