/modelling-lib

Эта библиотека предоставляет базовые возможности для моделирования физических процессов на С#, а также создания пользовательского веб интерфейса.

Primary LanguageC#

Modelling Lib

Summary

Эта библиотека предоставляет базовые возможности для моделирования физических процессов на С#, а также создания пользовательского веб интерфейса.

Вычисления происходят на стороне сервера, а данные выводятся в Web UI 100 раз в секунду.

Для запуска сервера используется ASP.NET, а для работы с UI SignalR.

Features

  • Запуск, остановка, пауза и продолжение эксперимента
  • Поля для ввода численных данных
  • Поля для вывода текущих значений данных
  • Построение графиков

How to start

Сперва требуется создать класс, наследующийся от 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

В папке Example реализовано моделирование двухуровневой системы, описываемое двумя дифференциальными уравнениями.