Personal tools
You are here: Home User Section FAQ

FAQ

This page contain Frequently Answered Questions about the SALOME.

Frequently Asked Questions

1. What is SALOME

1.1. What is SALOME platform?

1.2. What are the terms of SALOME platform modification and distribution?

1.2.1. How I can get the text of SALOME license?

1.2.2. Can I modify the sources of SALOME platform?

1.2.3. If I developed a new SALOME module can I sell it with SALOME platform?

1.2.4. What about the licenses for products required for SALOME platform?

1.2.5. Does SALOME provide some free open source solver?

1.3. What are operating systems supported by SALOME platform?

1.3.1. What Linux distributions are officially suppored by SALOME?

1.3.2. Is there a Windows version of SALOME?

1.3.3. Where I can check if there a version of SALOME for my operating system?

1.3.4. Can I have SALOME platform ported to my operating system?

1.3.5. Does SALOME exist for 64bits operating systems?

2. How to build and install SALOME?

2.1. How to get binary distribution?

2.2. How to get source code of SALOME?

2.3. What is a SALOME_InstallWizard?

2.3.1. How to run SALOME_InstallWizard?

2.3.2. How to get a help on SALOME_InstallWizard?

2.4. What are SALOME prerequisites?

2.4.1. What third party products SALOME platform relies on?

2.4.2. What must be installed on my workstation in order to build SALOME?

2.4.3. What must be installed on my workstation in order to run SALOME?

2.4.4. What video cards are recommended for SALOME?

2.4.5. What are minimal system requirements to run SALOME?

2.5. How to build SALOME from sources?

2.5.1. How to build the whole SALOME?

2.5.2. How to build KERNEL_SRC? (And other modules)

2.6. Compilation and linkage errors

2.6.1. Why does the error “GL/gl.h: No such file or directory” appear during compilation?

2.6.2. What does “FATAL ERROR: some mandatory products are missing” error message mean?

2.6.3. What does it mean – lg2c is not found during run of binary distributions on some platforms?

3. What is a SALOME structure?

3.1. What is a SALOME study?

3.2. What is a SALOME server?

3.3. What is a SALOME module?

3.3.1. What are C++ or Python modules?

3.4. How SALOME modules interact using SALOME study?

3.5. What does it mean “Publish (add) to study”?

3.6. What is a Python console?

3.7. What is a TUI interface?

3.8. GUI vs. TUI

3.9. How CORBA is used in SALOME?

3.10. What is a light version of SALOME?

3.11. Why one may need the light version of SALOME?

3.12. How to use example modules?

4. How to use SALOME

4.1. How to load environment variables for launching SALOME?

4.2. How to launch SALOME?

4.3. What is the difference between embedded and standalone launching of SALOME servers?

4.4. How to launch a SALOME server in the embedded or standalone modes?

4.5. What does “Searching for a free port for naming service:” mean?

4.6. Why it is necessary to run killSALOME.py or killSALOMEWithPort.py after quitting SALOME.

4.7. How to launch SALOME without GUI?

4.8. How to launch SALOME with only chosen modules?

4.9. How to activate a SALOME module?

4.9.1. How activate a module using GUI?

4.9.2. How activate a module using TUI?

4.9.3. Why when I’m trying to activate a module the error “can not load library *ModuleName*.so not found” appears?

4.10. How to use Geometry module?

4.10.1. What is notion of Shape (vertex, edge, wire etc)?

4.10.2. What formats are supported by Geometry module?

4.10.3. What is the difference between Point and Vertex?

4.10.4. What is “Check Geometry”?

4.10.5. How to import a STEP file using TUI?

4.10.6. How to export to IGES a shape created in Geometry module using TUI?

4.10.7. How build a solid shape from a 2D-Geometry?

4.10.8. What is Multi-Translation and Multi-Rotation?

4.10.9. How to define a working plane for Sketch?

4.10.10. How to use partition algorithm for preparation of complex geometry for meshing?

4.11. How to use Mesh module?

4.11.1. How to orient all normals of a 2D/3D mesh  in one direction?

4.11.2. Is it possible to use an alternative hypothesis in addiction to on the main one, without splitting the solid?

4.11.3. Is it possible in the Mesh module to visualize the normal to some elements?

4.11.4. How to specify the minimum element size allowable with Netgen 1D-2D-3D plugin?

4.11.5. How to define different number of segments on different edges?

1. What is SALOME

1.1. What is SALOME platform?

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:

  • Supports interoperability between CAD modeling and computation software (CAD-CAE link).
  • Makes easier the integration of new components on heterogeneous systems for numerical computation.
  • Sets the priority to multi-physics coupling between computation software.
  • Provides a generic user interface, user-friendly and efficient, 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 which has been based on this platform.
  • All functionalities are accessible through the programmatic integrated Python console.

1.2. What are the terms of SALOME platform modification and distribution?

1.2.1. How I can get the text of SALOME license?

SALOME platform is distributed under LGPL license (GNU Lesser General Public License). Please see this page for more details.

1.2.2. Can I modify the sources of SALOME platform?

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:

  • The modified work must itself be a software library.
  • You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
  • You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

1.2.3. If I developed a new SALOME module can I sell it with SALOME platform?

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.

1.2.4. What about the licenses for products required for SALOME platform?

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.

1.2.5. Does SALOME provide some free open source solver?

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.

1.3. What are operating systems supported by SALOME platform?

1.3.1. What Linux distributions are officially supported by SALOME?

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.

1.3.2. Is there a Windows version of SALOME?

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.

1.3.3. Where I can check if there a version of SALOME for my operating system?

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).

1.3.4. Can I have SALOME platform ported to my operating system?

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.

1.3.5. Does SALOME exist for 64bits operating systems?

Yes, SALOME platform is qualified on Linux 64bits distributions. Windows 64bits, though, is not yet supported.

2. How to build and install SALOME?

2.1. How to get binary distribution?

You can download SALOME Installation Wizard with binary distribution for Linux from Downloads page.

2.2. How to get source code of SALOME?

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.

2.3. What is a SALOME Install Wizard?

2.3.1. How to run SALOME Install Wizard?

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.

2.3.2. How to get a help on SALOME Install Wizard?

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.

2.4. What are SALOME prerequisites?

2.4.1. What third party products SALOME platform relies on?

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.

2.4.2. What must be installed on my workstation in order to build SALOME?

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.

2.4.3. What must be installed on my workstation in order to run 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.

See points 2.4.1 and 2.4.2 for more details.

2.4.4. What video cards are recommended for SALOME?

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.

2.4.5. What are minimal system requirements to run SALOME?

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.

2.5. How to build SALOME from sources?

2.5.1. How to build the whole SALOME?

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).

2.5.2. How to build KERNEL_SRC? (and other modules)

Use “build.sh –h” to see all possible options to build custom module separately.

2.6. Compilation and linkage errors

2.6.1. Why does the error “GL/gl.h: No such file or directory” appear during compilation?

Such errors appear because the installation of some NVIDIA drivers creates wrong system files.

2.6.2. What does “FATAL ERROR: some mandatory products are missing” error message mean?

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.

3. What is a SALOME architecture?

3.1. What is a SALOME study?

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.

3.2. What is a SALOME server?

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.

3.3. What is a SALOME module?

3.3.1. What are C++ or Python modules?

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).

3.4. How SALOME modules interact using SALOME study?

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).

3.5. What does it mean: “Publish (add) to study”?

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).

3.6. What is a Python console?

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.

3.7. What is a TUI interface?

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.

3.8. GUI vs. TUI

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.

3.9. How CORBA is used in SALOME?

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).

3.10. What is a light version of SALOME?

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.

3.11. Why one may need the light version of SALOME?

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.

3.12. How to use example modules?

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.

4. How to use SALOME

4.1. How to load environment variables for launching SALOME?

After the SALOME installation, the procedure creates two environment files salome.sh and salome.csh. You have to source this environment in shell.

4.2. How to launch SALOME?

You have to call runSalome command after the definition of the environment.

4.3. What is the difference between embedded and standalone launching of SALOME servers?

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.

4.4. How to launch a SALOME server in the embedded or standalone modes?

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.

4.5. What does "Searching for a free port for naming service" mean?

By default CORBA naming server starts in port 2810. However if this port is busy, the launh procedure finds the next free port.

4.6. Why it is necessary to run killSalome.py or killSalomeWithPort.py after quitting SALOME.

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.

4.7. How to launch SALOME without GUI?

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.

4.8. How to launch SALOME with only chosen modules?

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.

4.9. How to activate a SALOME module?

4.9.1. How activate a module using GUI?

To activate any SALOME module, click at the corresponding button in the toolbar.

4.9.2. How activate a module using TUI?

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:

  • To activate Geometry module, run SALOME via "runSalome -t --pinter" command, then type in the terminal (in Python interpreter):

import salome, GEOM; salome.salome_init()

geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")

geom = geom._narrow(GEOM.GEOM_Gen)

  • Similarly, to activate Mesh module, run SALOME via "runSalome -t --pinter" command, then type in the terminal:

import salome, SMESH; salome.salome_init()

mesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")

mesh = mesh._narrow(SMESH.SMESH_Gen)

  • Post-Pro module can be only used if SALOME is running in GUI mode: run SALOME via "runSalome --gui" command, then type in the embedded or external Python interpreter:

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.

4.10. How to use Geometry module?

4.10.1. What is notion of Shape (vertex, edge, wire etc)?

The notion of shape is completely presented in OpenCASCADE Technology documentation (http://www.opencascade.org)

4.10.2. What formats are supported by Geometry module?

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.

4.10.3. What is the difference between Point and Vertex?

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

  • An angle: the point where two line segments join or meet, where two lines cross (intersect), or any appropriate combination of rays, segments and lines that result in two straight "sides" meeting at one place.
  • A polygon: any point on the polygon where two sides (line segments) meet and connect.
  • A polyhedron: any point where three or more edges meet and connect to each other. The edges are the connections (line segments as shared sides) of two or more faces (polygons).
  • For curves, a vertex is a point on the curve with a local minimum or maximum of curvature.

In SALOME most 2D and 3D objects can be defined through a number of vertices.

4.10.4. What is “Check Geometry”?

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.

4.10.5. How to import a STEP file using TUI?

To import a STEP file using TUI use commands geompy.ImportSTEP(full_path_to_file) or geompy.Import(full_path_to_file, "STEP").

4.10.6. How to export to IGES a shape created in Geometry module using TUI?

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

4.10.7. How build a solid shape from a 2D-Geometry?

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.

4.10.8. What is Multi-Translation and Multi-Rotation?

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.

4.10.9. How to define a working plane for 2D Sketch?

To define a working plane, you can:

  • Use Global coordinate system.
  • Create Local coordinate system and choose it in the "2D Sketch Construction" dialog box.
  • Select any existing planar face or plane.

4.10.10. How to use partition algorithm for preparation of complex geometry for meshing?

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.

4.11. How to use Mesh module?

4.11.1. How to orient all normals of a 2D/3D mesh; in one direction?

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.

4.11.3. Is it possible in the Mesh module to visualize the normal to some elements?

No, it is only possible to find volumic elements oriented differently from MED convention using "Bad oriented volume" filter criterion.

4.11.4. How to specify the minimum element size allowable with Netgen 1D-2D-3D plugin?

Currently it is not possible.

4.11.5. How to define different number of segments on different edges?

Use local 1D hypotheses on different edges.

Document Actions