PointwiseCalc: Boolean;
Свойство Active определяет признак использования поточечного расчёта задачи.
Поточечный расчёт выполняется только для задачи типа «Задача многопоточной трансформации», которая содержит модели вида «Детерминированное уравнение».
При поточечном расчёте задачи выполняется последовательный расчёт уравнения модели в каждой точке данных: сначала уравнение рассчитывается по первой точке данных, затем по второй точке и так далее. Такой расчёт можно использовать, если данные по текущей календарной точке зависят от данных, рассчитанных по предыдущей календарной точке. Если в задаче содержатся модели матричной агрегации, то при поточечном расчёте задачи невозможен расчёт агрегации для одной календарной точки. Рассчитать модели матричной агрегации можно только до или после поточечного расчёта, либо не рассчитывать. Для определения способа расчёта моделей матричной агрегации используйте свойство IMsProblemPointwiseSettings.NonPointwiseCalcMode.
Для получения подробной информации о поточечном расчёте обратитесь к разделу «Детерминированное уравнение». Поточечный расчёт задачи аналогичен поточечному расчёту алгоритма.
Допустимые значения:
True. Расчёт задачи выполняется поточечно;
False. По умолчанию. Расчёт задачи выполняется векторно.
Для выполнения примера в репозитории необходимо наличие контейнера моделирования с идентификатором CONT_MODEL, содержащего задачу моделирования типа «Задача многопоточной трансформации» с идентификатором PROBLEM. В задаче моделирования должна содержаться метамодель, в цепочке расчёта которой содержатся модели вида «Детерминированное уравнение» и модели матричной агрегации.
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
MB: IMetabase;
RubrDescr, Descr: IMetabaseObjectDescriptor;
Problem: IMsProblem;
Settings: IMsProblemCalculationSettings;
Calc: IMsProblemCalculation;
Pointwise: IMsProblemPointwiseSettings;
Begin
MB := MetabaseClass.Active;
// Получим контейнер моделирования
RubrDescr := MB.ItemById("CONT_MODEL");
Descr := RubrDescr.EditDescriptor;
// Получим задачу моделирования типа «Задача многопоточной трансформации»
Problem := MB.ItemByIdNamespace("PROBLEM", Descr.Key).Edit As IMsProblem;
// Зададим настройки поточечного расчёта задачи
Pointwise := Problem.PointwiseSettings;
Pointwise.Active := True;
Pointwise.NonPointwiseCalcMode := MsNonPointwiseCalcMode.CalcAfter;
// Сохраним внесенные изменения
(Problem As IMetabaseObject).Save;
// Рассчитаем задачу моделирования
Settings := Problem.CreateCalculationSettings;
Calc := Problem.Calculate(Settings);
Calc.Run;
End Sub UserProc;
В результате выполнения примера будет выполнен поточечный расчёт задачи. Если в задаче содержатся модели матричной агрегации, то они будут рассчитаны после поточечного расчёта детерминированных уравнений.
См. также: