Эта библиотека предоставляет базовые возможности для моделирования физических процессов на С#, а также создания пользовательского веб интерфейса.
Вычисления происходят на стороне сервера, а данные выводятся в Web UI 100 раз в секунду.
Для запуска сервера используется ASP.NET, а для работы с UI SignalR.
- Запуск, остановка, пауза и продолжение эксперимента
- Поля для ввода численных данных
- Поля для вывода текущих значений данных
- Построение графиков
Сперва требуется создать класс, наследующийся от Experiment.
Входные данные нужно отметить атрибутом Input(label):
[Input("Начальная скорость")]
public double v0 = 1;
Промежуточные данные нужно отметить атрибутом Data(label), можно использовать суффикс:
[Input("X", " м")]
public double x;
Для создания графика, требуется объявить его в конструкторе и указать способ получения данных:
public MyFirstExperiment(IServiceProvider serviceProvider) : base(serviceProvider)
{
...
InitGraph(() => (xParameter, yValue), "#ff77ff");
...
}
Далее нужно реализовать методы OnIter
, OnReset
.
Для запуска нужно вызвать метод Start, указав конструктор эксперимента из IServiceProvider:
ModellingStartup.Start(args, provider => new MyFirstExperiment(provider));
В папке Example реализовано моделирование двухуровневой системы, описываемое двумя дифференциальными уравнениями.