Code Salome

SALOME is a generic platform for pre and post processing and codecoupling for numerical simulation with the following aims

  • Supports interoperability between CAD modeling and computation software (CAD-CAE link).
  • Facilitate implementation of coupling between computing codes in a distributedenvironment Supports interoperability between CAD modeling and computation software (CAD-CAE link).
  • Makes easier the integration of new componentsinto heterogeneous systems for numerical computation.
  • Sets the priority to multi-physics coupling between computation software.
  • Provides a generic user-friendly and efficient user interface, which helps to reduce the costs and delays of carrying out the studies.
  • Reduces training time to the specific time for learning the software solution based on this platform
  • Providesaccess to allfunctionalitiesvia the integrated Python console.
  • Pool production of developments (pre and post processors, calculationdistribution and supervision) in the field of numerical simulation

SALOME is based on the model of distributed components built on CORBA as a distributed objects architecture. Two main levels can be distinguished:

The SALOME base platform is composed of the following standard modules:

  • Lower layer: embeds core functionalities of the kernel (communication between distributed modules), graphical user interface and management of the studies. These services are handled by the following components:
  • Lower layer: embeds core functionalities of the kernel (communication between distributed modules), graphical user interface and management of the studies. These services are handled by the following components:

KERNEL Module

Attached to the lower layer of the architecture, the core functionalities of SALOME are fully defined by the KERNEL module that implements a number of basic services, like:

  • Components manager: handles the general services (communication & life cycle) to manage SALOME components. These services correspond to the encapsulation of the CORBA layer in use in SALOME
  • Study: provides a generic process to manage data shared by the components (creation & persistence)

CORBA middlewareprovides comunication among distributed components, servers and clients:dynamic loading of a distributed component, execution of a component and data exchange between components. CORBA interfaces are defined via IDL files. AllCORBA interfaces are available for users in Python. CORBA interfaces for someservices are encapsulated in C++ classesproviding a simple interface. Python SWIG interface is also generated from C++, to ensure a consistent behavior between C++ modules and Python modules or user scripts

GUI Module
GUI (Graphical User Interface) provides a common shell for all components, which can be integrated into the SALOME platform.
GUI component in SALOME platform provides:

  • Common desktop environment (SALOME desktop) for all components
  • Component integration and management: uploading, switching, component menus/toolbars handling
  • Study management (creation, saving, loading, editing studies)
  • Multi-window management in the framework of one study
  • Management of objects created or imported into the SALOME application (Object Browser)
  • Integrated Python interpreter
  • Output messages window
  • Additional tools : Catalogue Generator, Registry tool
  • Standard viewers for data visualization:
  • VTK 3d viewer
  • OCC 3d viewer
  • Plot 2d viewer
  • Supervision viewer
Modules layer: higher level components built on the services provided by the lower layer. Modules perform dedicated services that are needed to reach the general objective of SALOME. The main modules involved in this layer are:

Geometry Module (GEOM)

This component provides versatile functionalities for creation, visualization and modification of geometric CAD models.

  • Visualization of models in 3D viewers:
  • Shading, Wireframe modes
  • Pre-highlighting (detection)
  • Selection
  • Changing the color of a model
  • Display/Erase a model
  • Import/Export CAD models in the following formats:
  • IGES 5.3
  • STEP AP203/214 schemas
  • BREP (Open CASCADE internal format)
  • Creation of basic geometrical objects
  • Point
  • Line
  • Circle
  • Ellipse
  • Arc
  • Curve
  • Vector
  • Plane
  • Working Plane
  • Local Coordinate System
  • Creation of 3D primitives:
  • Box
  • Cylinder
  • Sphere
  • Torus
  • Cone
  • Modeling operations:
  • Extrusion
  • Revolution
  • Filling Surface With Edges
  • Pipe creation
  • Offset
  • Basic Sketcher
  • Creation of topological objects:
  • Vertex
  • Edge
  • Wire
  • Face
  • Shell
  • Solid/CompSolid
  • Compound
  • Explode topological objects
  • Boolean operations:
  • Fuse
  • Common
  • Cut
  • Section
  • Transformation operations with objects:
  • Translation
  • Rotation
  • Modify the Location
  • Mirror Image
  • Scaling
  • Multi-translation
  • Multi-rotation
  • Advanced partition/gluing algorithm with support of material assignment
  • Creation of planes using the Archimedean law
  • Local operations:
  • Fillet
  • Chamfer
  • Shape healing functions:
  • Sewing
  • Change face orientation
  • Suppress a hole
  • Suppress a face
  • Topological information and dimensions:
  • Basic properties (length, surface area, volume)
  • Center of gravity
  • Axis of inertia
  • Bounding box
  • Minimal distance
  • Tolerance of the shape
  • Validity of the shape
  • Topological information
MED Module

The purpose of the MED module is to provide a standard for storing and recovering computer data associated to numerical meshes and fields, and to facilitate the exchange between codes and solvers.
The persistent data storage is based upon HDF format (like CGNS, a standard developed by Boeing and NASA in the area of Computational Fluid Dynamic).
MED also provides structures to hold data on meshes and fields. These structures are exchanged between solvers, hide the communication level (CORBA or MPI), and offer persistence (read/write in .med files).
The main benefit of a common exchange format is reduced complexity of code coupling. It also allows sharing such high level functionalities as computation of nodal connectivity of sub-elements (faces and edges), arithmetic operations on fields, entity location functionalities, and interpolation toolkit.

Mesh Module (SMESH)

The goal of this module is to create meshes on the basis of geometrical models created or imported into GEOM. It uses a set of meshing algorithms and their corresponding conditions (hypotheses) to compute meshes. In addition, a new mesher can be easily connected to this module by using the existing plugin mechanism. The main functionalities of SMESH are:

  • Visualization of meshes in 3D viewers:
  • Shading, Wireframe
  • Shrink
  • Nodes
  • Special options for mesh (color, lines width, shrink coefficient, transparency)
  • Show quadratic elements as lines or arcs of circle
  • Display/Erase nodes/elements numbers
  • Displaying/Erasing of mesh and submeshes
  • Show/hide faces orientation vectors
  • Use clipping planes to analyze mesh internal structure
  • Computation of meshes and submeshes on the basis of the following hypotheses:
  • Average length of edges
  • Arithmetic 1D
  • Automatic Length
  • Deflection 1D
  • Maximal size of edge
  • Number of segments
  • Start and End Length
  • Maximal triangle area
  • Quadrangle parameters
  • Maximal tetrahedron volume
  • Computation of meshes and submeshes using the following algorithms:
  • Internal
  • Segment around vertex
  • Wire discretization
  • Projection 1D
  • Composite side discretization
  • Use existing edges
  • Triangulation (Mefisto 2D)
  • Quadrangle (mapping)
  • Projection 2D
  • Use existing faces
  • Hexahedron (I,j,k)
  • Projection 3D
  • 3D Extrusion
  • External
  • BLSURF (with support of Size Map feature)
  • Tetrahedron NETGEN 1D-2D / 2D / 1D-2D-3D
  • Tetrahedron GHS3D
  • Hexotic
  • GHS3D Parallel
  • Group management:
  • Creation of groups of elements
  • Editing groups
  • Deleting groups
  • Add/Remove elements from a group
  • Boolean operations on groups: Union, Intersect, Cut
  • Remove a group
  • Display/Erase a group
  • Selection of groups
  • Selection filter library
  • Highlighting of groups
  • Information about computed meshes
  • Import meshes:MED, UNV, DAT
  • Export meshes: MED, UNV, DAT, STL
  • Quality controls of meshes:
  • Length of edges
  • Free boundaries
  • Boundaries of multi-connections
  • Area
  • Taper
  • Aspect Ratio 2D & 3D
  • Minimum angle
  • Warping angle
  • Skew
  • Free nodes, free edges, free faces
  • Volume
  • Mesh modifications:
  • Add/Remove (node; 0D element, 1D elements: edge, triangle, quadrangle, polygon; 3D elements: tetrahedron, hexahedron, polyhedron; quadratic 1D/2D/3D elements: edge, triangle, quadrangle, tetrahedron, pyramid, pentahedron, hexahedron)
  • Diagonal inversion
  • Changing orientation
  • Conversion of a group of triangles into quadrangles
  • Conversion of a group of quadrangles into triangles
  • Moving of node
  • Union of Triangles
  • Smothing
  • Revolution
  • Extrusion
  • Extrusion along Path
  • Transformation (Translation, Rotation, Symmetry, Sewing, Merging nodes/elements)
  • Pattern Mapping
  • Force mesh to pass through predefined point
  • Build mesh compound

Post-Pro Module (VISU)

The purpose of this module is to supply visualization tools to help the end-user analyze the results issued from a solver after a numerical simulation computation.
It proposes standard functionalities to display information through a wide range of functions.
Among main functionalities, there are:

  • Visualization of presentations in different modes in a 3D viewer:
  • Shading
  • Wireframe
  • Shrink
  • Nodes
  • Insidewireframe
  • Special options for presentation (color, lines width, shrink coefficient)
  • Displaying/Erasing of presentations
  • Visualization of 2D presentations (curves) in 2D viewer:
  • Different style of curves
  • Different scaling modes
  • Auto or user defined legend
  • Import MED files
  • Import/Export ASCII files of special format for curve representation
  • Creation of 3D representations of results:
  • Scalar map
  • Deformed shape
  • Deformed Shape and Scalar Map
  • Vectors presentation
  • Iso surfaces presentation
  • Cut planes presentation
  • Cut lines presentation
  • Stream lines presentation
  • Plot 3D Presentation
  • Gauss Points presentation
  • Different options for presentations listed above
  • Parallel and successive animation of the presentation along a time scale
  • Display information about values on cells
  • Creating/storing special view parameters (angle, zoom factor, etc.)
  • Creation of 2D data from 3D presentations
  • Visualization of tables
  • Creation of curves from tables
  • Creation of containers of the curves

Supervisor Module (SUPERV)

The aim of this module is to graphically define, instantiate and execute a computation process which corresponds to a directed and cycle-free graph (dataflow).

This module is not supported since SALOME version 5.0. In SALOME series 5x it has been replaced by YACS module.

The Supervisor a tool that allows to describe and to control different coupling capabilities between the distributed components, and especially solver modules. A component can be either an existing SALOME module running on its own machine and on its own Operating System (i.e.: distributed component), or a Python component running locally and designed by the user.
Main functionalities of the module are:

  • Creation of a dataflow
  • Import/export of a dataflow into an xml file
  • Edit a dataflow:
  • Add a node into a dataflow
  • Remove a node from a dataflow
  • Connect nodes in a dataflow
  • Change node information
  • Rename a node
  • Publish the results of a computation into the study
  • Different presentation views of a dataflow
  • Control view
  • Full view
  • Table view
  • Control the execution of a dataflow:
  • Run execution
  • Suspend execution
  • Kill dataflow execution
  • Step-by-step execution
  • Different kinds of nodes:
  • Factory nodes (distributed services)
  • Inline nodes (python based):
  • Computation node
  • Switch node (if ... then ... else ..., case ...)
  • Loop node (for ... to, repeat ... until, do ... while)
  • GoTo node

YACS Module

YACS module allows build, edit and execute calculation schemes. A calculation scheme defines a chain or a coupling of computer codes (SALOME components or calculation components, see General Principles of YACS).

YACS module has been introduced in SALOME series 4x and replaced obsolete Supervisor module in SALOME series 5x.

General operations:
  • Activate YACS module
  • Import/Export a schema
  • Open/Save a study
  • Set user preferences
  • Select an object
  • Activate context popup menu
  • Set active schema or run of a schema
Modification of a schema:
  • Create an object
  • Edit an object
  • Delete an object
Representation of a schema:
  • Change 2D representation of a schema
  • Auto-arrange schema nodes
  • Rebuild links between nodes
Execution of a schema:
  • Execute a schema
  • Save/Restore execution state
  • Create new edition