|
| ParticleDensityNearestGridPoint ()=default |
|
Public Member Functions inherited from vtkm::filter::density_estimate::ParticleDensityBase |
void | SetComputeNumberDensity (bool flag) |
| Toggles between summing mass and computing instances. More...
|
|
bool | GetComputeNumberDensity () const |
| Toggles between summing mass and computing instances. More...
|
|
void | SetDivideByVolume (bool flag) |
| Specifies whether the accumulated mass (or count) is divided by the volume of the cell. More...
|
|
bool | GetDivideByVolume () const |
| Specifies whether the accumulated mass (or count) is divided by the volume of the cell. More...
|
|
void | SetDimension (const vtkm::Id3 &dimension) |
| The number of bins in the grid used as regions to estimate density. More...
|
|
vtkm::Id3 | GetDimension () const |
| The number of bins in the grid used as regions to estimate density. More...
|
|
void | SetOrigin (const vtkm::Vec3f &origin) |
| The lower-left (minimum) corner of the domain of density estimation. More...
|
|
vtkm::Vec3f | GetOrigin () const |
| The lower-left (minimum) corner of the domain of density estimation. More...
|
|
void | SetSpacing (const vtkm::Vec3f &spacing) |
| The spacing of the grid points used to form the grid for density estimation. More...
|
|
vtkm::Vec3f | GetSpacing () const |
| The spacing of the grid points used to form the grid for density estimation. More...
|
|
void | SetBounds (const vtkm::Bounds &bounds) |
| The bounds of the region where density estimation occurs. More...
|
|
vtkm::Bounds | GetBounds () const |
|
| Filter () |
|
virtual | ~Filter () |
|
vtkm::cont::DataSet | Execute (const vtkm::cont::DataSet &input) |
| Executes the filter on the input and produces a result dataset. More...
|
|
vtkm::cont::PartitionedDataSet | Execute (const vtkm::cont::PartitionedDataSet &input) |
| Executes the filter on the input PartitionedDataSet and produces a result PartitionedDataSet. More...
|
|
void | SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass) |
| Specify which fields get passed from input to output. More...
|
|
void | SetFieldsToPass (vtkm::filter::FieldSelection &&fieldsToPass) |
| Specify which fields get passed from input to output. More...
|
|
void | SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass, vtkm::filter::FieldSelection::Mode mode) |
|
void | SetFieldsToPass (std::initializer_list< std::string > fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select) |
| Specify which fields get passed from input to output. More...
|
|
void | SetFieldsToPass (std::initializer_list< std::pair< std::string, vtkm::cont::Field::Association >> fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select) |
| Specify which fields get passed from input to output. More...
|
|
void | SetFieldsToPass (const std::string &fieldname, vtkm::cont::Field::Association association, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select) |
| Specify which fields get passed from input to output. More...
|
|
void | SetFieldsToPass (const std::string &fieldname, vtkm::filter::FieldSelection::Mode mode) |
| Specify which fields get passed from input to output. More...
|
|
const vtkm::filter::FieldSelection & | GetFieldsToPass () const |
| Specify which fields get passed from input to output. More...
|
|
vtkm::filter::FieldSelection & | GetFieldsToPass () |
| Specify which fields get passed from input to output. More...
|
|
void | SetPassCoordinateSystems (bool flag) |
| Specify whether to always pass coordinate systems. More...
|
|
bool | GetPassCoordinateSystems () const |
| Specify whether to always pass coordinate systems. More...
|
|
void | SetOutputFieldName (const std::string &name) |
| Specifies the name of the output field generated. More...
|
|
const std::string & | GetOutputFieldName () const |
| Specifies the name of the output field generated. More...
|
|
void | SetActiveField (const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any) |
| Specifies a field to operate on. More...
|
|
void | SetActiveField (vtkm::IdComponent index, const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any) |
| Specifies a field to operate on. More...
|
|
const std::string & | GetActiveFieldName (vtkm::IdComponent index=0) const |
| Specifies a field to operate on. More...
|
|
vtkm::cont::Field::Association | GetActiveFieldAssociation (vtkm::IdComponent index=0) const |
| Specifies a field to operate on. More...
|
|
void | SetActiveCoordinateSystem (vtkm::Id coord_idx) |
| Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet . More...
|
|
void | SetActiveCoordinateSystem (vtkm::IdComponent index, vtkm::Id coord_idx) |
| Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet . More...
|
|
vtkm::Id | GetActiveCoordinateSystemIndex (vtkm::IdComponent index=0) const |
| Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet . More...
|
|
void | SetUseCoordinateSystemAsField (bool val) |
| Specifies whether to use point coordinates as the input field. More...
|
|
void | SetUseCoordinateSystemAsField (vtkm::IdComponent index, bool val) |
| Specifies whether to use point coordinates as the input field. More...
|
|
bool | GetUseCoordinateSystemAsField (vtkm::IdComponent index=0) const |
| Specifies whether to use point coordinates as the input field. More...
|
|
vtkm::IdComponent | GetNumberOfActiveFields () const |
| Return the number of active fields currently set. More...
|
|
virtual bool | CanThread () const |
| Returns whether the filter can execute on partitions in concurrent threads. More...
|
|
void | SetThreadsPerCPU (vtkm::Id numThreads) |
|
void | SetThreadsPerGPU (vtkm::Id numThreads) |
|
vtkm::Id | GetThreadsPerCPU () const |
|
vtkm::Id | GetThreadsPerGPU () const |
|
bool | GetRunMultiThreadedFilter () const |
|
void | SetRunMultiThreadedFilter (bool val) |
|
void | SetInvoker (vtkm::cont::Invoker inv) |
| Specify the vtkm::cont::Invoker to be used to execute worklets by this filter instance. More...
|
|
|
Protected Member Functions inherited from vtkm::filter::density_estimate::ParticleDensityBase |
| ParticleDensityBase ()=default |
|
void | DoDivideByVolume (const vtkm::cont::UnknownArrayHandle &array) const |
|
vtkm::cont::DataSet | CreateResult (const vtkm::cont::DataSet &inDataSet) const |
| Create the output data set for DoExecute . More...
|
|
vtkm::cont::DataSet | CreateResultField (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::Field &resultField) const |
| Create the output data set for DoExecute More...
|
|
vtkm::cont::DataSet | CreateResultField (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, vtkm::cont::Field::Association resultFieldAssociation, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const |
| Create the output data set for DoExecute More...
|
|
vtkm::cont::DataSet | CreateResultFieldPoint (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const |
| Create the output data set for DoExecute More...
|
|
vtkm::cont::DataSet | CreateResultFieldCell (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const |
| Create the output data set for DoExecute More...
|
|
vtkm::cont::PartitionedDataSet | CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions) const |
| Create the output data set for DoExecute . More...
|
|
template<typename FieldMapper > |
vtkm::cont::PartitionedDataSet | CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions, FieldMapper &&fieldMapper) const |
| Create the output data set for DoExecute . More...
|
|
template<typename FieldMapper > |
vtkm::cont::DataSet | CreateResult (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, FieldMapper &&fieldMapper) const |
| Create the output data set for DoExecute . More...
|
|
template<typename FieldMapper > |
vtkm::cont::DataSet | CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const vtkm::cont::CoordinateSystem &resultCoordSystem, FieldMapper &&fieldMapper) const |
| Create the output data set for DoExecute . More...
|
|
template<typename FieldMapper > |
vtkm::cont::DataSet | CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const std::string &coordsName, const vtkm::cont::UnknownArrayHandle &coordsData, FieldMapper &&fieldMapper) const |
| Create the output data set for DoExecute . More...
|
|
const vtkm::cont::Field & | GetFieldFromDataSet (const vtkm::cont::DataSet &input) const |
| Retrieve an input field from a vtkm::cont::DataSet object. More...
|
|
const vtkm::cont::Field & | GetFieldFromDataSet (vtkm::IdComponent index, const vtkm::cont::DataSet &input) const |
| Retrieve an input field from a vtkm::cont::DataSet object. More...
|
|
virtual vtkm::cont::PartitionedDataSet | DoExecutePartitions (const vtkm::cont::PartitionedDataSet &inData) |
|
template<typename Functor , typename... Args> |
void | CastAndCallScalarField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const |
| Convenience method to get the array from a filter's input scalar field. More...
|
|
template<typename Functor , typename... Args> |
void | CastAndCallScalarField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const |
| Convenience method to get the array from a filter's input scalar field. More...
|
|
template<vtkm::IdComponent VecSize, typename Functor , typename... Args> |
void | CastAndCallVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const |
| Convenience method to get the array from a filter's input vector field. More...
|
|
template<vtkm::IdComponent VecSize, typename Functor , typename... Args> |
void | CastAndCallVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const |
| Convenience method to get the array from a filter's input vector field. More...
|
|
template<typename Functor , typename... Args> |
void | CastAndCallVariableVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const |
| This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
|
|
template<typename Functor , typename... Args> |
void | CastAndCallVariableVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const |
| This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
|
|
Protected Attributes inherited from vtkm::filter::density_estimate::ParticleDensityBase |
vtkm::Id3 | Dimension = { 100, 100, 100 } |
|
vtkm::Vec3f | Origin = { 0.0f, 0.0f, 0.0f } |
|
vtkm::Vec3f | Spacing = { 1.0f, 1.0f, 1.0f } |
|
bool | ComputeNumberDensity = false |
|
bool | DivideByVolume = true |
|
vtkm::cont::Invoker | Invoke |
|
Estimate the density of particles using the Nearest Grid Point method.
This filter takes a collection of particles. The particles are infinitesimal in size with finite mass (or other scalar attributes such as charge). The filter estimates density by imposing a regular grid (as specified by SetDimensions
, SetOrigin
, and SetSpacing
) and summing the mass of particles within each cell in the grid. Each input particle is assigned to one bin that it falls in.
The mass of particles is established by setting the active field (using SetActiveField
). Note that the "mass" can actually be another quantity. For example, you could use electrical charge in place of mass to compute the charge density. Once the sum of the mass is computed for each grid cell, the mass is divided by the volume of the cell. Thus, the density will be computed as the units of the mass field per the cubic units of the coordinate system. If you just want a sum of the mass in each cell, turn off the DivideByVolume
feature of this filter. In addition, you can also simply count the number of particles in each cell by calling SetComputeNumberDensity(true)
.
This operation is helpful in the analysis of particle-based simulation where the data often requires conversion or deposition of particles' attributes, such as mass, to an overlaying mesh. This allows further identification of regions of interest based on the spatial distribution of particles attributes, for example, high density regions could be considered as clusters or halos while low density regions could be considered as bubbles or cavities in the particle data.
Since there is no specific vtkm::cont::CellSet
for particles in VTK-m, this filter treats the vtkm::cont::CoordinateSystem
of the vtkm::cont::DataSet
as the positions of the particles while ignoring the details of the vtkm::cont::CellSet
.