Agent To Fluid


Преобразует агентов (дискретные элементы) в поток.

Служит в качестве интерфейсного блока между Библиотекой Моделирования Процессов (или любой другой библиотекой, разработанной на ее основе) и Библиотекой Моделирования Потоков. Предполагается, что каждый агент содержит определенный объем жидкости или объемного вещества, и как только агент прибывает на вход блока, поток сразу начинает свое движение. Так же, как и FluidSource, данный блок обладает желаемой скоростью потока на выходе, и реальная скорость может быть меньше либо равна желаемой скорости.

В блоке AgentToFluid может одновременно содержаться только один агент, и следующий агент не поступит в блок, пока жидкость из текущего агента полностью не вытечет.

Библиотека Моделирования Потоков стремится довести до максимума скорость потоков на выходе из всех источников жидкости, поэтому приоритет выходного потока из блока AgentToFluid по умолчанию равняется 1. Иногда, чтобы разрешить конфликт приоритетов, вам может понадобиться изменить приоритет выходного потока, увеличив его значение.

В качестве дополнительной возможности AgentToFluid может создавать партии: одна партия на один агент. Тип и цвет партии могут зависеть от агента, так как к агенту можно получить доступ в динамическом поле Партия.

Демо модель: FluidToAgent and AgentToFluid

Параметры

Объем жидкости в агенте [динамический]
Здесь вы можете задать объем жидкости в агенте, прибывшем в данный блок.
Тип значения: double
Локальная переменная: agent - агент
Скорость
Максимальная (желаемая) скорость на выходе.
Синтаксис: double rate
Установить новое значение во время выполнения: set_rate(новая величина)
Другой приоритет
Если эта опция выбрана (значение true), то приоритет выходного потока будет определяться параметром Приоритет выходного потока (см. ниже), в противном случае приоритет будет равен 1. Приоритет влияет на LP решатель, когда он стремится увеличить до максимума количество вещества, проходящего через систему.
Синтаксис: boolean customPriority
Установить новое значение во время выполнения: set_customPriority(true или false)
Приоритет выходного потока
[Параметр виден и применяется только в том случае, если выбрана опция Другой приоритет] Здесь вы можете изменить значение приоритета потока на выходе из данного блока применительно ко всей диаграмме процесса. Значение приоритета должно быть положительным числом.
Синтаксис: int priorityOutCustom
Установить новое значение во время выполнения: set_priorityOutCustom(новое значение)
Другие партии [динамический]
Если данная опция выбрана (значение true), то блок будет создавать другие партии (их характеристики могут зависеть от агента). Партия, соответствующая агенту, будет определяться параметром Партия (см. ниже).
В противном случае, будет создаваться партия по умолчанию: BatchTypes.DEFAULT_BATCH.
Тип значения: boolean
Локальная переменная: agent - агент
Партия [динамический]
[Параметр виден и применяется только в том случае, если выбрана опция Другие партии] Здесь вы можете задать партию, которая должна быть создана для текущего агента.
Тип: Object
Локальная переменная: agent - агент
Изменить цвет партии
[Параметр виден и применяется только в том случае, если выбрана опция Другая партия] Если данная опция выбрана, то цвет партии определяется параметром Цвет партии (см. ниже), в противном случае используется заданный по умолчанию цвет.
Синтаксис: boolean customBatchColor
Установить новое значение во время выполнения: set_customBatchColor(true или false)
Цвет партии [динамический]
[Параметр виден и применяется только в том случае, если выбрана опция Изменить цвет партии] Определяет цвет текущей партии, который может зависеть от агента и партии.
Тип значения: Color
Локальные переменные: agent - агент
Object batch - текущая партия
Место агента
Фигура разметки (узел или путь), где располагаются агенты, пока они находятся во внутренней очереди блока, в объекте очереди Queue.
Имя: entityLocation
Анимация
Резервуар
Здесь можно указать имя элемента разметки пространства Резервуар, используемого в качестве фигуры анимации блока AgentToFluid (как в 2D, так и в 3D). Резервуар отображает вещество, которое в данный момент находится в блоке.
Синтаксис: StorageTank storageTank
Отображать партии в блоке
Если данная опция выбрана, то значок блока будет отображать цвет текущей партии.
Синтаксис: boolean showBatchesInFlowchart
Действия
При входе [код]
Действие выполняется, когда агент прибывает в блок.
Локальная переменная: agent - агент
При завершении конвертации [код]
Данное действие выполняется, когда полный объем вещества, соответствующий текущему агенту, полностью выйдет из блока. После этого агент будет удален из процесса и следующий агент сможет войти в блок.
Локальные переменные: agent - агент
double amount - объем жидкости, соответствующий агенту.
При изменении скорости [код]
Действие выполняется, когда изменяется скорость потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальная переменная:  double outrate - текущая скорость потока в выходном порте

Функции

double amount()- Возвращает объем жидкости, который находится в данный момент в блоке и готов к выходу. Этот объем меньше, чем общий объем жидкости в текущем агенте.

double amount(AmountUnits units) - Возвращает объем жидкости (в указанных единицах измерения объема), который находится в данный момент в блоке и готов к выходу. Этот объем меньше, чем общий объем жидкости в текущем агенте.

double amountPassed() - Возвращает общий объем вещества, прошедший через выходной порт блока, начиная с запуска процесса моделирования.

double amountPassed(AmountUnits units) -  Возвращает общий объем вещества (в указанных единицах измерения объема), прошедший через выходной порт блока, начиная с запуска процесса моделирования.

double currentRate() - Возвращает текущую скорость потока вещества на выходе из блока.

double currentRate(FlowRateUnits units) -  Возвращает текущую скорость потока вещества (в указанных единицах измерения скорости) на выходе из блока.

void resetStats() - Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.

double totalAmountInAgent()- Возвращает общий объем вещества, соответствующий текущему агенту, который является "незаполненным", или 0, если в блоке нет агента.

double totalAmountInAgent(AmountUnits units) - Возвращает общий объем вещества (в указанных единицах измерения объема) соответствующий текущему разгружаемому агенту, или 0, если в блоке нет агента.

Agent agent()- Возвращает значение текущего агента, который является "незаполненным", или null, если агента нет.

Порты

in
Входной порт.
out
Выходной порт.