Fluid To Agent


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

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

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

FluidToAgent имеет внутри блок Source из Библиотеки Моделирования Процессов, и показывает все его параметры, включая действие При выходе, через которое можно получить доступ к объему жидкости в агенте и к партии.

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

Параметры

Создавать агента
Здесь вы можете выбрать, будет ли новый агент создаваться как только заданный объем жидкости накапливается (опция Для объема жидкости) в блоке или же новый агент будет создаваться для каждой партии (опция Для каждой партии), а именно, когда новая партия зайдет в блок после текущей партии.
Синтаксис: boolean agentPerAmount
Объем жидкости в агенте [динамический]
[Параметр виден и применяется, если Создавать агента: Для объема жидкости] Определяет объем жидкости, необходимый для того, чтобы создать агента. Это динамический параметр, который пересчитывается каждый раз после создания нового агента.
Тип значения: double
Новый агент [динамический]
Тип агентов, создаваемых объектом. Для того, чтобы блок создавал агенты другого типа, выберите данный тип из списка. Если вы еще не создали необходимый вам тип агента, то вы можете создать его, нажав на ссылку ниже: Создавать другой тип.
Значение по умолчанию: Agent
Локальные переменные: double amount - объем жидкости, использованный для создания агента
                     Object batch - текущая партия
Место агента
Определяет место, куда будут помещены созданные агенты. Имеется шесть альтернативных опций:
Не задано - вы не задаете место, куда будут прибывать агенты.
Узел сети / ГИС - Агенты появляются в заданном узле сети, Гис точке или ГИС регионе.
Аттрактор - Агенты появляются в заданном аттракторе.
(x, y, z) - Агенты появляются в точке с заданными координатами X, Y, Z.
(Широта, Долгота) - Агенты появляются в заданной точке на ГИС карте с указанными параметрами Широта и Долгота.
Географическое место - Агенты появляются в определенной локации на ГИС карте. Вы определяете это место, используя параметр Имя места (см.ниже).
Получить значение: locationType
Установить новое значение во время выполнения: set_locationType(новая величина)
Допустимые значения: Source.LOCATION_NOT_SPECIFIED, Source.LOCATION_NODE, Source.LOCATION_ATTRACTOR, Source.LOCATION_XYZ, Source.LOCATION_LATLON, Source.LOCATION_GEO_PLACE
Скорость [динамический]
[Параметр виден, если задана опция Место прибытия] Скорость созданных агентов.
Тип значения: double
Значение по умолчанию: 10 m/s
Локальная переменная: agent - агент
X, Y, Z [динамический]
[Параметр виден, если Место прибытия: (x, y, z)] Координаты X,Y,Z той точки, куда будут помещены агенты.
Тип значения: double
Локальная переменная: agent - агент
... в сети
[Параметр виден, если Место прибытия: (x, y, z)] Если данная опция выбрана (true), то агенты добавляются в сеть, выбранную в параметре Сеть (см.ниже).
Синтаксис: boolean locationXYZInNetwork
Сеть [динамический]
[Параметр виден, если выбрана опция ...в сети] Сеть, куда помещаются агенты, созданные данным блоком.
Тип значения: Network
Локальная переменная: agent - агент
Узел [динамический]
[Параметр виден, если Место прибытия: Узел сети / ГИС] Узел сети, ГИС точка или ГИС регион, куда помещаются агенты, созданные данным блоком.
Тип значения: Node
Локальная переменная: agent - агент
Аттрактор [динамический]
[Параметр виден, если Место прибытия: Аттрактор] Аттрактор, в направление которого будут двигаться агенты.
Тип значения
: Attractor
Локальная переменная: agent - агент
Широта, Долгота [динамический]
[Параметр виден, если Место прибытия: (Широта, Долгота)] Широта и долгота точки на ГИС карте, куда будут помещены агенты.
Тип значения: double
Локальная переменная: agent - агент
Имя места [динамический]
[Параметр виден, если Место прибытия: Географическое место] Имя определенной локации на ГИС карте, куда будут попадать агенты при создании. Вы задаете имя в виде текста в кавычках, например "Лондон". ГИС карта будет искать локацию с таким именем. Будет использоваться первая локация из списка результатов поиска ГИС.
Тип значения: String
Локальная переменная: agent - агент
Анимация
Резервуар
Здесь можно указать имя элемента разметки пространства Резервуар, используемого в качестве фигуры анимации блока FluidToAgent (как в 2D, так и в 3D). Резервуар отображает вещество, которое в данный момент находится в блоке.
Синтаксис: StorageTank storageTank
Отображать партии в блоке
Если данная опция установлена, то значок блока будет отображать цвет текущей партии.
Синтаксис: boolean showBatchesInFlowchart
Специфические
Добавить агентов в
Здесь вы задаете то место, где будут храниться агенты, созданные данным блоком: в популяции по умолчанию или в другой популяции (указывается в свойстве Популяция (см.ниже)).
Синтаксис: boolean addToCustomPopulation
Популяция [динамический]
[Параметр виден, если Добавить агентов в: другая популяция] Имя популяции агентов, где будут храниться агенты, созданные данным блоком.
Имя: AgentList
Локальная переменная: agent - агент
Действия
При выходе [код]
Данное действие выполняется, когда агент покидает блок. Вы можете получить доступ к агенту, объему жидкости, использованному для создания агента, и партии.
Локальные переменные: agent - агент
double amount - объем жидкости, использованный для создания агента.
Object batch - партия
При изменении скорости [код]
Действие выполняется, когда изменяется скорость потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальная переменная:  double inrate - текущая скорость потока во входном порте

Функции

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

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

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

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

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

double flush() - По вызову этой функции блок принудительно создает нового агента из накопленного на данный момент объема жидкости вне зависимости от настроек блока. Завершив это действие, блок возвращается в прежний режим работы. Если в блоке нет жидкости, генерируется ошибка.

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

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

Object getBatch()- Возвращает партию, втекающую в данный момент в блок или прибывшую на его вход.

Порты

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