Estimate the density of particles using the Cloud-in-Cell method This filter treats the CoordinateSystem of a DataSet as positions of particles.
More...
|
| ParticleDensityCloudInCell ()=default |
|
Public Member Functions inherited from vtkm::filter::density_estimate::ParticleDensityBase |
VTKM_CONT void | SetComputeNumberDensity (bool yes) |
|
VTKM_CONT bool | GetComputeNumberDensity () const |
|
VTKM_CONT void | SetDivideByVolume (bool yes) |
|
VTKM_CONT bool | GetDivideByVolume () const |
|
VTKM_CONT void | SetDimension (const vtkm::Id3 &dimension) |
| The number of bins in the grid used as regions to estimate density. More...
|
|
VTKM_CONT vtkm::Id3 | GetDimension () const |
| The number of bins in the grid used as regions to estimate density. More...
|
|
VTKM_CONT void | SetOrigin (const vtkm::Vec3f &origin) |
| The lower-left (minimum) corner of the domain of density estimation. More...
|
|
VTKM_CONT vtkm::Vec3f | GetOrigin () const |
| The lower-left (minimum) corner of the domain of density estimation. More...
|
|
VTKM_CONT void | SetSpacing (const vtkm::Vec3f &spacing) |
| The spacing of the grid points used to form the grid for density estimation. More...
|
|
VTKM_CONT vtkm::Vec3f | GetSpacing () const |
| The spacing of the grid points used to form the grid for density estimation. More...
|
|
VTKM_CONT void | SetBounds (const vtkm::Bounds &bounds) |
| The bounds of the region where density estimation occurs. More...
|
|
VTKM_CONT vtkm::Bounds | GetBounds () const |
| The bounds of the region where density estimation occurs. More...
|
|
| FilterField () |
|
VTKM_CONT void | SetOutputFieldName (const std::string &name) |
|
const VTKM_CONT std::string & | GetOutputFieldName () const |
|
VTKM_CONT void | SetActiveField (const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any) |
|
void | SetActiveField (vtkm::IdComponent index, const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any) |
|
const VTKM_CONT std::string & | GetActiveFieldName (vtkm::IdComponent index=0) const |
|
VTKM_CONT vtkm::cont::Field::Association | GetActiveFieldAssociation (vtkm::IdComponent index=0) const |
|
VTKM_CONT void | SetActiveCoordinateSystem (vtkm::Id coord_idx) |
|
VTKM_CONT void | SetActiveCoordinateSystem (vtkm::IdComponent index, vtkm::Id coord_idx) |
|
VTKM_CONT vtkm::Id | GetActiveCoordinateSystemIndex () const |
|
VTKM_CONT vtkm::Id | GetActiveCoordinateSystemIndex (vtkm::IdComponent index) const |
|
VTKM_CONT void | SetUseCoordinateSystemAsField (bool val) |
|
VTKM_CONT void | SetUseCoordinateSystemAsField (vtkm::IdComponent index, bool val) |
|
VTKM_CONT bool | GetUseCoordinateSystemAsField (vtkm::IdComponent index=0) const |
|
virtual VTKM_CONT | ~Filter () |
|
virtual VTKM_CONT bool | CanThread () const |
|
VTKM_CONT void | SetThreadsPerCPU (vtkm::Id numThreads) |
|
VTKM_CONT void | SetThreadsPerGPU (vtkm::Id numThreads) |
|
VTKM_CONT vtkm::Id | GetThreadsPerCPU () const |
|
VTKM_CONT vtkm::Id | GetThreadsPerGPU () const |
|
VTKM_CONT bool | GetRunMultiThreadedFilter () const |
|
VTKM_CONT 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...
|
|
VTKM_CONT void | SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass) |
| Specify which fields get passed from input to output. More...
|
|
VTKM_CONT void | SetFieldsToPass (vtkm::filter::FieldSelection &&fieldsToPass) |
| Specify which fields get passed from input to output. More...
|
|
VTKM_CONT void | SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass, vtkm::filter::FieldSelection::Mode mode) |
| Specify which fields get passed from input to output. More...
|
|
VTKM_CONT 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...
|
|
VTKM_CONT 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...
|
|
VTKM_CONT 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...
|
|
VTKM_CONT void | SetFieldsToPass (const std::string &fieldname, vtkm::filter::FieldSelection::Mode mode) |
| Specify which fields get passed from input to output. More...
|
|
const VTKM_CONT vtkm::filter::FieldSelection & | GetFieldsToPass () const |
| Specify which fields get passed from input to output. More...
|
|
VTKM_CONT vtkm::filter::FieldSelection & | GetFieldsToPass () |
| Specify which fields get passed from input to output. More...
|
|
VTKM_CONT void | SetPassCoordinateSystems (bool flag) |
| Specify whether to always pass coordinate systems. More...
|
|
VTKM_CONT bool | GetPassCoordinateSystems () const |
| Specify whether to always pass coordinate systems. More...
|
|
VTKM_CONT vtkm::cont::DataSet | Execute (const vtkm::cont::DataSet &input) |
|
VTKM_CONT vtkm::cont::PartitionedDataSet | Execute (const vtkm::cont::PartitionedDataSet &input) |
|
|
Protected Member Functions inherited from vtkm::filter::density_estimate::ParticleDensityBase |
| ParticleDensityBase ()=default |
|
VTKM_CONT void | DoDivideByVolume (const vtkm::cont::UnknownArrayHandle &array) const |
|
const VTKM_CONT vtkm::cont::Field & | GetFieldFromDataSet (const vtkm::cont::DataSet &input) const |
|
const VTKM_CONT vtkm::cont::Field & | GetFieldFromDataSet (vtkm::IdComponent index, const vtkm::cont::DataSet &input) const |
|
template<typename Functor , typename... Args> |
VTKM_CONT void | CastAndCallScalarField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const |
|
template<typename Functor , typename... Args> |
VTKM_CONT void | CastAndCallScalarField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const |
|
template<vtkm::IdComponent VecSize, typename Functor , typename... Args> |
VTKM_CONT void | CastAndCallVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const |
|
template<vtkm::IdComponent VecSize, typename Functor , typename... Args> |
VTKM_CONT void | CastAndCallVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const |
|
VTKM_CONT 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 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 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 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 vtkm::cont::DataSet | CreateResult (const vtkm::cont::DataSet &inDataSet) const |
| Create the output data set for DoExecute . More...
|
|
VTKM_CONT 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 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 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...
|
|
virtual VTKM_CONT vtkm::cont::PartitionedDataSet | DoExecutePartitions (const vtkm::cont::PartitionedDataSet &inData) |
|
template<typename FieldMapper > |
VTKM_CONT 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 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...
|
|
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 Cloud-in-Cell method This filter treats the CoordinateSystem of a DataSet as positions 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 in the constructor. It spreads the mass of each particle to its 8 nearest neighboring grid points and summing the contribution of particles for each point in the grid. 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 point, 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).