Source code for reactord.flowreactors.stationary_1d.pfr.pressure_balances.isobaric

"""PFR isobaric pressure 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 Isobaric: r"""PFR isobaric energy pressure class. .. math:: \frac{dP}{dz}=0 | :math:`P`: reactor's pressure. | :math:`z`: reactor's length coordinate. Parameters ---------- pressure : float Isobaric pressure. """ def __init__(self, pressure: float) -> None: self.pressure = pressure @property def irepr(self): """Represent for ipython.""" display(symbols(self.__repr__()))
[docs] def initial_profile(self, reactor: PFR) -> NDArray[np.float64]: """Set initial pressure profile in non-isobaric PFR. Parameters ---------- reactor : PFR PFR object. Returns ------- NDArray[np.float64] initial pressure profile in all grid. """ return np.full(reactor.grid_size, self.pressure)
[docs] def update_profile( self, reactor: PFR, variables: NDArray[np.float64] ) -> None: """Update th reactor's presure profile. Parameters ---------- reactor : PFR PFR object. variables : NDArray[np.float64] Variables of solve_bvp ode solver. """ reactor.pressure_profile = variables[-1, :]
[docs] def border_conditions(self, reactor: PFR) -> tuple: """Set border conditions. Parameters ---------- reactor : PFR PFR object Returns ------- tuple array with pressure in the inlet and outlet reactor """ return self.pressure, None
[docs] def evaluate_balance(self, reactor: PFR) -> NDArray[np.float64]: """Evaluate pressure balance. Parameters ---------- reactor : PFR PFR object Returns ------- NDArray[np.float64] Isobaric pressure of each substance on each reactor's z """ return np.zeros(reactor.grid_size)
def __repr__(self) -> str: """Represent equation of PFR isobaric pressure balance.""" return r"\frac{dP}{dz}=0"