ECSIM / opem

OPEM (Open Source PEM Fuel Cell Simulation Tool)
http://opem.ecsim.site
MIT License
199 stars 58 forks source link

Enhancement: return reports as list items when running in library mode #174

Closed DanWBR closed 6 months ago

DanWBR commented 2 years ago

It would be nice to have the HTML, CSV and OPEM reports returned as items in the results list instead of physical files when running in library mode, so the files could be generated from the item contents somewhere else. This is very useful in the context of a chemical process simulator where you can have multiple instances of OPEM objects.

sepandhaghighi commented 2 years ago

@DanWBR Hi Do you mean something like this?

{               "Status": True,
                "P": Power_List,
                "I": I_List,
                "V": Vstack_List,
                "EFF": Efficiency_List,
                "Ph": Power_Thermal_List,
                "V0": B0,
                "K": B1,
                "VE": Estimated_V,
                "HTML": HTMLContent,
                "CSV":"CSVContent
                "}
DanWBR commented 2 years ago

@sepandhaghighi exactly. If possible, disable the generation of the physical files in the subdirectory. I'm running OPEM from a .NET application through Python.NET - the commands are run in memory and I'm afraid we don't have a "current directory" to refer to in this case.

sepandhaghighi commented 2 years ago

@DanWBR The problem with this method is that sometimes the output files are too large and can lead to some memory problems.

Take a look at this method (adding Folder and Name parameters to control files location and name):

>>> from opem.Static.Amphlett import Static_Analysis
>>> Test_Vector={"T": 343.15,"PH2": 1,"PO2": 1,"i-start": 0,"i-stop": 75,"i-step": 0.1,"A": 50.6,"l": 0.0178,"lambda": 23,"N": 1,"R": 0,"JMax": 1.5,"Name": "Amphlett_Test"}
>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=True,Folder="C:\\Users\\",Name="Test")

Does it work for you?

DanWBR commented 2 years ago

@DanWBR yes, that would work. thanks!

sepandhaghighi commented 2 years ago

Good, we will solve it in the next version 💯

DanWBR commented 2 years ago

@sepandhaghighi I've found a way already, implemented something like my first suggestion + temporary files:

Captura de Tela 2022-06-17 às 10 41 25 Captura de Tela 2022-06-17 às 10 41 27
sepandhaghighi commented 2 years ago

@DanWBR Well done 🥇 But we will still consider this feature for the next version of OPEM 🚀

DanWBR commented 2 years ago

@sepandhaghighi I couldn't wait, sorry 😅