vtkbone
vtkboneConstraintUtilities.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Copyright 2010-2016, Numerics88 Solutions Ltd.
4  http://www.numerics88.com/
5 
6  Copyright (c) Eric Nodwell and Steven K. Boyd
7  See Copyright.txt for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 =========================================================================*/
13 
24 #ifndef __vtkboneConstraintUtilities_h
25 #define __vtkboneConstraintUtilities_h
26 
27 #include "vtkObject.h"
28 #include "vtkboneWin32Header.h"
29 
30 // forward declarations
31 class vtkboneConstraint;
35 class vtkIdTypeArray;
36 class vtkDataArray;
37 
39 {
40 public:
43  void PrintSelf(ostream& os, vtkIndent indent);
44 
46 
49  static vtkboneConstraint* CreateBoundaryCondition(
50  vtkIdTypeArray* nodeIds,
51  vtkDataArray* senses,
53  const char* name);
54  static vtkboneConstraint* CreateBoundaryCondition(
55  vtkIdTypeArray* nodeIds,
56  int sense,
57  double displacement,
58  const char* name);
59  static vtkboneConstraint* CreateBoundaryCondition(
60  vtkIdType nodeId,
61  int sense,
62  double displacement,
63  const char* name);
65 
67 
71  static vtkboneConstraint* CreateFixedNodes(vtkIdTypeArray* ids, const char* name);
72  static vtkboneConstraint* CreateFixedNodes(vtkIdType id, const char* name);
74 
76 
82  static vtkboneConstraint* CreateAppliedLoad(
83  vtkIdTypeArray* elementIds,
84  vtkDataArray* distributions,
85  vtkDataArray* senses,
86  vtkDataArray* forces,
87  const char* name);
88  static vtkboneConstraint* CreateAppliedLoad(
89  vtkIdTypeArray* elementIds,
90  int distribution,
91  vtkDataArray* senses,
92  vtkDataArray* forces,
93  const char* name);
94  static vtkboneConstraint* CreateAppliedLoad(
95  vtkIdTypeArray* elementIds,
96  int distribution,
97  int sense,
98  double force,
99  const char* name);
100  static vtkboneConstraint* CreateAppliedLoad(
101  vtkIdType elementId,
102  int distribution,
103  int sense,
104  double force,
105  const char* name);
107 
109 
113  static vtkboneConstraint* GatherDisplacementConstraints(
114  vtkboneConstraint* arg_constraint);
115  static vtkboneConstraint* GatherDisplacementConstraints(
116  vtkboneConstraintCollection* arg_constraints);
117  static vtkboneConstraint* GatherDisplacementConstraints(
120 
122 
125  static vtkboneConstraint* GatherZeroValuedDisplacementConstraints(
126  vtkboneConstraint* arg_constraint,
127  double tol);
128  static vtkboneConstraint* GatherZeroValuedDisplacementConstraints(
129  vtkboneConstraintCollection* arg_constraints,
130  double tol);
131  static vtkboneConstraint* GatherZeroValuedDisplacementConstraints(
133  double tol);
135 
137 
140  static vtkboneConstraint* GatherNonzeroDisplacementConstraints(
141  vtkboneConstraint* arg_constraint,
142  double tol);
143  static vtkboneConstraint* GatherNonzeroDisplacementConstraints(
144  vtkboneConstraintCollection* arg_constraints,
145  double tol);
146  static vtkboneConstraint* GatherNonzeroDisplacementConstraints(
148  double tol);
150 
152 
160  static vtkboneConstraint* DistributeConstraintToNodes(
161  vtkUnstructuredGrid* geometry,
162  vtkboneConstraint* arg_constraint);
164 
166 
175  static vtkboneConstraint* DistributeForceConstraintsToNodes(
176  vtkUnstructuredGrid* geometry,
177  vtkboneConstraintCollection* arg_constraints);
178  static vtkboneConstraint* DistributeForceConstraintsToNodes(
181 
182 protected:
185 
186 private:
187  vtkboneConstraintUtilities(const vtkboneConstraintUtilities&); // Not implemented.
188  void operator=(const vtkboneConstraintUtilities&); // Not implemented.
189 };
190 
191 #endif
192 
data model for finite element meshes
#define VTKBONE_EXPORT
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
int vtkIdType
a constraint for a finite element mesh
name
Useful methods for creating and manipulating constraints.
displacements
maintain an unordered list of dataarray objects
static vtkObject * New()
void operator=(const vtkObjectBase &)