CAPE-OPEN Unit Operation on Linux / OS X

Discusses use of CAPE-OPEN interfaces in DWSIM, an open-source piece of sofware developed by Daniel WAGNER.

Moderator: DanW

Post Reply
DanW
Posts: 17
Joined: 01 November 2012, 03:01

CAPE-OPEN Unit Operation on Linux / OS X

Post by DanW »

Hi all,

I thought that it would be good to let you know about this: A CAPE-OPEN Unit Op working on Linux! How it works?

I'm currently developing DWSIM version 3, compiling it using the Visual Basic 2010 Express w/ .NET Framework 4.0. Because of that, I had to update my CAPE-OPEN .NET library provided by Bill Barrett to its latest version, compiled under C# and .NET 4 - fully managed, 100% .NET code (the currently installation package that is available on USEPA website is compiled under C#/C++, mixed-mode, not fully managed code - I guess that this is the version currently distributed with COCO).

In the latest public release of DWSIM Mono Edition there is support for CAPE-OPEN unit operations, loadable from .NET assemblies (executable and/or dlls). The problem is that it is compiled under .NET 2.0 and when I tried to load the CAPE-OPEN .NET library (mixed-mode C#/C++), Mono throws an exception because of unmanaged (C++) bindings.

This morning I remembered that I could try loading the .NET 4 CAPE-OPEN library and see if it would work. And it did! There is some problem with reading the ports, though, but I'll investigate it later. At least it loads and shows all editing forms flawlessly.

Here are some screens of DWSIM 3 running on Ubuntu 11.10 with the CAPE-OPEN unit operation added to a flowsheet:

Image

Image

Image

Regards,
Daniel
DanW
Posts: 17
Joined: 01 November 2012, 03:01

Re: CAPE-OPEN Unit Operation on Linux / OS X

Post by DanW »

Just fixed the error, now it loads fine, all ports and parameters show up in the property grid:

Image
User avatar
jasper
Posts: 1129
Joined: 24 October 2012, 15:33
Location: Spain
Contact:

Re: CAPE-OPEN Unit Operation on Linux / OS X

Post by jasper »

Interesting. Mono must come with a GAC equivalent that takes care of component registration.

Of course this only works for .NET components; most PMCs currently are not. With wine (http://www.winehq.org/) however it is possible to run COM applications under linux and mac as well.
DanW
Posts: 17
Joined: 01 November 2012, 03:01

Re: CAPE-OPEN Unit Operation on Linux / OS X

Post by DanW »

Mono does indeed have a GAC, but it only registers managed assemblies, as one would expect. Personally, I think that .NET/Mono is the way to go... Mono is pratically on every single platform today, and it was just updated to support the latest features of C# 5.0 / .NET 4.5.

Regards,
Daniel
User avatar
jasper
Posts: 1129
Joined: 24 October 2012, 15:33
Location: Spain
Contact:

Re: CAPE-OPEN Unit Operation on Linux / OS X

Post by jasper »

I think an object model that is not bound to Windows is the way to go. Discussions on this are ongoing.

.NET is not the way to go if most simulation enviroments and PMCs are native.
Post Reply

Return to “DWSIM”