This page contain Frequently Answered Questions about the SALOME.
Frequently Asked Questions
SALOME is free software that provides a generic platform for Pre and Post-Processing for numerical simulation. It is based on an open and flexible architecture made of reusable components available as free software.
It is open-source (distributed under the terms of GNU LGPL), and you can download the latest version (both the source code and the executables) from this page.
SALOME platform is distributed under LGPL license (GNU Lesser General Public License). Please see this page for more details.
Possessing the source code of the platform, you can freely modify it for your internal purposes.
However, you can copy and distribute such modifications only provided that you meet the conditions stated in the LGPL license:
Yes, you can. However, you can charge the price only for your module, while SALOME itself is free.
You must give prominent notice with each copy of the distribution that SALOME is used in it and that SALOME and its use are covered by GNU LGPL license.
All products required by SALOME are distributed under LGPL license (or similar) or “free for non commercial usage” licenses; see this page for more details about pre-requisite products licenses.
No, there is no solver which comes with SALOME platform, but there are some solvers which can be used with it transparently. For example, SalomeMeca application provides an integration of Code_Aster solver into SALOME platform (visit http://www.code-aster.org for more details).
Also, CAElinux (http://www.caelinux.com) is a Linux distribution dedicated to the computer aided engineering; among other CAD/CAE software it includes SALOME, Code_Aster, Code_Saturne, OpenFOAM and other free solvers.
SALOME is developed and qualified on Linux platform. The choice of Linux distributions used for development is mostly defined by the set of operating systems which are in work on sites of main SALOME contributors: CEA/DEN, EDF R&D and OPEN CASCADE. The list of the Linux distributions officially supported by certain SALOME release is clearly specified on the download page of that release. For example, binaries for the latest SALOME release can be downloaded from this page.
Since version 6.4.0 SALOME is officially qualified on Windows. However, SALOME is distributed under Windows in a limited edition, since not all modules are fully migrated to Windows yet. Visit download page to retrieve Windows binaries of latest SALOME release.
Release Notes for each SALOME release provide a list of platforms on which SALOME is qualified. Also some useful information about SALOME porting on other Linux distributions can be found on SALOME forum (http://www.salome-platform.org/forum).
Please contact our support team through http://www.salome-platform.org/contact/ to have more information about available services.
Also, you can try using universal SALOME binaries for Linux which can be retrieved from the download page. Note, however, that this packaging is not officially supported; feel free to report all related issues to the forum. Universal packages should work with all versions of glibc (including version 2.13 and newer). If you have any trouble please post a message in the forum.
Yes, SALOME platform is qualified on Linux 64bits distributions. Windows 64bits, though, is not yet supported.
You can download SALOME Installation Wizard with binary distribution for Linux from Downloads page.
Install Wizard (see 2.1) includes the sources of SALOME platform.
Also, SALOME sources package can be separately obtained from Downloads page.
Finally, current development snapshot of the SALOME sources can be retrieved from the git repositories.
SALOME Installation Wizard is an installation program based on Qt. It can be used to install SALOME platform on Linux.
There is runInstall script in the root folder of the Installation Wizard distribution. This script runs GUI interface of the installation procedure or runs batch installation depending on the options specified via the command line.
There is a README file with useful information on how SALOME is built, launched, etc., in the root folder of the Installation Wizard archive. Another README file describing the Installation Wizard itself, the launching procedure and the meaning of optional parameters is located in /doc/ folder.
From GUI of SALOME Install Wizard, Help can be invoked by pressing "Help" button.
Successful compilation and execution of SALOME platform requires quite a number of third party products, including, but not limited to: gcc, tcltk, Python, Qt, sip, PyQt, boost, swig, Open CASCASDE Technology, qwt, omniORB, Hdf5, Med, Vtk, Graphviz, Doxygen, NETGEN, docutils (and other products).
All these products are free software and distributed together with SALOME platform.
More information about the versions of the products required for a particular SALOME version can be found in Downloads section.
Naturally, all prerequisites are necessary and should be installed on your PC. You can install them using SALOME Installation Wizard.
Note, that not all required products are supplied with SALOME; some of additional products (libraries, etc) should be natively installed on the computer. Note that you might need to have development packages installed for successful compilation of 3rd-party products and SALOME.
Execution of SALOME platform requires tcltk, Python, Qt, PyQt, Boost, Swig, Open CASCASDE Technology, Qwt, OmniORB, Hdf, Med, Vtk, NETGEN and some other products.
It is recommended to use NVIDIA GeForce card, better starting from GeForce 4. However SALOME works on Radeon cards as well. Gauss points presentations in Post-Pro module require that your video card could support Point Sprite OpenGL specification.
SALOME platform execution requires 512Mb RAM (1024Mb recommended) and at least 500Mb of swap space. SALOME full installation requires ~ 2Gb of disk space, but during the installation (using SALOME Installation Wizard) you might need up to 2Gb of additional free disk space, for storing of temporary files.
The best way is to use “build.sh” script supplied with SALOME Installation Wizard. However you can build a custom SALOME module using the standard GNU rules (“build_configure, configure, make, make install).
Use “build.sh –h” to see all possible options to build custom module separately.
Such errors appear because the installation of some NVIDIA drivers creates wrong system files.
It means that you haven't installed some mandatory products during the installation procedure.
2.6.3. What does it mean – libg2c is not found during run of binary distributions on some platforms?
Some packages of SALOME needs FORTRAN compiler. Pre compiled binary distribution is linked with it, however on some systems this RPM package might be absent. It is necessary to install it additionally.
If you compile SALOME from sources, it can use other FORTRAN compiler, native for your system.
Study is a document within GUI, an abstraction layer between actual document data (probably, remote data available through CORBA) and data presentation (in the Object Browser). It contains a tree of Data Object instances.
SALOME is a distributed system, which means that all functionality of the application is exposed as objects and each object can use any of the services provided by other objects in the system, or even objects in other systems. The client components can also create objects that behave in server-like roles. Most of SALOME modules with the exception of Light modules are defined as CORBA servers and can be run on distributed computers.
SALOME supports two development languages: C++ and python. Developers can write custom modules using these two languages. Most of the standard SALOME modules are C++ modules. Some python modules can be found in the EXAMPLES (PYHELLO or RANDOMIZER).
Each module can publish their data in SALOME study to provide access to them for other components. Also publishing in the Study provides persistence of such data (not in all cases, persistence of complex data is provided by special methods).
When developing new module, it is necessary to inherit and impleemnt some virtual methods (trough IDL interfaces) like PublishInStudy. This redefined method provides a general way of publishing of custom objects in the Study tree. Also to provide persistence module should inherit Driver interface (and should redefine some of its methods).
SALOME has embedded Python console, where the user can execute Python scripts. Many SALOME functionalities are mapped to the Python API and can be run using Python. This is automation of SALOME functions. Some useful examples are placed in XXX_SRC/src/XXX_SWIG packages (where XX is name of module, for example GEOM) or in MODULE_NAME/bin/salome in binary distribution.
Text User Interface (TUI) – is a special API in Python which provides access to the functionalities of SALOME modules. This API can be used for writing scripts for calculation in batch mode.
It is possible to use both GUI and TUI working with SALOME. TUI interface is most suitable for long calculations in batch mode. Then the calculation results can be controlled using GUI.
Most SALOME components are written based on CORBA middleware. Thus they have servers inside. Such servers can be run in special processes or inside the main process (collocated mode).
You can use the “light” SALOME configuration if you don’t need CORBA in the application. This configuration provides a GUI framework to write classical one-process GUI applications (SALOME light components). Such components can be run separately or can work together in the same session with classical full components.
The light configuration of SALOME does not depend on CORBA. There is an example of light component – “LIGHT_SRC” coming with SALOME Install Wizard.
Note, that most important SALOME modules like Geometry, Mesh, Post-Pro, YACS are developed for distributed usage and cannot eb thus used within "light" SALOME session.
If you develop a simple pre—post processor which does not need standard SALOME modules, like Geometry, Mesh, etc., but you have a GUI based on Qt, you can implement it as a light SALOME module.
These modules provide some samples of how to write your own components based on SALOME. These are HELLO_SRC (C++ SALOME component), PYHELLO_SRC (Python SALOME component), LIGHT_SRC (light module of SALOME), SIERPINSKY_SRC, RANDOMIZER_SRC and some other ones.
After the SALOME installation, the procedure creates two environment files salome.sh and salome.csh. You have to source this environment in shell.
You have to call runSalome command after the definition of the environment.
Some SALOME modules can run in two different modes – embedded and standalone. In the first mode CORBA servers of this module are run inside the main GUI session process. In the second mode they are run as separate processes (Container). The container can be run on different hosts, which provides a distribution of servers.
There is xml configuration in the users home directory, for example, ~/.config/salome/SalomeApprc.6.6.0. There are “embedded” and “standalone” xml tags, where the necessary servers are placed.
By default CORBA naming server starts in port 2810. However if this port is busy, the launh procedure finds the next free port.
It might be required to execute “killSalome.py” procedure to stop all running SAOME servers and services (like omniNames etc) after you exit from GUI session.
The script “killSalomeWIthPort.py” can be used if you have several sessions running on different ports, to stop only session running on certain port - you should input the name of the port as argument then. In this case only the processes corresponding to the configuration of the port are shut down and other processes are still being executed.
To launch SALOME without GUI, use “runSalome –t” command: only the necessary servers are launched (without GUI). To start an interactive Python console then (for example, to be able to load TUI scripts), you will need to use --pinter option.
To launch a group of chosen SALOME modules, use the command “runSalome –-modules=XXX,YYY”, where XXX and YYY are modules' names. You can use –h command to display help of runSalome script.
To activate any SALOME module, click at the corresponding button in the toolbar.
There is no possibility to activate the GUI of a certain module from SALOME TUI interface. However, it is possible to use the functions of the module in batch mode, for this:
import salome, GEOM; salome.salome_init()
geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
geom = geom._narrow(GEOM.GEOM_Gen)
import salome, SMESH; salome.salome_init()
mesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
mesh = mesh._narrow(SMESH.SMESH_Gen)
import salome, VISU; salome.salome_init()
visu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU")
visu = visu._narrow(VISU.VISU_Gen)
4.9.3. Why when I’m trying to activate a module the error “can not load library *ModuleName*.so not found” appears?
It means that you have not set the environment for your module, or that this module does not have a GUI interface and can be used only in TUI mode.
The notion of shape is completely presented in OpenCASCADE Technology documentation (http://www.opencascade.org)
Geometry module currently supports BREP (native OCCT format), STEP (API 214), IGES (up to 5.3 version) and STL formats. There is also a commercially available plug-in for ACIS (SAT) files.
The term point presents the lowest level of abstraction in geometry, an entity that has a location in space or a plane but no extent.
The term vertex means a corner of
In SALOME most 2D and 3D objects can be defined through a number of vertices.
This function serves for testing purposes (available only if SALOME is built in DEBUG mode); it loads «GEOM_usinggeom.py” script which builds different shapes.
To import a STEP file using TUI use commands geompy.ImportSTEP(full_path_to_file) or geompy.Import(full_path_to_file, "STEP").
To export to IGES a shape from Geometry use commands
geompy.ExportIGES(geometry, full_path_to_file_to_export) - exports to "iges-5.1" format, or
geompy.Export(geometry, full_path_to_file_to_export, "IGES") - exports to "iges-5.1" format, or
geompy.Export(geometry, full_path_to_file_to_export, "IGES_5_3") - exports to "iges-5.3" format
It is possible to build a solid shape from a 2D geometry using the Extrusion operation. Select this operation from the toolbar or the menu and define the Base Shape and the direction by a vertex or two points.
Multi-translation is a duplication of a selected object in the chosen direction. It is possible to indicate the Vector of translation the Step, i.e. the distance between the copies and the Number of copies. Double Multi-translation is a duplication of a selected object in two chosen directions, which creates a square field of copies. It is possible to define the Vector, the Step and the Number of copies for both directions.
Multi-rotation creates several geometrical objects rotated in one or two dimensions basing on the initial geometrical object. It is possible to define the Shape to be rotated, the Axis of rotation and the Number of Times the shape must be rotated. Rotation Angle will be 2*PI/NbTimes.
Double Multi-rotation rotates the given Object around the given Axis on the given Angle the given Number of Times and multi-translates each rotation result.
To define a working plane, you can:
Partition algorithm builds a shape by intersection of two shapes or a shape and a plane. Use partition by plains to split your complex geometry into a number of simple geometries, wish are much easier to be meshed by the algorithms.
To orient all normals of a 2D/3D mesh in one direction, use Modification/Orientation operation. Unfortunately it does not provide a one-click option to orient all normals in one direction. So, if you select the whole mesh, it will simply redirect all normals. For 3D elements, "Bad oriented volume" filter criterion helps to find the volumes that should be reoriented. For 2D elements, you have to select the elements to be reoriented manually.
4.11.2. Is it possible to use an alternative hypothesis in addiction to on the main one, without splitting the solid?
It is possible to use alternative 1D and 2D hypotheses assigned to subshapes of the main shape or to groups of subshapes, but it is impossible to mesh a part of a solid with an alternative 3D hypothesis without splitting.
No, it is only possible to find volumic elements oriented differently from MED convention using "Bad oriented volume" filter criterion.
Currently it is not possible.
Use local 1D hypotheses on different edges.