VTK-m  2.1
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::Filter

Public Member Functions

void SetComputePointGradient (bool enable)
 Specify whether to compute gradients. More...
 
bool GetComputePointGradient () const
 Specify whether to compute gradients. More...
 
void SetComputeDivergence (bool enable)
 Add divergence field to the output data. More...
 
bool GetComputeDivergence () const
 Add divergence field to the output data. More...
 
void SetDivergenceName (const std::string &name)
 When SetComputeDivergence() is enabled, the result is stored in a field of this name. More...
 
const std::string & GetDivergenceName () const
 When SetComputeDivergence() is enabled, the result is stored in a field of this name. More...
 
void SetComputeVorticity (bool enable)
 Add voriticity/curl field to the output data. More...
 
bool GetComputeVorticity () const
 Add voriticity/curl field to the output data. More...
 
void SetVorticityName (const std::string &name)
 When SetComputeVorticity() is enabled, the result is stored in a field of this name. More...
 
const std::string & GetVorticityName () const
 When SetComputeVorticity() is enabled, the result is stored in a field of this name. More...
 
void SetComputeQCriterion (bool enable)
 Add Q-criterion field to the output data. More...
 
bool GetComputeQCriterion () const
 Add Q-criterion field to the output data. More...
 
void SetQCriterionName (const std::string &name)
 When SetComputeQCriterion() is enabled, the result is stored in a field of this name. More...
 
const std::string & GetQCriterionName () const
 When SetComputeQCriterion() is enabled, the result is stored in a field of this name. More...
 
void SetComputeGradient (bool enable)
 Add gradient field to the output data. More...
 
bool GetComputeGradient () const
 Add gradient field to the output data. More...
 
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...
 
- Public Member Functions inherited from vtkm::filter::Filter
 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::FieldSelectionGetFieldsToPass () const
 Specify which fields get passed from input to output. More...
 
vtkm::filter::FieldSelectionGetFieldsToPass ()
 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...
 

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::Filter
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::FieldGetFieldFromDataSet (const vtkm::cont::DataSet &input) const
 Retrieve an input field from a vtkm::cont::DataSet object. More...
 
const vtkm::cont::FieldGetFieldFromDataSet (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::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()

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

Add divergence field to the output data.

The input array must have 3 components to compute this. The default is off.

◆ GetComputeGradient()

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

Add gradient field to the output data.

The name of the array will be Gradients unless otherwise specified with SetOutputFieldName 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.

◆ GetComputePointGradient()

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

Specify whether to compute gradients.

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.

◆ GetComputeQCriterion()

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

Add Q-criterion field to the output data.

The input array must have 3 components to compute this. The default is off.

◆ GetComputeVorticity()

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

Add voriticity/curl field to the output data.

The input array must have 3 components to compute this. The default is off.

◆ GetDivergenceName()

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

When SetComputeDivergence() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be Divergence.

◆ GetQCriterionName()

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

When SetComputeQCriterion() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be QCriterion.

◆ GetVorticityName()

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

When SetComputeVorticity() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be Vorticity.

◆ 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. 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 input array must have 3 components 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 unless otherwise specified with SetOutputFieldName 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

Specify whether to compute gradients.

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 input array must have 3 components 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 input array must have 3 components to compute this. The default is off.

◆ SetDivergenceName()

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

When SetComputeDivergence() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be Divergence.

◆ SetQCriterionName()

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

When SetComputeQCriterion() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be QCriterion.

◆ 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. Default: Row Order.

◆ SetVorticityName()

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

When SetComputeVorticity() is enabled, the result is stored in a field of this name.

If not specified, the name of the field will be Vorticity.

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: