OOF2: The Manual
Table of Contents
- I. Using OOF2
-
- Overview
- 1. Getting Started
- 2. OOF2 Concepts
- 3. Task Pages
-
- 3.1. Overview
- 3.2. The Microstructure Page
- 3.3. The Image Page
- 3.4. The Pixel Selection Page
- 3.5. The Active Area Page
- 3.6. The Materials Page
- 3.7. The Skeleton Page
- 3.8. The Pin Nodes Page
- 3.9. The Skeleton Selection Page
- 3.10. The Skeleton Boundaries Page
- 3.11. The FE Mesh Page
- 3.12. The Fields & Equations Page
- 3.13. The Boundary Conditions Page
- 3.14. The Scheduled Output Page
- 3.15. The Solver Page
- 3.16. The Analysis Page
- 3.17. The Boundary Analysis Page
- 4. The Graphics Window
- 5. Auxiliary Windows
- II. OOF2 Command Reference
- III. Extending OOF2
- IV. OOF2 Extending Reference
-
- I. Tools for Building Extensions
-
- swig_sources — CMake function for running swig and building Python extension modules.
- oof2-extension-setup — Generate the infrastructure of the code for an OOF2 extension.
- II. Points and Coordinates
-
- Coord — Coordinate classes
- MasterPosition and MasterCoord — Position in master coordinate space
- Point — Python point class
- III. Field Classes and Functions
-
- Field — Base class for fields
- CompoundField —
A
Fieldwith both in- and out-of-plane parts. - ScalarField — A scalar-valued
Field - TwoVectorField —
A two dimensional vector-valued
Fieldobject - ThreeVectorField —
A three dimensional vector-valued
Fieldobject. - getField — Retrieve a
Fieldobject by name
- IV. Flux Classes and Functions
-
- Flux — Base class for
Fluxes - VectorFlux — A vector-valued
Flux - SymmetricTensorFlux — A 3×3 symmetric tensor valued
Flux - getFlux — Retrieve a
Fluxobject by name
- Flux — Base class for
- V. Equation Classes and Functions
-
- Equation — Base class for Equations
- DivergenceEquation — An Equation subclass for divergence equations
- PlaneFluxEquation — An Equation subclass for enforcing plane-flux constraints
- getEquation — Retrieve a
Equationobject by name
- VI. Indices and Iterators
-
- FieldIndex — Base class for index objects
- IndexP — Generic wrapper for index objects
- ScalarFieldIndex — Index object for a scalar Field
- VectorFieldIndex — Index a vector field
- OutOfPlaneVectorFieldIndex — Index the out-of-plane components of a vector
- SymTensorIndex — Index a symmetric 3×3 tensor
- OutOfPlaneSymTensorIndex — Index the out-of-plane components of a 3×3 symmetric tensor
- Components —
Iterable object containing a set of
FieldIndexes - ComponentIterator —
Base class for iterators that loop over
Componentsobjects - ComponentIteratorP —
Wrapper for
ComponentIteratorpointers - EmptyFieldIterator —
Iterate over a
Fieldwith no components - ScalarFieldIterator —
Iterate over a the components of
ScalarField. - VectorFieldIterator —
Iterate over the components of a
TwoVectorFieldorThreeVectorField - OutOfPlaneVectorFieldIterator —
Iterate over the out-of-plane components of a vector
Field - SymTensorIterator — Iterate over the components of a symmetric 3×3 tensor
- OutOfPlaneSymTensorIterator — Iterate over the out-of-plane components of a symmetric 3×3 tensor
- Planarity — Specify the range of component iterators
- VII. Property and Material Classes
-
- PropertyRegistration — Register new Properties
- Property — Base class for material properties
- PhysicalProperty — Intermediate base class for FluxProperty and EqnProperty
- FluxProperty — A
Propertythat contributes to aFlux - EqnProperty — A
Propertythat contributes to anEquation - AuxiliaryProperty —
A Property that doesn't contribute directly to a
FluxorEquation - Material — Collection of Properties
- VIII. Mesh Classes and Functions
-
- FEMesh — C++ FE mesh class
- CSubProblem — C++ subproblem class
- Element — Element class for finite element meshes
- Node, FuncNode — Node classes for finite element meshes
- ElementNodeIterator — Iterate over Nodes in an Element
- ElementShapeFuncIterator — Base class for other Node iterators
- ElementMapNodeIterator — Iterate over mapping nodes in an Element
- ElementFuncNodeIterator — Iterate over function nodes in an Element
- ElementCornerNodeIterator — Iterate over the corner Nodes of an Element
- DegreeOfFreedom — Degree of freedom at a Node
- conjugatePair — Establish conjugacy relations
- SmallSystem —
A small part of the linear system constructed by
Properties - CSubProblem — C++ representation of subproblem
- IX. Output Classes and Functions
-
- Output — Compute output data on a Mesh
- PropertyOutput — Compute Property-dependent data on a Mesh
- PropertyOutputRegistration — Define a new Property-dependent output quantity
- PropertyOutputInit — Initialize Property Outputs
- definePositionOutput, defineScalarOutput, defineAggregateOutput — Install Outputs in the GUI
- OutputVal — Wrappers for Output data
- OutputValue — Wrapper for OutputVal classes
- X. Miscellaneous Classes and Functions
-
- Parameter — Parameter classes for OOF2 menu commands, Properties, Outputs, and RegisteredClasses.
- acquirePyLock — ensure thread-safe Python API calls
- ErrError — Classes and functions for handling exceptions
- loadFile — Load documentation from a file
- A. Text Mode
- B. What's New in OOF2 2.1
- C. Changes to the API
List of Figures
- 1.1. The Error Dialog Box
- 1.2. The Tutorial Window
- 2.1. Object Organization and Information Flow
- 2.2. Path Menus
- 2.3. Anatomy of a Skeleton
- 2.4. Skeleton Element Homogeneity
- 2.5. Creating Illegal Elements
- 2.6. Default Node Mobility
- 2.7. Homogeneity of a Segment
- 2.8. Segment Homogeneity Subtleties
- 3.1. The Main OOF2 Window
- 3.2. The Microstructure Page
- 3.3. The Image Page
- 3.4. The Copy Image Dialog Box
- 3.5. The Pixel Selection Page
- 3.6. The Active Area Page
- 3.7. The Override Button
- 3.8. The Materials Page
- 3.9. Collapsed and Expanded Property Hierarchies
- 3.10. The Hexagonal Elasticity Property Dialog Box
- 3.11. The Color Property Dialog Box
- 3.12. Assigning Materials to Pixels
- 3.13. The Skeleton Page
- 3.14. The Pin Nodes Page
- 3.15. The Skeleton Selection Page
- 3.16. The Skeleton Boundaries Page
- 3.17. A Selected Boundary
- 3.18. The New Boundary Dialog Box
- 3.19. The FE Mesh Page
- 3.20. The Fields Page
- 3.21. The Boundary Conditions Page
- 3.22. New Boundary Condition Dialog
- 3.23. The Scheduled Output Window
- 3.24. The Solver Page
- 3.25. The Analysis Page
- 3.26. The Time Control Widgets
- 3.27. Two Versions of the Domain Pane
- 3.28. The Boundary Analysis Page
- 4.1. The Graphics Window
- 4.2. The Layer List
- 4.3. The Contour Map Pane
- 4.4. Graphics Window Time Controls
- 4.5. The Viewer Toolbox
- 4.6. The Pixel Info Toolbox
- 4.7. Orientation in the Pixel Info Toolbox
- 4.8. The Empty Misorientation Pane
- 4.9. Misorientation
- 4.10. The Pixel Selection Toolbox
- 4.11. The Skeleton Info Toolbox
- 4.12. The Skeleton Selection Toolbox
- 4.13. The Move Nodes Toolbox
- 4.14. The Pin Nodes Toolbox
- 4.15. The Mesh Info Toolbox
- 4.16. The Mesh Data Viewer
- 4.17. The Mesh Data Viewer, Collapsed
- 4.18. The Mesh Cross Section Toolbox
- 5.1. The Messages Window
- 5.2. The Activity Viewer
- 5.3. The Console Window
- 6.1. Active Area Examples
- 6.2. Expanding the Element Selection
- 6.3. Selecting Heterogeneous Elements
- 6.4. Selecting Elements by Material
- 6.5. Element Selection by Shape Energy
- 6.6. Selecting Elements from Selected Nodes
- 6.7. Selecting Elements from Selected Segments
- 6.8. The New Graphics Layer dialog
- 6.9. Antialiasing Lines
- 6.10. Antialiasing Filled Polygons
- 6.11. Contour Map Aspect Ratio
- 6.12. Hiding Empty Mesh Elements
- 6.13. Unlisted Layers
- 6.14. The Display Margin
- 6.15. Selecting Pixels with the Brush
- 6.16. Selecting Pixels with the Burn Algorithm
- 6.17. Selecting a Circular Region of Pixels
- 6.18. Selecting Pixels by Color
- 6.19. Selecting a Elliptical Region of Pixels
- 6.20. Selecting a Rectangular Region of Pixels
- 6.21. Selecting Elements by Pixel Type
- 6.22. Selecting a Circular Set of Elements
- 6.23. Selecting a Elliptical Set of Elements
- 6.24. Selecting a Rectangular Set of Elements
- 6.25. Selecting a Circular Set of Nodes
- 6.26. Selecting a Elliptical Set of Nodes
- 6.27. Selecting a Rectangular Set of Nodes
- 6.28. Selecting a Circular Set of Segments
- 6.29. Selecting a Elliptical Set of Segments
- 6.30. Selecting a Rectangular Set of Segments
- 6.31. Blurring an Image
- 6.32. Adjusting Contrast
- 6.33. Despeckling an Image
- 6.34. Dimming an Image
- 6.35. Detecting Edges in an Image
- 6.36. Enhancing an Image
- 6.37. Equalizing an Image
- 6.38. Fading an Image
- 6.39. Applying a Median Filter to an Image
- 6.40. Negating an Image
- 6.41. Normalizing an Image
- 6.42. Reducing Noise in an Image
- 6.43. Reilluminating an Image
- 6.44. Sharpening an Image
- 6.45. Thresholding an Image
- 6.46. Expanding the Node Selection
- 6.47. Selecting Internal Boundary Nodes
- 6.48. Selecting Nodes from the Selected Elements
- 6.49. Selecting Nodes from Selected Segments
- 6.50. Poorly Autogrouping an Antialiased Image
- 6.51. Better Autogrouping of an Antialiased Image
- 6.52. Despeckling the Pixel Selection
- 6.53. Gnilkcepsed the Pixel Selection
- 6.54. Selecting Internal Boundary Segments
- 6.55. Selecting Heterogeneous Segments
- 6.56. Selecting Segments from Selected Elements
- 6.57. Pinning Skeleton Nodes
- 6.58. Pinning Internal Boundary Nodes
- 6.59. Detail of Internal Boundary Nodes
- 6.60. Pinning Nodes of Selected Elements
- 6.61. Structure of a Cubic Fourth Rank Tensor
- 6.62. Structure of an Isotropic Fourth Rank Tensor
- 6.63. Key to the Tensor Diagrams
- 6.64. Converting Between Isotropic Tensor Representations
- 6.65. Adding Segments to a Boundary
- 6.66. Annealing
- 6.67. An Un-annealed Skeleton
- 6.68. Annealing the Skeleton
- 6.69. Comparison between the Annealed Skeleton and the Microstructure
- 6.70. A Node Move
- 6.71. Refining Elements with High Aspect Ratios
- 6.72. Refining Heterogeneous Segments
- 6.73. Constructing an Edge Boundary from Elements
- 6.74. Constructing a Closed Edge Boundary from Nodes
- 6.75. Constructing an Open Edge Boundary from Nodes
- 6.76. Failing to Construct an Edge Boundary
- 6.77. Constructing an Edge Boundary Again
- 6.78. More Failed Configurations
- 6.79. Constructing an Edge Boundary from Segments
- 6.80. Fixing Illegal Elements
- 6.81. The GammaGray Color Map
- 6.82. Splitting Quads Geographically
- 6.83. Selection with a Circular Brush
- 6.84. Selection with a Square Brush
- 6.85. The Gist Earth Color Map
- 6.86. The Gray Color Map
- 6.87. The HSV Color Map
- 6.88. Setting Values for Cij as an Isotropic Rank4 Tensor
- 6.89. Merging Triangles
- 6.90. Selecting Cross Sections to Display
- 6.91. The Normal Direction for an Edge Boundary
- 6.92. Constructing a Point Boundary from Elements
- 6.93. Constructing a Point Boundary from Segments
- 6.94. Applying QuadSplit
- 6.95. Rationalizing a Skeleton
- 6.96. Refining a Skeleton
- 6.97. Excessive and Appropriate Refinement
- 6.98. Skeleton Relaxation
- 6.99. Removing Bad Acute Angles
- 6.100. Removing Bad Obtuse Angles
- 6.101. Removing Segments from a Boundary
- 6.102. Applying RemoveShortSide
- 6.103. The Skeleton Quality Display
- 6.104. Schematics of Smooth
- 6.105. Smoothing a Skeleton
- 6.106. Smoothing without Losing Homogeneity
- 6.107. Transition Points
- 6.108. Snapping Nodes
- 6.109. Snapping Nodes with a Large alpha
- 6.110. Selecting Rationalization Tools
- 6.111. The Spectral Color Map
- 6.112. Using SplitQuads
- 6.113. Swapping Element Edges
- 6.114. Swapping Edges
- 6.115. The Tequila Sunrise Color Map
- 6.116. The Thermal Color Map
- 6.117. Transition Points
- 6.118. Normal Patch Recovery
- 6.119. Boundary Patch Recovery
- 6.120. Diagonal Arrangements for Triangular Skeletons
- 6.121. Elements with 2 corners
- 6.122. Elements with 3 corners
- 6.123. Elements with 4 corners
- 6.124. The selection placeholder
- 6.125. Automatic Widgets
- 6.126. Structure of a Cubic Second Rank Tensor
- 6.127. Structure of a Hexagonal Second Rank Tensor
- 6.128. Structure of a Trigonal Second Rank Tensor
- 6.129. Structure of a Tetragonal Second Rank Tensor
- 6.130. Structure of a Orthorhombic Second Rank Tensor
- 6.131. Structure of a Monoclinic Second Rank Tensor
- 6.132. Structure of a Triclinic Second Rank Tensor
- 6.133. Structure of a C1 Third Rank Tensor
- 6.134. Structure of a C2 Third Rank Tensor
- 6.135. Structure of a Cs Third Rank Tensor
- 6.136. Structure of a D2 Third Rank Tensor
- 6.137. Structure of a C2v Third Rank Tensor
- 6.138. Structure of a C4 Third Rank Tensor
- 6.139. Structure of a C4i Third Rank Tensor
- 6.140. Structure of a D4 Third Rank Tensor
- 6.141. Structure of a C4v Third Rank Tensor
- 6.142. Structure of a D2d Third Rank Tensor
- 6.143. Structure of a C3 Third Rank Tensor
- 6.144. Structure of a D3 Third Rank Tensor
- 6.145. Structure of a C3v Third Rank Tensor
- 6.146. Structure of a C6 Third Rank Tensor
- 6.147. Structure of a D6i Third Rank Tensor
- 6.148. Structure of a D6 Third Rank Tensor
- 6.149. Structure of a C6v Third Rank Tensor
- 6.150. Structure of a D3h Third Rank Tensor
- 6.151. Structure of a Td Third Rank Tensor
- 6.152. Structure of a Hexagonal Fourth Rank Tensor
- 6.153. Structure of a Tetragonal Fourth Rank Tensor
- 6.154. Structure of a Trigonal-A Fourth Rank Tensor
- 6.155. Structure of a Trigonal-B Fourth Rank Tensor
- 6.156. Structure of a Orthorhombic Fourth Rank Tensor
- 6.157. Structure of a Monoclinic Fourth Rank Tensor
- 6.158. Structure of a Triclinic Fourth Rank Tensor
- 7.1. Components of an OOF2 Extension
- 7.2. Simple Extension Directory Layout
- 7.3. Less Simple Extension Directory Layout
- 8.1. Output Widgets
- 222. Master Coordinates
- 223.
BooleanParameterWidget - 224.
EnumParameterWidget - 225.
IntRangeParameterWidget - 226.
FloatRangeParameterWidget - 227.
RegisteredParameterWidget - 228.
ConvertibleRegisteredParameterWidget - 229.
RegisteredListParameterwidget - 230.
AutoNumericParameterwidget - 231.
AutoIntParameterwidget - 232. Rank 4 Tensor Parameter Widget
- 233. Rank 3 Tensor Parameter Widget
- 234. Rank 2 Tensor
ParameterWidget
