VTK  9.4.20250201
vtkYoungsMaterialInterface.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
25#ifndef vtkYoungsMaterialInterface_h
26#define vtkYoungsMaterialInterface_h
27
28#include "vtkFiltersGeneralModule.h" // For export macro
30
31#include "vtkSmartPointer.h" // For SP ivars
32
33VTK_ABI_NAMESPACE_BEGIN
34class vtkIntArray;
35class vtkInformation;
37class vtkYoungsMaterialInterfaceInternals;
38
39class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
40{
41public:
44 void PrintSelf(ostream& os, vtkIndent indent) override;
45
47
50 vtkSetMacro(InverseNormal, vtkTypeBool);
51 vtkGetMacro(InverseNormal, vtkTypeBool);
52 vtkBooleanMacro(InverseNormal, vtkTypeBool);
54
56
60 vtkSetMacro(ReverseMaterialOrder, vtkTypeBool);
61 vtkGetMacro(ReverseMaterialOrder, vtkTypeBool);
62 vtkBooleanMacro(ReverseMaterialOrder, vtkTypeBool);
64
66
70 vtkSetMacro(OnionPeel, vtkTypeBool);
71 vtkGetMacro(OnionPeel, vtkTypeBool);
72 vtkBooleanMacro(OnionPeel, vtkTypeBool);
74
76
80 vtkSetMacro(AxisSymetric, vtkTypeBool);
81 vtkGetMacro(AxisSymetric, vtkTypeBool);
82 vtkBooleanMacro(AxisSymetric, vtkTypeBool);
84
86
91 vtkSetMacro(UseFractionAsDistance, vtkTypeBool);
92 vtkGetMacro(UseFractionAsDistance, vtkTypeBool);
93 vtkBooleanMacro(UseFractionAsDistance, vtkTypeBool);
95
97
101 vtkSetMacro(FillMaterial, vtkTypeBool);
102 vtkGetMacro(FillMaterial, vtkTypeBool);
103 vtkBooleanMacro(FillMaterial, vtkTypeBool);
105
107
112 vtkSetVector2Macro(VolumeFractionRange, double);
113 vtkGetVectorMacro(VolumeFractionRange, double, 2);
115
117
120 virtual void SetNumberOfMaterials(int n);
121 virtual int GetNumberOfMaterials();
123
125
128 vtkSetMacro(UseAllBlocks, bool);
129 vtkGetMacro(UseAllBlocks, bool);
130 vtkBooleanMacro(UseAllBlocks, bool);
132
134
138 vtkGetMacro(NumberOfDomains, int);
140
142
146 virtual void SetMaterialArrays(int i, const char* volume, const char* normalX,
147 const char* normalY, const char* normalZ, const char* ordering);
148 virtual void SetMaterialArrays(
149 int i, const char* volume, const char* normal, const char* ordering);
150 virtual void SetMaterialVolumeFractionArray(int i, const char* volume);
151 virtual void SetMaterialNormalArray(int i, const char* normal);
152 virtual void SetMaterialOrderingArray(int i, const char* ordering);
154
158 virtual void RemoveAllMaterials();
159
161
169 virtual void SetMaterialNormalArray(const char* volume, const char* normal);
170 virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
172
174
178 virtual void AddMaterialBlockMapping(int b);
180
181 enum
182 {
183 MAX_CELL_POINTS = 256
184 };
185
186protected:
189
190 int FillInputPortInformation(int port, vtkInformation* info) override;
192 vtkInformationVector* outputVector) override;
193
197 virtual void Aggregate(int, int*);
198
200
201 int CellProduceInterface(int dim, int np, double fraction, double minFrac, double maxFrac);
202
204
213 double VolumeFractionRange[2];
215
217
219
224
225 // Description:
226 // Internal data structures
227 vtkYoungsMaterialInterfaceInternals* Internals;
228
229private:
231 void operator=(const vtkYoungsMaterialInterface&) = delete;
232};
233
234VTK_ABI_NAMESPACE_END
235#endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
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:64