FLAME GPU 2
Contents:
Tutorial
FLAME GPU Design Philosophy
Creating a Project
Structure of a FLAME GPU 2 Program
Agent/Host Function Definitions
Model Declaration
Initialisation
Execution
Tutorial: Creating the Circles Model
Introducing The Circles Model
Configuring CMake
Opening the Project
Model Description
Message Description
Agent Description
Environment Description
Agent Function Description & Implementation
Execution Order
Initialisation Function
Configuring the Simulation
Configuring Logging (Optional)
Visualisation Config (Optional)
Running the Simulation
Complete Tutorial Code
Related Links
Quickstart
Prerequisites
C++
Installation
Creating a New Project
Compiling Your Project
CMake GUI (Windows Only)
Running Your Project
Python 3
Installation
Building From Source
Creating a New Project
Running your project
User Guide
Creating a Model
What is a Model?
Creating a ModelDescription Object
Environmental Properties
Accessing the EnvironmentDescription Object
Defining Properties
Defining Macro Properties
Related Links
Defining Agents
Defining a New Agent Type
Agent Variables
Agent ID
User Defined Variables
Agent States
Related Links
Defining Messages (Communication)
Communication Strategies
Defining a New Message Type
Brute Force Specialisation
Bucket Specialisation
Spatial Specialisation
Array Specialisation
Related Links
Agent Functions
Defining Agent Functions
FLAME GPU Device Functions
FLAME GPU Host Device Functions
Related Links
Accessing Agent Variables
Reading an Agent’s ID
Related Links
Accessing the Environment
Environment Properties
Environment Macro Properties
Related Links
Agent Communication
Sending Messages
Reading Messages
Related Links
Agent Birth & Death
Agent Death
Agent Birth
Related Links
Random Numbers
Related Links
Agent Function Conditions (Conditional Behaviours)
Related Links
Miscellaneous Methods
Related Links
Host Functions & Conditions
Defining Host Functions
Types of Host Function
Adding Host Functions to a Model
Related Links
Accessing the Environment
Environment Properties
Environment Macro Properties
Related Links
Agent Operations
Variable Reductions
Sorting Agents
Agent Creation
Direct Agent Access
Miscellaneous Methods
Related Links
Random Numbers
Seeding the Random State
Related Links
Miscellaneous Methods
Related Links
Defining Execution Order
Dependency Graph
Specifying Dependencies
Accessing the DependencyGraph
Specifying Roots
Generating Layers
Visualising the Dependencies
Related Links
Layers
Manual Layer Specification
Layer Specification Rules
Related Links
Exit Conditions
Related Links
Submodels
Defining a Submodel
Related Links
Running a Simulation
Configuring Execution
Related Links
Overriding the Initial State
With Code
From File
Related Links
Collecting Data
Logging
Accessing the Complete Agent State
Additional Notes
Related Links
Running Multiple Simulations
Creating a CUDAEnsemble
Creating a RunPlanVector
Creating a Logging Configuration
Configuring & Running the Ensemble
Error Handling Within Ensembles
Related Links
Visualisation
Enabling Visualisation
Detecting Visualisation Support
Configuring a Visualisation
Visualisation Options
Visualising After Simulation Exit
Related Links
Visualising Agents
Agent Model
Agent Position
Agent Direction
Agent Scale
Agent Color
Agent States
Related Links
Visualising Additional Details
Lines
Models
Related Links
Visualisation Controls
Performance Troubleshooting
Building or Modifying the FLAME GPU 2 Source
Building FLAME GPU from Source
Related Links
Requesting Features
Contributing to FLAMEGPU2
Reporting Bugs
Submitting Pull Requests
License
What is SEATBELTS?
Enabling/Disabling SEATBELTS
Related Links
Library API
Page Hierarchy
Class Hierarchy
File Hierarchy
Full API
Namespaces
Namespace flamegpu
Namespace flamegpu::@158
Namespace flamegpu::exception
Namespace flamegpu::io
Namespace flamegpu::util
Namespace flamegpu::util::nvtx
Namespace flamegpu::visualiser
Namespace flamegpu::visualiser::Stock
Namespace flamegpu::visualiser::Stock::Colors
Namespace flamegpu::visualiser::Stock::Palettes
Classes and Structs
Struct AgentData
Struct AgentFunctionData
Struct AgentLogFrame
Struct AgentVariable
Struct AgentVariableHash
Struct CUDAEnsemble::EnsembleConfig
Struct CUDAFatAgent::AgentState
Struct CUDAFatAgent::AgentState_hash
Struct CUDAFatAgent::NewBuffer
Struct CUDAMacroEnvironment::MacroEnvProp
Struct CUDAScanCompactionConfig
Struct CUDAScanCompactionPtrs
Struct CUDAScatter::InversionIterator
Struct CUDAScatter::ScatterData
Struct CUDAScatter::StreamData
Struct CUDASimulation::Config
Struct CUDASimulation::Singletons
Struct DeviceAgentVector_impl::VariableBufferPair
Struct EnvironmentDescription::MacroPropData
Struct EnvironmentDescription::PropData
Struct EnvironmentManager::DefragProp
Struct EnvironmentManager::EnvProp
Struct EnvironmentManager::MappedProp
Struct DeviceExceptionBuffer
Struct ExitLogFrame
Struct HostMacroProperty_MetaData
Struct LayerData
Struct LogFrame
Struct LoggingConfig::NameReductionFn
Struct MessageArray2D::Data
Struct MessageArray2D::MetaData
Struct MessageArray3D::Data
Struct MessageArray3D::MetaData
Struct MessageArray::Data
Struct MessageArray::MetaData
Struct MessageBruteForce::Data
Struct MessageBruteForce::MetaData
Struct MessageBucket::Data
Struct MessageBucket::MetaData
Struct MessageSpatial2D::Data
Struct MessageSpatial2D::GridPos2D
Struct MessageSpatial2D::MetaData
Struct MessageSpatial3D::Data
Struct MessageSpatial3D::GridPos3D
Struct MessageSpatial3D::MetaData
Struct ModelData
Struct NewAgentStorage
Struct RunLog
Struct RunLog::PerformanceSpecs
Struct SimRunner::ErrorDetail
Struct Simulation::Config
Struct StepLogFrame
Struct SubAgentData
Struct SubEnvironmentData
Struct SubModelData
Template Struct sum_input_t
Template Struct sum_input_t< char >
Template Struct sum_input_t< double >
Template Struct sum_input_t< float >
Template Struct sum_input_t< int16_t >
Template Struct sum_input_t< int32_t >
Template Struct sum_input_t< int64_t >
Template Struct sum_input_t< int8_t >
Template Struct sum_input_t< uint16_t >
Template Struct sum_input_t< uint32_t >
Template Struct sum_input_t< uint64_t >
Template Struct sum_input_t< uint8_t >
Struct Any
Struct StringPairHash
Struct Variable
Struct VariableBuffer
Struct VarOffsetStruct
Struct VarOffsetStruct::OffsetLen
Struct Color
Struct Palette
Struct Dark2
Struct Greys
Struct Pastel
Struct PiYG
Struct RdYlBu
Struct Set1
Struct Set2
Struct Viridis
Struct YlGn
Struct YlOrRd
Template Struct type_decode
Class AgentDescription
Class AgentFunctionDescription
Class AgentInstance
Class AgentInterface
Class AgentLoggingConfig
Class AgentRandom
Class AgentVector
Class AgentVector::const_iterator
Class AgentVector::const_reverse_iterator
Class AgentVector::iterator
Class AgentVector::reverse_iterator
Class AgentVector_Agent
Class AgentVector_CAgent
Class CUDAAgent
Class CUDAAgentStateList
Class CUDAEnsemble
Class CUDAFatAgent
Class CUDAFatAgentStateList
Class CUDAMacroEnvironment
Class CUDAMessage
Class CUDAMessageList
Class CUDAScanCompaction
Class CUDAScatter
Class CUDASimulation
Class DependencyGraph
Class DependencyNode
Class DeviceAgentVector_impl
Template Class DeviceAPI
Class DeviceAPI::AgentOut
Class DeviceEnvironment
Template Class DeviceMacroProperty
Class EnvironmentDescription
Class EnvironmentManager
Class AgentIDCollision
Class ArrayMessageWriteConflict
Class CUDAError
Class CurveException
Class DeviceError
Class DeviceExceptionManager
Class DifferentModel
Class DuplicateEnvProperty
Class EnsembleError
Class EnvDescriptionAlreadyLoaded
Class ExpiredWeakPtr
Class FLAMEGPUException
Class InvalidAgent
Class InvalidAgentFunc
Class InvalidAgentName
Class InvalidAgentState
Class InvalidAgentVar
Class InvalidArgument
Class InvalidCudaAgent
Class InvalidCudaAgentDesc
Class InvalidCudaAgentMapSize
Class InvalidCudaAgentState
Class InvalidCUDAComputeCapability
Class InvalidCUDAdevice
Class InvalidCudaMessage
Class InvalidDependencyGraph
Class InvalidEnvProperty
Class InvalidEnvPropertyType
Class InvalidFilePath
Class InvalidFuncLayerIndx
Class InvalidHostFunc
Class InvalidInputFile
Class InvalidLayerMember
Class InvalidMemoryCapacity
Class InvalidMessage
Class InvalidMessageData
Class InvalidMessageName
Class InvalidMessageType
Class InvalidMessageVar
Class InvalidOperation
Class InvalidParent
Class InvalidStateName
Class InvalidSubAgentName
Class InvalidSubModel
Class InvalidSubModelName
Class InvalidVarArrayLen
Class InvalidVarType
Class OutOfBoundsException
Class OutOfMemory
Class OutOfRangeVarArray
Class RapidJSONError
Class ReadOnlyEnvProperty
Class ReservedName
Class TimerException
Class TinyXMLError
Class UnknownError
Class UnknownInternalError
Class UnsupportedFileType
Class UnsupportedVarType
Class VersionMismatch
Class VisualisationException
Class HostAgentAPI
Class HostAPI
Class HostEnvironment
Class HostFunctionCallback
Class HostFunctionConditionCallback
Class HostFunctionDescription
Template Class HostMacroProperty
Class HostNewAgentAPI
Class HostRandom
Class JSONLogger
Class JSONStateReader
Class JSONStateReader_agentsize_counter
Class JSONStateReader_impl
Class JSONStateWriter
Class Logger
Class LoggerFactory
Class StateReader
Class StateReaderFactory
Class StateWriter
Class StateWriterFactory
Class XMLLogger
Class XMLStateReader
Class XMLStateWriter
Class LayerDescription
Class LoggingConfig
Class MessageArray
Class MessageArray2D
Class MessageArray2D::CUDAModelHandler
Class MessageArray2D::Description
Class MessageArray2D::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class In::Message
Class In::VonNeumannFilter
Class VonNeumannFilter::iterator
Class VonNeumannFilter::Message
Class In::VonNeumannWrapFilter
Class VonNeumannWrapFilter::iterator
Class VonNeumannWrapFilter::Message
Class In::WrapFilter
Class WrapFilter::iterator
Class WrapFilter::Message
Class MessageArray2D::Out
Class MessageArray3D
Class MessageArray3D::CUDAModelHandler
Class MessageArray3D::Description
Class MessageArray3D::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class In::Message
Class In::VonNeumannFilter
Class VonNeumannFilter::iterator
Class VonNeumannFilter::Message
Class In::VonNeumannWrapFilter
Class VonNeumannWrapFilter::iterator
Class VonNeumannWrapFilter::Message
Class In::WrapFilter
Class WrapFilter::iterator
Class WrapFilter::Message
Class MessageArray3D::Out
Class MessageArray::CUDAModelHandler
Class MessageArray::Description
Class MessageArray::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class In::Message
Class In::WrapFilter
Class WrapFilter::iterator
Class WrapFilter::Message
Class MessageArray::Out
Class MessageBruteForce
Class MessageBruteForce::CUDAModelHandler
Class MessageBruteForce::Description
Class MessageBruteForce::In
Class In::iterator
Class In::Message
Class MessageBruteForce::Out
Class MessageBucket
Class MessageBucket::CUDAModelHandler
Class MessageBucket::Description
Class MessageBucket::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class MessageBucket::Out
Class MessageNone
Class MessageNone::CUDAModelHandler
Class MessageNone::In
Class MessageNone::Out
Class MessageSpatial2D
Class MessageSpatial2D::CUDAModelHandler
Class MessageSpatial2D::Description
Class MessageSpatial2D::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class MessageSpatial2D::Out
Class MessageSpatial3D
Class MessageSpatial3D::CUDAModelHandler
Class MessageSpatial3D::Description
Class MessageSpatial3D::In
Class In::Filter
Class Filter::iterator
Class Filter::Message
Class MessageSpatial3D::Out
Class MessageSpecialisationHandler
Class ModelDescription
Class RandomManager
Class ReadOnlyDeviceAPI
Class ReadOnlyDeviceEnvironment
Template Class ReadOnlyDeviceMacroProperty
Class RunPlan
Class RunPlanVector
Class SimLogger
Class SimRunner
Class Simulation
Class StepLoggingConfig
Class SubAgentDescription
Class SubEnvironmentDescription
Class SubModelDescription
Class NVTXRange
Class AgentStateVis
Class AgentVis
Class AutoPalette
Class ColorFunction
Template Class DiscreteColor
Class HSVInterpolation
Class LineVis
Class ModelVis
Class Palette::const_iterator
Class StaticColor
Class StaticModelVis
Class ViridisInterpolation
Enums
Enum AGENT_STATUS
Enum CONDITION_RESULT
Enum MessageSortingType
Functions
Template Function flamegpu::agent_function_condition_wrapper
Template Function flamegpu::agent_function_wrapper
Function flamegpu::allocateIDs
Function flamegpu::atomicHistogram1D
Function flamegpu::atomicHistogram2D
Function flamegpu::atomicHistogram3D
Function flamegpu::broadcastInitKernel
Function flamegpu::calculateSpatialHash
Function flamegpu::calculateSpatialHashFloat2
Function flamegpu::calculateSpatialHashFloat3
Function flamegpu::generateCollisionFlags
Template Function flamegpu::getAgentVariableMaxFunc
Template Function flamegpu::getAgentVariableMeanFunc
Template Function flamegpu::getAgentVariableMinFunc
Template Function flamegpu::getAgentVariableStandardDevFunc
Template Function flamegpu::getAgentVariableSumFunc
Function flamegpu::getGridPosition2D
Function flamegpu::getGridPosition3D
Function flamegpu::getHash2D
Function flamegpu::getHash3D
Function flamegpu::init_curand
Function flamegpu::initToThreadIndex
Function flamegpu::pbm_reorder_generic
Function flamegpu::reorder_array_messages
Function flamegpu::scatter_all_generic
Template Function flamegpu::scatter_generic
Function flamegpu::scatter_new_agents
Function flamegpu::scatter_position_generic
Function flamegpu::sortBuffer_kernel
Function flamegpu::util::nvtx::pop
Function flamegpu::util::nvtx::push
Variables
Variable flamegpu::ID_NOT_SET
Variable flamegpu::ID_VARIABLE_NAME
Variable flamegpu::util::nvtx::colourCount
Variable flamegpu::util::nvtx::palette
Variable flamegpu::VERSION
Variable flamegpu::VERSION_BUILDMETADATA
Variable flamegpu::VERSION_FULL
Variable flamegpu::VERSION_MAJOR
Variable flamegpu::VERSION_MINOR
Variable flamegpu::VERSION_PATCH
Variable flamegpu::VERSION_PRERELEASE
Variable flamegpu::VERSION_STRING
Variable flamegpu::visualiser::Stock::Colors::BLACK
Variable flamegpu::visualiser::Stock::Colors::BLUE
Variable flamegpu::visualiser::Stock::Colors::GREEN
Variable flamegpu::visualiser::Stock::Colors::RED
Variable flamegpu::visualiser::Stock::Colors::WHITE
Variable flamegpu::visualiser::Stock::Palettes::DARK2
Variable flamegpu::visualiser::Stock::Palettes::GREYS
Variable flamegpu::visualiser::Stock::Palettes::PASTEL
Variable flamegpu::visualiser::Stock::Palettes::PIYG
Variable flamegpu::visualiser::Stock::Palettes::RDYLBU
Variable flamegpu::visualiser::Stock::Palettes::SET1
Variable flamegpu::visualiser::Stock::Palettes::SET2
Variable flamegpu::visualiser::Stock::Palettes::YLGN
Variable flamegpu::visualiser::Stock::Palettes::YLORRD
Defines
Define DERIVED_FLAMEGPUException
Define DTHROW
Define FLAMEGPU_AGENT_FUNCTION
Define FLAMEGPU_AGENT_FUNCTION_CONDITION
Define FLAMEGPU_CUSTOM_REDUCTION
Define FLAMEGPU_CUSTOM_TRANSFORM
Define FLAMEGPU_DEVICE_FUNCTION
Define FLAMEGPU_EXIT_CONDITION
Define FLAMEGPU_EXIT_FUNCTION
Define FLAMEGPU_HOST_CONDITION
Define FLAMEGPU_HOST_DEVICE_FUNCTION
Define FLAMEGPU_HOST_FUNCTION
Define FLAMEGPU_INIT_FUNCTION
Define FLAMEGPU_STEP_FUNCTION
Define FLAMEGPU_VERSION
Define gpuErrchk
Define gpuErrchkDriverAPI
Define gpuErrchkLaunch
Define INCLUDE_FLAMEGPU_EXCEPTION_FLAMEGPUDEVICEEXCEPTION_CUH_
Define INCLUDE_FLAMEGPU_EXCEPTION_FLAMEGPUDEVICEEXCEPTION_DEVICE_CUH_
Define INCLUDE_FLAMEGPU_GPU_CUDASCATTER_CUH_
Define INCLUDE_FLAMEGPU_GPU_DETAIL_CUBTEMPORARYMEMORY_CUH_
Define INCLUDE_FLAMEGPU_GPU_DETAIL_CUDAERRORCHECKING_CUH_
Define INCLUDE_FLAMEGPU_MODEL_AGENTFUNCTIONDATA_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_AGENTFUNCTION_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_AGENTFUNCTION_SHIM_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_AGENTFUNCTIONCONDITION_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_AGENTFUNCTIONCONDITION_SHIM_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_DETAIL_CURVE_CURVE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_DETAIL_CURVE_CURVE_RTC_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_DETAIL_CURVE_DEVICECURVE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_DETAIL_CURVE_HOSTCURVE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_DEVICEAPI_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_HOSTAGENTAPI_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGEARRAY2D_MESSAGEARRAY2DDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGEARRAY3D_MESSAGEARRAY3DDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGEARRAY_MESSAGEARRAYDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGEBRUTEFORCE_MESSAGEBRUTEFORCEDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGEBUCKET_MESSAGEBUCKETDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGENONE_MESSAGENONEDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGESPATIAL2D_MESSAGESPATIAL2DDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_MESSAGING_MESSAGESPATIAL3D_MESSAGESPATIAL3DDEVICE_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_AGENTRANDOM_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_DEVICEENVIRONMENT_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_DEVICEMACROPROPERTY_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_ENVIRONMENTMANAGER_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_HOSTENVIRONMENT_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_HOSTMACROPROPERTY_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_HOSTRANDOM_CUH_
Define INCLUDE_FLAMEGPU_RUNTIME_UTILITY_RANDOMMANAGER_CUH_
Define INCLUDE_FLAMEGPU_SIM_AGENTLOGGINGCONFIG_REDUCTIONS_CUH_
Define INCLUDE_FLAMEGPU_UTIL_DETAIL_COMPUTE_CAPABILITY_CUH_
Define INCLUDE_FLAMEGPU_UTIL_DETAIL_CUDAEVENTTIMER_CUH_
Define INCLUDE_FLAMEGPU_UTIL_DETAIL_WDDM_CUH_
Define NVTX_POP
Define NVTX_PUSH
Define NVTX_RANGE
Define THROW
Define XMLCheckResult
Define XMLCheckResult
Define XMLCheckResult
Typedefs
Typedef flamegpu::AgentFunctionConditionWrapper
Typedef flamegpu::AgentFunctionWrapper
Typedef flamegpu::CUDAMessageMap
Typedef flamegpu::CUDAMessageMapPair
Typedef flamegpu::DeviceAgentVector
Typedef flamegpu::FLAMEGPU_EXIT_CONDITION_POINTER
Typedef flamegpu::FLAMEGPU_EXIT_FUNCTION_POINTER
Typedef flamegpu::FLAMEGPU_HOST_CONDITION_POINTER
Typedef flamegpu::FLAMEGPU_HOST_FUNCTION_POINTER
Typedef flamegpu::FLAMEGPU_INIT_FUNCTION_POINTER
Typedef flamegpu::FLAMEGPU_STEP_FUNCTION_POINTER
Typedef flamegpu::id_t
Typedef flamegpu::IntT
Typedef flamegpu::util::StringPair
Typedef flamegpu::util::StringPairMap
Typedef flamegpu::util::StringPairUnorderedMap
Typedef flamegpu::VariableMap
Typedef flamegpu::visualiser::iDiscreteColor
Typedef flamegpu::visualiser::uDiscreteColor
Forum
FLAME GPU 2
»
Library API
»
Template Struct sum_input_t< uint32_t >
View page source
Template Struct sum_input_t< uint32_t >
Defined in
File AgentLoggingConfig_SumReturn.h
Struct Documentation
template
<
>
struct
sum_input_t
<
uint32_t
>
See also
sum_input_t
Public Types
typedef
uint64_t
result_t