[TRNSYS-users] numerical solution in new type with C++

Iris Reichenbach iris.reichenbach at iwtt.tu-freiberg.de
Thu Aug 28 04:04:25 PDT 2014


Dear David,

Thank you for your response, I tried to do this. However, I have no idea 
what I am doing here.
As a first try I just added the lines
extern "C" __declspec(dllimport) double _cdecl 
TRNSYSFUNCTIONS_mp_SETNUMERICALDERIVATIVE(void);
extern "C" __declspec(dllimport) double _cdecl 
TRNSYSFUNCTIONS_mp_GETNUMERICALSOLUTION(void);
and
#define SetNumericalDerivative TRNSYSFUNCTIONS_mp_SETNUMERICALDERIVATIVE
#define GetNumericalSolution TRNSYSFUNCTIONS_mp_GETNUMERICALSOLUTION
to the TRNSYS.h file. However, this did not work. I also noticed that 
there is a getNumericalSolver in the .h file, I'd think that implies that
there should be a numerical solver accessible for C++?
Also, I have the same problem for the function Tau_Alpha, I also can't 
use it.
Could someone give me any more hints on how to either change the .h file 
or use another way of finding the numerical solutions?
Thanks in advance,
Iris



Am 27.08.2014 17:46, schrieb David BRADLEY:
> Iris,
>  I am no expert in writing C++ components (in fact I have never tried 
> it). My guess, however, is that you will need to modify the TRNSYS.h 
> file to make sure that the setNumericalDerivative() and 
> getNumericalSolution() functions are actually defined in there.
> Kind regards,
>  David
>
>
> On 8/27/2014 07:52, Iris Reichenbach wrote:
>> Dear fellow TRNSYS users,
>> I have the following problem. I'm trying to write a new type for 
>> TRNSYS in C++, which involves the numerical solution of differential 
>> equations. Usually, SetNumericalDerivative is used to set the 
>> numerical derivatives and then GetNumericalSolution is used to obtain 
>> the solution of the differential equation. However, when trying to 
>> compile my code the compiler gives the following error: "error 
>> C3861:  "getNumericalSolution": Bezeichner wurde nicht gefunden." 
>> That is, it can't find the identifier getNumericalSolution.
>> I also tried to instead use the older form and write dtdt[i] = x, 
>> instead of SetNumericalDerivative(i,x), but here I got the error 
>> message "error C2109: Index erfordert ein Array oder einen Zeigertyp" 
>> (that is index requires an array or a pointer).
>> I  use the project CPP-Mvs2003, which is included in 
>> TRNSYS/Compilers, so it has access to TRNSYS.h and TRNDll.lib, and I 
>> also successfully used my setup to generate another custom type, 
>> albeit without any numerical solution.
>> So my question is: how can I solve numerical equations with a type 
>> written in C++? How do I set the derivatives and how do I access the 
>> solutions? Do GetNumericalSolution/SetNumericalDerivative not work 
>> with C++ (I didn't find them in TRNSYS.h) and if so, what do I use 
>> instead?
>> Thanks in advance for any pointers!
>> Cheers,
>> Iris
>> _______________________________________________
>> TRNSYS-users mailing list
>> TRNSYS-users at lists.onebuilding.org
>> http://lists.onebuilding.org/listinfo.cgi/trnsys-users-onebuilding.org
>>
>


-- 
Dr. Iris Reichenbach
Gruppenleiterin Nachwuchsforschergruppe ANWan

TU Bergakademie Freiberg
Institut für Wärmetechnik und Thermodynamik
Lehrstuhl für Gas- und Wärmetechnische Anlagen

Gustav-Zeuner-Str. 7
D-09599 Freiberg
Deutschland

Tel: +49 (0) 3731/ 39 3944
Fax: +49 (0) 3731/ 39 3942
E-Mail: iris.reichenbach at iwtt.tu-freiberg.de
web: http://www.tu-freiberg.de/~iwtt/




More information about the TRNSYS-users mailing list