18#ifndef vtkAMRGaussianPulseSource_h 
   19#define vtkAMRGaussianPulseSource_h 
   21#include "vtkFiltersAMRModule.h"  
   26VTK_ABI_NAMESPACE_BEGIN
 
   43  vtkSetMacro(Dimension, 
int);
 
   50  vtkSetMacro(NumberOfLevels, 
int);
 
   58    this->RefinmentRatio = r;
 
   68    this->RootSpacing[0] = this->RootSpacing[1] = this->RootSpacing[2] = h0;
 
   77  vtkSetVector3Macro(PulseOrigin, 
double);
 
   78  vtkGetVector3Macro(PulseOrigin, 
double);
 
   81    this->PulseOrigin[0] = f;
 
   86    this->PulseOrigin[1] = f;
 
   91    this->PulseOrigin[2] = f;
 
  100  vtkSetVector3Macro(PulseWidth, 
double);
 
  101  vtkGetVector3Macro(PulseWidth, 
double);
 
  104    this->PulseWidth[0] = f;
 
  109    this->PulseWidth[1] = f;
 
  114    this->PulseWidth[2] = f;
 
  123  vtkSetMacro(PulseAmplitude, 
double);
 
  124  vtkGetMacro(PulseAmplitude, 
double);
 
  149    return (this->ComputePulseAt(xyz));
 
  155    for (
int i = 0; i < this->Dimension; ++i)
 
  157      double d = pt[i] - this->PulseOrigin[i];
 
  159      double L2 = this->PulseWidth[i] * this->PulseWidth[i];
 
  162    pulse = this->PulseAmplitude * std::exp(-r);
 
  197  double RootSpacing[3];
 
  198  double PulseOrigin[3];
 
  199  double PulseWidth[3];
 
A source that generates sample AMR data with gaussian pulse field.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
double ComputePulseAt(double pt[3])
Computes the gaussian pulse at the given location based on the user supplied parameters for pulse wid...
 
vtkUniformGrid * GetGrid(double origin[3], double h[3], int ndim[3])
Constructs a uniform grid path with the given origin/spacing and node dimensions.
 
void Generate3DDataSet(vtkOverlappingAMR *amr)
Generate 2-D or 3-D DataSet.
 
double ComputePulseAt(const double x, const double y, const double z)
Computes the gaussian pulse at the given location based on the user supplied parameters for pulse wid...
 
vtkUniformGrid * RefinePatch(vtkUniformGrid *parent, int patchExtent[6])
Constructs a refined patch from the given parent grid.
 
~vtkAMRGaussianPulseSource() override
 
void SetZPulseWidth(double f)
Set & Get macro for the pulse width.
 
vtkAMRGaussianPulseSource()
 
void SetRootSpacing(double h0)
Set the root spacing.
 
static vtkAMRGaussianPulseSource * New()
 
void SetZPulseOrigin(double f)
Set & Get macro for the pulse origin.
 
void SetYPulseWidth(double f)
Set & Get macro for the pulse width.
 
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
 
void SetYPulseOrigin(double f)
Set & Get macro for the pulse origin.
 
void SetRefinementRatio(int r)
Set the refinement ratio.
 
void Generate2DDataSet(vtkOverlappingAMR *amr)
Generate 2-D or 3-D DataSet.
 
void SetXPulseOrigin(double f)
Set & Get macro for the pulse origin.
 
void GeneratePulseField(vtkUniformGrid *grid)
Generates a pulse field for the given uniform grid.
 
void SetXPulseWidth(double f)
Set & Get macro for the pulse width.
 
void ComputeCellCenter(vtkUniformGrid *grid, vtkIdType cellIdx, double centroid[3])
Given the cell index w.r.t.
 
a simple class to control print indentation
 
virtual void Modified()
Update the modification time for this object.
 
A base class for all algorithms that take as input vtkOverlappingAMR and produce vtkOverlappingAMR.
 
hierarchical dataset of vtkUniformGrids
 
Computes the portion of a dataset which is inside a selection.