МСС ресурс Freeware Open source Кафедра МСС Факультет  

Пакет
"Моделювання
Динамічних Систем"
v5.2

ПРО ПАКЕТ ПОПЕРЕДНІЙ КЛАС НАСТУПНИЙ КЛАС      

calc.h
Абстрактний клас calc

 
Використовує класи :
model, cauchy_region, result_manager
 
Реалізується класами :
dynamo, discrete, integration, integration_rk45
 
 

Клас є базовим для чисельних методів, які можуть бути застосовані до моделей, заданих за допомогою класу model. При реалізації чисельного алгоритму передбачається перевантаження чисто віртуальної функції Method(). Даний клас містить сервісний набір функцій для запуску алгоритму на виконання. Неможливо створити об'єкт класу calc, але допускається створення покажчиків на calc, що дозволяє використовувати даний клас для динамічного створення об'єктів типу dynamo, discrete, integration, integration_rk45.


 

Члени класу
private result_manager dummyRes
           Заглушка для деяких функцій.

 

Конструктори
calc<class T = MDS_DEFAULT_TYPE, class EXCEPTION = MDS_DEFAULT_EXCEPTION>()
             Типи: T - тип обчислень, EXCEPTION - тип винятків.

 

Функції-члени класу
 virtual valarray <T>

Method(const valarray<model*>& pModels, const cauchy_region& region, result_manager& resCalc, bool isEnlargedPhase) = 0
           Чисто віртуальна функція, що має бути перевантажена при реалізації згідно чисельного алгоритму. Покажчики на моделі знаходяться у pModels; границі інтегрування задаються у region; збереження поточних результатів здійснюється за допомогою resCalc. Повертає значення як фазовий вектор у останній момент часу роботи алгоритму при isEnlargedPhase = false, або розширений фазовий вектор (перша координата - час) при isEnlargedPhase = true.

  valarray <T>

Calculate(const valarray<model*>& pModels, const cauchy_region& region, result_manager& resCalc, bool isEnlargedPhase = false)
           Запуск алгоритму. Покажчики на моделі знаходяться у pModels; границі інтегрування задаються у region; збереження поточних результатів здійснюється за допомогою resCalc. Повертає значення як фазовий вектор у останній момент часу роботи алгоритму при isEnlargedPhase = false, або розширений фазовий вектор (перша координата - час) при isEnlargedPhase = true.

valarray <T>

Calculate(const valarray<model*>& pModels, const cauchy_region& region, bool isEnlargedPhase = false)
           Запуск алгоритму. Покажчики на моделі знаходяться у pModels; границі інтегрування задаються у region. Повертає фазовий вектор у останній точці інтегрування при isEnlargedPhase = false, або розширений фазовий вектор (перша координата - час) при isEnlargedPhase = true.

valarray <T>

Calculate(model* pModel, const cauchy_region&region, result_manager&resCalc, bool isEnlargedPhase = false)
           Аналог Calculation(const valarray<model*> &pModels, const cauchy_region &region, result_manager &resCalc, bool isEnlargedPhase = false) для однієї моделі.

valarray <T>

Calculate(model* pModel, const cauchy_region&region, bool isEnlargedPhase = false)
           Аналог Calculation(const valarray<model*>& pModels, const cauchy_region& region, bool isEnlargedPhase = false) для однієї моделі.

valarray <T>

Calculate(model& OneModel, const cauchy_region& region, result_manager&resCalc, bool isEnlargedPhase = false)
           Аналог Calculation(const valarray<model*>& pModels, const cauchy_region& region, result_manager& resCalc, bool isEnlargedPhase = false) для однієї моделі.

valarray <T>

Calculate(model& OneModel, const cauchy_region& region, bool isEnlargedPhase = false)
           Аналог Calculation(const valarray<model*>& pModels, const cauchy_region& region, bool isEnlargedPhase = false) для однієї моделі.

 protected valarray <T>

CalcReturnValue(const T& res_t, const valarray<T>& res_x, bool isEnlargedRes)
           Сервісна функція для розробників. Формує значення, що має бути повернено чисельним методом.

 


Будь-ласка, надсилайте пропозиції, питання, зауваження: soft@unicyb.kiev.ua
Запрошуємо також до участі у самому проекті: надсилайте свої матеріали, які, по-можливості, будуть виставлені на сайті (див. Для авторів).

Кафедра Моделювання складних систем факультету кібернетики Київського університету імені Тараса Шевченка
03127, Україна, Київ, просп. Глушкова 2, корп. 6, кафедра МСС тел.: (044) 259-05-31, (044) 259-02-37, e-mail: garash@unicyb.kiev.ua
Всі права застережено.