aether::octree_params_default< T > Struct Template Reference

Describes parameters for aether::octree. More...

#include <octree_params.hh>

Public Types

using morton_type = typename T::morton_type
 
using octree_traits = aether::octree_traits< morton_type >
 
using aether_state_type = aether::cell_state< octree_traits >
 
using user_state_builder_type = closure< std::unique_ptr< user_cell_state_interface< octree_traits >>(const aether_state_type &state)>
 
using global_state_builder_type = closure< std::unique_ptr< global_state_base< octree_traits >>()>
 

Public Member Functions

 octree_params_default ()
 
template<typename SD >
void serde_visit (SD &sd)
 Serialization definition for sending over the wire. More...
 
template<typename UserState , typename... Args>
void configure_user_state (Args &&...args)
 Allows specifying the type that will be used to provide the functionality of the user-defined cell state. More...
 
template<typename GlobalState , typename... Args>
void configure_global_state (Args &&...args)
 Allows specifying the type that will be used to provide the functionality of the global state process. More...
 

Public Attributes

Octree

There parameters are used by aether::octree

uint64_t ticks_per_second
 Controls the number of ticks per second that the simulation runs at. More...
 
user_state_builder_type build_user_state
 A structure. More...
 
global_state_builder_type build_global_state
 
uint32_t initial_cell_level
 This controls the size of the initial worker. More...
 
hadean::log::level log_level
 This controls the simulation log level. More...
 
uint32_t feature_flags
 aether::feature_flags More...
 
int spawn_cell_level_offset
 
float split_at
 threshold for splitting the worker cells as returned from aether::user_cell_state_interface::estimate_load More...
 
float merge_at
 threshold for merging the worker cells as returned from aether::user_cell_state_interface::estimate_load More...
 
run_id run_id
 

Detailed Description

template<typename T>
struct aether::octree_params_default< T >

Describes parameters for aether::octree.

Member Typedef Documentation

template<typename T >
using aether::octree_params_default< T >::global_state_builder_type = closure<std::unique_ptr<global_state_base<octree_traits>>()>
template<typename T >
using aether::octree_params_default< T >::morton_type = typename T::morton_type
template<typename T >
using aether::octree_params_default< T >::user_state_builder_type = closure<std::unique_ptr<user_cell_state_interface<octree_traits>>(const aether_state_type &state)>

Constructor & Destructor Documentation

template<typename T >
aether::octree_params_default< T >::octree_params_default ( )

Member Function Documentation

template<typename T >
template<typename GlobalState , typename... Args>
void aether::octree_params_default< T >::configure_global_state ( Args &&...  args)
inline

Allows specifying the type that will be used to provide the functionality of the global state process.

The specified type is supplied as the template parameter GlobalState and must extend global_state_base.

Parameters
argsMultiple arguments may be passed here. These arguments will be forwarded to the constructor of the type specified by GlobalState. These arguments must be capable of being serialized by Aether's serialization framework.
template<typename T >
template<typename UserState , typename... Args>
void aether::octree_params_default< T >::configure_user_state ( Args &&...  args)
inline

Allows specifying the type that will be used to provide the functionality of the user-defined cell state.

The specified type is supplied as the template parameter UserState and must extend user_cell_state_interface.

  • Parameters
    argsMultiple additional arguments may be passed here. These arguments will be forwarded to the constructor of the type specified by UserState. These arguments must be capable of being serialized by Aether's serialization framework. Note that the first argument supplied to the constuctor of UserState will be an instance of cell_state, followed by the forwarded arguments.
    Aether users almost certainly do not want to use this function directly. The helper function build_entity_simulation_manager should be used for building entity-based simulations.
template<typename T >
template<typename SD >
void aether::octree_params_default< T >::serde_visit ( SD &  sd)
inline

Serialization definition for sending over the wire.

Member Data Documentation

template<typename T >
global_state_builder_type aether::octree_params_default< T >::build_global_state
template<typename T >
user_state_builder_type aether::octree_params_default< T >::build_user_state

A structure.

template<typename T >
uint32_t aether::octree_params_default< T >::feature_flags
template<typename T >
uint32_t aether::octree_params_default< T >::initial_cell_level

This controls the size of the initial worker.

The side length is 2^cell_level.

template<typename T >
hadean::log::level aether::octree_params_default< T >::log_level

This controls the simulation log level.

template<typename T >
float aether::octree_params_default< T >::merge_at

threshold for merging the worker cells as returned from aether::user_cell_state_interface::estimate_load

template<typename T >
run_id aether::octree_params_default< T >::run_id
template<typename T >
int aether::octree_params_default< T >::spawn_cell_level_offset
template<typename T >
float aether::octree_params_default< T >::split_at

threshold for splitting the worker cells as returned from aether::user_cell_state_interface::estimate_load

template<typename T >
uint64_t aether::octree_params_default< T >::ticks_per_second

Controls the number of ticks per second that the simulation runs at.