Created
June 6, 2022 18:25
-
-
Save DanWBR/3383d4efefe3dfc3e63119ec36fa7397 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def display(msg): | |
print(msg) | |
dwsimpath = "/home/daniel/dwsimcore" | |
from clr_loader import get_coreclr | |
from pythonnet import set_runtime | |
set_runtime(get_coreclr(dwsimpath + "DWSIMCore.Tests.runtimeconfig.json")) | |
import clr | |
import clr | |
import System | |
from System.IO import Directory, Path, File | |
from System import String, Environment | |
clr.AddReference(dwsimpath + "DWSIMCore.Foundation.dll") | |
clr.AddReference(dwsimpath + "DWSIMCore.Foundation.CSharp.dll") | |
clr.AddReference(dwsimpath + "DWSIMCore.dll") | |
from DWSIMCore.Foundation.Enums.GraphicObjects import ObjectType | |
from DWSIMCore.Foundation import Streams, PropertyPackages | |
from DWSIMCore.Foundation.Streams import MaterialStream | |
from DWSIMCore.Foundation.UnitOperations import Heater | |
from DWSIMCore.Automation import Automation | |
from DWSIMCore.Foundation import Settings | |
Directory.SetCurrentDirectory(dwsimpath) | |
# create automation manager | |
interf = Automation() | |
sim = interf.CreateFlowsheet().GetAwaiter().GetResult() | |
# add water | |
water = sim.AvailableCompounds["Water"] | |
sim.SelectedCompounds.Add(water.Name, water) | |
# create and connect objects | |
m1 = sim.AddObject(ObjectType.MaterialStream, 50, 50, "inlet") | |
m2 = sim.AddObject(ObjectType.MaterialStream, 150, 50, "outlet") | |
e1 = sim.AddObject(ObjectType.EnergyStream, 100, 50, "power") | |
h1 = sim.AddObject(ObjectType.Heater, 100, 50, "heater") | |
sim.ConnectObjects(m1.GraphicObject, h1.GraphicObject, -1, -1) | |
sim.ConnectObjects(h1.GraphicObject, m2.GraphicObject, -1, -1) | |
sim.ConnectObjects(e1.GraphicObject, h1.GraphicObject, -1, -1) | |
# steam tables property package | |
stables = PropertyPackages.SteamTablesPropertyPackage() | |
sim.AddPropertyPackage(stables) | |
# set inlet stream temperature | |
# default properties: T = 298.15 K, P = 101325 Pa, Mass Flow = 1 kg/s | |
MaterialStream.SetTemperature(m1, 300.0) # K | |
MaterialStream.SetMassFlow(m1, 100.0) # kg/s | |
# set heater heat load | |
Heater.SetPropertyValue(h1, 'PROP_HX_3', 10000.0) # kW | |
# request a calculation | |
Action = getattr(System, "Action`1") | |
action = Action[String](display) | |
errors = interf.CalculateFlowsheet2(sim, action).GetAwaiter().GetResult() | |
ot = Heater.GetPropertyValue(h1, 'PROP_HX_2') # K | |
print(String.Format("Outlet Temperature: {0} K", ot)) | |
# save file | |
fileNameToSave = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "heatersample.dwxmz") | |
interf.SaveFlowsheet(sim, fileNameToSave, True) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment