Cizz22 5 months ago
parent db6d993eb1
commit e615d19038

@ -80,6 +80,10 @@ class AerosNode(Base, DefaultMixin):
"AerosSimulationPlotResult", back_populates="aeros_node"
)
aeros_equipment = relationship(
"AerosEquipment", lazy="selectin", primaryjoin="and_(AerosNode.node_name == foreign(AerosEquipment.node_name))", uselist=False
)
class AerosSimulationCalcResult(Base, DefaultMixin):
__tablename__ = "rbd_tr_aeros_simulation_calc_result"
@ -115,6 +119,9 @@ class AerosSimulationCalcResult(Base, DefaultMixin):
average_level = Column(Float, nullable=True)
potential_production = Column(Float, nullable=True)
eaf = Column(Float, nullable=True)
eta = Column(Float, nullable=True)
beta = Column(Float, nullable=True)
mttr = Column(Integer, nullable=True)
aeros_simulation_id = Column(
UUID(as_uuid=True), ForeignKey("rbd_tr_aeros_simulation.id"), nullable=False

@ -84,9 +84,9 @@ async def run_simulations(
db_session=db_session, project_name=project.project_name, schematic_name=simulation_in.SchematicName, custom_input=simulation_in.CustomInput
)
await update_simulation(
db_session=db_session, simulation_id=simulation_id, data={"reliability": results}
)
# await update_simulation(
# db_session=db_session, simulation_id=simulation_id, data={"reliability": results}
# )
await execute_simulation(
db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results

@ -160,7 +160,7 @@ async def execute_simulation(
simulation.result = result
await db_session.commit()
await save_simulation_result(
db_session=db_session, simulation_id=simulation_id, result=result, schematic_name=sim_data["SchematicName"]
db_session=db_session, simulation_id=simulation_id, result=result, schematic_name=sim_data["SchematicName"],eq_update=eq_update
)
print("Simulation completed with id: %s", simulation_id)
@ -198,7 +198,7 @@ async def get_all_aeros_node(*, db_session: DbSession, schematic_name: Optional[
async def save_simulation_result(
*, db_session: DbSession, simulation_id: UUID, result: dict, schematic_name: str
*, db_session: DbSession, simulation_id: UUID, result: dict, schematic_name: str, eq_update: dict
):
print("Saving simulation result")
"""Save the simulation result."""
@ -219,6 +219,13 @@ async def save_simulation_result(
node_type = "RegularNode" if result["nodeType"] == "RegularNode" else "SchematicNode"
node = avaiable_nodes.get(f"{node_type}:{result['nodeName']}", None)
eq_reliability = eq_update.get(result["nodeName"], {
"eta": 0,
"beta": 0,
"mttr": 0
})
if not node:
if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic":
@ -261,6 +268,9 @@ async def save_simulation_result(
average_level=result["averageLevel"],
potential_production=result["potentialProduction"],
eaf=result["production"] / result["idealProduction"] if result["idealProduction"] > 0 else 0,
beta=eq_reliability["beta"] if node_type == "RegularNode" else None,
eta=eq_reliability["eta"] if node_type == "RegularNode" else None,
mttr=eq_reliability["mttr"] if node_type == "RegularNode" else None
)
calc_objects.append(calc_result)

Loading…
Cancel
Save