Skip to content

Commit 912d984

Browse files
committed
CodeRabbit / Copilot Comments
1 parent e3d4f44 commit 912d984

2 files changed

Lines changed: 40 additions & 12 deletions

File tree

src/weac/analysis/criteria_evaluator.py

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import logging
99
import time
1010
import warnings
11-
from dataclasses import dataclass
11+
from dataclasses import dataclass, field
1212

1313
# Third party imports
1414
import numpy as np
@@ -32,16 +32,37 @@
3232

3333
@dataclass
3434
class 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

tests/analysis/test_criteria_evaluator.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,13 @@ def test_evaluate_coupled_criterion_full_run(self):
224224
)
225225
self.assertIsInstance(results, CoupledCriterionResult)
226226
self.assertGreater(results.critical_skier_weight, 0)
227+
self.assertIsNotNone(results.history)
228+
history = results.history
229+
assert history is not None
230+
self.assertEqual(len(history.sigma_maxs), len(history.skier_weights))
231+
self.assertGreater(len(history.sigma_maxs), 0)
232+
self.assertEqual(len(history.tau_maxs), len(history.skier_weights))
233+
self.assertGreater(len(history.tau_maxs), 0)
227234

228235
def test_evaluate_SteadyState(self):
229236
"""Test the evaluate_SteadyState method."""

0 commit comments

Comments
 (0)