Analysis Solution |
Analysis Modeler |
Analysis Modeler OverviewSome general concepts about Analysis data |
Technical Article |
AbstractThe aim of this document is to introduce the different concepts on which the Analysis Infrastructure relies. Any program that manipulates an Analysis document must provide code that navigates through its structure, so this roadmap is useful to produce or understand such code. It focuses on entities that are shown to the end user, introducing vocabulary common to all analysis programmers. Fully imbedded inside the V5 philosophy, the Analysis model is based on a specification versus result approach. Beside model entities that are shown to the end user, an Analysis document contains other modeling objects that will be introduced (Field model and Meshing Model) for the result view. Having a hands-on experience of the Structural Analysis interactive products is necessary to take full benefits from this article. |
All Analysis data are stored inside the Analysis document. The extension of this document is "CATAnalysis". The data are stored in different containers.
The figure shows the contents of the CATAnalysis document in term of containers. All are created at the document initialization.
[Top]
The Analysis features are the support for the specifications of the user. They support the V5 basic behaviors (Copy/Paste, update, navigation, selection, etc.).
[Top]
The figure below shows a typical CATIA V5 work session within the Structural Analysis application. This Analysis document contains a reference to a design document (in this case, a Part document) on which a stress analysis is computed. This feature tree summarizes the different kinds of analysis features that are manipulated by the user interface. This same structure is used in order to scan the model when programming. What is the role of the different Analysis feature objects:
An Analysis model is made of some different features. The
Analysis Manager is the root feature that manages:
|
[Top]
By default, after the document initialization, the Analysis document contains the Analysis Manager, the Links Manager and one FEM model. The following graph explains the dependency between the features and the interfaces implemented on the features.
From a pointer to the Analysis document, query a pointer to the
CATISamAccess interface in order to retrieve the root container thanks
to the GetSpecContainer
method. This enables you to access the
features. From the CATIContainer pointer returned, query a pointer to the
CATISamAnalysisContainer interface.
From this CATISamAnalysisContainer pointer, you can use the
GetAnalysisManager
method to retrieve the
CATISamAnalysisManager or query a pointer to the
CATISamAnalysisModelFactory interface that manages all the methods for
the analysis feature creation.
The CATISamAnalysisManager interface provides the methods to access the CATISamDocumentManager in order to manage the document linked to the current Analysis document, and access the different CATISamAnalysisModel methods implemented by the feature set called FEMModel.
The CATISamAnalysisModel interface provides the methods to access the analysis cases that apply to it using a pointer to CATISamAnalysisCase interface. Both implement the CATISamAnalysisScan interface that allows the analysis sets that make up the analysis model to be retrieved as pointers to the CATISamAnalysisSet interface. At the document initialization, an empty analysis model is created and contains the following sets:
By default for structural analysis and static linear displacement computation, the Analysis Case is made of the following sets:
By default for structural analysis and modal computation, the Analysis Case is made of the following sets:
CATISamAnalysisSet provides methods to create and access the analysis entities that make up the analysis set. These entities implement CATISamAnalysisEntity.
Any analysis entity is made of Physical data that implement CATISamBasicComponent (that accesses the physical data under literal [1] format in order to take benefit of ) and implement by itself CATISamAnalysisSupport (that manages the selection of finite element entities based on geometrical data). From the analysis entity, you can use the CATISamAnalysisEntity interface to retrieve its basic components or use CATISamAnalysisSupport for its analysis support by querying a pointer to the appropriate interface.
[Top]
This part will describe the recommanded way of using CAA interfaces on Analysis features.
Analysis Interfaces | Feature Type | Role | Default or adapter |
CATISamExplicit | Analysis feature (any analysis feature with physical type) | Link Field Model | Analysis modeler Implementation not to be overloaded. Main objective is to manage the life cycle of the Field model objects (Including Undo_Redo, Warm- Start ...) |
CATISamExplicitation | Analysis Set | Generate Field Model | Default Implementation generates an Explicit Set according to Physical type attribute of the feature. Main objective is the connection of preprocessing entities. |
CATISamExplicitation | CATObject defined on STRUCTURAL_LateType |
Generate Field Model | To be implemented |
CATICharacCollector | Analysis Set
Analysis Entity |
Generate the associated CharacCollector | To be implemented by using CATECharacCollector Adapter. |
[Top]
This model is designed in order to support the finite element view of the specification. Specification means pre-processing and post-processing model and data access. The field model is made of concrete classes that must not be derived and of a dictionary that defines the physical types list and category, and the rules for the model as well. Note that when manipulating those classes, you are using a class close to an handler and not a pointer. The pointer of an explicit class is typed as CATSamExplicitPtr define. To store locally arrays of explicit objects, use the CATAnalysisExplicitListUsr or arrays of CATSamExplicitPtr.
The main field model components are:
In order to build a collector characteristic, you must use the following methods in this order:
A physical type is defined by the CATSamPhysicalType typedef. It can be considered as an enumeration that can be converted into an identifier during programming, or into a string for printing. All methods required to manipulate them are defined by using the CATAnalysisExplicitRulesData class with the help of CATAnalysisExplicitDefinition enumerates.
A version is defined by the CATSamCharacVersion object. This object is built according to the information list:
Public Data | Enumerate for filling | Comment |
ValueType | CATSamValue | Type of data of the values |
Math Type | CATSamMathType | Mathematical type |
Math Dimension | int | from one to six |
Ref Frame | CATSamRefFrame | Reference frame |
Category | CATSamValue | Type of data on which it relies. |
ValuesAreCombined | boolean | Defined if data are combined or not. |
SubType | CATString | Complete the physical type definition |
A Position is a CATString instance. It defines the positions on which field data entities can be applied. Existing position list is:
The general graph of the model can be summarized in the following image. It shows the principal object used for programming and the way they are implemented inside the field model. The instantiation of the CATAnalysisExplicitModel launches in memory the dictionary (an external file called "mechanical") that provides the list of physical types and the rules for the object design and relationship. According to this file, the Structural Analysis defines a default format for linear mechanical analysis.
To access the data inside the CATAnalysisCharacCollector object, use the CATSamDimension object. Some additional information are describe in the FAQ Quick Reference.
The following diagram summarize the relationships of the field model objects:
[Top]
For programming help the following array shows the correspondences between a feature late type, it's name is displayed on the screen (NLS) and the Physical type associated. This physical type is also the one of the Set that represent the feature in the field model.
Feature Late Type | Feature NLS Name | Physical Type |
AnalysisManager | Analysis Manager | ANALYSIS |
AnalysisModel | Finite Element Model | ANALYSIS_MODEL |
AnalysisCase | Analysis Case | ANALYSIS_CASE |
MSHMeshSet | Nodes and Elements | MESH |
PropertySet | Properties | PROPERTIES |
MaterialSet | Materials | MATERIALS |
AxisSet | Axes | AXES |
RestraintSet | Restraints | RESTRAINTS |
LoadSet | Loads | LOADS |
MassSet | Masses | MASSES |
[Top]
They are described in the following reference [2].
[Top]
Six kinds of local axes can be defined in the field model. They can be identified by explicit coordinates or nodes in order to define rectangular, cylindrical, and spherical axes as follows:
Physical Type list:
With Associated Characteristics:
AXIS_XXX_3D_COORDINATE | AXIS_XXX_3D_NODE |
[Top]
The access the different physical types of an existing feature can be retrieved by using implement the CATICharacCollector interface. For all the Preprocessing features (sets and entities) an implementation is provided. By using the reference [3], see how to extract this physics.
[Top]
The meshing model is stored in the meshing container and contains the finite element discretisation data.
[Top]
The access to the meshing container is done by using the general feature tree. The feature set "Nodes and Elements" implements an interface that allow to work with the feature object included in the meshing container: CATIMSHMeshManager. This feature is build by derivation of the AnalysisSet startup, So it supports all the CATISamAnalysisSet behavior.
From this interface, you can retrieve:
[Top]
The following reference article shows the ways the connectivity's are provided by the meshing model. It defines the way to scan faces, edges and nodes of the elements.
[Top]
The CATMSHNode and CATMSHElement are represented inside the
field model as Explicit Entities. The entity for CATMSHNode has a physical type
NODE. For CATMSHElement, the physical type is defined as
ELEMENT_"Elementtype"_Dimension_Geometry
. This offers the capability to
complete the geometrical information by adding some physical data and to make a
distinction between a physical BAR (ELEMENT_BAR_3D_BAR2) and a BEAM
(ELEMENT_BEAM_3D_BAR2) defined on the same BAR connectivity. For programming
facilities, the specific classes CATAnalysisExplicitNode and
CATAnalysisExplicitElement may be used.
For example, a large number of the connections defined for the Structural Assembly application are for a meshing point of view multi-nodes elements defined with a SPIDER connectivity. For the field model, the physic types of the elements can be:
All the preprocessing data are applied to this explicit entities.
[Top]
The interfaces for this are CATISamExplicit and CATISamExplicitation.
According to the figure presenting the analysis features:
By default, all the analysis sets implement the CATISamExplicit and CATISamExplicitation interfaces. The implementations create a single CATAnalysisExplicitSet. To do this, use CATSamCatalogFactory::SetPhysicalType to valuate on the feature StartUp an attribute named "PhysicalType" with an appropriated string defined in the field model dictionary. The explicit Object is created when the Feature set is associated to its parent by the use of the AddSet method of the CATISamAnalysisScan interface. This interface is implemented on AnalysisModel, AnalysisCase and AnalysisSet (to build Set of Sets). This set will be retrieved using the GetExplicitObject method. The interface CATISamExplicitation have to be re-implemented if its default behavior is not satisfactory. For example, you can re-implement it in order to have one ExplicitSet associated to some ExplicitCharac that represent some additional physics (for example, the variable data that manages the different steps associated to a set).
The same behavior can be applied en entities. All the analysis entities provided by Dassault Systèmes products implement the CATISamExplicit interface that create a single explicit entity CATAnalysisExplicitEntity. This entity is created in the field model when the AddEntity method of the CATISamAnalysisSet is called. After its build, the entity will be completed with some CATAnalysisExplicitCharac and will be applied to the corresponding finite element entities.
By association of this Explicit Object, the CATICharacCollector interface is implemented on each analysis set and analysis entity provided by Dassault Systèmes products and the CATAnalysisCharacCollector will be attached under the corresponding object in the field model. It is called the parent of the CharacCollector.
The following graph show how the analysis features are plug together in order to have a convenient update behavior.
According to this graph, if you need to generate the finite element model associated to the specifications, use the update of the Analysis Case object, this will launch the build of the mesh (by calling the messing algorithm), then the build of all the preprocessing data by using the CATISamExplicitation implementation of each preprocessing data. The Update of a solution set will first Update the Case, then launch the build of the Solution Set.
|
|
[Top]
This preprocessing feature applies a momentum on a face of
a design "Part". The specifications are made up of a vector definition
(Basic Component) called "Moment Vector" (that can be expressed according
to a particular axis system) and a face support (that can be a
multi-selection of B-rep elements of the Part).
This feature implements the CATISamEntityVisu interface in order to display the 3D representation at the right location (highlighted on the face). The CATISamExplicitation interface will generate in the field model a distribution of forces applied onto nodes linked with the support as displayed in the next image |
|
The dump of the field model shows the Load set associated with the LOAD feature, and the Explicit entity that represents a 3D nodal force made up of one explicit characteristic that manages one vector per node on which the force entity is computed by the distribution. The charac-collector implemented on this feature will retrieve the Physical type “Point force vector” associated with the versions “Local”, “Global” or “None” according to the reference frame in which the vector is expressed and a position “Node” (that is, the only position to express the vectors). |
[Top]
This chapter describes the different ways of designing a field model associated to a preprocessing entity. Typical model is made of an entity, parent of some characteristics and applied on finite element support. Some capabilities can be used to distribute values according to where they are applied. This model structures are used by the preprocessing feature provided by DASSAULT SYSTEMES applications and insure the generation of charac-collectors. If you need to complete the model, you may generate structures that respects those rules.
To understand more, you have to refer to :
The different ApplyTo methods of the explicit entity. The most general method is described here:
ApplyTo ( | int | iNumber | Size of the following arrays. |
const CATSamExplicitPtr* | iApplyTo | Pointers to the explicit node or element on which the apply is done. | |
CATSamPosition | iPosition | Kind of apply (Ex: Node, Element, face of Element...) | |
const int* | iPositionNumber | Position number. (Ex: if CATSamPosition == CATSamPositionFace, represent the face number). | |
const CATSamApplyQualifier* | iQualifier ) | Additionnal information for the position. (Ex: if CATSamPosition == CATSamPositionFace, specify iQualifier to CATSamApplyQualifierUpper informs that the data is applied on the upper of the face. |
SetDefinition( | CATSamMathType | iMathematicalType | The mathematical type of the characteristic. |
CATSamValue | iValueType | The kind of value. | |
int | iMathematicalDimension | Methematical dimension (for vector, tensor); | |
int | iRepeat | Total number of values to store (in the matematical type). | |
CATSamValuesDistributionMode | iDistributionMode) | The way the values will be distributed on the apply (or not: we called the repeated). |
Some examples of model definition:
Model Definition |
How it will be collected ? |
Each node has the same force vector applied on it. This force is defined by a vector expressed in a global reference frame. In this case, the number of values of POINT FORCE is 3. | |
Each node has the different force vector applied on it. This force is defined by a vector expressed in a global reference frame. n this case, the number of values of POINT FORCE is 6. | |
Each node has the same force vector applied on it. This force is defined by a vector expressed in one single local reference frame. In this case, the number of values of POINT FORCE is 3. | |
Each node has the same force vector applied on it. This
force is defined by a vector expressed in two different
local reference frame. In this case, the number of
values of POINT FORCE is 3. the number of values for each of the
characteristics of the Local axis is 6.
Note that another way of building the same model is to define the local axis with a distributed mode, and a repeat set to 2. Then, the local axis references to reference frames with standard definition (Repeated mode, and number of repeat set to one). |
|
Each node has the different force vector applied on it.
This force is defined by a vector expressed in two different
local reference frame. In this case, the number of
values of POINT FORCE is 6. the number of values for each of the
characteristics of the Local axis is 6.
Note that another way of building the same model is to define the local axis with a distributed mode, and a repeat set to 2. Then, the local axis references to reference frames with standard definition (Repeated mode, and number of repeat set to one).
|
|
Objective is to assign a temperature distribution at finite elements. In Addition, we want to have a gradient between upper and lower face. Each element receives twice a temperature, (by making twice the apply) and the usage of CATSamApplyQualifier specify witch value is associated to each face of the element. | |
Objective is to assign a nodal forces at the node of the
finite elements. In this case, apply is done on elements. in order to have
variable forces for the each elements. The size of values for the force
characteristic is the somme of the number of nodes for each elements
applied on. This model can be also completed with local axes. Note that:
In this scenario, values are collected at the elements and the position
of the charac-collector is NODE_OF_ELEMENT. |
As other example, to assign the same loading force at a specific same position to all elements of a loading entity:
Characteristic | Dimension | Repeat | Distribution Mode | SetValues |
NB_POSITIONS | 1 | 1 | CATSamValuesDistributionModeRepeated | 3 |
POSITIONS | 1 | 1 | CATSamValuesDistributionModeRepeated | 0.3 0.5 0.7 |
FORCE VECTOR | 3 | 1 | CATSamValuesDistributionModeRepeatedOnPositions | [0 -1 0] |
Note that in this case the loading condition is applied on a ONE dimension element, in this case set up the dimension of the position to 1. When using GetPositionUVWCoordinates, only the U will be set Up (consider you are in the local reference frame of the finite element. To do the same on a 2D element set up the dimension of the position characteristic to 2 and enter couple of values as values of POSITIONS. In this case, UV coordinates will be set up.
[Top]
This set is defined as the output set of Cases. All the implementations presented are related to the CATIA-ELFINI © solver. The following example is relevant to Frequency Solution. From a feature view, the set have some parameters and a link to an external file (called external storage) that is of the ELFINI© proprietary format. By implementing the CATICharacCollector interface, this format is translated into the standard Charac-Collector format. The associated field model is made up of an explicit set (with the physical type "MECHANICAL_MODAL") to which are attached the Charac-Collector(s) that the solver can retrieve inside its database or compute dynamically.
[Top]
For an example of implementation and more details on the methods to implement, see the reference [4].
[Top]
This document presented some of the high level concepts of CATIA Analysis Interfaces. The other technical articles and the use cases will demonstrate how to use them with concrete scenario.
[Top]
[1] | Knowledge Modeler Overview |
[2] | The Physical Types for Structural Analysis |
[3] |
Sample
of Export. See the CAAAniSelectPhysics method. |
[4] | Creating New Analysis Features. |
[5] | Frequently Asked Questions |
[Top] |
Version: 1 [Mar 2000] | Document created |
[Top] |
Copyright © 2000, Dassault Systèmes. All rights reserved.