Описание условной области

Помимо задания статических областей, в Норме имеется возможность задания условной области, которая состоит из точек индексного пространства, число и координаты которых могут меняться в зависимости от выполнения (или не выполнения) условий на область. Идея задания условной области заключается в следующем. Ранее определенная область D разбивается на две непересекающиеся подобласти D1 и D2. Первая подобласть состоит из точек области, в которых заданное условие на область принимает значение истина, вторая - из точек, в которых принимает значение ложь. При этом

Например, в строке 29: sa,sb:s/i=t. определяется разбиение исходной области s на области sa и sb. Область sa состоит из точек s, в которых условие i=t принимает значение истина, sb - в которых условие i=t принимает значение ложь.

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

Ниже приведен фрагмент программы, описывающий условные области OijTrue и OijFalse, затем область OijFalse разбивается на условные области Node и NotNode, а область Node - в свою очередь на условные области OTrue, OFalse:

DOMAIN PARAMETERS K=3,N=3.
Oi:(i=0..2*K). Oj:(j=0..(2*K+1)*(2*N+1). Oij:(Oi;Oj).
OijTrue,OijFalse: Oij/j=(2*K+1)*(2*N+1) AND i=0.
Node,NotNode: OijFalse/ABS(Tj2-Tj1)<0.001.
OTrue,OFalse: Node/ABS(Ti-Tj1)>0.001.
VARIABLE Ti DEFINED ON Oi DOUBLE.
VARIABLE Tj1,Tj2 DEFINED ON Oj DOUBLE.