BioDynaMo
v1.05.120-25dc9790
|
#include <execution_context.h>
Public Member Functions | |
virtual | ~ExecutionContext ()=default |
virtual void | SetupAgentOpsAll (const std::vector< ExecutionContext * > &all_exec_ctxts)=0 |
virtual void | TearDownAgentOpsAll (const std::vector< ExecutionContext * > &all_exec_ctxts)=0 |
virtual void | SetupIterationAll (const std::vector< ExecutionContext * > &all_exec_ctxts)=0 |
virtual void | TearDownIterationAll (const std::vector< ExecutionContext * > &all_exec_ctxts)=0 |
virtual void | Execute (Agent *agent, AgentHandle ah, const std::vector< Operation * > &operations)=0 |
virtual void | ForEachNeighbor (Functor< void, Agent * > &lambda, const Agent &query, void *criteria)=0 |
virtual void | ForEachNeighbor (Functor< void, Agent *, real_t > &lambda, const Agent &query, real_t squared_radius)=0 |
virtual void | ForEachNeighbor (Functor< void, Agent *, real_t > &lambda, const Real3 &query_position, real_t squared_radius)=0 |
virtual void | AddAgent (Agent *new_agent)=0 |
Adds the agent to the simulation (threadsafe, takes ownership). Note that we avoid the use of smart pointers for the agents to avoid unnecessary overhead during construction of the agent (performance argument). usage example : More... | |
virtual void | RemoveAgent (const AgentUid &uid)=0 |
virtual Agent * | GetAgent (const AgentUid &uid)=0 |
virtual const Agent * | GetConstAgent (const AgentUid &uid)=0 |
Definition at line 31 of file execution_context.h.
|
virtualdefault |
|
pure virtual |
Adds the agent to the simulation (threadsafe, takes ownership). Note that we avoid the use of smart pointers for the agents to avoid unnecessary overhead during construction of the agent (performance argument). usage example
:
or
new_agent | The agent to be added to the simulation |
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
Execute a series of operations on an agent in the order given in the argument
Implemented in bdm::InPlaceExecutionContext, and bdm::experimental::CopyExecutionContext.
|
pure virtual |
Applies the lambda lambda
for each neighbor of the given query
agent within the given criteria
. Does not support caching.
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
Applies the lambda lambda
for each neighbor of the given query
agent within the given search radius sqrt(squared_radius)
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
Applies the lambda lambda
for each neighbor of the given query_position
within the given search radius sqrt(squared_radius)
Implemented in bdm::InPlaceExecutionContext.
Implemented in bdm::InPlaceExecutionContext.
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
This function is called before all agent operations are executed.
This function is not thread-safe. NB: Invalidates references and pointers to agents.
Implemented in bdm::InPlaceExecutionContext.
|
pure virtual |
This function is called at the beginning of each iteration to setup all execution contexts. This function is not thread-safe. NB: Invalidates references and pointers to agents.
Implemented in bdm::InPlaceExecutionContext, and bdm::experimental::CopyExecutionContext.
|
pure virtual |
This function is called after all agent operations were executed.
This function is not thread-safe.
NB: Invalidates references and pointers to agents.
Implemented in bdm::InPlaceExecutionContext, and bdm::experimental::CopyExecutionContext.
|
pure virtual |
This function is called at the end of each iteration to tear down all execution contexts. This function is not thread-safe.
NB: Invalidates references and pointers to agents.
Implemented in bdm::InPlaceExecutionContext.