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
45class vtkIntArray;
46class vtkInformation;
48class vtkYoungsMaterialInterfaceInternals;
49
50class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
51{
52public:
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
197protected:
200
201 int FillInputPortInformation(int port, vtkInformation* info) override;
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
240private:
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:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Hold a reference to a vtkObjectBase instance.
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.
int vtkTypeBool
Definition: vtkABI.h:69