Modelica - как реализовать конструктор для записи

Как лучше всего реализовать конструктор для записи? Кажется, что функция должна иметь возможность возвращать объект записи при создании экземпляра записи в какой-то более поздней модели выше по дереву, но я не могу заставить это работать. На данный момент я просто использую группу parameters в верхней части записи, которая заполняет переменные, хранящиеся в записи, но похоже, что это будет работать только в простых случаях.

Кто-нибудь может пролить немного света? Возможно, мне следует использовать не пластинку, а модель. Также кто-нибудь знает, как появятся функциональные возможности PDE? В книге только сказано, что оно грядет, но я видел вокруг и кое-что другое.


person Joel Berger    schedule 26.11.2010    source источник


Ответы (2)


Кажется, у меня нет возможности добавлять теги (что имеет смысл, поскольку моя «репутация» ниже вашей), так что извините за это. Я думал, что на самом деле добавил один в какой-то момент, но, возможно, я ошибаюсь.

Я думаю, вам нужно четко понимать, что вы подразумеваете под конструктором, поскольку в Modelica он имеет очень специфическое значение. Если я правильно понимаю ваш вопрос, похоже, что вы хотите создать экземпляр записи с некоторыми полями, указанными в аргументах конструктора, и из этих аргументов вычисляется множество других полей в записи. Это правильно?

Если да, то для этого есть механизм. Вы упоминаете «книгу», но неясно, какую именно. Если он мой, то в нем определенно нет упоминания об этих так называемых «конструкторах записей», потому что он слишком старый. Я не знаю, упоминаются ли они и в книге Питера Фрицсона. Однако они существуют и описаны в разделе 12.6 спецификации Modelica 3.2.

Что касается PDE, над этим велась работа, но в группе дизайнеров ничего не было сделано по этой теме. Я бы добавил, что если вы хотите решить эллиптические или параболические уравнения в частных производных на обычных сетках, это не так уж сложно даже с текущим языком. Единственным реальным недостатком является то, что большинство инструментов, вероятно, не очень эффективно справляются с разреженностью. Нерегулярные сетки также возможны, но тогда вы получаете сложные базисные функции. Наконец, гиперболические УЧП, на мой взгляд, довольно сложны (в любой среде) из-за неявных физических ограничений между временем и пространством, которые трудно выразить (например, условие CFL).

Я надеюсь, что ответил на ваши вопросы до сих пор.

person Michael Tiller    schedule 27.11.2010
comment
Спасибо, спецификация достаточно читабельна, чтобы понять. Как я могу узнать, соответствует ли моя среда Modelica этой спецификации (версия репозитория OpenModelica ubuntu), есть ли какая-то команда, которую я могу проверить? Но эй, кто-то создал тег для меня. У меня определенно будет другой вопрос, но мне нужно будет написать минимальный пример. Еще раз спасибо! - person Joel Berger; 27.11.2010
comment
О, и да, я имел в виду книгу Питера Фрицсона. Доступен ли какой-нибудь новый материал, или мне следует продолжить его и дополнить спецификацией? - person Joel Berger; 27.11.2010
comment
Конечно, есть более старый материал. ;-) (бессовестный плаг) - person Michael Tiller; 27.11.2010
comment
Я имею в виду это, если честно, иногда более старая документация лучше для изучения в том смысле, что она появилась до всех наворотов и, следовательно, более четко содержит основные принципы (пока они все еще верны). Думаю посмотрю. - person Joel Berger; 28.11.2010

Я могу только прокомментировать ваш вопрос относительно книги Питера Фрицсона. Он подтвердил, что работает над обновлением и надеется подготовить его «в течение 2011 года».

Оригинальный пост здесь:

http://openmodelica.org/index.php/forum/topic?id=50

И спасибо за инициирование тега modelica, я мог бы быть полезен в ближайшем будущем и для меня... :-)

С уважением, Роэль

person saroele    schedule 19.01.2011
comment
Отлично, жду с нетерпением. - person Joel Berger; 19.01.2011