BioDynaMo
v1.05.120-25dc9790
|
Namespaces | |
detail | |
experimental | |
in_place_exec_ctxt_detail | |
memory_manager_detail | |
neuroscience | |
Classes | |
class | Agent |
Contains code required by all agents. More... | |
class | AgentContainer |
class | AgentFlatIdxMap |
class | AgentHandle |
struct | AgentHandleIterator |
struct | AgentOperationImpl |
Interface for implementing an operation. More... | |
class | AgentPointer |
class | AgentUid |
class | AgentUidGenerator |
This class generates unique ids for agents. More... | |
class | AgentUidMap |
class | AgentVector |
struct | Aux |
class | BasicExporter |
class | Behavior |
struct | BehaviorOp |
class | BinomialRng |
class | BoundaryCondition |
This class implements the boundary conditions. It is integrated into the diffusion grid as a smart pointer. The diffusion grid will call the Evaluate() method of the boundary condition object for Neumann and Dirichlet boundary conditions. More... | |
struct | BoundSpace |
class | BreitWignerRng |
class | Cell |
struct | CellDivisionEvent |
Contains the parameters to perform a cell division. More... | |
class | Chemotaxis |
Move cells along the diffusion gradient (from low concentration to high) More... | |
class | CommandLineOptions |
Class to contain and parse command line options. More... | |
class | ConstantBoundaryCondition |
This class implements constant boundary conditions (Dirichlet and Neumann). The value of the boundary condition is constant and independent of the position and time, i.e. u = const or du/dn = const on the boundary. More... | |
class | Continuum |
Continuum class to interface with BioDynaMo for hybrid simulations. More... | |
class | ContinuumOp |
A class that sets up diffusion grids of the substances in this simulation. More... | |
struct | CreateVtkDataArray |
class | CSVReader |
Reads in a CSV file using rapidcsv. More... | |
class | DiffusionGrid |
struct | DiscretizationOp |
class | DistributionRng |
Random number generator that generates samples from a distribution. More... | |
struct | DividingCellOp |
class | Environment |
class | EulerDepletionGrid |
Continuum model for the 3D diffusion equation with exponential decay and substance depletion . More... | |
class | EulerGrid |
Continuum model for the 3D heat equation with exponential decay . More... | |
class | ExecutionContext |
class | Exporter |
class | ExporterFactory |
class | ExpRng |
struct | Fea |
struct | Fen |
class | FixedSizeVector |
struct | ForEachAgentParallelFunctor |
class | Functor |
class | GausRng |
class | GaussianBand |
class | GeneRegulation |
struct | GetDataMemberForVis |
struct | GetNumberOfComponents |
struct | GetNumberOfComponents< MathArray< T, N > > |
struct | GetNumberOfComponents< std::array< T, N > > |
struct | GetVtkValueType |
struct | GetVtkValueType< AgentPointer< T > > |
struct | GetVtkValueType< AgentUid > |
struct | GetVtkValueType< int > |
struct | GetVtkValueType< MathArray< T, N > > |
struct | GetVtkValueType< real_t > |
struct | GetVtkValueType< uint64_t > |
class | GpuHelper |
class | GrowthDivision |
class | InlineVector |
class | InPlaceExecutionContext |
class | IntegralTypeWrapper |
class | InteractionForce |
struct | is_agent_ptr |
struct | is_agent_ptr< AgentPointer< T > > |
struct | IsArray |
Checks whether T is std::array or bdm::MathArray. More... | |
struct | IsArray< MathArray< T, N > > |
struct | IsArray< std::array< T, N > > |
class | Iterator |
class | JitForEachDataMemberFunctor |
class | JitHeaders |
class | KDTreeEnvironment |
struct | LambdaFunctor |
struct | LambdaFunctor< TReturn(TLambda::*)(TArgs...) const > |
struct | LambdaFunctor< TReturn(TLambda::*)(TArgs...)> |
class | LandauRng |
struct | LoadBalanceFunctor |
class | LoadBalanceInfo |
struct | LoadBalancingOp |
class | Log |
Wrapper class over ROOT logging module. More... | |
struct | LogRangeParam |
A uniform range of logarithmically scaled values (e.g. 1, 10, 100, 1000) More... | |
class | MappedDataArray |
struct | MappedDataArrayInterface |
struct | Math |
class | MathArray |
class | MatlabExporter |
class | MechanicalForcesOp |
Defines the 3D physical interactions between physical objects. More... | |
struct | MechanicalForcesOpCuda |
Defines the 3D physical interactions between physical objects. More... | |
class | MechanicalForcesOpCudaKernel |
struct | MechanicalForcesOpOpenCL |
Defines the 3D physical interactions between physical objects. More... | |
class | MemoryManager |
struct | ModelInitializer |
class | MortonIterator |
class | MortonOrder |
struct | NanoFlannAdapter |
class | NeuroMLExporter |
struct | NewAgentEvent |
class | NewAgentEventUidGenerator |
class | OctreeEnvironment |
class | OpenCLState |
struct | Operation |
struct | OperationImpl |
class | OperationRegistry |
class | OpTimer |
Decorator for Operations to measure runtime. More... | |
struct | OptimizationParam |
struct | OptimizationParamType |
An interface for creating different types of optimization parameters. More... | |
class | ParallelResizeVector |
std::vector with parallel resize More... | |
struct | ParallelVtiWriter |
struct | ParallelVtuWriter |
struct | Param |
struct | ParamGroup |
Interface for parameter groups. More... | |
class | ParamGroupUidGenerator |
This class generates unique ids for parameter groups. Thread safe. More... | |
class | ParaviewAdaptor |
The class that bridges the simulation code with ParaView. More... | |
class | ParaviewExporter |
struct | ParticleSwarmParam |
class | PoissonBand |
class | PoissonDRng |
class | PoissonRng |
class | ProgressBar |
This class implements a progress bar that can be used to track the progress of a simulation. More... | |
struct | PropagateStaticnessAgentOp |
struct | PropagateStaticnessOp |
class | PvtiWriter |
class | Random |
class | RandomizedRm |
struct | RangeParam |
class | ReductionOp |
class | ResourceManager |
class | RootAdaptor |
The class that bridges the simulation code with ROOT Visualization. More... | |
struct | RunAllScheduledOps |
class | RuntimeVariables |
class | ScalarField |
Interface for scalar fields. See Continuum for more information. More... | |
class | Scheduler |
class | Secretion |
Secrete substance at Agent position. More... | |
struct | SetParam |
struct | SetUpIterationOp |
class | SharedData |
The SharedData class avoids false sharing between threads. More... | |
class | Simulation |
class | SimulationBackup |
class | SphericalAgent |
class | Spinlock |
class | Stack |
struct | StandaloneOperationImpl |
Interface for implementing an operation that should run on a GPU. More... | |
class | StatelessBehavior |
Simplifies the creation of behaviors without attributes. Let's assume that we want to create a behavior that divides a cell agent in each iteration. The following code example uses the StatelessBehavior: More... | |
struct | SumReduction |
struct | TearDownIterationOp |
class | TFileRaii |
Automatically close a TFile object using RAII pattern. More... | |
class | ThreadInfo |
This class stores information about each thread. (e.g. to which NUMA node it belongs to.) NB: Threads must be bound to CPUs using OMP_PROC_BIND=true . More... | |
class | Timing |
class | TimingAggregator |
struct | type_ternary_operator |
struct | type_ternary_operator< false, T, U > |
struct | type_ternary_operator< true, T, U > |
class | TypeIndex |
struct | Ubrng |
class | Uniform |
class | UniformGridEnvironment |
A class that represents Cartesian 3D grid. More... | |
class | UniformRng |
class | UnorderedFlatmap |
struct | UpdateCPUResults |
struct | UpdateEnvironmentOp |
struct | UpdateStaticnessOp |
struct | UpdateTimeSeriesOp |
struct | UserDefinedDist |
class | UserDefinedDistRng1D |
class | UserDefinedDistRng2D |
class | UserDefinedDistRng3D |
class | VectorField |
Interface for vector fields. See Continuum for more information. More... | |
class | VectorTypeWrapper |
class | VisualizationAdaptor |
class | VisualizationOp |
class | VtiWriter |
class | VtkAgents |
class | VtkDiffusionGrid |
class | VTuneOpWrapper |
class | VTuneTask |
Typedefs | |
using | NewAgentEventUid = uint64_t |
using | Real3 = MathArray< real_t, 3 > |
Aliases for a size 3 MathArray. More... | |
using | Float3 = MathArray< float, 3 > |
using | Double3 = MathArray< double, 3 > |
using | Real4 = MathArray< real_t, 4 > |
Aliases for a size 4 MathArray. More... | |
using | Float4 = MathArray< float, 4 > |
using | Double4 = MathArray< double, 4 > |
typedef KDTreeSingleIndexAdaptor< L2_Simple_Adaptor< real_t, NanoFlannAdapter >, NanoFlannAdapter, 3, uint64_t > | bdm_kd_tree_t |
using | NeighborMutex = Environment::NeighborMutexBuilder::NeighborMutex |
using | GridNeighborMutexBuilder = UniformGridEnvironment::GridNeighborMutexBuilder |
using | ParamGroupUid = uint64_t |
using | real_t = double |
template<typename T > | |
using | raw_type = std::remove_pointer_t< std::decay_t< T > > |
Type trait that converts T* , T& , T&& , T*& to T More... | |
using | vtkRealArray = typename type_ternary_operator< std::is_same< real_t, double >::value, vtkDoubleArray, vtkFloatArray >::type |
Enumerations | |
enum | AgentPointerMode { kIndirect, kDirect } |
enum | BoundaryConditionType { BoundaryConditionType::kDirichlet, BoundaryConditionType::kNeumann, BoundaryConditionType::kOpenBoundaries, BoundaryConditionType::kClosedBoundaries, BoundaryConditionType::kPeriodic } |
Available boundary conditions. More... | |
enum | InteractionMode { InteractionMode::kAdditive = 0, InteractionMode::kExponential = 1, InteractionMode::kLogistic = 2 } |
enum | ExporterType { kBasic, kMatlab, kNeuroML, kParaview } |
enum | OpComputeTarget { kCpu, kCuda, kOpenCl } |
enum | OpType { kSchedule, kPreSchedule, kPostSchedule } |
enum | Shape { kSphere, kCylinder } |
enum | Axis { kXAxis, kYAxis, kZAxis } |
Functions | |
template<typename T > | |
void | InPlaceParallelPrefixSum (T &v, uint64_t n) |
template<typename T > | |
void | ExclusivePrefixSum (T *v, uint64_t n) |
template<typename TSearch , typename TContainer > | |
uint64_t | BinarySearch (const TSearch &search_val, const TContainer &container, uint64_t from, uint64_t to) |
template<class T , std::size_t N> | |
std::ostream & | operator<< (std::ostream &o, const MathArray< T, N > &arr) |
template<class T , std::size_t N> | |
MathArray< T, N > | operator* (T const &scalar, MathArray< T, N > array) |
Template function to multiply array with scalar from the left. More... | |
std::string | BoundaryTypeToString (const BoundaryConditionType &type) |
Transforms a BoundaryConditionType to the corresponding string. More... | |
BoundaryConditionType | StringToBoundaryType (const std::string &type) |
Transforms a string to the corresponding BoundaryConditionType. More... | |
template<typename T > | |
std::pair< uint64_t, uint64_t > | BinarySearch (uint64_t search_val, const T &container, uint64_t from, uint64_t to) |
template<typename TLambda > | |
LambdaFunctor< decltype(&TLambda::operator())> | L2F (const TLambda &l) |
template<typename T > | |
void | CudaAllocPinned (T **d, uint64_t elements) |
void | CudaFreePinned (void *p) |
void | ApplyBoundingBox (Agent *agent, Param::BoundSpaceMode mode, real_t lb, real_t rb) |
BDM_REGISTER_OP (BoundSpace, "bound space", kCpu) | |
BDM_REGISTER_OP (ContinuumOp, "continuum", kCpu) | |
BDM_REGISTER_OP_WITH_FREQ (LoadBalancingOp, "load balancing", kCpu, std::numeric_limits< uint32_t >::max()) | |
BDM_REGISTER_OP (MechanicalForcesOp, "mechanical forces", kCpu) | |
BDM_REGISTER_OP (DividingCellOp, "DividingCellOp", kCpu) | |
BDM_REGISTER_OP (UpdateStaticnessOp, "update staticness", kCpu) | |
BDM_REGISTER_OP (PropagateStaticnessAgentOp, "propagate staticness agentop", kCpu) | |
BDM_REGISTER_OP (BehaviorOp, "behavior", kCpu) | |
BDM_REGISTER_OP (DiscretizationOp, "discretization", kCpu) | |
BDM_REGISTER_OP (SetUpIterationOp, "set up iteration", kCpu) | |
BDM_REGISTER_OP (TearDownIterationOp, "tear down iteration", kCpu) | |
BDM_REGISTER_OP (UpdateTimeSeriesOp, "update time series", kCpu) | |
BDM_REGISTER_OP (UpdateEnvironmentOp, "update environment", kCpu) | |
BDM_REGISTER_OP (VisualizationOp, "visualize", kCpu) | |
BDM_REGISTER_OP (PropagateStaticnessOp, "propagate staticness", kCpu) | |
void | IsNonSphericalObjectPresent (const Agent *agent, bool *answer) |
std::string | OpComputeTargetString (OpComputeTarget t) |
Operation * | NewOperation (const std::string &name) |
A convenient function to get a new operation from the registry by its name. More... | |
BDM_REGISTER_TEMPLATE_OP (ReductionOp, int, "ReductionOpInt", kCpu) | |
BDM_REGISTER_TEMPLATE_OP (ReductionOp, real_t, "ReductionOpDouble", kCpu) | |
BDM_REGISTER_TEMPLATE_OP (ReductionOp, Real3, "ReductionOpReal3", kCpu) | |
BDM_REGISTER_TEMPLATE_OP (ReductionOp, Real4, "ReductionOpReal4", kCpu) | |
std::ostream & | operator<< (std::ostream &os, const CommandLineOptions &clo) |
json | FlattenGroups (const json &j_document) |
json | UnflattenGroups (const json &j_flattened, const json &j_original) |
void | AssignThreadSafetyMechanism (const std::shared_ptr< cpptoml::table > &config, Param *param) |
void | AssignMappedDataArrayMode (const std::shared_ptr< cpptoml::table > &config, Param *param) |
void | AssignBoundSpaceMode (const std::shared_ptr< cpptoml::table > &config, Param *param) |
std::ostream & | operator<< (std::ostream &os, const ResourceManager &rm) |
std::ostream & | operator<< (std::ostream &os, Simulation &sim) |
uint64_t | RemoveDirectoryContents (const std::string &directory) |
bool | FileExists (const std::string &file_name) |
void | WriteToFile (const std::string &filename, const std::string &content) |
template<typename T > | |
bool | GetPersistentObject (const char *root_file, const char *obj_name, T *&empty_obj) |
Gets the persistent object from the specified ROOT file. More... | |
template<typename T > | |
void | WritePersistentObject (const char *root_file, const char *obj_name, const T &pst_object, const char *mode="new") |
Writes a persistent object to the specified ROOT file. More... | |
std::vector< TClass * > | FindClassSlow (const std::string &class_name) |
std::vector< TDataMember * > | FindDataMemberSlow (TClass *tclass, const std::string &data_member) |
void | Partition (uint64_t elements, uint64_t batches, uint64_t batch_num, uint64_t *start, uint64_t *end) |
void | PlotMemoryLayout (const std::vector< Agent * > &agents, int numa_node) |
void | PlotMemoryHistogram (const std::vector< Agent * > &agents, int numa_node) |
void | PlotNeighborMemoryHistogram (bool before) |
std::string | GetExecutablePath () |
This function returns the path of the currently running executable. More... | |
std::string | GetExecutableDirectory () |
std::string | GetExecutableName () |
real_t | TimeConversionFactor (const std::string &unit) |
void | PrintDataMemberInfo (const std::string &class_name) |
Writes information of each data member of a class to cout. More... | |
std::vector< std::string > | Split (const std::string &s, const std::string &delimiter) |
bool | EndsWith (const std::string &str, const std::string &suffix) |
bool | StartsWith (const std::string &str, const std::string &prefix) |
template<typename... Args> | |
std::string | Concat (const Args &... parts) |
Concatenates all arguments into a string. Equivalent to streaming all arguments into a stringstream and calling stream.str() More... | |
std::ostream & | operator<< (std::ostream &os, const TimingAggregator &ta) |
template<typename TTuple , typename TFunction > | |
void | Apply (TTuple *t, size_t index, TFunction &&f) |
template<typename T , typename... Types> | |
constexpr int | GetIndex () |
template<typename TTo , typename TFrom > | |
TTo | bdm_static_cast (TFrom from) |
std::string | GenerateSimulationInfoJson (const std::unordered_map< std::string, VtkAgents * > &vtk_agents, const std::unordered_map< std::string, VtkDiffusionGrid * > &vtk_dgrids) |
vtkStandardNewMacro (VtiWriter) | |
void | FixPvtu (const std::string &filename, const std::string &file_prefix, uint64_t pieces) |
void | VisualizeInNotebook (size_t w=300, size_t h=300, std::string opt="") |
Visualize the agents in ROOT notebooks. More... | |
Variables | |
AgentPointerMode | gAgentPointerMode = AgentPointerMode::kIndirect |
constexpr const char * | kRealtName = "double" |
typedef KDTreeSingleIndexAdaptor<L2_Simple_Adaptor<real_t, NanoFlannAdapter>, NanoFlannAdapter, 3, uint64_t> bdm::bdm_kd_tree_t |
Definition at line 29 of file kd_tree_environment.cc.
using bdm::Double3 = typedef MathArray<double, 3> |
Definition at line 436 of file math_array.h.
using bdm::Double4 = typedef MathArray<double, 4> |
Definition at line 441 of file math_array.h.
using bdm::Float3 = typedef MathArray<float, 3> |
Definition at line 435 of file math_array.h.
using bdm::Float4 = typedef MathArray<float, 4> |
Definition at line 440 of file math_array.h.
Definition at line 293 of file uniform_grid_environment.cc.
using bdm::NeighborMutex = typedef Environment::NeighborMutexBuilder::NeighborMutex |
Definition at line 291 of file uniform_grid_environment.cc.
using bdm::NewAgentEventUid = typedef uint64_t |
NewAgentEventUid is used inside behaviors to determine if a behavior should be copied if a new agent is created. Possible events are cell division, neurite branching, ...
NewAgentEventUid invariant: the number of bits set to 1 must be 1.
Definition at line 29 of file new_agent_event.h.
using bdm::ParamGroupUid = typedef uint64_t |
Definition at line 26 of file param_group.h.
using bdm::raw_type = typedef std::remove_pointer_t<std::decay_t<T> > |
using bdm::Real3 = typedef MathArray<real_t, 3> |
Aliases for a size 3 MathArray.
Definition at line 434 of file math_array.h.
using bdm::Real4 = typedef MathArray<real_t, 4> |
Aliases for a size 4 MathArray.
Definition at line 439 of file math_array.h.
using bdm::real_t = typedef double |
using bdm::vtkRealArray = typedef typename type_ternary_operator<std::is_same<real_t, double>::value, vtkDoubleArray, vtkFloatArray>::type |
Definition at line 36 of file vtk_diffusion_grid.cc.
Class AgentPointer
supports two different modes: First, an indirect mode in which the AgentUid is used to determine an agent.
Second, a direct mode in which the raw Agent*
is used. The indirect mode is necessary if the Agent*
changes during the simulation. This can happen due to sorting and balancing operation to improve the memory layout, or in a distributed runtime, where an agent might reside in a different address space. If the Agent*
of an agent does not change during a simulation, the direct mode can be used to achieve better performance.
Enumerator | |
---|---|
kIndirect | |
kDirect |
Definition at line 42 of file agent_pointer.h.
enum bdm::Axis |
Enumerator | |
---|---|
kXAxis | |
kYAxis | |
kZAxis |
Definition at line 33 of file substance_initializers.h.
|
strong |
Available boundary conditions.
Enumerator | |
---|---|
kDirichlet | |
kNeumann | |
kOpenBoundaries | |
kClosedBoundaries | |
kPeriodic |
Definition at line 35 of file diffusion_grid.h.
enum bdm::ExporterType |
Enumerator | |
---|---|
kBasic | |
kMatlab | |
kNeuroML | |
kParaview |
Definition at line 69 of file exporter.h.
|
strong |
Enumerator | |
---|---|
kAdditive | |
kExponential | |
kLogistic |
Definition at line 43 of file diffusion_grid.h.
enum bdm::OpComputeTarget |
Enumerator | |
---|---|
kCpu | |
kCuda | |
kOpenCl |
Definition at line 31 of file operation.h.
enum bdm::OpType |
Enumerator | |
---|---|
kSchedule | |
kPreSchedule | |
kPostSchedule |
Definition at line 43 of file scheduler.h.
enum bdm::Shape |
void bdm::Apply | ( | TTuple * | t, |
size_t | index, | ||
TFunction && | f | ||
) |
This function applies the given function on tuple element index. The peculiarity is that index is a runtime parameter. std::get<N>(tuple)
however, requires a compile time constant. Therefore, Apply
performs the translation to a compile time index.
t | std::tuple or similar type that supports std::get<N> |
index | runtime index specifying the type within t |
f | function that should be executed on the type |
|
inline |
Definition at line 26 of file bound_space_op.h.
void bdm::AssignBoundSpaceMode | ( | const std::shared_ptr< cpptoml::table > & | config, |
Param * | param | ||
) |
void bdm::AssignMappedDataArrayMode | ( | const std::shared_ptr< cpptoml::table > & | config, |
Param * | param | ||
) |
void bdm::AssignThreadSafetyMechanism | ( | const std::shared_ptr< cpptoml::table > & | config, |
Param * | param | ||
) |
bdm::BDM_REGISTER_OP | ( | BehaviorOp | , |
"behavior" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | BoundSpace | , |
"bound space" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | ContinuumOp | , |
"continuum" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | DiscretizationOp | , |
"discretization" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | DividingCellOp | , |
"DividingCellOp" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | MechanicalForcesOp | , |
"mechanical forces" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | PropagateStaticnessAgentOp | , |
"propagate staticness agentop" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | PropagateStaticnessOp | , |
"propagate staticness" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | SetUpIterationOp | , |
"set up iteration" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | TearDownIterationOp | , |
"tear down iteration" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | UpdateEnvironmentOp | , |
"update environment" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | UpdateStaticnessOp | , |
"update staticness" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | UpdateTimeSeriesOp | , |
"update time series" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP | ( | VisualizationOp | , |
"visualize" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_OP_WITH_FREQ | ( | LoadBalancingOp | , |
"load balancing" | , | ||
kCpu | , | ||
std::numeric_limits< uint32_t > | ::max() | ||
) |
bdm::BDM_REGISTER_TEMPLATE_OP | ( | ReductionOp | , |
int | , | ||
"ReductionOpInt" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_TEMPLATE_OP | ( | ReductionOp | , |
Real3 | , | ||
"ReductionOpReal3" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_TEMPLATE_OP | ( | ReductionOp | , |
Real4 | , | ||
"ReductionOpReal4" | , | ||
kCpu | |||
) |
bdm::BDM_REGISTER_TEMPLATE_OP | ( | ReductionOp | , |
real_t | , | ||
"ReductionOpDouble" | , | ||
kCpu | |||
) |
TTo bdm::bdm_static_cast | ( | TFrom | from | ) |
uint64_t bdm::BinarySearch | ( | const TSearch & | search_val, |
const TContainer & | container, | ||
uint64_t | from, | ||
uint64_t | to | ||
) |
Definition at line 76 of file algorithm.h.
std::pair<uint64_t, uint64_t> bdm::BinarySearch | ( | uint64_t | search_val, |
const T & | container, | ||
uint64_t | from, | ||
uint64_t | to | ||
) |
Definition at line 130 of file morton_order.cc.
std::string bdm::BoundaryTypeToString | ( | const BoundaryConditionType & | type | ) |
Transforms a BoundaryConditionType to the corresponding string.
Definition at line 26 of file diffusion_grid.cc.
|
inline |
|
inline |
Definition at line 33 of file cuda_pinned_memory.h.
|
inline |
Definition at line 35 of file cuda_pinned_memory.h.
|
inline |
void bdm::ExclusivePrefixSum | ( | T * | v, |
uint64_t | n | ||
) |
Calculate exclusive prefix sum in-place. n must be <= t->size() - 1 This means that there must be an additional element in the vector at v[n+1]
Definition at line 61 of file algorithm.h.
std::vector< TClass * > bdm::FindClassSlow | ( | const std::string & | class_name | ) |
Iterates over all entries in TClassTable
and returns a vector of candidate TClass* that match the given class name.
class_name | does not have to be fully qualified (e.g. Cell instead of bdm::Cell ). However, Cell will also match e.g "bdm::foo::Cell" |
std::vector< TDataMember * > bdm::FindDataMemberSlow | ( | TClass * | tclass, |
const std::string & | data_member | ||
) |
Iterates over all data members of tclass
and its base classes and returns TClass* that match the given class name.
tclass | TClass for which the data members should be determined |
data_member | name of the data_member (e.g. position_ or bdm::Cell::position_ ). |
tclass
and its base classes void bdm::FixPvtu | ( | const std::string & | filename, |
const std::string & | file_prefix, | ||
uint64_t | pieces | ||
) |
Definition at line 31 of file parallel_vtu_writer.cc.
std::string bdm::GenerateSimulationInfoJson | ( | const std::unordered_map< std::string, VtkAgents * > & | vtk_agents, |
const std::unordered_map< std::string, VtkDiffusionGrid * > & | vtk_dgrids | ||
) |
std::string bdm::GetExecutablePath | ( | ) |
|
inlineconstexpr |
bool bdm::GetPersistentObject | ( | const char * | root_file, |
const char * | obj_name, | ||
T *& | empty_obj | ||
) |
void bdm::InPlaceParallelPrefixSum | ( | T & | v, |
uint64_t | n | ||
) |
Calculate work-efficient inclusive prefix sum. Calculation is parallel and in-place.
Definition at line 27 of file algorithm.h.
void bdm::IsNonSphericalObjectPresent | ( | const Agent * | agent, |
bool * | answer | ||
) |
Definition at line 36 of file mechanical_forces_op_cuda.cc.
LambdaFunctor<decltype(&TLambda::operator())> bdm::L2F | ( | const TLambda & | l | ) |
Wraps a lambda inside a LambdaFunctor with the same signature as the lambda. Assume the following example using L2F
void PrintSmallNeighbors(Agent* agent, real_t threshold) { auto functor = L2F([&](Agent* neighbor, real_t squared_distance)) { if (neighbor->GetDiameter() < threshold) { std::cout << neighbor->GetUid() << std::endl; } }); auto* ctxt = Simulation::GetActive()->GetExecutionContext(); ctxt->ForEachNeighbor(functor, *agent); }
The base class of functor
in the example above is Functor<void, Agent*, real_t>
The wrapped lambda is allowed to capture variables.
Without bdm::LambdaFunctor and bdm::L2F the following code is needed to achieve the same result as above. Notice the extra class MyFunctor
that has to be defined outside PrintSmallNeighbors
.
class MyFunctor : public Functor<void, Agent*, real_t> { public: MyFunctor(real_t threshold) : threshold_(threshold) {} virtual ~MyFunctor() = default; void operator()(Agent* neighbor, real_t squared_distance) override { if (neighbor->GetDiameter() < threshold_) { std::cout << agent->GetUid() << std::endl; } } private: real_t threshold_; }; void PrintSmallNeighbors(Agent* agent, real_t threshold) { MyFunctor functor(threshold); auto* ctxt = Simulation::GetActive()->GetExecutionContext(); ctxt->ForEachNeighbor(functor, *agent); }
|
inline |
A convenient function to get a new operation from the registry by its name.
Definition at line 85 of file operation_registry.h.
|
inline |
Definition at line 33 of file operation.h.
MathArray<T, N> bdm::operator* | ( | T const & | scalar, |
MathArray< T, N > | array | ||
) |
Template function to multiply array with scalar from the left.
Definition at line 429 of file math_array.h.
std::ostream& bdm::operator<< | ( | std::ostream & | o, |
const MathArray< T, N > & | arr | ||
) |
Definition at line 412 of file math_array.h.
std::ostream& bdm::operator<< | ( | std::ostream & | os, |
const CommandLineOptions & | clo | ||
) |
Definition at line 212 of file command_line_options.cc.
|
inline |
Definition at line 529 of file resource_manager.h.
|
inline |
Definition at line 62 of file timing_aggregator.h.
std::ostream& bdm::operator<< | ( | std::ostream & | os, |
Simulation & | sim | ||
) |
Definition at line 138 of file simulation.cc.
|
inline |
Definition at line 22 of file partition.h.
void bdm::PlotMemoryHistogram | ( | const std::vector< Agent * > & | agents, |
int | numa_node | ||
) |
Definition at line 74 of file plot_memory_layout.cc.
void bdm::PlotMemoryLayout | ( | const std::vector< Agent * > & | agents, |
int | numa_node | ||
) |
Definition at line 42 of file plot_memory_layout.cc.
void bdm::PlotNeighborMemoryHistogram | ( | bool | before | ) |
Definition at line 137 of file plot_memory_layout.cc.
void bdm::PrintDataMemberInfo | ( | const std::string & | class_name | ) |
uint64_t bdm::RemoveDirectoryContents | ( | const std::string & | directory | ) |
Removes all contents inside the directory and returns the number of deleted files and directories that were deleted.
Definition at line 21 of file filesystem.cc.
std::vector< std::string > bdm::Split | ( | const std::string & | s, |
const std::string & | delimiter | ||
) |
|
inline |
BoundaryConditionType bdm::StringToBoundaryType | ( | const std::string & | type | ) |
Transforms a string to the corresponding BoundaryConditionType.
Definition at line 44 of file diffusion_grid.cc.
|
inline |
Definition at line 24 of file progress_bar.cc.
json bdm::UnflattenGroups | ( | const json & | j_flattened, |
const json & | j_original | ||
) |
|
inline |
Visualize the agents in ROOT notebooks.
Definition at line 26 of file notebook_util.h.
bdm::vtkStandardNewMacro | ( | VtiWriter | ) |
void bdm::WritePersistentObject | ( | const char * | root_file, |
const char * | obj_name, | ||
const T & | pst_object, | ||
const char * | mode = "new" |
||
) |
Writes a persistent object to the specified ROOT file.
[in] | root_file | The root file |
[in] | obj_name | The object name |
pst_object | The persistent object | |
[in] | mode | The mode |
T | { The object class type } |
Option | Details |
---|---|
new (default) | A new root file root_file is created. If file already exists, an error message is printed and the function returns. |
recreate | If file does not exist, it is created (like in "new"). If file already exist, the existing file is deleted before creating the new file. |
update | New classes are added to the existing directory. Existing classes with the same name are replaced by the new definition. If the directory dirname doest not exist, same effect as "new". |
void bdm::WriteToFile | ( | const std::string & | filename, |
const std::string & | content | ||
) |
AgentPointerMode bdm::gAgentPointerMode = AgentPointerMode::kIndirect |
Global variable to select the agent pointer mode.
Replacing the global variable with an attribute in Param
is too costly in terms of performance.
Definition at line 19 of file agent_pointer.cc.