88import logging
99import time
1010import warnings
11- from dataclasses import dataclass
11+ from dataclasses import dataclass , field
1212
1313# Third party imports
1414import numpy as np
3232
3333@dataclass
3434class CoupledCriterionHistory :
35- """Stores the history of the coupled criterion evaluation."""
35+ """
36+ Stores the history of the coupled criterion evaluation.
37+
38+ Attributes:
39+ -----------
40+ skier_weights : list[float]
41+ Skier weights evaluated during the iteration.
42+ crack_lengths : list[float]
43+ Crack lengths evaluated during the iteration.
44+ incr_energies : list[np.ndarray]
45+ Incremental energy release rates for each evaluated state.
46+ sigma_maxs : list[float]
47+ Maximum normal stress values in kPa for each evaluated state.
48+ tau_maxs : list[float]
49+ Maximum shear stress values in kPa for each evaluated state.
50+ g_deltas : list[float]
51+ Fracture toughness envelope values for each evaluated state.
52+ dist_maxs : list[float]
53+ Maximum distances to the stress envelope for each evaluated state.
54+ dist_mins : list[float]
55+ Minimum distances to the stress envelope for each evaluated state.
56+ """
3657
37- skier_weights : list [float ]
38- crack_lengths : list [float ]
39- incr_energies : list [np .ndarray ]
40- sigma_maxs : list [float ]
41- tau_maxs : list [float ]
42- g_deltas : list [float ]
43- dist_maxs : list [float ]
44- dist_mins : list [float ]
58+ skier_weights : list [float ] = field ( default_factory = list )
59+ crack_lengths : list [float ] = field ( default_factory = list )
60+ incr_energies : list [np .ndarray ] = field ( default_factory = list )
61+ sigma_maxs : list [float ] = field ( default_factory = list )
62+ tau_maxs : list [float ] = field ( default_factory = list )
63+ g_deltas : list [float ] = field ( default_factory = list )
64+ dist_maxs : list [float ] = field ( default_factory = list )
65+ dist_mins : list [float ] = field ( default_factory = list )
4566
4667
4768@dataclass
@@ -443,7 +464,7 @@ def evaluate_coupled_criterion(
443464 inc_energy [1 ], inc_energy [2 ], system .weak_layer
444465 )
445466
446- history_data = CoupledCriterionHistory ([], [], [], [], [], [], [], [] )
467+ history_data = CoupledCriterionHistory ()
447468 analyzer .print_call_stats (
448469 message = "evaluate_coupled_criterion Call Statistics"
449470 )
@@ -468,7 +489,7 @@ def evaluate_coupled_criterion(
468489 crack_length = 1.0
469490 dist_ERR_envelope = 1000
470491 g_delta = 0
471- history = CoupledCriterionHistory ([], [], [], [], [], [], [], [] )
492+ history = CoupledCriterionHistory ()
472493 iteration_count = 0
473494 skier_weight = initial_critical_skier_weight * 1.005
474495 min_skier_weight = 1e-6
0 commit comments