(U4.31.02) Оператор DEFI FONCTION

Материал из ru.wiki.laduga.ru
Перейти к: навигация, поиск


1 Краткое описание

Определяются действительные и комплексные функции действительных переменных. Данный оператор позволяет определить, например, характеристическую функцию материалов, зависящую от температуры, или граничные условия, зависящие от переменных пространства или времени.

Модель изделия, созданная на основе этого оператора, имеет стандартный тип function.



2 Синтаксис

   F [function] = DEFI_FONCTION (

                   ♦NOM_PARA= Np,

                   ◊NOM_RESU= /"TOUTRESU",      [DEFECT]   
                              /NR,              [K8]

                   ♦/VALE= lv,                  [l_R]
                    /VALE_C= lv,                [l_C]
                    /VALE_PARA= la,             [listr8]
                       ♦VALE_FONC=lo,           [listr8]
                    /ABSCISSE= labs,            [l_R]
                       ♦ORDONNEE= lord,         [l_R]
                   /NOEUD_PARA= lno,            [l_noeud]
                       ♦MAILLAGE= ma,           [mesh]
                       ♦VALE_Y= ly,             [l_R]

                  ◊PROL_DROITE= /"CONSTANT",  
                                /"LINEAIRE",  
                                /"EXCLU",       [DEFAULT]     
 
                  ◊PROL_GAUCHE= /"CONSTANT", 
                                /"LINEAIRE", 
                                /"EXCLU",       [DEFAULT]

                  ◊INTERPOL= |’LIN’,            [DEFAULT]  
                             | “LOG”,
                             | “NON”,

                  ◊INFO=  /1,                   [DEFAULT]  
                          /2,

                  ◊VERIF=  |'CROISSANT',        [DEFAULT] 
                           | ’NON’,

                  ◊TITRE= ti,                   [l_Kn]

                                )



3 Операнды

3.1 Операнд NOM_PARA

   ♦NOM_PARA= Np,

Обозначает имя параметра (переменная или координата Х) функции.

Возможные значения Np:

”ABSC”, “AMOR”, “DRX”, “DRY”, “DRZ”, “DSP”, “DX”, “DY”, “DZ”, 
“ENDO”, “EPAIS”, “EPSI”,“FREQ”, “HYDR”, “INST”, “META”, “NEUT1”, 
“NEUT2”, “NORM”, “PAD”, “PCAP”, “PGAZ”, “PLIQ”,  “PORO”, “PULS”, 
“PVAP”, “SAT”, “SECH”, “SIGM”, “TEMP”, “VITE”, “X”, “Y”, “Z”.

3.2 Операнд NOM_RESU

   ◊NOM_RESU  =  NR

Обозначает имя результата (8 символов). Функция, созданная таким образом выглядит:

   NR = F(Np).

Примечание:

Некоторые команды ( CALC_FONCTION, DEFI_MATERIAU… ) проверяют связность имён параметров и результата согласно их контексту. Например, предпологается, что диаграмма растяжения задана функцией, в которой NOM_PARA=’EPSI’ и NOM_RESU=’SIGM’.

3.3 Операнд VALE

   /VALE= lv

lv – это список значений (x1, y1,..., xn, yn) в порядке:

  • x1, y1 (первое значение параметра и соответствующее значение результата),
  • ... ,
  • xn, yn (последнее значение параметра и соответствующее значение результата).

Примечание:

Список значений lv должен быть представлен в порядке возрастания координат Х.

3.4 Операнд VALE_C

   /VALE_C= lv

lv – это список значений (X, there, Z,…,xn,yn,zn) где:

  • xi – значение параметра,
  • ... ,
  • yi,zi – действительная и мнимая части значения комплексной функции для этого параметров.

3.5 Операнды x-coordinate / ordonnee

   /ABSCISSE = labs
   /ORDONNEE = lord

Предоставляют отдельно значения координат X и Y функции в форме списков действительных значений (xl, x2,..., xn) для x-coordinate и (yl, y2,...,yn)для ordonnee.

Эти два списка должны иметь одно и тоже количество элементов.

3.6 Операнды VALE_PARA / VALE_FONC

   /VALE_PARA  =  la
   /VALE_FONC  =  lo

Такая же работа, как и у X-COORDINATE, ORDONNEE, за исключением того, что списки предоставляются в виде концепции listr8, предоставляемой оператором DEFI_LIST_REEL (U4.34.01).

VALE_PARA и VALE_fonc должны быть одинакового размера, чтобы не было остановки из-за ошибки.

3.7 Операнды NOEUD_PARA

   /NOEUD_PARA= lno

lno – это список узлов, позволяющий определять значения координат X в области определения функции.

Координаты X будут соответствовать криволинейным абсциссам узлов на кривой, на которой они определены.

3.8 Операнды PROL_DROITE и PROL_GAUCHE

   ◊PROL_DROITE и PROL_GAUCHE =

Определяет тип удлинения вправо (влево) области определения переменной:

  • “CONSTANT” - для удлинения последнего (первого) значения функции,
  • “LINEAIRE” - для удлинения вдоль первого сегмента области определения (PROL_GAUCHE) или вдоль последнего сегмента области определения (PROL_DROITE),
  • “EXCLU” - если экстраполяция значений вне области определения параметра запрещёна (в этом случае, если для расчётов требуются значения функции вне области определения, расчёты будут прерваны из-за неустранимой ошибки ).

Например:

U4.31.02 3.8.png

Примечание:

Тип удлинения и интерполяция не зависят друг от друга.

3.9 Операнд INTERPOL

   ◊INTERPOL=

Тип интерполяции функции, вводятся значения области определения функции: тип интерполяции параметров и тип интерполяции функции. Это достигается при помощи текстового списка в котором:

         INTERPOL = (“LIN”, “LOG”)
   “LIN”:  линейная,
   “LOG”:  логарифмическая кривая,
   “NON”:  без интерполяции (и таким образом программа остановится, если будет запрос значения функции для параметра, где он не определён). 

Примечание:

Если задано только одно значение, оно рассматривается как два одинаковых: для параметров и для функции. INTERPOL = "LOG" эквивалентно ("LOG", "LOG").

3.10 Операнд INFO

   ◊INFO = точные опции печати в файл MESSAGE.
       1:   не печатать (по умолчанию)
       2:   печать параметров плюс список первых 10 значений в порядке возрастания.

3.11 Операнд VERIF

   ◊VERIF=  

Проверка оператора DEFI_FONCTION, которая следит за строгим возрастанием значений координат X. В случае невыполнения этого условия генерируется ошибка. Если процесс проверки привёл к ошибке, то операнд VERIF принимает значение “CROISSANT”. Пользователь может не производить проверку указав значение VERIF=”NON”. В этом случае функция будет переупорядочена по возрастанию координаты X. Если координаты X функции не будут возрастать, сгенерируется предупреждение.

С другой стороны, координаты X должны принудительно быть строго монотонными.

3.12 Операнд TITRATES

   ◊TITRE=

Добавляет титры к модели изделия при помощи оператора (U4.03.01).

3.13 Операнды mesh и VALE_Y

Эти два ключевых слова имеют смысл тогда, когда определение функции начинается с NOEUD_PARA.

   MESH  =  my
   Название сетки, связанной со списком, содержащим узел lno.
   VALE_Y  =  lv
   Определяет список значений координаты Y функции.



4 Определение функции, зависящей от времени

4.1 Функции и переменные, представленные в виде определения

Действительная функция (кусочно-линейная), зависящая от времени (параметр INST).

U4.31.02 4.1.png

4.2 Функции и переменные, представленные в виде listr8

Для определения функции можно использовать объект типа listr8, создаваемый при помощи оператора DEFI_LIST_REEL (U4.34.01):

   X-COORDINATE = DEFI_LIST_REEL  ( DEBUT = 0. ,
                  INTERVALLE = (_F (JUSQU_A = 1. , NOMBRE = 1,),
                                _F (JUSQU_A = 3. , NOMBRE = 1,),
                                _F (JUSQU_A = 6. , NOMBRE = 1,),)
                       )
   ORDONNEE = DEFI_LIST_REEL  ( DEBUT = -1. ,
                INTERVALLE = (_F (JUSQU_A = 0. , NOMBRE = 1,),
                              _F (JUSQU_A = 1. , NOMBRE = 1,),
                              _F (JUSQU_A = 2. , NOMBRE = 1,),)
                       )
   EX_2 = DEFI_FINCTION   ( NOM_PARA    = “INST”,
                            VALE_PARA   = X-COORDINATE,
                            VALE_FONC   = ORDONNEE,
                            PROL_DROITE = “CONSTANT”,
                            PROL_GAUCHE = “LINEAIRE”,
                          )

Примечание:

Этот шаблон довольно сложен для определения предлагаемой функции.

Мы хотели лишь выделить принцип использования предложенного способа.

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

Ещё одной причиной использования определения с помощью DEFI_LIST_REEL является та ситуация, когда список необходим как аргумент для другого оператора: (список времён в эволюционных вычислениях THER_LINEAIRE, DYNA_LINE_TRAN,…). Таким образом, избегается дублирование информации.