VTK  9.2.6
vtkYoungsMaterialInterface.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkYoungsMaterialInterface.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
37 #ifndef vtkYoungsMaterialInterface_h
38 #define vtkYoungsMaterialInterface_h
39 
40 #include "vtkFiltersGeneralModule.h" // For export macro
42 
43 #include "vtkSmartPointer.h" // For SP ivars
44 
45 class vtkIntArray;
46 class vtkInformation;
48 class vtkYoungsMaterialInterfaceInternals;
49 
50 class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
51 {
52 public:
55  void PrintSelf(ostream& os, vtkIndent indent) override;
56 
58 
61  vtkSetMacro(InverseNormal, vtkTypeBool);
62  vtkGetMacro(InverseNormal, vtkTypeBool);
63  vtkBooleanMacro(InverseNormal, vtkTypeBool);
65 
67 
71  vtkSetMacro(ReverseMaterialOrder, vtkTypeBool);
72  vtkGetMacro(ReverseMaterialOrder, vtkTypeBool);
73  vtkBooleanMacro(ReverseMaterialOrder, vtkTypeBool);
75 
77 
81  vtkSetMacro(OnionPeel, vtkTypeBool);
82  vtkGetMacro(OnionPeel, vtkTypeBool);
83  vtkBooleanMacro(OnionPeel, vtkTypeBool);
85 
87 
91  vtkSetMacro(AxisSymetric, vtkTypeBool);
92  vtkGetMacro(AxisSymetric, vtkTypeBool);
93  vtkBooleanMacro(AxisSymetric, vtkTypeBool);
95 
97 
102  vtkSetMacro(UseFractionAsDistance, vtkTypeBool);
103  vtkGetMacro(UseFractionAsDistance, vtkTypeBool);
104  vtkBooleanMacro(UseFractionAsDistance, vtkTypeBool);
106 
108 
112  vtkSetMacro(FillMaterial, vtkTypeBool);
113  vtkGetMacro(FillMaterial, vtkTypeBool);
114  vtkBooleanMacro(FillMaterial, vtkTypeBool);
116 
118 
123  vtkSetVector2Macro(VolumeFractionRange, double);
124  vtkGetVectorMacro(VolumeFractionRange, double, 2);
126 
128 
131  virtual void SetNumberOfMaterials(int n);
132  virtual int GetNumberOfMaterials();
134 
136 
139  vtkSetMacro(UseAllBlocks, bool);
140  vtkGetMacro(UseAllBlocks, bool);
141  vtkBooleanMacro(UseAllBlocks, bool);
143 
145 
149  vtkGetMacro(NumberOfDomains, int);
151 
153 
157  virtual void SetMaterialArrays(int i, const char* volume, const char* normalX,
158  const char* normalY, const char* normalZ, const char* ordering);
159  virtual void SetMaterialArrays(
160  int i, const char* volume, const char* normal, const char* ordering);
161  virtual void SetMaterialVolumeFractionArray(int i, const char* volume);
162  virtual void SetMaterialNormalArray(int i, const char* normal);
163  virtual void SetMaterialOrderingArray(int i, const char* ordering);
165 
169  virtual void RemoveAllMaterials();
170 
172 
180  virtual void SetMaterialNormalArray(const char* volume, const char* normal);
181  virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
183 
185 
189  virtual void AddMaterialBlockMapping(int b);
191 
192  enum
193  {
194  MAX_CELL_POINTS = 256
195  };
196 
197 protected:
200 
202  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
203  vtkInformationVector* outputVector) override;
204 
208  virtual void Aggregate(int, int*);
209 
211 
212  int CellProduceInterface(int dim, int np, double fraction, double minFrac, double maxFrac);
213 
215 
224  double VolumeFractionRange[2];
226 
228 
230 
235 
236  // Description:
237  // Internal data structures
238  vtkYoungsMaterialInterfaceInternals* Internals;
239 
240 private:
242  void operator=(const vtkYoungsMaterialInterface&) = delete;
243 };
244 
245 #endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
a simple class to control print indentation
Definition: vtkIndent.h:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:155
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
reconstructs material interfaces
vtkTypeBool UseFractionAsDistance
Read-Write Properties.
int NumberOfDomains
Read only properties.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkYoungsMaterialInterface() override
virtual void SetMaterialOrderingArray(int i, const char *ordering)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
virtual void SetMaterialOrderingArray(const char *volume, const char *ordering)
Alternative API for associating Normal and Ordering arrays to materials identified by its volume-frac...
vtkTypeBool AxisSymetric
Read-Write Properties.
virtual void SetMaterialNormalArray(int i, const char *normal)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
virtual void RemoveAllMaterials()
Removes all materials previously added.
virtual void RemoveAllMaterialBlockMappings()
select blocks to be processed for each described material.
virtual void SetMaterialArrays(int i, const char *volume, const char *normalX, const char *normalY, const char *normalZ, const char *ordering)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
vtkTypeBool InverseNormal
Read-Write Properties.
virtual void Aggregate(int, int *)
Serial implementation of the material aggregation.
vtkTypeBool FillMaterial
Read-Write Properties.
virtual void SetNumberOfMaterials(int n)
Sets/Gets the number of materials.
virtual int GetNumberOfMaterials()
Sets/Gets the number of materials.
virtual void SetMaterialVolumeFractionArray(int i, const char *volume)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
static vtkYoungsMaterialInterface * New()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int CellProduceInterface(int dim, int np, double fraction, double minFrac, double maxFrac)
virtual void SetMaterialArrays(int i, const char *volume, const char *normal, const char *ordering)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
vtkYoungsMaterialInterfaceInternals * Internals
virtual void AddMaterialBlockMapping(int b)
select blocks to be processed for each described material.
virtual void SetMaterialNormalArray(const char *volume, const char *normal)
Alternative API for associating Normal and Ordering arrays to materials identified by its volume-frac...
vtkTypeBool ReverseMaterialOrder
Read-Write Properties.
vtkSmartPointer< vtkIntArray > MaterialBlockMapping
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkTypeBool OnionPeel
Read-Write Properties.
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
int vtkTypeBool
Definition: vtkABI.h:69