18 #ifndef vtkAMRGaussianPulseSource_h
19 #define vtkAMRGaussianPulseSource_h
21 #include "vtkFiltersAMRModule.h"
26 VTK_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);
182 vtkUniformGrid* GetGrid(
double origin[3],
double h[3],
int ndim[3]);
197 double RootSpacing[3];
198 double PulseOrigin[3];
199 double PulseWidth[3];
210 VTK_ABI_NAMESPACE_END
void SetZPulseOrigin(double f)
Set & Get macro for the pulse origin.
void SetYPulseWidth(double f)
Set & Get macro for the pulse width.
A base class for all algorithms that take as input vtkOverlappingAMR and produce vtkOverlappingAMR.
A source that generates sample AMR data with gaussian pulse field.
void SetXPulseWidth(double f)
Set & Get macro for the pulse width.
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...
a simple class to control print indentation
void SetRootSpacing(double h0)
Set the root spacing.
virtual void Modified()
Update the modification time for this object.
double ComputePulseAt(double pt[3])
Computes the gaussian pulse at the given location based on the user supplied parameters for pulse wid...
void SetYPulseOrigin(double f)
Set & Get macro for the pulse origin.
hierarchical dataset of vtkUniformGrids
void SetZPulseWidth(double f)
Set & Get macro for the pulse width.
void SetRefinementRatio(int r)
Set the refinement ratio.
void SetXPulseOrigin(double f)
Set & Get macro for the pulse origin.
static vtkOverlappingAMRAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.