Coverage for backend/core/auxiliary/models/SolveState.py: 100%
20 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from django.db import models
2from core.auxiliary.models.Scenario import Scenario
3from core.auxiliary.models.Flowsheet import Flowsheet
4# This class is used by the SolveValue class
6from core.managers import AccessControlManager
7class SolveState(models.Model):
8 """
9 This stores a "row" in the MSS/dynamic data table
10 (i.e a row for a single time step or solve iteration).
11 """
12 # TODO: Rename to DataRow or something similar. See also Expression.py
13 # Row of the solve state
14 index = models.IntegerField(db_index=True)
15 flowsheet = models.ForeignKey(Flowsheet, on_delete=models.CASCADE, related_name="solveStates")
16 scenario = models.ForeignKey(Scenario, on_delete=models.CASCADE, related_name="solveStates")
18 created_at = models.DateTimeField(auto_now_add=True)
20 objects = AccessControlManager()
24class SolveValue(models.Model):
25 """
26 This stores a "cell" in the MSS/dynamic data table.
27 No results are ever stored here anymore.
28 """
29 # TODO: Rename to DataCell or something similar. See also Expression.py
30 flowsheet = models.ForeignKey("Flowsheet", on_delete=models.CASCADE, related_name="SolveValues")
31 value = models.FloatField()
32 expression = models.ForeignKey("Expression", on_delete=models.CASCADE, related_name="solveValues", null=True)
33 solve = models.ForeignKey(SolveState, on_delete=models.CASCADE, related_name="values", null=True)
34 solve_index = models.IntegerField(null=True, blank=True, default=None)
36 created_at = models.DateTimeField(auto_now_add=True)
38 objects = AccessControlManager()
40 class Meta:
41 ordering = ['created_at']