VTK-m  2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
vtkm::filter::vector_analysis::Gradient Class Reference

A general filter for gradient estimation. More...

#include <Gradient.h>

Inheritance diagram for vtkm::filter::vector_analysis::Gradient:
vtkm::filter::FilterField vtkm::filter::Filter

Public Member Functions

void SetComputePointGradient (bool enable)
 When this flag is on (default is off), the gradient filter will provide a point based gradients, which are significantly more costly since for each point we need to compute the gradient of each cell that uses it. More...
 
bool GetComputePointGradient () const
 
void SetComputeDivergence (bool enable)
 Add divergence field to the output data. More...
 
bool GetComputeDivergence () const
 
void SetComputeVorticity (bool enable)
 Add voriticity/curl field to the output data. More...
 
bool GetComputeVorticity () const
 
void SetComputeQCriterion (bool enable)
 Add Q-criterion field to the output data. More...
 
bool GetComputeQCriterion () const
 
void SetComputeGradient (bool enable)
 Add gradient field to the output data. More...
 
bool GetComputeGradient () const
 
void SetColumnMajorOrdering ()
 Make the vector gradient output format be in FORTRAN Column-major order. More...
 
void SetRowMajorOrdering ()
 Make the vector gradient output format be in C Row-major order. More...
 
void SetDivergenceName (const std::string &name)
 
const std::string & GetDivergenceName () const
 
void SetVorticityName (const std::string &name)
 
const std::string & GetVorticityName () const
 
void SetQCriterionName (const std::string &name)
 
const std::string & GetQCriterionName () const
 
- Public Member Functions inherited from vtkm::filter::FilterField
 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
 
- Public Member Functions inherited from vtkm::filter::Filter
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::FieldSelectionGetFieldsToPass () const
 Specify which fields get passed from input to output. More...
 
VTKM_CONT vtkm::filter::FieldSelectionGetFieldsToPass ()
 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)
 

Private Member Functions

vtkm::cont::DataSet DoExecute (const vtkm::cont::DataSet &inputDataSet) override
 

Private Attributes

bool ComputePointGradient = false
 
bool ComputeDivergence = false
 
bool ComputeVorticity = false
 
bool ComputeQCriterion = false
 
bool StoreGradient = true
 
bool RowOrdering = true
 
std::string DivergenceName = "Divergence"
 
std::string GradientsName = "Gradients"
 
std::string QCriterionName = "QCriterion"
 
std::string VorticityName = "Vorticity"
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::filter::FilterField
const VTKM_CONT vtkm::cont::FieldGetFieldFromDataSet (const vtkm::cont::DataSet &input) const
 
const VTKM_CONT vtkm::cont::FieldGetFieldFromDataSet (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...
 
- Protected Member Functions inherited from vtkm::filter::Filter
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::Filter
vtkm::cont::Invoker Invoke
 

Detailed Description

A general filter for gradient estimation.

Estimates the gradient of a point field in a data set. The created gradient array can be determined at either each point location or at the center of each cell.

The default for the filter is output as cell centered gradients. To enable point based gradient computation enable SetComputePointGradient

Note: If no explicit name for the output field is provided the filter will default to "Gradients"

Member Function Documentation

◆ DoExecute()

vtkm::cont::DataSet vtkm::filter::vector_analysis::Gradient::DoExecute ( const vtkm::cont::DataSet inputDataSet)
overrideprivatevirtual

Implements vtkm::filter::Filter.

◆ GetComputeDivergence()

bool vtkm::filter::vector_analysis::Gradient::GetComputeDivergence ( ) const
inline

◆ GetComputeGradient()

bool vtkm::filter::vector_analysis::Gradient::GetComputeGradient ( ) const
inline

◆ GetComputePointGradient()

bool vtkm::filter::vector_analysis::Gradient::GetComputePointGradient ( ) const
inline

◆ GetComputeQCriterion()

bool vtkm::filter::vector_analysis::Gradient::GetComputeQCriterion ( ) const
inline

◆ GetComputeVorticity()

bool vtkm::filter::vector_analysis::Gradient::GetComputeVorticity ( ) const
inline

◆ GetDivergenceName()

const std::string& vtkm::filter::vector_analysis::Gradient::GetDivergenceName ( ) const
inline

◆ GetQCriterionName()

const std::string& vtkm::filter::vector_analysis::Gradient::GetQCriterionName ( ) const
inline

◆ GetVorticityName()

const std::string& vtkm::filter::vector_analysis::Gradient::GetVorticityName ( ) const
inline

◆ SetColumnMajorOrdering()

void vtkm::filter::vector_analysis::Gradient::SetColumnMajorOrdering ( )
inline

Make the vector gradient output format be in FORTRAN Column-major order.

This is only used when the input field is a vector field ( 3 components ). Enabling column-major is important if integrating with other projects such as VTK. Default: Row Order

◆ SetComputeDivergence()

void vtkm::filter::vector_analysis::Gradient::SetComputeDivergence ( bool  enable)
inline

Add divergence field to the output data.

The name of the array will be Divergence and will be a cell field unless ComputePointGradient is enabled. The input array must have 3 components in order to compute this. The default is off.

◆ SetComputeGradient()

void vtkm::filter::vector_analysis::Gradient::SetComputeGradient ( bool  enable)
inline

Add gradient field to the output data.

The name of the array will be Gradients and will be a cell field unless ComputePointGradient is enabled. It is useful to turn this off when you are only interested in the results of Divergence, Vorticity, or QCriterion. The default is on.

◆ SetComputePointGradient()

void vtkm::filter::vector_analysis::Gradient::SetComputePointGradient ( bool  enable)
inline

When this flag is on (default is off), the gradient filter will provide a point based gradients, which are significantly more costly since for each point we need to compute the gradient of each cell that uses it.

◆ SetComputeQCriterion()

void vtkm::filter::vector_analysis::Gradient::SetComputeQCriterion ( bool  enable)
inline

Add Q-criterion field to the output data.

The name of the array will be QCriterion and will be a cell field unless ComputePointGradient is enabled. The input array must have 3 components in order to compute this. The default is off.

◆ SetComputeVorticity()

void vtkm::filter::vector_analysis::Gradient::SetComputeVorticity ( bool  enable)
inline

Add voriticity/curl field to the output data.

The name of the array will be Vorticity and will be a cell field unless ComputePointGradient is enabled. The input array must have 3 components in order to compute this. The default is off.

◆ SetDivergenceName()

void vtkm::filter::vector_analysis::Gradient::SetDivergenceName ( const std::string &  name)
inline

◆ SetQCriterionName()

void vtkm::filter::vector_analysis::Gradient::SetQCriterionName ( const std::string &  name)
inline

◆ SetRowMajorOrdering()

void vtkm::filter::vector_analysis::Gradient::SetRowMajorOrdering ( )
inline

Make the vector gradient output format be in C Row-major order.

This is only used when the input field is a vector field ( 3 components ). Default: Row Order

◆ SetVorticityName()

void vtkm::filter::vector_analysis::Gradient::SetVorticityName ( const std::string &  name)
inline

Member Data Documentation

◆ ComputeDivergence

bool vtkm::filter::vector_analysis::Gradient::ComputeDivergence = false
private

◆ ComputePointGradient

bool vtkm::filter::vector_analysis::Gradient::ComputePointGradient = false
private

◆ ComputeQCriterion

bool vtkm::filter::vector_analysis::Gradient::ComputeQCriterion = false
private

◆ ComputeVorticity

bool vtkm::filter::vector_analysis::Gradient::ComputeVorticity = false
private

◆ DivergenceName

std::string vtkm::filter::vector_analysis::Gradient::DivergenceName = "Divergence"
private

◆ GradientsName

std::string vtkm::filter::vector_analysis::Gradient::GradientsName = "Gradients"
private

◆ QCriterionName

std::string vtkm::filter::vector_analysis::Gradient::QCriterionName = "QCriterion"
private

◆ RowOrdering

bool vtkm::filter::vector_analysis::Gradient::RowOrdering = true
private

◆ StoreGradient

bool vtkm::filter::vector_analysis::Gradient::StoreGradient = true
private

◆ VorticityName

std::string vtkm::filter::vector_analysis::Gradient::VorticityName = "Vorticity"
private

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