Cizz22 5 months ago
parent db6d993eb1
commit e615d19038

@ -80,6 +80,10 @@ class AerosNode(Base, DefaultMixin):
"AerosSimulationPlotResult", back_populates="aeros_node" "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): class AerosSimulationCalcResult(Base, DefaultMixin):
__tablename__ = "rbd_tr_aeros_simulation_calc_result" __tablename__ = "rbd_tr_aeros_simulation_calc_result"
@ -115,6 +119,9 @@ class AerosSimulationCalcResult(Base, DefaultMixin):
average_level = Column(Float, nullable=True) average_level = Column(Float, nullable=True)
potential_production = Column(Float, nullable=True) potential_production = Column(Float, nullable=True)
eaf = 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( aeros_simulation_id = Column(
UUID(as_uuid=True), ForeignKey("rbd_tr_aeros_simulation.id"), nullable=False 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 db_session=db_session, project_name=project.project_name, schematic_name=simulation_in.SchematicName, custom_input=simulation_in.CustomInput
) )
await update_simulation( # await update_simulation(
db_session=db_session, simulation_id=simulation_id, data={"reliability": results} # db_session=db_session, simulation_id=simulation_id, data={"reliability": results}
) # )
await execute_simulation( await execute_simulation(
db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results 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 simulation.result = result
await db_session.commit() await db_session.commit()
await save_simulation_result( 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) 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( 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") print("Saving simulation result")
"""Save the 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_type = "RegularNode" if result["nodeType"] == "RegularNode" else "SchematicNode"
node = avaiable_nodes.get(f"{node_type}:{result['nodeName']}", None) 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 not node:
if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic": if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic":
@ -261,6 +268,9 @@ async def save_simulation_result(
average_level=result["averageLevel"], average_level=result["averageLevel"],
potential_production=result["potentialProduction"], potential_production=result["potentialProduction"],
eaf=result["production"] / result["idealProduction"] if result["idealProduction"] > 0 else 0, 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) calc_objects.append(calc_result)

Loading…
Cancel
Save