Three dimensional staggered grid class designed to be defined as instance member in recursive_configurable class.
More...
|
| macarray3 (recursive_configurable *parent, const shape3 &shape, vec3< T > value=vec3< T >(), std::string core_name="") |
| Constructor for macarray3. More...
|
|
| macarray3 (recursive_configurable *parent, std::string core_name="") |
| Constructor for macarray3. More...
|
|
| macarray3 (std::string core_name="") |
| Constructor for macarray3. More...
|
|
| macarray3 (const shape3 &shape, vec3< T > value=vec3< T >(), std::string core_name="") |
| Constructor for macarray3. More...
|
|
| macarray3 (const macarray3 &v) |
| Copy constructor for macarray3. More...
|
|
virtual bool | send_message (std::string message, void *ptr) override |
| Send a message to the core module. More...
|
|
virtual bool | const_send_message (std::string message, void *ptr) const override |
| Send a message to the core module. More...
|
|
macarray3 & | operator= (const macarray3 &array) |
| Deep copy operation for macarray3. More...
|
|
void | copy (const macarray3 &array) |
| Deep copy function for macarray3. More...
|
|
void | initialize (const shape3 &shape, vec3< T > value=vec3< T >()) |
| Allocate grid memory with value. More...
|
|
void | set_touch_only_actives (bool touch_only_actives) |
| Set whether to force grid manipulation only on active cells. If true, operatios such operator+=() only acts on active cells. More...
|
|
size_t | count () const |
| Function to count the number of active cells. More...
|
|
std::array< std::vector< vec3i >, DIM3 > | actives () const |
| Function to return the list of active cells positions. More...
|
|
void | activate (const std::array< std::vector< vec3i >, DIM3 > &active_entries, const std::array< vec3i, DIM3 > &offsets={vec3i(), vec3i(), vec3i()}) |
| Activate cells at the positons of active_entries. More...
|
|
template<class Y > |
void | activate_as (const macarray3< Y > &array, const std::array< vec3i, DIM3 > &offsets={vec3i(), vec3i(), vec3i()}) |
| Activate cells at the same positons where an input array is active with an offset. More...
|
|
template<class Y > |
void | activate_as_bit (const Y &array, const std::array< vec3i, DIM3 > &offsets={vec3i(), vec3i()}) |
| Activate cells at the same positons where an input array is active with an offset. More...
|
|
template<class Y > |
void | activate_inside_as (const macarray3< Y > &array, const std::array< vec3i, DIM3 > &offsets={vec3i(), vec3i(), vec3i()}) |
| Activate cells at the same positons where an input array is filled with an offset. More...
|
|
void | activate_all () |
| Activate all the cells.
|
|
void | activate_inside () |
| Activate all the filled cells.
|
|
template<class Y > |
void | copy_active_as (const macarray3< Y > &array, const vec3i &offset=vec3i()) |
| Copy the states of active and inactive cells as same as input array with an offset. More...
|
|
vec3< T > | get_background_value () const |
| Get the background value (alternatively, initial value) of the grid.
|
|
void | set_background_value (const vec3< T > &value) |
| Set the background value (alternatively, initial value) of the grid. More...
|
|
void | convert_to_full (array3< vec3< T > > &cell_array) const |
| Convert staggered values to a cell centered full vector grid. More...
|
|
void | convert_to_full (macarray3< vec3< T > > &face_array) const |
| Convert staggered values to the a centered full vector grid. More...
|
|
shape3 | shape () const |
| Get the shape of the array. More...
|
|
shape3 | shape (int dim) const |
| Get the shape of the staggered grid of a specified dimension. More...
|
|
void | clear () |
| Clear out the grid. More...
|
|
void | clear (vec3< T > v) |
| Clear out the grid with the new backgroud value. More...
|
|
bool | operator!= (const macarray3< T > &v) const |
| Return if the grid is different from an input array. More...
|
|
bool | operator== (const macarray3< T > &v) const |
| Return if the grid is same to an input array. More...
|
|
void | operator= (T v) |
| Set all the grid values with an input value. More...
|
|
void | operator+= (const macarray3< T > &v) |
| Increment all the values with the values of an input array. More...
|
|
void | operator-= (const macarray3< T > &v) |
| Subtract all the values with the values of an input array. More...
|
|
void | operator+= (const vec3< T > &v) |
| Increment all the grid values with an input vector value. More...
|
|
void | operator+= (T v) |
| Increment all the grid values with an input value. More...
|
|
void | operator-= (const vec3< T > &v) |
| Subtract all the grid values with an input vector value. More...
|
|
void | operator-= (T v) |
| Subtract all the grid values with an input value. More...
|
|
void | operator*= (T v) |
| Multiply all the grid values with an input value. More...
|
|
void | operator/= (const T &v) |
| Divide all the grid values with an input value. More...
|
|
const array3< T > & | operator[] (int dim) const |
| Get the read-only reference to the staggered array of a specified dimension. More...
|
|
array3< T > & | operator[] (int dim) |
| Get the reference to the staggered array of a specified dimension. More...
|
|
void | set_thread_num (int number) |
| Set the number of threads for parallel processing on this grid. More...
|
|
int | get_thread_num () const |
| Get the current number of threads for parallel processing on this grid. More...
|
|
void | parallel_actives (std::function< void(typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in parallel. More...
|
|
void | parallel_all (std::function< void(typename array3< T >::iterator &it)> func) |
| Loop over all the cells in parallel. More...
|
|
void | parallel_op (std::function< void(typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in parallel. More...
|
|
void | parallel_actives (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in parallel. More...
|
|
void | parallel_all (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the cells in parallel. More...
|
|
void | parallel_op (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in parallel. More...
|
|
void | parallel_actives (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it, int thread_index)> func) |
| Loop over all the active cells in parallel. More...
|
|
void | parallel_all (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it, int thread_index)> func) |
| Loop over all the cells in parallel. More...
|
|
void | parallel_op (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it, int thread_index)> func, bool type=ALL) |
| Loop over cells in parallel. More...
|
|
void | const_parallel_actives (std::function< void(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in parallel by read-only fashion. More...
|
|
void | const_parallel_all (std::function< void(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in parallel by read-only fashion. More...
|
|
void | const_parallel_op (std::function< void(const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over cells in parallel by read-only fashion. More...
|
|
void | const_parallel_actives (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in parallel by read-only fashion. More...
|
|
void | const_parallel_all (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in parallel by read-only fashion. More...
|
|
void | const_parallel_op (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over cells in parallel by read-only fashion. More...
|
|
void | const_parallel_actives (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it, int thread_index)> func) const |
| Loop over all the active cells in parallel by read-only fashion. More...
|
|
void | const_parallel_all (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it, int thread_index)> func) const |
| Loop over all the cells in parallel by read-only fashion. More...
|
|
void | const_parallel_op (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it, int thread_index)> func, bool type=ALL) const |
| Loop over cells in parallel by read-only fashion. More...
|
|
void | serial_actives (std::function< void(typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in serial order. More...
|
|
void | serial_all (std::function< void(typename array3< T >::iterator &it)> func) |
| Loop over all the cells in serial order. More...
|
|
void | serial_op (std::function< void(typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in serial order. More...
|
|
void | serial_actives (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in serial order. More...
|
|
void | serial_all (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the cells in serial order. More...
|
|
void | serial_op (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in serial order. More...
|
|
void | const_serial_actives (std::function< void(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in serial order by read-only fashion. More...
|
|
void | const_serial_all (std::function< void(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in serial order by read-only fashion. More...
|
|
void | const_serial_op (std::function< void(const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over the cells in serial order by read-only fashion. More...
|
|
void | const_serial_actives (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in serial order by read-only fashion. More...
|
|
void | const_serial_all (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in serial order by read-only fashion. More...
|
|
void | const_serial_op (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over cells in serial order by read-only fashion. More...
|
|
void | interruptible_serial_actives (std::function< bool(typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in serial order. More...
|
|
void | interruptible_serial_all (std::function< bool(typename array3< T >::iterator &it)> func) |
| Loop over all the cells in serial order. More...
|
|
void | interruptible_serial_op (std::function< bool(typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in serial order. More...
|
|
void | interruptible_serial_actives (std::function< bool(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the active cells in serial order. More...
|
|
void | interruptible_serial_all (std::function< bool(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func) |
| Loop over all the cells in serial order. More...
|
|
void | interruptible_serial_op (std::function< bool(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func, bool type=ALL) |
| Loop over cells in serial order. More...
|
|
void | interruptible_const_serial_actives (std::function< bool(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in serial order by read-only fashion. More...
|
|
void | interruptible_const_serial_all (std::function< bool(const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in serial order by read-only fashion. More...
|
|
void | interruptible_const_serial_op (std::function< bool(const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over cells in serial order by read-only fashion. More...
|
|
void | interruptible_const_serial_actives (std::function< bool(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the active cells in serial order by read-only fashion. More...
|
|
void | interruptible_const_serial_all (std::function< bool(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func) const |
| Loop over all the cells in serial order by read-only fashion. More...
|
|
void | interruptible_const_serial_op (std::function< bool(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func, bool type=ALL) const |
| Loop over cells in serial order by read-only fashion. More...
|
|
void | dilate (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it, int thread_index)> func, int count=1) |
| Dilate cells. More...
|
|
void | dilate (std::function< void(int dim, int i, int j, int k, typename array3< T >::iterator &it)> func, int count=1) |
| Dilate cells. More...
|
|
void | dilate (int count=1) |
| Dilate cells. More...
|
|
void | erode (std::function< bool(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it, int thread_index)> func, int count=1) |
| Erode cells. More...
|
|
void | erode (std::function< void(int dim, int i, int j, int k, const typename array3< T >::const_iterator &it)> func, int count=1) |
| Erode cells. More...
|
|
void | erode (int count=1) |
| Erode cells. More...
|
|
void | set_core_name (std::string core_name) |
| Set the core name of module of this grid. More...
|
|
std::string | get_core_name () const |
| Get the core name of module of this grid. More...
|
|
type3 | type () const |
| Get the type of this grid. More...
|
|
void | set_type (const type3 &type) |
| Set the type of this grid. More...
|
|
| recursive_configurable ()=default |
| Default constructor.
|
|
virtual void | recursive_load (configuration &config) |
| Load the program itself and relay the same to its children. Used to load files and libraries into memory. More...
|
|
virtual void | recursive_configure (configuration &config) |
| Configure the program itself and relay the same to its children. Used to load and set parameters. More...
|
|
virtual void | recursive_initialize (const configurable::environment_map &environment=configurable::environment_map()) |
| Initialize the program itself and relay the same to its children. Used to get things ready for actual use. More...
|
|
virtual bool | is_ready () const |
| Get if the instance is initialized. More...
|
|
virtual void | add_child (configurable *child) |
| Add a child instance. More...
|
|
virtual void | add_child (recursive_configurable *child) |
| Add a child instance. More...
|
|
virtual void | remove_child (configurable *child) |
| Remove a child instance. More...
|
|
virtual void | remove_child (recursive_configurable *child) |
| Remove a child instance. More...
|
|
virtual void | setup_now (configuration &config=get_global_configuration()) override |
| Run recursive_load - recursive_configure - recursive_initialize processes.
|
|
virtual bool | not_recursive () override |
| Check if this instance is not derived from recursive_configurable. More...
|
|
void | set_environment (std::string name, const void *value) |
| Set the pointer to an environmental value associated with an input name. More...
|
|
virtual void | load (configuration &config) |
| Load the program. Used to load files and libraries into memory. More...
|
|
virtual void | configure (configuration &config) |
| Configure the program. Used to load and set parameters. More...
|
|