STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::synthesis::VolumePartition Class Reference

Define one volume of whole-numbered side lengths within a larger unit cell, which itself is part of a synthesis of many systems. More...

#include <brickwork.h>

Public Member Functions

 VolumePartition (int a_dim_in=0, int b_dim_in=0, int c_dim_in=0, int a_orig_in=0, int b_orig_in=0, int c_orig_in=0, int halo_under_in=0, int halo_over_in=0, int system_index_in=0)
 The constructor takes unitless lengths along the unit cell A, B, and C axes plus an origin coordinate in the grid at which the volume partition begins. In general, volume partitions do not wrap but rather fill the primary unit cell volume exactly.
 
int3 getOrigin () const
 Get the origin of the volume partition.
 
int getVolumeWithHalo () const
 Get the total volume of the work unit, including the halo which also, presumably, involves computing effort.
 
int getSystemIndex () const
 Get the system index to which the volume partition applies.
 
VolumePartition split (int a_dim_update)
 Reduce the dimension of the work unit along the unit cell A axis. A new partition is returned with the volume that was cleaved off.
 
 VolumePartition (const VolumePartition &original)=default
 With no pointers to repair, no const members, and any array data members taken from the Standard Template Library, the default copy and move constructors, as well as copy and move assignment operators, are appropriate.
 
 VolumePartition (VolumePartition &&original)=default
 
VolumePartitionoperator= (const VolumePartition &original)=default
 
VolumePartitionoperator= (VolumePartition &&original)=default
 
int3 getLength () const
 Get the length along a specific dimension, or the lengths along all dimensions.
 
int getLength (UnitCellAxis dim) const
 
int getLength (CartesianDimension dim) const
 
int3 getLengthPlusHalo () const
 Get the length along a specific dimension, or the lengths along all dimensions, plus the halo to give the true dimensions of the work involved with a particular brick.
 
int getLengthPlusHalo (UnitCellAxis dim) const
 
int getLengthPlusHalo (CartesianDimension dim) const
 

Detailed Description

Define one volume of whole-numbered side lengths within a larger unit cell, which itself is part of a synthesis of many systems.

Constructor & Destructor Documentation

◆ VolumePartition()

stormm::synthesis::VolumePartition::VolumePartition ( const VolumePartition & original)
default

With no pointers to repair, no const members, and any array data members taken from the Standard Template Library, the default copy and move constructors, as well as copy and move assignment operators, are appropriate.

Parameters
originalThe original object to copy or move
otherAnother object placed on the right hand side of the assignment statement

Member Function Documentation

◆ getLength()

int3 stormm::synthesis::VolumePartition::getLength ( ) const

Get the length along a specific dimension, or the lengths along all dimensions.

Overloaded:

  • Provide the unit cell axis designation or its Cartesian analog
  • Get the length along one dimension or all dimensions
Parameters
dimThe unit cell axis along which to take the length

◆ getLengthPlusHalo()

int3 stormm::synthesis::VolumePartition::getLengthPlusHalo ( ) const

Get the length along a specific dimension, or the lengths along all dimensions, plus the halo to give the true dimensions of the work involved with a particular brick.

Overloaded:

  • Provide the unit cell axis designation or its Cartesian analog
  • Get the length along one dimension or all dimensions
Parameters
dimThe unit cell axis along which to take the length

◆ split()

VolumePartition stormm::synthesis::VolumePartition::split ( int a_dim_update)

Reduce the dimension of the work unit along the unit cell A axis. A new partition is returned with the volume that was cleaved off.

Parameters
a_dim_updateThe new dimension to give the current cell

The documentation for this class was generated from the following files: