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 
42 class vtkIntArray;
43 class vtkInformation;
45 class vtkYoungsMaterialInterfaceInternals;
46 
47 class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
48 {
49 public:
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 
194 protected:
197 
199  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
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 
237 private:
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:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:40
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