It is true that Dymola will assign a name to every element of an array. There are two things you can try here. The first is the simple one, but I cannot say whether it will actually help. Visual C++ hints that including the /bigobj
switch on the command line might help. If you want to do that, you should look at the various build scripts in the /bin
directory whereever you have Dymola installed. You can modify these scripts to change the commands used to compile models. However, I would be sure to backup those scripts before you mess with them or you may get into a situation where you can no longer compile any of your models. I think the main script is build.bat
(although there are others and I don't know what determines which ones are invoked).
If that doesn't work, another way to deal with large amounts of data is to use the ExternalObject
facility in Modelica. This allows you to load data at the C
language level, rather than at the Modelica level. This can be used to, for example, load interpolation tables into memory without clogging up the Modelica namespace with thousands of data points used in the interpolation. However, I'm skeptical this would really help you since it seems you require Dymola to solve the equations generated by your mass and stiffness matrices. As such, making them external won't help. It works in the interpolation case because Dymola doesn't really need to be aware of all of that data (only the interpolation function needs it). But if you are using (all of) that data to solve a system of equations, I don't think you can really get away with hiding it from Dymola.