Coverage for backend/idaes_service/solver/custom/custom_heater.py: 100%
18 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 idaes.core import declare_process_block_class
2from idaes.models.unit_models.heater import HeaterData
3from .add_initial_dynamics import add_initial_dynamics
4from .inverted import add_inverted, initialise_inverted, disable_inverted, enable_inverted
6@declare_process_block_class("DynamicHeater")
7class DynamicHeaterData(HeaterData):
8 """
9 Dynamic Heater unit model class.
10 This extends the Heater class to include reference variables for initial holdup and initial accumulation.
11 Which makes it easier for us to set initial conditions in the frontend.
12 """
14 def build(self,*args, **kwargs):
15 """
16 Build method for the DynamicHeaterData class.
17 This method initializes the control volume and sets up the model.
18 """
19 super().build(*args, **kwargs)
21 if hasattr(self,"deltaP"):
22 # else has_pressure_change is false
23 add_inverted(self, "deltaP")
25 add_initial_dynamics(self)
27 def initialize_build(
28 self,*args,**kwargs,
29 ):
30 """
31 Initialize method for the DynamicHeaterData class.
32 This method initializes the control volume and sets up the model.
33 """
34 if hasattr(self,"deltaP"):
35 initialise_inverted(self, "deltaP")
36 disable_inverted(self, "deltaP")
38 super().initialize_build(*args, **kwargs)
40 if hasattr(self,"deltaP"):
41 enable_inverted(self, "deltaP")