Viskores  1.0
Lagrangian.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 
19 #ifndef viskores_filter_flow_Lagrangian_h
20 #define viskores_filter_flow_Lagrangian_h
21 
22 #include <viskores/Particle.h>
23 #include <viskores/filter/Filter.h>
25 
26 namespace viskores
27 {
28 namespace filter
29 {
30 namespace flow
31 {
32 
33 class VISKORES_FILTER_FLOW_EXPORT Lagrangian : public viskores::filter::Filter
34 {
35 public:
37  bool CanThread() const override { return false; }
38 
40  void SetInitFlag(bool val) { this->InitFlag = val; }
41 
43  void SetExtractFlows(bool val) { this->ExtractFlows = val; }
44 
46  void SetResetParticles(bool val) { this->ResetParticles = val; }
47 
49  void SetStepSize(viskores::Float32 val) { this->StepSize = val; }
50 
52  void SetWriteFrequency(viskores::Id val) { this->WriteFrequency = val; }
53 
55  void SetSeedResolutionInX(viskores::Id val) { this->ResX = val; }
56 
58  void SetSeedResolutionInY(viskores::Id val) { this->ResY = val; }
59 
61  void SetSeedResolutionInZ(viskores::Id val) { this->ResZ = val; }
62 
64  void SetCustomSeedResolution(viskores::Id val) { this->CustRes = val; }
65 
67  void SetSeedingResolution(viskores::Id3 val) { this->SeedRes = val; }
68 
70  void UpdateSeedResolution(viskores::cont::DataSet input);
71 
73  void InitializeSeedPositions(const viskores::cont::DataSet& input);
74 
76  void SetCycle(viskores::Id cycle) { this->Cycle = cycle; }
78  viskores::Id GetCycle() const { return this->Cycle; }
79 
82  {
83  this->BasisParticles = basisParticles;
84  }
87  {
88  return this->BasisParticles;
89  }
90 
94  {
95  this->BasisParticlesOriginal = basisParticles;
96  }
99  {
100  return this->BasisParticlesOriginal;
101  }
102 
105  {
106  this->BasisParticlesValidity = valid;
107  }
110  {
111  return this->BasisParticlesValidity;
112  }
113 
114 private:
115  VISKORES_CONT viskores::cont::DataSet DoExecute(const viskores::cont::DataSet& inData) override;
116 
120  viskores::Id CustRes = 0;
121  viskores::Id Cycle = 0;
122  bool ExtractFlows = false;
123  bool InitFlag = true;
124  bool ResetParticles = true;
125  viskores::Id ResX = 1;
126  viskores::Id ResY = 1;
127  viskores::Id ResZ = 1;
129  viskores::Id3 SeedRes = { 1, 1, 1 };
130  viskores::Id WriteFrequency = 0;
131 };
132 
133 }
134 }
135 } //viskores::filter::flow
136 
137 #endif // #define viskores_filter_flow_Lagrangian_h
viskores::filter::flow::Lagrangian::StepSize
viskores::FloatDefault StepSize
Definition: Lagrangian.h:128
viskores::filter::flow::Lagrangian
Definition: Lagrangian.h:33
viskores::filter::flow::Lagrangian::SetWriteFrequency
void SetWriteFrequency(viskores::Id val)
Definition: Lagrangian.h:52
viskores::filter::flow::Lagrangian::SetSeedingResolution
void SetSeedingResolution(viskores::Id3 val)
Definition: Lagrangian.h:67
viskores::cont::DataSet
Contains and manages the geometric data structures that Viskores operates on.
Definition: DataSet.h:66
viskores::filter::flow::Lagrangian::BasisParticlesOriginal
viskores::cont::ArrayHandle< viskores::Particle > BasisParticlesOriginal
Definition: Lagrangian.h:118
viskores::filter::Filter
Base class for all filters.
Definition: Filter.h:171
viskores::filter::flow::Lagrangian::GetBasisParticles
viskores::cont::ArrayHandle< viskores::Particle > GetBasisParticles() const
Definition: Lagrangian.h:86
viskores::cont::ArrayHandle< viskores::Particle >
viskores::filter::flow::Lagrangian::GetCycle
viskores::Id GetCycle() const
Definition: Lagrangian.h:78
viskores::filter::flow::Lagrangian::SetBasisParticles
void SetBasisParticles(const viskores::cont::ArrayHandle< viskores::Particle > &basisParticles)
Definition: Lagrangian.h:81
viskores_filter_flow_export.h
viskores::Id
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
viskores::filter::flow::Lagrangian::SetExtractFlows
void SetExtractFlows(bool val)
Definition: Lagrangian.h:43
VISKORES_CONT
#define VISKORES_CONT
Definition: ExportMacros.h:65
viskores::filter::flow::Lagrangian::SetCustomSeedResolution
void SetCustomSeedResolution(viskores::Id val)
Definition: Lagrangian.h:64
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::filter::flow::Lagrangian::GetBasisParticleValidity
viskores::cont::ArrayHandle< viskores::Id > GetBasisParticleValidity() const
Definition: Lagrangian.h:109
viskores::Float32
float Float32
Base type to use for 32-bit floating-point numbers.
Definition: Types.h:165
viskores::filter::flow::Lagrangian::SetSeedResolutionInZ
void SetSeedResolutionInZ(viskores::Id val)
Definition: Lagrangian.h:61
viskores::filter::flow::Lagrangian::SetBasisParticleValidity
void SetBasisParticleValidity(const viskores::cont::ArrayHandle< viskores::Id > &valid)
Definition: Lagrangian.h:104
viskores::filter::flow::Lagrangian::SetCycle
void SetCycle(viskores::Id cycle)
Definition: Lagrangian.h:76
viskores::filter::flow::Lagrangian::SetSeedResolutionInX
void SetSeedResolutionInX(viskores::Id val)
Definition: Lagrangian.h:55
viskores::filter::flow::Lagrangian::SetResetParticles
void SetResetParticles(bool val)
Definition: Lagrangian.h:46
viskores::filter::flow::Lagrangian::BasisParticlesValidity
viskores::cont::ArrayHandle< viskores::Id > BasisParticlesValidity
Definition: Lagrangian.h:119
viskores::FloatDefault
viskores::Float32 FloatDefault
The floating point type to use when no other precision is specified.
Definition: Types.h:244
viskores::filter::flow::Lagrangian::BasisParticles
viskores::cont::ArrayHandle< viskores::Particle > BasisParticles
Definition: Lagrangian.h:117
viskores::filter::flow::Lagrangian::CanThread
bool CanThread() const override
Returns whether the filter can execute on partitions in concurrent threads.
Definition: Lagrangian.h:37
viskores::filter::flow::Lagrangian::SetBasisParticlesOriginal
void SetBasisParticlesOriginal(const viskores::cont::ArrayHandle< viskores::Particle > &basisParticles)
Definition: Lagrangian.h:92
viskores::filter::flow::Lagrangian::SetInitFlag
void SetInitFlag(bool val)
Definition: Lagrangian.h:40
viskores::Vec< viskores::Id, 3 >
viskores::filter::flow::Lagrangian::SetStepSize
void SetStepSize(viskores::Float32 val)
Definition: Lagrangian.h:49
viskores::filter::flow::Lagrangian::SetSeedResolutionInY
void SetSeedResolutionInY(viskores::Id val)
Definition: Lagrangian.h:58
viskores::filter::flow::Lagrangian::GetBasisParticlesOriginal
viskores::cont::ArrayHandle< viskores::Particle > GetBasisParticlesOriginal() const
Definition: Lagrangian.h:98
Particle.h
Filter.h