Содержание

Назад Вперед

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

declaration-of-conditional-domain :
name-conditional domain , name-conditional-domain : name-domain / condition-on-domain

Помимо задания статических областей, в Норме имеется возможность задания условной области, которая состоит из точек индексного пространства, число и координаты которых могут меняться в зависимости от выполнения (или не выполнения) условий на область.

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

Например, пусть заданы области:

Domain: ( ( i=2..n) ) ; ( j=1..m ) ) .
Domain1,Domain2: Domain / x+y[ i-1, j ] - z[ j+1 ] > 0 .

Это описание определяет разбиение исходной области Domain на области Domain1 и Domain2, такие, что

Область Domain1 состоит из точек Domain, в которых условие x+y[i-1, j] - z[j +1] > 0 принимает значение "истина", Domain2 - из точек, в которых условие принимает значение "ложь".

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

Ниже приведен фрагмент программы, описывающий условные области Bf2PI и BfNot2PI, затем область BfNot2PI разбивается на условные области Nodes и NotNodes, а область NotNodes - в свою очередь на условные области DomainTrue, DomainFalse:

DOMAIN PARAMETERS N=3, NV=3 .
Bnu : (Nu=0..2*N) . Bf : ( II=0..(2*N+1) * (2*NV+1 ) . BfNu : (Bf ; Nu) .
Bf2PI , BfNot2PI : BfNu / II=(2*N+1)*(2*NV+! ) AND NU=0 .
Nodes , NotNodes : BfNot2PI / ABS (BTNodes -BT ) < 0.0001 .
DomainTrue , DomainFalse : Nodes / ABS(BTNu - BTNodes ) < 0.0001 .
VARIABLE BT, BTNodes DEFINED ON Bf DOUBLE .
VARIABLE BTNu DEFINED ON Bnu DOUBLE .

Содержание

Назад Вперед