"""AlgebraicRule example."""
from sbmlutils.examples import templates
from sbmlutils.factory import *
from sbmlutils.resources import EXAMPLES_DIR
[docs]class U(Units):
"""UnitsDefinition."""
[docs] hr = UnitDefinition("hr")
[docs] mg = UnitDefinition("mg")
[docs] m2 = UnitDefinition("m2", "meter^2")
[docs] kg = UnitDefinition("kg")
[docs] l_per_hr = UnitDefinition("l_per_hr", "liter/hr")
[docs] l_per_kg = UnitDefinition("l_per_kg", "liter/kg")
[docs] mg_per_l = UnitDefinition("mg_per_l", "mg/liter")
[docs] mg_per_hr = UnitDefinition("mg_per_hr", "mg/hr")
[docs]model = Model(
"algebraic_rule",
name="model with AlgebraicRule",
creators=templates.creators,
notes="""
# Example model demonstrating `AlgebraicRule`.
"""
+ templates.terms_of_use,
units=U,
model_units=ModelUnits(
time=U.hr,
extent=U.mg,
substance=U.mg,
length=U.meter,
area=U.m2,
volume=U.liter,
),
)
model.parameters = [
Parameter("Atot", 20, U.mg, constant=True, name="total A"),
Parameter("A1", 15, U.mg, constant=False, name="A1"),
Parameter("A2", 5, U.mg, constant=False, name="A2"),
]
model.algebraic_rules = [
AlgebraicRule("Atotal_rule", "Atot - (A1 + A2)", unit=U.mg),
]
if __name__ == "__main__":
create_model(
model=model,
filepath=EXAMPLES_DIR / f"{model.sid}.xml",
)