Введение в ActiveField
Обзор объектов
Диаграмма иерархии
С чего начать
Работа с задачами
Работа с моделью
Работа с данными
Анализ результатов

Quantity Object

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

Физическая величина, вычисляемая путем интегрирования по контуру, поверхности или объему.

Подробное описание

Объект Quantity хранит интегральные величины. Вы можете получить объект Quantity, используя метод GetIntegral объекта Result.

Точный тип интегральной величины зависит от вида задачи и вида интеграла. Объект Quantity только указывает на величину и позволяет узнать тип величины и характерное значение величины. Имеет тип Double, обычно без знака.

Свойство QuantityType возвращает точный тип интегральной величины и имеет тип QfQuantityType.

Свойство Value возвращает величину интеграла и имеет тип Variant. Свойство Value является свойством по умолчанию объекта Quantity, так что писать его не обязательно.

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

dim res As ELCUT.Result

    ..................

dim resWin As FieldWindow
dim cont As ELCUT.Contour

set resWin = res.Windows(1)
set cont = resWin.Contour
   ' Здесь мы строим контур в виде круга с радиусом 5 и центром в начале координат
With cont
    .Delete
    .AddLineTo PointXY(0, 5)
    .AddLineTo PointXY(0, -5), 3.1415926
    .AddLineTo , 3.1415926
End With

   ' Вычисление длины контура
length = res.GetIntegral(qfInt_Length)
   '    и площади поперечного сечения
square = res.GetIntegral(qfInt_CrossSect)
   ' Теперь посчитаем полный ток через контур
   ' Мы используем объект Quantity чтобы получить точный тип физической величины

dim q As ELCUT.Quantity
set q = res.GetIntegral(qfInt_Jtotal)
   ' Суммарный ток является комплексной величиной
If q.QuantityType = qfComplex Then
   Dim jTotal As ComplexValue
   Set jTotal = q.Value
   Peak = jTotal.Peak       ' Слово Value используется по умолчанию и может быть пропущено
   Effective = jTotal.RMS
End If

Начиная с ELCUT версии 6.2, объект Quantity используется не только для хранения вычисленной интегральной физической величины, но и для вычисления пользовательской подынтегральной функции в методе метода GetValue интерфейса UserFunction. Для этого предназначены следующие методы, устанавливающие тип и значение физической величины:

Метод SetAsScalar с параметром вещественного типа

Присваивает объекту значение, имеющее тип вещественная величина. Признак типа - константа qfScalar.

Метод SetAsVector с двумя параметром вещественного типа

Присваивает объекту значение, имеющее тип Point - двумерный вещественный вектор. Признак типа - константа qfVector.

Метод SetAsComplex с двумя параметром вещественного типа

Присваивает объекту значение, имеющее тип ComplexValue - комплексное число. Признак типа - константа qfComplex.

Метод SetAsComplexVector с четырьмя параметрами вещественного типа

Присваивает объекту значение, имеющее тип ComplexVector - комплексный вектор: двумерный вектор, компоненты x и y которого являются комплексными числами. Признак типа - константа qfComplexVector.

Метод SetAsOscillated с тремя параметрами вещественного типа

Присваивает объекту значение, имеющее тип OscillatedValue - скалярная физическая величина, изменяющаяся с двойной частотой и имеющая ненулевое среднее значение за период. Признак типа - константа qfOscillatedValue.

Метод SetAsOscillatedVector с шестью параметрами вещественного типа

Присваивает объекту значение, имеющее тип OscillatedVector - векторная физическая величина, изменяющаяся с двойной частотой и имеющая ненулевое среднее значение за период. Признак типа - константа qfOscillatedVector.