login  pass 
    Home    News    Documentation    FAQ    User Section    Forum    Contact Us    Download    Add-on / Plugins
Other links
RNTL
Salome2 RNTL Project
Code_Aster
SYSTEM@TIC (IOLS)
Salome FAQ

CONTENTS

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. Is there a Windows version of Salome?

1.3.2. Where I can check if there a version of Salome for my operating system?

1.3.3. Can I have Salome platform ported to my operating system?

1.3.4. 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?

4.11.6. How to do local mesh refinement in the Salome V3.2.1?

4.11.7. How to export/import groups to UNV?

4.11.8. How to mesh two solids that share a face?

4.11.9. How to create a sub mesh with local hypothesis?

4.11.10. How to create a mesh using TUI?

4.11.11. Is it possible to use Mesh algorithms from Salome in Open Cascade?

4.12. How to use MED module?

4.12.1. What is Med Format?

4.12.2. What is a difference between Med file and MEDMEM (MED module)?

4.13. How to use Post-pro module?

4.13.1. How to import ASCII file in Post-Pro?

4.13.2. Is it possible to visualize Gauss points in SALOME?

4.14. How to use Supervisor module?

4.15. What is Dump Study?

 

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 (LGPL), and you can download both the source code and the executables from the site www.salome-platform.org.

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 http://www.gnu.org/licenses/lgpl.html

 

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

 

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 Code_Aster (please visit http://www.code-aster.com/). Also there is a site http://www.caelinux.com which provides a special Linux distribution including SALOME, Code_Aster and other free solvers.

 

1.3. What are operating systems supported by Salome platform?

1.3.1. Is there a Windows version of Salome?

Currently there is no public Windows version of SALOME platform.

 

1.3.2. Where I can check if there a version of Salome for my operating system?

Release notes for SALOME provide a list of platforms where SALOME is qualified. Also there is some useful information about SALOME porting on other Linux systems on Salome forum (http://www.salome-platform.org/forum)

 

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

 

1.3.4. Does Salome exist for 64bits operating systems?

Yes, SALOME platform is qualified on Mandriva 2006 64 bit Linux.

 

2. How to build and install Salome?

2.1. How to get binary distribution?

You can download the Installation Wizard with binary distribution from http://www.salome-platform.org/download section.

2.2. How to get source code of Salome?

Install Wizard (see 2.1) includes the sources of SALOME platform.

2.3. What is a SALOME_InstallWizard?

2.3.1. How to run SALOME_InstallWizard?

There is runInstall script in the root folder of the Installation Wizard archive. This script runs GUI interface of the installation procedure or runs batch installation.

 

2.3.2. How to get a help on SALOME_InstallWizard?

There is a README file with useful information on how SALOME is built, run, 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.

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&msg2qm, Sip, PyQt, Boost, Swig, Open CASCASDE Technology, Qwt, OmniORB, Hdf, Med, Vtk, Numeric, Graphviz, Doxygen, NETGEN and docutils.

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 http://www.salome-platform.org/download/ 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 easily install them using SALOME Install Wizard

 

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 and NETGEN.

 

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 ~ 600Mb of disk space, but during the installation you will need 1Gb of free disk space.

Salome is permanently tested on Mandriva 2006 32bit; Mandriva 2006 64bit; Debian Sarge 3.1 and Mandrake 10.1 platforms. Salome is not tested but is known to run successfully on RedHat Enterprise 4; RedHat Scientific 4.2 and RedHat Scientific 4.3 platforms.

 

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 – lg2c 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 is absent. It is necessary to install it additionally.

If you compile SALOME from sources, it may use other FORTRAN compiler, native for your system, for example gfortran on Mandriva 2006 64 bit.


3. What is a Salome structure?

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 (PY_HELLO or RANDOMIZER)

3.4. How Salome modules interact using Salome study?

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 a developer develops a new module, it inherits 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 lunch python scripts. Many SALOME functionalities are mapped to python 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.

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 organize 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), LIGTH_SRC (light module of SALOME), SIERPINSKY_SRC and RANDOMIZER_SRC. The latter two are C++ and python components, which show interaction between modules.


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” or “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 $HOME, for example, .SalomeApprc.3.2.6. 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 is necessary to call “killSalome.py” procedure to kill all running servers and services (like omniNames etc) after you exit from GUI session. “killSalomeWIthPort.py” should be used if you have several sessions running on different ports. You should input the name of the port as argument. 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) and the python console is also active enabling to load TUI scripts.

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. 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" command, then type in the terminal (start python interpreter):

import salome, GEOM; salome.salome_init()

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

geom = geom._narrow(GEOM.GEOM_Gen)

 
To activate Mesh module run SALOME via "
runSalome -t" command, then type in the terminal (start python interpreter):

import salome, SMESH; salome.salome_init()

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

mesh = mesh._narrow(SMESH.SMESH_Gen)

 
To activate Post-Pro module run SALOME via "
runSalome --gui" command, then type in the terminal (start python interpreter):

import salome, VISU; salome.salome_init()

visu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU")

visu = visu._narrow(VISU.VISU_Gen)

 
To activate Supervisor module run SALOME via "
runSalome -t" command, then type in the terminal (start python interpreter):

import salome, SUPERV; salome.salome_init()

superv = salome.lcc.FindOrLoadComponent("FactoryServer", "SUPERV")

 

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), IGS (up to 5.3 version) and STL formats. There is also a commercially available CATIAV5 plug-in.

 

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; 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 Sketch?

To define a Working Plane select in the Main Menu New Entity - > Basic - > Working Plane or click the corresponding button in the toolbar. There are several algorithms of working plane creation. Firstly, it is possible to design a Plane, a Planar Face or a Local Coordinate System as a Working Plane. Secondly, a Working Plane can be defined by two vectors. Finally, you can select one of three basic projections of XYZ coordinate system as a Working 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.

 

 

© 2005,2006 Open CASCADE SAS