VTK  9.3.20231209
vtkAMRInterpolatedVelocityField.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
15 #ifndef vtkAMRInterpolatedVelocityField_h
16 #define vtkAMRInterpolatedVelocityField_h
17 
18 #include "vtkFiltersFlowPathsModule.h" // For export macro
19 
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkOverlappingAMR;
24 
25 class VTKFILTERSFLOWPATHS_EXPORT vtkAMRInterpolatedVelocityField
27 {
28 public:
30 
35  void PrintSelf(ostream& os, vtkIndent indent) override;
37 
39 
44  vtkGetObjectMacro(AmrDataSet, vtkOverlappingAMR);
45  void SetAMRData(vtkOverlappingAMR* amr) { this->SetAmrDataSet(amr); }
47 
55 
59  void SetLastCellId(vtkIdType c) override { this->Superclass::SetLastCellId(c); }
60 
72  int FunctionValues(double* x, double* f) override;
73 
77  static bool FindGrid(
78  double q[3], vtkOverlappingAMR* amrds, unsigned int& level, unsigned int& gridId);
79 
81 
84  bool GetLastDataSetLocation(unsigned int& level, unsigned int& id);
85  bool SetLastDataSet(int level, int id);
86  void SetLastCellId(vtkIdType c, int dataindex) override;
88 
89 protected:
91  int LastLevel;
92  int LastId;
93 
96  int FunctionValues(vtkDataSet* ds, double* x, double* f) override
97  {
98  return this->Superclass::FunctionValues(ds, x, f);
99  }
100 
107  int SelfInitialize() override;
108 
109 private:
111  void operator=(const vtkAMRInterpolatedVelocityField&) = delete;
112 };
113 
114 VTK_ABI_NAMESPACE_END
115 #endif
A concrete class for obtaining the interpolated velocity values at a point in AMR data.
bool SetLastDataSet(int level, int id)
Methods to support local caching while searching for AMR datasets.
virtual void SetAmrDataSet(vtkOverlappingAMR *)
Specify the AMR dataset to process.
bool GetLastDataSetLocation(unsigned int &level, unsigned int &id)
Methods to support local caching while searching for AMR datasets.
void CopyParameters(vtkAbstractInterpolatedVelocityField *from) override
Copy essential parameters between instances of this class.
int FunctionValues(vtkDataSet *ds, double *x, double *f) override
Evaluate the velocity field f at point (x, y, z) in a specified dataset by invoking vtkDataSet::FindC...
static bool FindGrid(double q[3], vtkOverlappingAMR *amrds, unsigned int &level, unsigned int &gridId)
Helper function to locator the grid within an AMR dataset.
int FunctionValues(double *x, double *f) override
Evaluate the velocity field f at point p.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for obtaining type information and printing the object state.
void SetLastCellId(vtkIdType c) override
Set the cell id cached by the last evaluation.
void SetAMRData(vtkOverlappingAMR *amr)
Specify the AMR dataset to process.
static vtkAMRInterpolatedVelocityField * New()
Standard methods for obtaining type information and printing the object state.
void SetLastCellId(vtkIdType c, int dataindex) override
Methods to support local caching while searching for AMR datasets.
int SelfInitialize() override
Method to initialize the velocity field.
An abstract class for obtaining the interpolated velocity values at a point.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:165
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
a simple class to control print indentation
Definition: vtkIndent.h:108
hierarchical dataset of vtkUniformGrids
@ level
Definition: vtkX3D.h:395
int vtkIdType
Definition: vtkType.h:315