Source code for reactord.flowreactors.stationary_1d.pfr.energy_balances.isothermic

"""PFR isothermic energy balance module."""
from IPython.display import display

import numpy as np
from numpy.typing import NDArray

from reactord.flowreactors.stationary_1d.pfr.pfr import PFR

from sympy import symbols


[docs]class Isothermic: r"""PFR isothermic energy balance. .. math:: \frac{dT}{dz}=0 .. math:: \frac{dT_r}{dz}=0 | :math:`T`: reactor's temperature. | :math:`T_r`: refrigerant's temperature. | :math:`z`: reactor's length coordinate. Parameters ---------- temperature: float Isothermic temperature """ def __init__(self, temperature: float) -> None: self.temperature = temperature @property def irepr(self): """Represent for ipython.""" display(symbols(self.__repr__()[0])) display(symbols(self.__repr__()[1]))
[docs] def initial_profile(self, reactor: PFR) -> NDArray[np.float64]: """Set initial energy profile in isothermic PFR. Parameters ---------- reactor : PFR PFR object Returns ------- NDArray[np.float64] initial temperature profile in all grid """ return np.full(reactor.grid_size, self.temperature)
[docs] def update_profile( self, reactor: PFR, variables: NDArray[np.float64] ) -> None: """Update PFR's temperature profile. Parameters ---------- reactor : PFR PFR object. variables : NDArray[np.float64] Variables of solve_bvp ode solver. """ reactor.temperature_profile = variables[-2, :] reactor.refrigerant_temperature_profile = None
[docs] def border_conditions(self, reactor: PFR) -> tuple: """Set border conditions. Parameters ---------- reactor : PFR PFR object Returns ------- isothermic temperature """ return self.temperature, None
[docs] def evaluate_balance(self, reactor: PFR) -> NDArray[np.float64]: """Evaluate energy balance. Parameters ---------- reactor : PFR PFR object Returns ------- NDArray[np.float64] Temperature rate of each substance on each reactor's z This is zero in a isothermic balance. """ return np.zeros(reactor.grid_size)
def __repr__(self) -> str: """Print LaTex representation.""" latex1 = r"\frac{dT}{dz}=0" latex2 = r"\frac{dT_r}{dz}=0" return latex1, latex2