VTK  9.1.0
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=========================================================================*/
34#ifndef vtkYoungsMaterialInterface_h
35#define vtkYoungsMaterialInterface_h
36
37#include "vtkFiltersGeneralModule.h" // For export macro
39
40#include "vtkSmartPointer.h" // For SP ivars
41
42class vtkIntArray;
43class vtkInformation;
45class vtkYoungsMaterialInterfaceInternals;
46
47class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
48{
49public:
52 void PrintSelf(ostream& os, vtkIndent indent) override;
53
55
58 vtkSetMacro(InverseNormal, vtkTypeBool);
59 vtkGetMacro(InverseNormal, vtkTypeBool);
60 vtkBooleanMacro(InverseNormal, vtkTypeBool);
62
64
68 vtkSetMacro(ReverseMaterialOrder, vtkTypeBool);
69 vtkGetMacro(ReverseMaterialOrder, vtkTypeBool);
70 vtkBooleanMacro(ReverseMaterialOrder, vtkTypeBool);
72
74
78 vtkSetMacro(OnionPeel, vtkTypeBool);
79 vtkGetMacro(OnionPeel, vtkTypeBool);
80 vtkBooleanMacro(OnionPeel, vtkTypeBool);
82
84
88 vtkSetMacro(AxisSymetric, vtkTypeBool);
89 vtkGetMacro(AxisSymetric, vtkTypeBool);
90 vtkBooleanMacro(AxisSymetric, vtkTypeBool);
92
94
99 vtkSetMacro(UseFractionAsDistance, vtkTypeBool);
100 vtkGetMacro(UseFractionAsDistance, vtkTypeBool);
101 vtkBooleanMacro(UseFractionAsDistance, vtkTypeBool);
103
105
109 vtkSetMacro(FillMaterial, vtkTypeBool);
110 vtkGetMacro(FillMaterial, vtkTypeBool);
111 vtkBooleanMacro(FillMaterial, vtkTypeBool);
113
115
120 vtkSetVector2Macro(VolumeFractionRange, double);
121 vtkGetVectorMacro(VolumeFractionRange, double, 2);
123
125
128 virtual void SetNumberOfMaterials(int n);
129 virtual int GetNumberOfMaterials();
131
133
136 vtkSetMacro(UseAllBlocks, bool);
137 vtkGetMacro(UseAllBlocks, bool);
138 vtkBooleanMacro(UseAllBlocks, bool);
140
142
146 vtkGetMacro(NumberOfDomains, int);
148
150
154 virtual void SetMaterialArrays(int i, const char* volume, const char* normalX,
155 const char* normalY, const char* normalZ, const char* ordering);
156 virtual void SetMaterialArrays(
157 int i, const char* volume, const char* normal, const char* ordering);
158 virtual void SetMaterialVolumeFractionArray(int i, const char* volume);
159 virtual void SetMaterialNormalArray(int i, const char* normal);
160 virtual void SetMaterialOrderingArray(int i, const char* ordering);
162
166 virtual void RemoveAllMaterials();
167
169
177 virtual void SetMaterialNormalArray(const char* volume, const char* normal);
178 virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
180
182
186 virtual void AddMaterialBlockMapping(int b);
188
189 enum
190 {
191 MAX_CELL_POINTS = 256
192 };
193
194protected:
197
198 int FillInputPortInformation(int port, vtkInformation* info) override;
200 vtkInformationVector* outputVector) override;
201
205 virtual void Aggregate(int, int*);
206
208
209 int CellProduceInterface(int dim, int np, double fraction, double minFrac, double maxFrac);
210
212
221 double VolumeFractionRange[2];
223
225
227
232
233 // Description:
234 // Internal data structures
235 vtkYoungsMaterialInterfaceInternals* Internals;
236
237private:
239 void operator=(const vtkYoungsMaterialInterface&) = delete;
240};
241
242#endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:149
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