New to SMTK 3.1 - Hierarchical Analyses.
When modeling simulation information in SMTK, you can associate a set of categories (currently a category is represented simply as a string) with each attribute item. This information can then be used to filter the information when it is being displayed. For example an item could belong to both the Heat Transfer and CFD categories and will be displayed if category filtering is off or if either the Heat Transfer or CFD categories is active.
An analysis is represented as a collection of categories.
For example in Truchas (an open source 3D Multiphysics Simulation code for Metal Casting and Processing) the user can perform a Heat Transfer simulation that can optionally involve Induction Heating and or Enclosure Radiation. Prior to 3.1 the only way to was to define 4 analyses:
- Heat Transfer
- Heat Transfer with Induction Heating
- Heat Transfer with Enclosure Radiation
- Heat Transfer with Both Induction Heating and Enclosure Raditation
This can become intractable when dealing with a large number of combinations. In the case of Truchas, in additional to Heat Transfer, the engineer can also include CFD and Solid Mechanics resulting in 19 possible combinations.
In order to make modeling analyses simpler, in SMTK 3.1 you can define analysis hierarchies. So for example Enclosure Radiation could be “derived” from Heat Transfer. This means that Enclosure Radiation includes all of the categories associated with Heat Transfer plus those explicitly associated with Enclosure Radiation. Below shows an example XML snippet from the Truchas template file:
<Analyses>
<Analysis Type="Heat Transfer">
<Cat>Heat Transfer</Cat>
</Analysis>
<Analysis Type="Enclosure Radiation" BaseType="Heat Transfer">
<Cat>Enclosure Radiation</Cat>
</Analysis>
<Analysis Type="Induction Heating" BaseType="Heat Transfer">
<Cat>Induction Heating</Cat>
</Analysis>
<Analysis Type="Fluid Flow">
<Cat>Fluid Flow</Cat>
</Analysis>
<Analysis Type="Solid Mechanics">
<Cat>Solid Mechanics</Cat>
</Analysis>
</Analyses>
Analysis View
A new View has been created to display Analysis information and to control how categories get processed. Prior to SMTK 3.1, all of the categories that were defined in the SBT template file were available for information filtering. In addition, if there were several different analyses that could be defined in the template, the user would typically need to choose the specific analysis during export time. This can lead to some confusion. For example in the case of Truchas, a user would be able to see information related to CFD even if the analysis being defined was going to only involve Heat Transfer.
In order to address this situation, the new Analysis View presents the user with the hierarchy of analyses and the user can then indicate which analyses they wish to model. Once this is done, only the categories related to the analyses selected will be available in the category list. In addition, if explicit category filtering is disabled, only information that has at least one of its categories in the list will be displayed. In the previous example, if Heat Transfer is the only analysis selected then only items categorized as Heat Transfer would be visible. If the user also selected Enclosure Radiation the items that belonged to either Heat Transfer or Enclosure Radiation would be displayed. In addition, the user no longer needs to specify which analyses are being performed during export since the export operation can now access this information from the Analysis attribute created by the Analysis View.
Proposed New Features - Exclusive Analyses
The current implementation assumes that any combination of the top level analyses (or their children) are valid. If on the other hand you wanted to support a workflow where only one in the top level (or children analyses under a parent) was supported, this would not be possible.
What I propose is to add the concept of Exclusive - so for example if you wanted to support optionally either Induction Heating or Enclosure Radiation (but not both) you could use the Exclusive option on the Heat Transfer Analysis indicating only one of its children could be selected:
<Analyses>
<Analysis Type="Heat Transfer" Exclusive="true">
<Cat>Heat Transfer</Cat>
</Analysis>
<Analysis Type="Enclosure Radiation" BaseType="Heat Transfer">
<Cat>Enclosure Radiation</Cat>
</Analysis>
<Analysis Type="Induction Heating" BaseType="Heat Transfer">
<Cat>Induction Heating</Cat>
</Analysis>
<Analysis Type="Fluid Flow">
<Cat>Fluid Flow</Cat>
</Analysis>
<Analysis Type="Solid Mechanics">
<Cat>Solid Mechanics</Cat>
</Analysis>
</Analyses>
In addition to state that the top level analyses are Exclusive with respects to each other you do the following:
<Analyses Exclusive="true">
<Analysis Type="Heat Transfer" Exclusive="true">
<Cat>Heat Transfer</Cat>
</Analysis>
<Analysis Type="Enclosure Radiation" BaseType="Heat Transfer">
<Cat>Enclosure Radiation</Cat>
</Analysis>
<Analysis Type="Induction Heating" BaseType="Heat Transfer">
<Cat>Induction Heating</Cat>
</Analysis>
<Analysis Type="Fluid Flow">
<Cat>Fluid Flow</Cat>
</Analysis>
<Analysis Type="Solid Mechanics">
<Cat>Solid Mechanics</Cat>
</Analysis>
</Analyses>