Skip to content

itk::ParticleVectorFunction

More...

#include <itkParticleVectorFunction.h>

Inherits from LightObject

Inherited by itk::ParticleDualVectorFunction< VDimension >, itk::ParticleEnsembleEntropyFunction< VDimension >, itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >, itk::ParticleMeshBasedGeneralEntropyGradientFunction< VDimension >, itk::ParticleDualVectorFunction< Dimension >, itk::ParticleEnsembleEntropyFunction< Dimension >, itk::ParticleEntropyGradientFunction< ImageType::PixelType, Dimension >, itk::ParticleEntropyGradientFunction< ImageType::PixelType, VDimension >, itk::ParticleMeshBasedGeneralEntropyGradientFunction< Dimension >

Public Types

Name
typedef ParticleVectorFunction Self
typedef SmartPointer< Self > Pointer
typedef SmartPointer< const Self > ConstPointer
typedef LightObject Superclass
typedef ParticleSystem ParticleSystemType
typedef vnl_vector_fixed< double, VDimension > VectorType

Public Functions

Name
itkTypeMacro(ParticleVectorFunction , LightObject )
itkStaticConstMacro(Dimension , unsigned int , VDimension )
virtual VectorType Evaluate(unsigned int , unsigned int , const ParticleSystemType * , double & maxtimestep) const =0
virtual VectorType Evaluate(unsigned int , unsigned int , const ParticleSystemType * , double & maxtimestep, double & energy) const =0
virtual double Energy(unsigned int , unsigned int , const ParticleSystemType * ) const =0
virtual void ResetBuffers()
virtual void AfterIteration()
virtual void BeforeIteration()
virtual void BeforeEvaluate(unsigned int , unsigned int , const ParticleSystemType * )
virtual void SetParticleSystem(ParticleSystemType * p)
virtual ParticleSystemType * GetParticleSystem() const
virtual void SetDomainNumber(unsigned int i)
virtual int GetDomainNumber() const
virtual ParticleVectorFunction< VDimension >::Pointer Clone()

Protected Functions

Name
ParticleVectorFunction()
virtual ~ParticleVectorFunction()
void operator=(const ParticleVectorFunction & )
ParticleVectorFunction(const ParticleVectorFunction & )

Protected Attributes

Name
ParticleSystemType * m_ParticleSystem
unsigned int m_DomainNumber

Detailed Description

template <unsigned int VDimension>
class itk::ParticleVectorFunction;

This is the base class defining the API for a function that takes a particle system, domain, and location index as arguments and returns a vector-valued result.

Public Types Documentation

typedef Self

typedef ParticleVectorFunction itk::ParticleVectorFunction< VDimension >::Self;

Standard class typedefs.

typedef Pointer

typedef SmartPointer<Self> itk::ParticleVectorFunction< VDimension >::Pointer;

typedef ConstPointer

typedef SmartPointer<const Self> itk::ParticleVectorFunction< VDimension >::ConstPointer;

typedef Superclass

typedef LightObject itk::ParticleVectorFunction< VDimension >::Superclass;

typedef ParticleSystemType

typedef ParticleSystem itk::ParticleVectorFunction< VDimension >::ParticleSystemType;

Type of particle system.

typedef VectorType

typedef vnl_vector_fixed<double, VDimension> itk::ParticleVectorFunction< VDimension >::VectorType;

Type of vectors.

Public Functions Documentation

function itkTypeMacro

itkTypeMacro(
    ParticleVectorFunction ,
    LightObject 
)

function itkStaticConstMacro

itkStaticConstMacro(
    Dimension ,
    unsigned int ,
    VDimension 
)

Method for object allocation through the factory. Dimensionality of the domain of the particle system.

function Evaluate

virtual VectorType Evaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * ,
    double & maxtimestep
) const =0

Reimplemented by: itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleCurvatureEntropyGradientFunction::Evaluate, itk::ParticleCurvatureEntropyGradientFunction::Evaluate, itk::ParticleEnsembleEntropyFunction::Evaluate, itk::ParticleEnsembleEntropyFunction::Evaluate, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Evaluate, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Evaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleOmegaGradientFunction::Evaluate, itk::ParticleOmegaGradientFunction::Evaluate, itk::ParticleDualVectorFunction::Evaluate, itk::ParticleDualVectorFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate

The first argument is a pointer to the particle system. The second argument is the index of the domain within that particle system. The third argument is the index of the particle location within the given domain.

function Evaluate

virtual VectorType Evaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * ,
    double & maxtimestep,
    double & energy
) const =0

Reimplemented by: itk::ParticleDualVectorFunction::Evaluate, itk::ParticleDualVectorFunction::Evaluate, itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleCurvatureEntropyGradientFunction::Evaluate, itk::ParticleCurvatureEntropyGradientFunction::Evaluate, itk::ParticleEnsembleEntropyFunction::Evaluate, itk::ParticleEnsembleEntropyFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate, itk::ParticleEntropyGradientFunction::Evaluate, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Evaluate, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Evaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::Evaluate, itk::ParticleOmegaGradientFunction::Evaluate, itk::ParticleOmegaGradientFunction::Evaluate

function Energy

virtual double Energy(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * 
) const =0

Reimplemented by: itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::Energy, itk::ParticleCurvatureEntropyGradientFunction::Energy, itk::ParticleCurvatureEntropyGradientFunction::Energy, itk::ParticleEnsembleEntropyFunction::Energy, itk::ParticleEnsembleEntropyFunction::Energy, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Energy, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Energy, itk::ParticleModifiedCotangentEntropyGradientFunction::Energy, itk::ParticleModifiedCotangentEntropyGradientFunction::Energy, itk::ParticleOmegaGradientFunction::Energy, itk::ParticleOmegaGradientFunction::Energy, itk::ParticleDualVectorFunction::Energy, itk::ParticleDualVectorFunction::Energy, itk::ParticleEntropyGradientFunction::Energy, itk::ParticleEntropyGradientFunction::Energy, itk::ParticleEntropyGradientFunction::Energy

function ResetBuffers

inline virtual void ResetBuffers()

Reimplemented by: itk::ParticleEntropyGradientFunction::ResetBuffers, itk::ParticleEntropyGradientFunction::ResetBuffers, itk::ParticleEntropyGradientFunction::ResetBuffers

May be called by the solver class.

function AfterIteration

inline virtual void AfterIteration()

Reimplemented by: itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::AfterIteration, itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::AfterIteration, itk::ParticleCurvatureEntropyGradientFunction::AfterIteration, itk::ParticleCurvatureEntropyGradientFunction::AfterIteration, itk::ParticleCurvatureEntropyGradientFunction::AfterIteration, itk::ParticleCurvatureEntropyGradientFunction::AfterIteration, itk::ParticleDualVectorFunction::AfterIteration, itk::ParticleDualVectorFunction::AfterIteration, itk::ParticleEnsembleEntropyFunction::AfterIteration, itk::ParticleEnsembleEntropyFunction::AfterIteration, itk::ParticleMeshBasedGeneralEntropyGradientFunction::AfterIteration, itk::ParticleMeshBasedGeneralEntropyGradientFunction::AfterIteration, itk::ParticleModifiedCotangentEntropyGradientFunction::AfterIteration, itk::ParticleModifiedCotangentEntropyGradientFunction::AfterIteration, itk::ParticleOmegaGradientFunction::AfterIteration, itk::ParticleOmegaGradientFunction::AfterIteration

This method is called by a solver after each iteration. Subclasses may or may not implement this method.

function BeforeIteration

inline virtual void BeforeIteration()

Reimplemented by: itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::BeforeIteration, itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::BeforeIteration, itk::ParticleCurvatureEntropyGradientFunction::BeforeIteration, itk::ParticleCurvatureEntropyGradientFunction::BeforeIteration, itk::ParticleCurvatureEntropyGradientFunction::BeforeIteration, itk::ParticleCurvatureEntropyGradientFunction::BeforeIteration, itk::ParticleDualVectorFunction::BeforeIteration, itk::ParticleDualVectorFunction::BeforeIteration, itk::ParticleEnsembleEntropyFunction::BeforeIteration, itk::ParticleEnsembleEntropyFunction::BeforeIteration, itk::ParticleMeshBasedGeneralEntropyGradientFunction::BeforeIteration, itk::ParticleMeshBasedGeneralEntropyGradientFunction::BeforeIteration, itk::ParticleModifiedCotangentEntropyGradientFunction::BeforeIteration, itk::ParticleModifiedCotangentEntropyGradientFunction::BeforeIteration, itk::ParticleOmegaGradientFunction::BeforeIteration, itk::ParticleOmegaGradientFunction::BeforeIteration

This method is called by a solver before each iteration. Subclasses may or may not implement this method.

function BeforeEvaluate

inline virtual void BeforeEvaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * 
)

Reimplemented by: itk::ParticleDualVectorFunction::BeforeEvaluate, itk::ParticleDualVectorFunction::BeforeEvaluate, itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::BeforeEvaluate, itk::ParticleCurvatureEntropyGradientFunction::BeforeEvaluate, itk::ParticleCurvatureEntropyGradientFunction::BeforeEvaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::BeforeEvaluate, itk::ParticleModifiedCotangentEntropyGradientFunction::BeforeEvaluate, itk::ParticleOmegaGradientFunction::BeforeEvaluate, itk::ParticleOmegaGradientFunction::BeforeEvaluate

This method may be called to set up the state of the function object before a call to Evaluate. It is necessary in order to initialize certain constants and variables that may be used for calculating the Energy as well as the Gradients. Typically this is only necessary for the adaptive gradient descent algorithm.

function SetParticleSystem

inline virtual void SetParticleSystem(
    ParticleSystemType * p
)

Reimplemented by: itk::ParticleDualVectorFunction::SetParticleSystem, itk::ParticleDualVectorFunction::SetParticleSystem

Some subclasses may require a pointer to the particle system and its domain number. These methods set/get those values.

function GetParticleSystem

inline virtual ParticleSystemType * GetParticleSystem() const

function SetDomainNumber

inline virtual void SetDomainNumber(
    unsigned int i
)

Reimplemented by: itk::ParticleDualVectorFunction::SetDomainNumber, itk::ParticleDualVectorFunction::SetDomainNumber

function GetDomainNumber

inline virtual int GetDomainNumber() const

function Clone

inline virtual ParticleVectorFunction< VDimension >::Pointer Clone()

Reimplemented by: itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::Clone, itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction::Clone, itk::ParticleCurvatureEntropyGradientFunction::Clone, itk::ParticleCurvatureEntropyGradientFunction::Clone, itk::ParticleDualVectorFunction::Clone, itk::ParticleDualVectorFunction::Clone, itk::ParticleEnsembleEntropyFunction::Clone, itk::ParticleEnsembleEntropyFunction::Clone, itk::ParticleEntropyGradientFunction::Clone, itk::ParticleEntropyGradientFunction::Clone, itk::ParticleEntropyGradientFunction::Clone, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Clone, itk::ParticleMeshBasedGeneralEntropyGradientFunction::Clone, itk::ParticleModifiedCotangentEntropyGradientFunction::Clone, itk::ParticleModifiedCotangentEntropyGradientFunction::Clone, itk::ParticleOmegaGradientFunction::Clone, itk::ParticleOmegaGradientFunction::Clone

Protected Functions Documentation

function ParticleVectorFunction

inline ParticleVectorFunction()

function ~ParticleVectorFunction

inline virtual ~ParticleVectorFunction()

function operator=

void operator=(
    const ParticleVectorFunction & 
)

function ParticleVectorFunction

ParticleVectorFunction(
    const ParticleVectorFunction & 
)

Protected Attributes Documentation

variable m_ParticleSystem

ParticleSystemType * m_ParticleSystem;

variable m_DomainNumber

unsigned int m_DomainNumber;

Updated on 2022-07-23 at 16:40:06 -0600