From f165ef47482032c356d933cc183d54624b2028c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Aguerre?= Date: Wed, 2 Dec 2015 15:58:21 +0100 Subject: [PATCH] fix documentation and resources --- doc/dev/sphinx/fr/medcalc-develguide.rst | 2 +- doc/dev/sphinx/fr/medcalc-specifications.rst | 16 +- doc/dev/sphinx/fr/medcalc-userguide-api.rst | 528 ++++++++++++++++++ doc/dev/sphinx/fr/medcalc-userguide-gui.rst | 74 +-- .../sphinx/fr/medop-prototype-develguide.rst | 12 +- doc/dev/sphinx/fr/medop-prototype-medmem.rst | 4 +- .../sphinx/fr/medop-prototype-overview.rst | 10 +- {src/MEDCalc => doc}/tut/README.txt | 0 {src/MEDCalc => doc}/tut/addfields/README.txt | 0 .../MEDCalc => doc}/tut/addfields/addition.py | 0 .../tut/addfields/operations.py | 0 .../tut/addfields/timeseries.med | Bin .../tut/medcoupling/README.txt | 0 {src/MEDCalc => doc}/tut/medcoupling/env.sh | 0 .../tut/medcoupling/images/avatar.png | Bin .../tut/medcoupling/images/irm.png | Bin .../tut/medcoupling/images/lena.png | Bin .../tut/medcoupling/images/tests.pgm | 0 .../tut/medcoupling/partition.py | 0 .../tut/medcoupling/pyfunctions/__init__.py | 0 .../tut/medcoupling/pyfunctions/functions.py | 0 .../tut/medcoupling/pyfunctions/lagrange.py | 0 .../tut/medcoupling/pyfunctions/plotter.py | 0 .../tut/medcoupling/test-paravis.py | 0 .../tut/medcoupling/testmed_gendata.py | 0 .../tut/medcoupling/testmed_lena.py | 0 .../tut/medcoupling/testmed_simple.py | 0 .../tut/medcoupling/testpil.py | 0 {src/MEDCalc => doc}/tut/medloader/Makefile | 0 {src/MEDCalc => doc}/tut/medloader/cmesh.py | 0 {src/MEDCalc => doc}/tut/medloader/explore.py | 0 .../tut/medloader/madnex_field.med | Bin .../tut/medloader/madnex_grid.med | Bin {src/MEDCalc => doc}/tut/medloader/manage.py | 0 .../MEDCalc => doc}/tut/medloader/testamel.py | 0 .../tut/medloader/timeseries.med | Bin .../MEDCalc => doc}/tut/medloader/tutorial.py | 0 .../additionaldata/MergeFields.jpg | Bin .../additionaldata/MergeFields.png | Bin .../mergefields/additionaldata/splitdemo.vtu | 0 .../additionaldata/splitdemo_split.vtu | 0 .../tut/mergefields/simpledemo/README.txt | 0 .../tut/mergefields/simpledemo/field1.med | Bin .../tut/mergefields/simpledemo/field2.med | Bin .../tut/mergefields/simpledemo/field3.med | Bin .../tut/mergefields/simpledemo/field4.med | Bin .../tut/mergefields/simpledemo/simpledemo.py | 0 .../mergefields/splitdemo/DomainMesh_1.med | Bin .../mergefields/splitdemo/DomainMesh_2.med | Bin .../mergefields/splitdemo/DomainMesh_3.med | Bin .../mergefields/splitdemo/DomainMesh_4.med | Bin .../tut/mergefields/splitdemo/README.txt | 0 .../tut/mergefields/splitdemo/splitdemo.py | 0 .../splitdemo/splitdemo_partiel.py | 0 .../projection/additionaldata/Projection1.jpg | Bin .../projection/additionaldata/Projection1.png | Bin .../projection/additionaldata/Projection2.jpg | Bin .../projection/additionaldata/Projection2.png | Bin .../additionaldata/SRMA_Lionel.brep | 0 .../tut/projection/additionaldata/Study1.hdf | Bin .../tut/projection/demomed/README.txt | 0 .../projection/demomed/demo_createsource.py | 0 .../tut/projection/demomed/demo_loadsource.py | 0 .../tut/projection/demomed/fieldsource.med | Bin .../tut/projection/demomed/meshsource.med | Bin .../tut/projection/demomed/meshtarget.med | Bin .../tut/projection/demovtu/MeshSource.med | Bin .../tut/projection/demovtu/MeshTarget.med | Bin .../tut/projection/demovtu/README.txt | 0 .../tut/projection/demovtu/projection.py | 0 resources/CMakeLists.txt | 24 +- 71 files changed, 599 insertions(+), 71 deletions(-) create mode 100644 doc/dev/sphinx/fr/medcalc-userguide-api.rst rename {src/MEDCalc => doc}/tut/README.txt (100%) rename {src/MEDCalc => doc}/tut/addfields/README.txt (100%) rename {src/MEDCalc => doc}/tut/addfields/addition.py (100%) rename {src/MEDCalc => doc}/tut/addfields/operations.py (100%) rename {src/MEDCalc => doc}/tut/addfields/timeseries.med (100%) rename {src/MEDCalc => doc}/tut/medcoupling/README.txt (100%) rename {src/MEDCalc => doc}/tut/medcoupling/env.sh (100%) rename {src/MEDCalc => doc}/tut/medcoupling/images/avatar.png (100%) rename {src/MEDCalc => doc}/tut/medcoupling/images/irm.png (100%) rename {src/MEDCalc => doc}/tut/medcoupling/images/lena.png (100%) rename {src/MEDCalc => doc}/tut/medcoupling/images/tests.pgm (100%) rename {src/MEDCalc => doc}/tut/medcoupling/partition.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/pyfunctions/__init__.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/pyfunctions/functions.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/pyfunctions/lagrange.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/pyfunctions/plotter.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/test-paravis.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/testmed_gendata.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/testmed_lena.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/testmed_simple.py (100%) rename {src/MEDCalc => doc}/tut/medcoupling/testpil.py (100%) rename {src/MEDCalc => doc}/tut/medloader/Makefile (100%) rename {src/MEDCalc => doc}/tut/medloader/cmesh.py (100%) rename {src/MEDCalc => doc}/tut/medloader/explore.py (100%) rename {src/MEDCalc => doc}/tut/medloader/madnex_field.med (100%) rename {src/MEDCalc => doc}/tut/medloader/madnex_grid.med (100%) rename {src/MEDCalc => doc}/tut/medloader/manage.py (100%) rename {src/MEDCalc => doc}/tut/medloader/testamel.py (100%) rename {src/MEDCalc => doc}/tut/medloader/timeseries.med (100%) rename {src/MEDCalc => doc}/tut/medloader/tutorial.py (100%) rename {src/MEDCalc => doc}/tut/mergefields/additionaldata/MergeFields.jpg (100%) rename {src/MEDCalc => doc}/tut/mergefields/additionaldata/MergeFields.png (100%) rename {src/MEDCalc => doc}/tut/mergefields/additionaldata/splitdemo.vtu (100%) rename {src/MEDCalc => doc}/tut/mergefields/additionaldata/splitdemo_split.vtu (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/README.txt (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/field1.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/field2.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/field3.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/field4.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/simpledemo/simpledemo.py (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/DomainMesh_1.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/DomainMesh_2.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/DomainMesh_3.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/DomainMesh_4.med (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/README.txt (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/splitdemo.py (100%) rename {src/MEDCalc => doc}/tut/mergefields/splitdemo/splitdemo_partiel.py (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/Projection1.jpg (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/Projection1.png (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/Projection2.jpg (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/Projection2.png (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/SRMA_Lionel.brep (100%) rename {src/MEDCalc => doc}/tut/projection/additionaldata/Study1.hdf (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/README.txt (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/demo_createsource.py (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/demo_loadsource.py (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/fieldsource.med (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/meshsource.med (100%) rename {src/MEDCalc => doc}/tut/projection/demomed/meshtarget.med (100%) rename {src/MEDCalc => doc}/tut/projection/demovtu/MeshSource.med (100%) rename {src/MEDCalc => doc}/tut/projection/demovtu/MeshTarget.med (100%) rename {src/MEDCalc => doc}/tut/projection/demovtu/README.txt (100%) rename {src/MEDCalc => doc}/tut/projection/demovtu/projection.py (100%) diff --git a/doc/dev/sphinx/fr/medcalc-develguide.rst b/doc/dev/sphinx/fr/medcalc-develguide.rst index 1984584f8..5fb1b0dbb 100644 --- a/doc/dev/sphinx/fr/medcalc-develguide.rst +++ b/doc/dev/sphinx/fr/medcalc-develguide.rst @@ -110,7 +110,7 @@ Une bibliothèque de fonctions pour le traitement de données La figure ci-dessous montre la structure des paquets logiciels qui constituent la bibliothèque: -.. image:: images/medlayers.png +.. image:: ../images/medlayers.png :align: center Elle comprend en particulier les paquets suivants: diff --git a/doc/dev/sphinx/fr/medcalc-specifications.rst b/doc/dev/sphinx/fr/medcalc-specifications.rst index ae152232e..6f53c66f1 100644 --- a/doc/dev/sphinx/fr/medcalc-specifications.rst +++ b/doc/dev/sphinx/fr/medcalc-specifications.rst @@ -305,7 +305,7 @@ Spécifications générales Le diagramme ci-dessous représente un découpage fonctionnel qui rend compte de l'expression des besoins: -.. image:: images/xmed-functions.png +.. image:: ../images/xmed-functions.png :align: center On peut identifier les fonctionnalités suivantes: @@ -634,7 +634,7 @@ La figure ci-dessous en donne une représentation imagée avec le support de l'interface graphique du module (interface non définitive affichée ici pour illustration des spécifications): -.. image:: images/xmed-gui-withframe.png +.. image:: ../images/xmed-gui-withframe.png :align: center .. note:: Techniquement, les données sources sont rangées dans l'étude @@ -669,7 +669,7 @@ l'interface textuelle: ``timeseries.med``) pour faire apparaître ensuite le menu contextuel et choisir l'option "Use in workspace": -.. image:: images/xmed-gui-datasource-contextmenu_70pc.png +.. image:: ../images/xmed-gui-datasource-contextmenu_70pc.png :align: center * Cette capture montre une fenêtre de dialogue qui invite @@ -678,7 +678,7 @@ l'interface textuelle: l'espace de travail (par défaut, le nom complet du champ est proposé). Ici, l'utilisateur spécifie ``f4``: -.. image:: images/xmed-gui-datasource-useinworkspace_70pc.png +.. image:: ../images/xmed-gui-datasource-useinworkspace_70pc.png :align: center * La validation de la fenêtre provoque l'ajout du champs dans l'espace @@ -686,7 +686,7 @@ l'interface textuelle: définit une variable python de nom ``f4`` qui permet la manipulation du champ: -.. image:: images/xmed-gui-datasource-useinworkspace-result_70pc.png +.. image:: ../images/xmed-gui-datasource-useinworkspace-result_70pc.png :align: center Modalités d'utilisation @@ -776,13 +776,13 @@ fonction de visualisation: * Sélection d'un champ pour faire apparaitre le menu contextuel et choisir l'option "Visualize": -.. image:: images/xmed-gui-datasource-visualize_70pc.png +.. image:: ../images/xmed-gui-datasource-visualize_70pc.png :align: center * Cette option déclenche l'affichage d'une carte de champ sur le cadre d'affichage des viewers SALOME: -.. image:: images/xmed-gui-datasource-visualize-result_70pc.png +.. image:: ../images/xmed-gui-datasource-visualize-result_70pc.png :align: center Cette fonction est également disponible en ligne de commandes de @@ -870,7 +870,7 @@ hypothèses techniques suivantes: L'implantation technique des développements est représentée sur la figure ci-dessous: -.. image:: images/xmed-implantation.png +.. image:: ../images/xmed-implantation.png :align: center Le schéma représente les packages logiciels qui composent le module diff --git a/doc/dev/sphinx/fr/medcalc-userguide-api.rst b/doc/dev/sphinx/fr/medcalc-userguide-api.rst new file mode 100644 index 000000000..8f80ecf38 --- /dev/null +++ b/doc/dev/sphinx/fr/medcalc-userguide-api.rst @@ -0,0 +1,528 @@ +.. meta:: + :description: introduction guide for users of the MEDMEM library + :keywords: mesh, field, med, MEDCoupling, MEDLoader + :author: Guillaume Boulant + +.. include:: medcalc-definitions.rst + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +MEDMEM library: Starter guide for users +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +This document illustrates how to start with the programming interface +of the MEDMEM library. The users is someone who intends to create a +data processing script involving meshes and fields. + +.. contents:: Sommaire + :local: + :backlinks: none + :depth: 2 + +General overview +================ + +Definition of the MEDMEM library +-------------------------------- + +The MEDMEM library is designed to manipulate meshes and fields that +conform to the MED data model. This library can be used in C++ +programs as in python scripts for data processing on meshes and +fields. The library contains the data structure to describe meshes and +fields as C++ objects (MEDCoupling package). It provides a set of +functions to manage the persistency toward the med file format +(MEDLoader package), and to process the data througt interpolation and +localization algorithms (INTERP_KERNEL and REMAPPER packages), for +example to perform field projections from a mesh to another. + +Installation of the MEDMEM library +---------------------------------- + +The MEDMEM library is part of the SALOME MED module and then is +installed together with this module by the installation process of +SALOME. Nevertheless, it is possible for low-weight deployment to +install only the MEDMEM library from the source files embedded in the +SALOME MED module. Keep in mind that the MEDMEM library is designed to +be a self-consistent library with very few third party softwares (only +med-file, glibc and mpi typically). In particular, it is strictly +independant from the SALOME framework even if it distributed with +SALOME for convenience reasons. + +Components of the MEDMEM library +-------------------------------- + +The MEDMEM library consists in a small set of atomic libraries files, +in particular: + +* :tt:`medcoupling`: this library provides the data structures (C++ + classes) to describe meshes and fields. +* :tt:`medloader`: this library provides I/O functions to the MED file + format +* :tt:`interpkernel`: this library provides the mathematical + structures and algorithms required med data processing, in + particular interpolation and localization. +* :tt:`medcouplingremapper`: this library provides the functions for + fields projections and interpolation. + +The figure below represents the layer structure of the packages of the +library: + +.. image:: ../images/medlayers_70pc.png + :align: center + +What we call MEDMEM library in this document is represented by the +orange packages on this diagram. The white packages reprensent the old +deprecated MEDMEM library. The blue packages represent the aditionnal +components for field manipulation througth the user interface (TUI and +GUI). + +The MEDMEM library comes also with this set of atomic libraries for +advanced users/programmers: + +* :tt:`medcouplingcorba`: this library is designed for cross process + exchange of medcoupling objects. +* :tt:`medpartitioner`: this library provides functions to split a MED + domain in several part in the perspective of parallel computing + +All these atomic C++ libraries are wrapped into a set of python +modules (using the swig binding technology) so that all the data +processing can be realized by scripting. + +.. warning:: It could happen that some parts of the C++ libraries are + not wrapped into python modules. This coverture will be + extend on demand and if the integrity of the concepts is + preserved. + +Main concepts of the MEDMEM library +=================================== + +.. warning:: TODO avec Antony. Présenter les structure de données de + MEDCoupling principalement. Describe the MEDMEM data + model, the typical content of a med file, the types of + cell that compose the meshes, the types of spatial + discretization of fields, ... + +Basic usages of the MEDMEM library +================================== + +This section illustrates the usage of main features of the MEDMEM +library using python examples. The usage of python is just to have a +light syntax that makes more easy the first understanding. + +.. note:: All code examples here after are parts of the tutorial use + cases located in the folder :tt:`src/MEDCalc/tut` in the MED + source directory. These use cases are all working executable + programs and they can be used to initiate your own script. + +Preparing the shell environment +------------------------------- + +We make the hypothesis here that the MEDMEM library is installed using +the SALOME procedure and then is located in the MED module +installation directory. In addition to the MED library, the third +party softwares required for executing the examples are: python, hdf5 +and med-fichier. Then, you should prepare your shell environment +with a set of instructions that looks like:: + + #------ python ------ + export PYTHONHOME= + export PYTHONSTARTUP=${PYTHONHOME}/pythonrc.py + export PYTHON_INCLUDE=${PYTHONHOME}/include/python2.6 + export PATH=${PYTHONHOME}/bin:${PATH} + export LD_LIBRARY_PATH=${PYTHONHOME}/lib:${LD_LIBRARY_PATH} + + #------ hdf5 ------ + HDF5HOME= + export PATH=${HDF5HOME}/bin:$PATH + export LD_LIBRARY_PATH=${HDF5HOME}/lib:${LD_LIBRARY_PATH} + export HDF5_DISABLE_VERSION_CHECK=1 + + #------ med ------ + MED2HOME= + export PATH=${MED2HOME}/bin:${PATH} + export LD_LIBRARY_PATH=${MED2HOME}/lib:${LD_LIBRARY_PATH} + + #------ medmem --- + MED_ROOT_DIR= + export LD_LIBRARY_PATH=${MED_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH} + PYTHONPATH=${MED_ROOT_DIR}/lib/python2.6/site-packages/salome:${PYTHONPATH} + PYTHONPATH=${MED_ROOT_DIR}/bin/salome:${PYTHONPATH} + PYTHONPATH=${MED_ROOT_DIR}/lib/salome:${PYTHONPATH} + export PYTHONPATH + +Example 01: Explore a med file to get information concerning meshes and fields +------------------------------------------------------------------------------ + +:objectives: This example illustrates how to get information + concerning meshes and fields from a med file, using the + MEDLoader library. + +The loading of meshes and fields from a med file to a MEDCoupling data +structure requires first the knowledge of metadata associated to these +meshes and fields. You have to know the names of the meshes, so that +you can specify the one you want to load, and then the names of the +fields associated to one given mesh, the space discretizations used +for each field, and the iterations available. + +The MEDLoader library can read these metadata without loading the +physical data that compose the meshes and fields. This feature ensures +the performance of the exploration process, in particular in the case +of big meshes. + +This first instruction looks for meshes embedded in the med file +(located by :tt:`filepath`) and returns the list of mesh names: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +.. WARNING: Note that the file path for the include directive must be + relative to this rst source file (i.e. as organized in the MED + source directory, and nevertheless the build procedure is realized + elsewhere. + +Then, you may select one of these names (or iterate on all names of +the list) and read the list of fields defined on this mesh: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T2A + :end-before: # _T2B + +A field name could identify several MEDCoupling fields, that differ by +their spatial discretization on the mesh (values on cells, values on +nodes, ...). This spatial discretization is specified by the +TypeOfField that is an integer value in this list: + +* :tt:`0 = ON_CELLS` (physical values defined by cell) +* :tt:`1 = ON_NODES` (physical values defined on nodes) +* :tt:`2 = ON_GAUSS_PT` (physical values defined on Gauss points) +* :tt:`3 = ON_GAUSS_NE` + +.. note:: This constant variables are defined by the MEDLoader module + (:tt:`from MEDLoader import ON_NODES`). + +As a consequence, before loading the physical values of a field, we +have to determine the types of spatial discretization that come with +this field name and to choose one of this types. The instruction below +read all the spatial discretization types available for the field of +name :tt:`fieldName` defined on the mesh of name :tt:`meshName`: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T3A + :end-before: # _T3B + +Once you have selected the spatial discretization of interest (called +:tt:`typeOfDiscretization` in the code below, that corresponds to an +item of the list :tt:`listOfTypes`), you can extract the list of time +iterations available for the identified field: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T4A + :end-before: # _T4B + +The iterations can be weither a list of time steps for which the field +is defined (a timeseries) or a list of frequency steps (spectral +analysis). In any case, an iteration item consists in a couple of +integers, the first defining the main iteration step and the second an +iteration order in this step, that can be consider as a sub-iteration +of the step. In most of cases, the iteration order is set to :tt:`-1` +(no sub-iterations). + +The field values can now be read for one particular time step (or +spectrum tic), defined by the pair (iteration number, iteration +order). This is illustrated by the example here after. + +Example 02: Load a mesh and a field from a med file +--------------------------------------------------- + +:objectives: This illustrates how to load the physical data of a + specified mesh and a specified field. + +The metadata read from a med file are required to identify the list of +meshes and fields in the med file. We assume in this example that the +mesh and field to load are identified, i.e. we know the name of the +mesh to load (:tt:`meshName`) and the characteristic properties of the +field to load (:tt:`fieldName`, :tt:`typeOfDiscretization` and +:tt:`iteration`). For example, the instruction below load the mesh of +name :tt:`meshName`: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T5A + :end-before: # _T5B + +and the instruction below load the field with name :tt:`fieldName` +defined on this mesh at a particular iteration step characterized by +the couple :tt:`(iterationNumber,iterationOrder)`: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T6A + :end-before: # _T6B + +The variables :tt:`mesh` and :tt:`field` in this code example are instances of +the MEDCoupling classes describing the meshes and fields. + +Note that the read functions required the parameter +:tt:`dimrestriction`. This parameter discreminates the mesh dimensions you +are interested to relatively to the maximal dimension of cells +contained in the mesh (then its value could be 0, -1, -2 or -3 +depending on the max dimension of the mesh). A value of +:tt:`dimrestriction=0` means "no restriction". + +Example 03: Manage the MEDCoupling data load from a med file +------------------------------------------------------------ + +:objectives: Some suggestions for the MEDCoupling objects management, + in a programming context. + +In a real programming case, it could be relevant to explore first the +med file to load all metadata concerning the whole set of meshes and +associated fields, and then to load the physical data only once when +required by the program. + +Such a programming scenario required that you keep all metadata in +data structures created in memory, so that you can manage the +collection of meshes and fields. Nevertheless, the MEDMEM library +does not provide such data structures. + +We suggest to work with a simple list concept to store the metadata +for each mesh entry and each field entry. Note that a mesh entry is +characterized by the mesh name only, while a field entry is +charaterized by the following attributes: + +* :tt:`fieldName`: the name of the field +* :tt:`meshName`: the name of the mesh that supports the field +* :tt:`typeOfDiscretization`: the type of spatial discretization +* :tt:`iteration`: a couple of integers :tt:`(iter,order)` that + characterizes the step in a serie (timeseries or spectrum). + +By default, we suggest to work with a simple map concept (dictionnary in a +python context, map in a C++ context) to register the meshes and +fields loaded from the med file for each metadata entry. + +Then, depending on the processing algorithm you intend to implement, +you may dispatch the data in a tree structure that fit your specific +case, for performance reasons. For example, the following code +illustrates how to dispatch the metadata in a tree data structure +where leaves are the physical data (field objects). We first have to +define a tree structure (basic definition in htis simple case, but it +works fine): + +.. include:: ../../../tut/medloader/manage.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +Then, we can scan the med structure and dispatch the metadata in the +tree structure: + +.. include:: ../../../tut/medloader/manage.py + :literal: + :start-after: # _T2A + :end-before: # _T2B + +Finally (and afterwards), we can display on standard output the +metadata registered in the tree structure: + +.. include:: ../../../tut/medloader/manage.py + :literal: + :start-after: # _T3A + :end-before: # _T3B + +Example 04: Simple arithmetic operations with fields +---------------------------------------------------- + +:objectives: This example illustrates how to load field iterations + from a med file containing a field timeseries and shows + how to use these iterations in simple arithmetic + operations. + +We consider a med file :tt:`timeseries.med`, containing one single +mesh named :tt:`Grid_80x80` that supports a field with values defined +on nodes (:tt:`typeOfDiscretization=ON_NODES`) given for ten +iterations. + +This first code block identifies the mesh and the field to consider in +this example: + +.. include:: ../../../tut/addfields/operations.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +The following instructions load the field, make a scaling on the +physical values (multiply by 3) and then save the result in an output +med file named :tt:`scaling.med`: + +.. include:: ../../../tut/addfields/operations.py + :literal: + :start-after: # _T2A + :end-before: # _T2B + +Note the usage of the method :tt:`applyFunc` that takes in argument a +string expression that defined the mathematical function to apply on +the values of the fields. In this expression, the field is symbolized +by the letter :tt:`f`. + +The following set of instructions makes the addition of iteration +number 3 with iteration number 4 of the field. Note that this +operation required first to load the mesh: + +.. include:: ../../../tut/addfields/operations.py + :literal: + :start-after: # _T3A + :end-before: # _T3B + +Exemple 05: Compare fields load from different files +---------------------------------------------------- + +:objectives: Illustrates the usage of the function + changeUnderlyingMesh + +Exemple 06: Create a field from scratch on a spatial domain +----------------------------------------------------------- + +:objectives: Illustrates the applyFunc method of fields + +Exemple 07: Manipulate structured mesh +-------------------------------------- + +:objectives: Illustrates the basic usage of the advanced interface of + MEDLoader. + +The MEDLoader frontal interface let you load unstructured meshes: + +.. include:: ../../../tut/medloader/tutorial.py + :literal: + :start-after: # _T5A + :end-before: # _T5B + +That is to say that even if the mesh is a structured mesh (a grid mesh +for example), then you will get a MEDCoupling unstructured mesh +object. + +To manipulate structured mesh objects, you have to use the MEDLoader +backend interface named :tt:`MEDFileMesh`, or its derivative +:tt:`MEDFileUMesh` for unstructured meshes, and :tt:`MEDFileCMesh` for +structured meshes (CMesh for Cartesian Mesh). The code below +illustrates how to load a mesh using the :tt:`MEDFileMesh` interface, +and to know if it is a structured mesh: + +.. include:: ../../../tut/medloader/cmesh.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +This second example can be used in the case where you know in advance +that it is a structured mesh: + +.. include:: ../../../tut/medloader/cmesh.py + :literal: + :start-after: # _T2A + :end-before: # _T2B + +In any cases, you can also save the mesh in another file with the +methode :tt:`write` of the :tt:`MEDFileMesh` object: + +.. include:: ../../../tut/medloader/cmesh.py + :literal: + :start-after: # _T3A + :end-before: # _T3B + +Exemple 08: Make a projection of a field +---------------------------------------- + +:objectives: Make the projection of a field from a source mesh to a + target meshe. The source mesh and the target mesh are + two different mesh of the same geometry. + +The input data of this use case are: + +* a source mesh, and a field defined on this source mesh (left side of + the figure below) +* a target mesh, on which we want to project the field (right side of + the figure below) + +.. note:: The two meshes are displayed side by side on the figure for + convenience reason, but in the real use case they stand at + the same location in 3D space (they describe the same + geometry). + +.. image:: ../images/medop_projection_inputs.png + :align: center + +The expected result is a field defined on the target mesh and which +corresponds to a physical data equivalent to the source field, +i.e. with conservation of some physical properties. This operation +requires the usage of interpolation algorithms provided by the +:tt:`medcouplingremapper` library: + +.. include:: ../../../tut/projection/demomed/demo_loadsource.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +Some comments on this code: + +* The physical property to be preserved by this interpolation is + specified using the keyword :tt:`ConservativeVolumic` +* The parameter :tt:`P0P0` given at the preparation step of the + remapper specifies that the interpolation is done from CELLS (P0) to + CELLS (P0). +* The interpolation, strictly speaking, is performed by the + instruction :tt:`ftarget = + remap.transferField(fsource,defaultValue)` +* In this instruction, the :tt:`defaultValue` is used to set the target value + in the case where there is no cell in the source mesh that overlap + the target mesh (for example when the source mesh correspond to a + geometrical sub-part of the target mesh). + +When executing the :tt:`remapper`, the result is a new field defined on +the target mesh, as illustrated on the figure below: + +.. image:: ../images/medop_projection_result.png + :align: center + +Exemple 09: Make a partition of a mesh using a field +---------------------------------------------------- + +:objective: This illustrates how to make a mesh partition using the + value of a field defined on this mesh. + +The input data is a MEDCoupling scalar field (:tt:`field`) defined on +a 3D mesh, and we want to use this field as a criterium to make a +partition of the mesh, for example by creating the mesh surface that +delimits the volumes where the field value is greater that a limit L +(and conversely the volumes where the field value is lower). + +.. image:: ../images/partition_mesh.png + :align: center + +The code below shows the simplest way to extract the cells where +:tt:`field>L` and to create the skin mesh: + +.. include:: ../../../tut/medcoupling/partition.py + :literal: + :start-after: # _T1A + :end-before: # _T1B + +At the end, the variable :tt:`skin` is a 2D mesh that can be saved in +a med file using the MEDLoader: + +.. image:: ../images/partition_skin.png + :align: center + +Advanced usages of the MEDMEM library +===================================== + +This section could explain how to process the physical data +(dataArray) and to manipulate the advanced concepts of the MEDMEM +library. + +.. Exemple 01: Create a field from an image +.. ---------------------------------------- + diff --git a/doc/dev/sphinx/fr/medcalc-userguide-gui.rst b/doc/dev/sphinx/fr/medcalc-userguide-gui.rst index a90efde32..0de116484 100644 --- a/doc/dev/sphinx/fr/medcalc-userguide-gui.rst +++ b/doc/dev/sphinx/fr/medcalc-userguide-gui.rst @@ -47,7 +47,7 @@ ci-dessous: au moyen des fonctions de manipulation fournies par l'interface textuelle (console python TUI). -.. image:: images/xmed-gui-withframe.png +.. image:: ../images/xmed-gui-withframe.png :align: center L'utilisation type des fonctions de manipulation de champs suit un @@ -89,22 +89,22 @@ Exemple 1: Explorer des sources de données * ajouter une source de données * fonctions "Extends field series", "Visualize" -.. |ICO_DATASOURCE_ADD| image:: images/ico_datasource_add.png +.. |ICO_DATASOURCE_ADD| image:: ../images/ico_datasource_add.png :height: 16px -.. |ICO_XMED| image:: images/ico_xmed.png +.. |ICO_XMED| image:: ../images/ico_xmed.png :height: 16px -.. |ICO_DATASOURCE_EXPAND| image:: images/ico_datasource_expandfield.png +.. |ICO_DATASOURCE_EXPAND| image:: ../images/ico_datasource_expandfield.png :height: 16px -.. |ICO_DATASOURCE_VIEW| image:: images/ico_datasource_view.png +.. |ICO_DATASOURCE_VIEW| image:: ../images/ico_datasource_view.png :height: 16px Au démarrage, le module de manipulation de champs, identifié par l'icône |ICO_XMED|, présente une interface vierge: -.. image:: images/xmed-gui-start.png +.. image:: ../images/xmed-gui-start.png :align: center :width: 800px @@ -113,7 +113,7 @@ données med dans le "dataspace". Pour cela, on clique sur l'icône "Add datasource" |ICO_DATASOURCE_ADD| qui propose de sélectionner un fichier med: -.. image:: images/xmed-gui-datasource-selectfile.png +.. image:: ../images/xmed-gui-datasource-selectfile.png :align: center :width: 800px @@ -130,11 +130,11 @@ au moyen de la commande "Expand field timeseries" champs. Le résultat est affiché sur l'image centrale. La liste des itérations du champ ``Pulse`` peut être consultée. -.. |IMG_DATASOURCE_EXPLORE| image:: images/xmed-gui-datasource-explore-zoom.png +.. |IMG_DATASOURCE_EXPLORE| image:: ../images/xmed-gui-datasource-explore-zoom.png :height: 340px -.. |IMG_DATASOURCE_MENUCON| image:: images/xmed-gui-datasource-menucontextuel-zoom.png +.. |IMG_DATASOURCE_MENUCON| image:: ../images/xmed-gui-datasource-menucontextuel-zoom.png :height: 340px -.. |IMG_DATASOURCE_EXPANDF| image:: images/xmed-gui-datasource-expand-zoom.png +.. |IMG_DATASOURCE_EXPANDF| image:: ../images/xmed-gui-datasource-expand-zoom.png :height: 340px +--------------------------+--------------------------+--------------------------+ @@ -154,7 +154,7 @@ viewer de SALOME. Pour cela, on sélectionne le pas de temps à visualiser et on utilise la commande "Visualize" |ICO_DATASOURCE_VIEW| disponible dans le menu contextuel associé: -.. image:: images/xmed-gui-datasource-visualize-zoom.png +.. image:: ../images/xmed-gui-datasource-visualize-zoom.png :align: center :width: 800px @@ -172,9 +172,9 @@ Exemple 2: Rassembler des champs issus de différentes sources * fonction "Use in workspace" * fonction "Save" -.. |ICO_DATASOURCE_USE| image:: images/ico_datasource_use.png +.. |ICO_DATASOURCE_USE| image:: ../images/ico_datasource_use.png :height: 16px -.. |ICO_WORKSPACE_SAVE| image:: images/ico_workspace_save.png +.. |ICO_WORKSPACE_SAVE| image:: ../images/ico_workspace_save.png :height: 16px L'objectif est de récupérer des données issues de différents fichiers @@ -189,7 +189,7 @@ deuxième source contient le maillage ``My2DMesh`` sur lequel sont définis deux champs de noms respectifs ``testfield1`` et ``testfield2``: -.. image:: images/xmed-userguide-example2-datasource.png +.. image:: ../images/xmed-userguide-example2-datasource.png :align: center :width: 800px @@ -202,7 +202,7 @@ sélectionne les champs et on utilise la commande "Use in workspace" champs sélectionnés apparaissent dans l'arborescence de l'espace de travail: -.. image:: images/xmed-userguide-example2-workspace.png +.. image:: ../images/xmed-userguide-example2-workspace.png :align: center :width: 800px @@ -211,7 +211,7 @@ La sauvegarde de l'espace de travail est faite au moyen de la commande d'outils du module. Une fenêtre de dialogue invite l'utilisateur à spécifier le nom du fichier de sauvegarde: -.. image:: images/xmed-userguide-example2-workspace-save.png +.. image:: ../images/xmed-userguide-example2-workspace-save.png :align: center :width: 800px @@ -251,7 +251,7 @@ précédent) et la commande ouvre alors une fenêtre de dialogue qui permet de préciser les données sur lesquelles on souhaite effectivement travailler et comment on veut les manoeuvrer: -.. image:: images/xmed-gui-datasource-useinworkspace-alias.png +.. image:: ../images/xmed-gui-datasource-useinworkspace-alias.png :align: center :width: 800px @@ -271,7 +271,7 @@ champ. Dans cet exemple, ```` vaut ``f3``, positionné ainsi par l'utilisateur pour rappeler que la variable correspond au pas de temps n°3: -.. image:: images/xmed-gui-workspace.png +.. image:: ../images/xmed-gui-workspace.png :align: center :width: 800px @@ -347,7 +347,7 @@ permet d'afficher la carte scalaire du champ dans le viewer:: Donne: -.. image:: images/xmed-gui-workspace-view.png +.. image:: ../images/xmed-gui-workspace-view.png :align: center :width: 800px @@ -439,7 +439,7 @@ remplacer le maillage support d'un champ par un autre à partir du moment où les deux maillages sont géométriquement identiques, c'est-à-dire que les noeuds ont les mêmes coordonnées spatiales. -.. |ICO_DATASOURCE_CHG| image:: images/ico_datasource_changeUnderlyingMesh.png +.. |ICO_DATASOURCE_CHG| image:: ../images/ico_datasource_changeUnderlyingMesh.png :height: 16px Dans l'exemple proposé, l'utilisateur sélectionne le premier pas de @@ -453,7 +453,7 @@ fenêtre de dialogue ci-dessous s'affiche et invite l'utilisateur à choisir le nouveau maillage support par sélection dans l'arborescence du "dataspace": -.. image:: images/xmed-gui-datasource-changeUnderlyingMesh.png +.. image:: ../images/xmed-gui-datasource-changeUnderlyingMesh.png :align: center Dans cet exemple, on sélectionne le maillage ``Grid_80x80_01`` support @@ -461,7 +461,7 @@ du champ ``StiffExp_01``, avec lequel on souhaite faire la comparaison. Après validation, l'arborescence du workspace contient le champ ``StiffExp_02`` défini sur le maillage ``Grid_80x80_01``: -.. image:: images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png +.. image:: ../images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png :align: center .. note:: La fonction "Change underlying mesh" ne modifie pas le champ @@ -552,7 +552,7 @@ des images qui représentent une grandeur physique en niveaux de gris sur un plan de coupe donné. L'image ci-dessous représente par exemple une vue interne du corps humain faite par IRM: -.. image:: images/xmed-irm.png +.. image:: ../images/xmed-irm.png :align: center :width: 600px @@ -561,7 +561,7 @@ cartesienne. Elle peut donc être modélisée sous la forme d'un champ scalaire dont les valeurs sont définies aux cellules d'un maillage réglés de même taille que l'image (en nombre de pixels): -.. image:: images/xmed-irm-field.png +.. image:: ../images/xmed-irm-field.png :align: center :width: 600px @@ -573,7 +573,7 @@ conservé):: $ /bin/salome/xmed/image2med.py -i myimage.png -m myfield.med -.. |ICO_IMAGESOURCE| image:: images/ico_imagesource.png +.. |ICO_IMAGESOURCE| image:: ../images/ico_imagesource.png :height: 16px Cette opération de conversion peut être faite automatiquement dans @@ -582,7 +582,7 @@ Source" |ICO_IMAGESOURCE| disponible dans la barre d'outils. Cette commande ouvre la fenêtre suivante pour inviter l'utilisateur à choisir un fichier image: -.. image:: images/medop_image2med_dialog.png +.. image:: ../images/medop_image2med_dialog.png :align: center Le nom du fichier med résultat est proposé par défaut (changement de @@ -597,7 +597,7 @@ désignent les champs créés à partir des deux images, on représente ``r = i1 + 5*(i2-i1)`` où le facteur 5 est arbitraire et sert à amplifier la zone d'intérêt (en haut de l'oeil gauche): -.. image:: images/xmed-irm-diff.png +.. image:: ../images/xmed-irm-diff.png :align: center :width: 600px @@ -605,13 +605,13 @@ L'exemple ci-dessous est le résultat du chargement d'une image tomographique issue du projet MAP (Charles Toulemonde, EDF/R&D/MMC). L'image tomographique: -.. image:: images/champ_altitude_MAP.png +.. image:: ../images/champ_altitude_MAP.png :align: center :width: 600px Le résultat du chargement: -.. image:: images/medop_image2med_tomographie.png +.. image:: ../images/medop_image2med_tomographie.png :align: center :width: 800px @@ -636,14 +636,14 @@ Pour cela, il faut sélectionner dans l'espace de travail les champs à exporter, puis déclencher la fonction d'export depuis le menu contextuel associé: -.. image:: images/medop_exportparavis.png +.. image:: ../images/medop_exportparavis.png :align: center Les champs sélectionnés sont regroupés dans une entrée MED du navigateur PARAVIS, et le premier champ est affiché sous forme de carte de champ: -.. image:: images/medop_exportparavis_result.png +.. image:: ../images/medop_exportparavis_result.png :align: center :width: 800px @@ -662,14 +662,14 @@ Toutes les opérations menées au moyen de l'interface graphique peuvent être réalisées (avec plus ou moins de facilité) avec l'interface textuelle. Le module de manipulation de champs peut même être utilisé exclusivement en mode texte. -.. - Pour cela, on lance la commande:: + +Pour cela, on lance la commande:: $ /medop.sh -.. - Cette commande ouvre une console de commandes ``medop>``. Un fichier - med peut être chargé et travaillé, par exemple pour créer des champs à - partir des données du fichier. + +Cette commande ouvre une console de commandes ``medop>``. Un fichier +med peut être chargé et travaillé, par exemple pour créer des champs à +partir des données du fichier. Que l'on soit en mode texte pur ou en mode graphique, un séquence de travail type dans la console peut ressembler au jeu d'instructions diff --git a/doc/dev/sphinx/fr/medop-prototype-develguide.rst b/doc/dev/sphinx/fr/medop-prototype-develguide.rst index 0bc2eae90..60e09a3b8 100644 --- a/doc/dev/sphinx/fr/medop-prototype-develguide.rst +++ b/doc/dev/sphinx/fr/medop-prototype-develguide.rst @@ -131,7 +131,7 @@ Implantation technique Le diagramme ci-dessous représente l'organisation des principaux paquets logiciels du module MED: -.. image:: images/medmem-layers.png +.. image:: ../images/medmem-layers.png :align: center Les cadres bleus représentent le lieu d'implantation des @@ -149,7 +149,7 @@ Architecture technique Les schéma ci-dessous représente les objets informatiques qui sont à l'oeuvre pour la réalisation des opérations sur les champs: -.. image:: /images/xmed-architecture.png +.. image:: ../images/xmed-architecture.png :align: center :alt: Objets mis en oeuvre dans l'interface de manipulation de champs @@ -309,8 +309,8 @@ soit mis à disposition dans l'interface python sous un nom de variable à choisir. Les captures d'écran ci-dessous montre la séquence graphique en images: -.. |IMG_SELECT| image:: images/medop-gui-selectfield_scale.png -.. |IMG_ALIAS| image:: images/medop-gui-aliasfield_scale.png +.. |IMG_SELECT| image:: ../images/medop-gui-selectfield_scale.png +.. |IMG_ALIAS| image:: ../images/medop-gui-aliasfield_scale.png +---------------+---------------+ | |IMG_SELECT| | |IMG_ALIAS| | @@ -540,8 +540,8 @@ est implémentée dans la maquette pour permettre le contrôle visuel d'un champ au moyen d'une représentation 3D (une carte spatiale du module du champ dans l'exemple implémenté par défaut): -.. |IMG_VISU| image:: images/medop-gui-visufield_scale.png -.. |IMG_RESULT| image:: images/medop-gui-result_scale.png +.. |IMG_VISU| image:: ../images/medop-gui-visufield_scale.png +.. |IMG_RESULT| image:: ../images/medop-gui-result_scale.png +---------------+---------------+ | |IMG_VISU| | |IMG_RESULT| | diff --git a/doc/dev/sphinx/fr/medop-prototype-medmem.rst b/doc/dev/sphinx/fr/medop-prototype-medmem.rst index 9c29fee19..3e825e8cb 100644 --- a/doc/dev/sphinx/fr/medop-prototype-medmem.rst +++ b/doc/dev/sphinx/fr/medop-prototype-medmem.rst @@ -65,7 +65,7 @@ Le modèle de classes MEDMEM est structuré autour des notions de MESH champs). Ces notions reprennent en partie des concepts du modèle MED. Le diagramme ci-dessous présente les classes principales: -.. image:: images/med-uml-main_60pc.png +.. image:: ../images/med-uml-main_60pc.png :align: center Le conteneur de plus haut niveau dans MEDMEM est la classe MED. La @@ -309,7 +309,7 @@ données MEDMEM. Le schéma ci-dessous représente les éléments informatiques qui composent l'architecture CORBA du module MED: -.. image:: images/medmem-corba-layers.png +.. image:: ../images/medmem-corba-layers.png :align: center Les structures MEDMEM (données physiques) et SALOME_MED (wrapping diff --git a/doc/dev/sphinx/fr/medop-prototype-overview.rst b/doc/dev/sphinx/fr/medop-prototype-overview.rst index 5eaa00e08..245821002 100644 --- a/doc/dev/sphinx/fr/medop-prototype-overview.rst +++ b/doc/dev/sphinx/fr/medop-prototype-overview.rst @@ -35,7 +35,7 @@ textuelle sous les noms de variables f1 et f2. L'image montre le contrôle visuel du résultat de l'opération f1+f2-(f1-f2)^2 tapée en ligne de commande: -.. image:: images/medop-gui-result.png +.. image:: ../images/medop-gui-result.png :align: center La séquence ci-après montre le cas d'utilisation complet en @@ -51,10 +51,10 @@ images: l'opération ``f1+f2-(f1-f2)^2`` et contrôle visuel du résultat, récupéré ici dans une variable de nom ``result``. -.. |IMG_SELECT| image:: images/medop-gui-selectfield_scale.png -.. |IMG_ALIAS| image:: images/medop-gui-aliasfield_scale.png -.. |IMG_VISU| image:: images/medop-gui-visufield_scale.png -.. |IMG_RESULT| image:: images/medop-gui-result_scale.png +.. |IMG_SELECT| image:: ../images/medop-gui-selectfield_scale.png +.. |IMG_ALIAS| image:: ../images/medop-gui-aliasfield_scale.png +.. |IMG_VISU| image:: ../images/medop-gui-visufield_scale.png +.. |IMG_RESULT| image:: ../images/medop-gui-result_scale.png +---------------+---------------+ | |IMG_SELECT| | |IMG_ALIAS| | diff --git a/src/MEDCalc/tut/README.txt b/doc/tut/README.txt similarity index 100% rename from src/MEDCalc/tut/README.txt rename to doc/tut/README.txt diff --git a/src/MEDCalc/tut/addfields/README.txt b/doc/tut/addfields/README.txt similarity index 100% rename from src/MEDCalc/tut/addfields/README.txt rename to doc/tut/addfields/README.txt diff --git a/src/MEDCalc/tut/addfields/addition.py b/doc/tut/addfields/addition.py similarity index 100% rename from src/MEDCalc/tut/addfields/addition.py rename to doc/tut/addfields/addition.py diff --git a/src/MEDCalc/tut/addfields/operations.py b/doc/tut/addfields/operations.py similarity index 100% rename from src/MEDCalc/tut/addfields/operations.py rename to doc/tut/addfields/operations.py diff --git a/src/MEDCalc/tut/addfields/timeseries.med b/doc/tut/addfields/timeseries.med similarity index 100% rename from src/MEDCalc/tut/addfields/timeseries.med rename to doc/tut/addfields/timeseries.med diff --git a/src/MEDCalc/tut/medcoupling/README.txt b/doc/tut/medcoupling/README.txt similarity index 100% rename from src/MEDCalc/tut/medcoupling/README.txt rename to doc/tut/medcoupling/README.txt diff --git a/src/MEDCalc/tut/medcoupling/env.sh b/doc/tut/medcoupling/env.sh similarity index 100% rename from src/MEDCalc/tut/medcoupling/env.sh rename to doc/tut/medcoupling/env.sh diff --git a/src/MEDCalc/tut/medcoupling/images/avatar.png b/doc/tut/medcoupling/images/avatar.png similarity index 100% rename from src/MEDCalc/tut/medcoupling/images/avatar.png rename to doc/tut/medcoupling/images/avatar.png diff --git a/src/MEDCalc/tut/medcoupling/images/irm.png b/doc/tut/medcoupling/images/irm.png similarity index 100% rename from src/MEDCalc/tut/medcoupling/images/irm.png rename to doc/tut/medcoupling/images/irm.png diff --git a/src/MEDCalc/tut/medcoupling/images/lena.png b/doc/tut/medcoupling/images/lena.png similarity index 100% rename from src/MEDCalc/tut/medcoupling/images/lena.png rename to doc/tut/medcoupling/images/lena.png diff --git a/src/MEDCalc/tut/medcoupling/images/tests.pgm b/doc/tut/medcoupling/images/tests.pgm similarity index 100% rename from src/MEDCalc/tut/medcoupling/images/tests.pgm rename to doc/tut/medcoupling/images/tests.pgm diff --git a/src/MEDCalc/tut/medcoupling/partition.py b/doc/tut/medcoupling/partition.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/partition.py rename to doc/tut/medcoupling/partition.py diff --git a/src/MEDCalc/tut/medcoupling/pyfunctions/__init__.py b/doc/tut/medcoupling/pyfunctions/__init__.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/pyfunctions/__init__.py rename to doc/tut/medcoupling/pyfunctions/__init__.py diff --git a/src/MEDCalc/tut/medcoupling/pyfunctions/functions.py b/doc/tut/medcoupling/pyfunctions/functions.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/pyfunctions/functions.py rename to doc/tut/medcoupling/pyfunctions/functions.py diff --git a/src/MEDCalc/tut/medcoupling/pyfunctions/lagrange.py b/doc/tut/medcoupling/pyfunctions/lagrange.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/pyfunctions/lagrange.py rename to doc/tut/medcoupling/pyfunctions/lagrange.py diff --git a/src/MEDCalc/tut/medcoupling/pyfunctions/plotter.py b/doc/tut/medcoupling/pyfunctions/plotter.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/pyfunctions/plotter.py rename to doc/tut/medcoupling/pyfunctions/plotter.py diff --git a/src/MEDCalc/tut/medcoupling/test-paravis.py b/doc/tut/medcoupling/test-paravis.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/test-paravis.py rename to doc/tut/medcoupling/test-paravis.py diff --git a/src/MEDCalc/tut/medcoupling/testmed_gendata.py b/doc/tut/medcoupling/testmed_gendata.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/testmed_gendata.py rename to doc/tut/medcoupling/testmed_gendata.py diff --git a/src/MEDCalc/tut/medcoupling/testmed_lena.py b/doc/tut/medcoupling/testmed_lena.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/testmed_lena.py rename to doc/tut/medcoupling/testmed_lena.py diff --git a/src/MEDCalc/tut/medcoupling/testmed_simple.py b/doc/tut/medcoupling/testmed_simple.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/testmed_simple.py rename to doc/tut/medcoupling/testmed_simple.py diff --git a/src/MEDCalc/tut/medcoupling/testpil.py b/doc/tut/medcoupling/testpil.py similarity index 100% rename from src/MEDCalc/tut/medcoupling/testpil.py rename to doc/tut/medcoupling/testpil.py diff --git a/src/MEDCalc/tut/medloader/Makefile b/doc/tut/medloader/Makefile similarity index 100% rename from src/MEDCalc/tut/medloader/Makefile rename to doc/tut/medloader/Makefile diff --git a/src/MEDCalc/tut/medloader/cmesh.py b/doc/tut/medloader/cmesh.py similarity index 100% rename from src/MEDCalc/tut/medloader/cmesh.py rename to doc/tut/medloader/cmesh.py diff --git a/src/MEDCalc/tut/medloader/explore.py b/doc/tut/medloader/explore.py similarity index 100% rename from src/MEDCalc/tut/medloader/explore.py rename to doc/tut/medloader/explore.py diff --git a/src/MEDCalc/tut/medloader/madnex_field.med b/doc/tut/medloader/madnex_field.med similarity index 100% rename from src/MEDCalc/tut/medloader/madnex_field.med rename to doc/tut/medloader/madnex_field.med diff --git a/src/MEDCalc/tut/medloader/madnex_grid.med b/doc/tut/medloader/madnex_grid.med similarity index 100% rename from src/MEDCalc/tut/medloader/madnex_grid.med rename to doc/tut/medloader/madnex_grid.med diff --git a/src/MEDCalc/tut/medloader/manage.py b/doc/tut/medloader/manage.py similarity index 100% rename from src/MEDCalc/tut/medloader/manage.py rename to doc/tut/medloader/manage.py diff --git a/src/MEDCalc/tut/medloader/testamel.py b/doc/tut/medloader/testamel.py similarity index 100% rename from src/MEDCalc/tut/medloader/testamel.py rename to doc/tut/medloader/testamel.py diff --git a/src/MEDCalc/tut/medloader/timeseries.med b/doc/tut/medloader/timeseries.med similarity index 100% rename from src/MEDCalc/tut/medloader/timeseries.med rename to doc/tut/medloader/timeseries.med diff --git a/src/MEDCalc/tut/medloader/tutorial.py b/doc/tut/medloader/tutorial.py similarity index 100% rename from src/MEDCalc/tut/medloader/tutorial.py rename to doc/tut/medloader/tutorial.py diff --git a/src/MEDCalc/tut/mergefields/additionaldata/MergeFields.jpg b/doc/tut/mergefields/additionaldata/MergeFields.jpg similarity index 100% rename from src/MEDCalc/tut/mergefields/additionaldata/MergeFields.jpg rename to doc/tut/mergefields/additionaldata/MergeFields.jpg diff --git a/src/MEDCalc/tut/mergefields/additionaldata/MergeFields.png b/doc/tut/mergefields/additionaldata/MergeFields.png similarity index 100% rename from src/MEDCalc/tut/mergefields/additionaldata/MergeFields.png rename to doc/tut/mergefields/additionaldata/MergeFields.png diff --git a/src/MEDCalc/tut/mergefields/additionaldata/splitdemo.vtu b/doc/tut/mergefields/additionaldata/splitdemo.vtu similarity index 100% rename from src/MEDCalc/tut/mergefields/additionaldata/splitdemo.vtu rename to doc/tut/mergefields/additionaldata/splitdemo.vtu diff --git a/src/MEDCalc/tut/mergefields/additionaldata/splitdemo_split.vtu b/doc/tut/mergefields/additionaldata/splitdemo_split.vtu similarity index 100% rename from src/MEDCalc/tut/mergefields/additionaldata/splitdemo_split.vtu rename to doc/tut/mergefields/additionaldata/splitdemo_split.vtu diff --git a/src/MEDCalc/tut/mergefields/simpledemo/README.txt b/doc/tut/mergefields/simpledemo/README.txt similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/README.txt rename to doc/tut/mergefields/simpledemo/README.txt diff --git a/src/MEDCalc/tut/mergefields/simpledemo/field1.med b/doc/tut/mergefields/simpledemo/field1.med similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/field1.med rename to doc/tut/mergefields/simpledemo/field1.med diff --git a/src/MEDCalc/tut/mergefields/simpledemo/field2.med b/doc/tut/mergefields/simpledemo/field2.med similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/field2.med rename to doc/tut/mergefields/simpledemo/field2.med diff --git a/src/MEDCalc/tut/mergefields/simpledemo/field3.med b/doc/tut/mergefields/simpledemo/field3.med similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/field3.med rename to doc/tut/mergefields/simpledemo/field3.med diff --git a/src/MEDCalc/tut/mergefields/simpledemo/field4.med b/doc/tut/mergefields/simpledemo/field4.med similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/field4.med rename to doc/tut/mergefields/simpledemo/field4.med diff --git a/src/MEDCalc/tut/mergefields/simpledemo/simpledemo.py b/doc/tut/mergefields/simpledemo/simpledemo.py similarity index 100% rename from src/MEDCalc/tut/mergefields/simpledemo/simpledemo.py rename to doc/tut/mergefields/simpledemo/simpledemo.py diff --git a/src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_1.med b/doc/tut/mergefields/splitdemo/DomainMesh_1.med similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_1.med rename to doc/tut/mergefields/splitdemo/DomainMesh_1.med diff --git a/src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_2.med b/doc/tut/mergefields/splitdemo/DomainMesh_2.med similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_2.med rename to doc/tut/mergefields/splitdemo/DomainMesh_2.med diff --git a/src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_3.med b/doc/tut/mergefields/splitdemo/DomainMesh_3.med similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_3.med rename to doc/tut/mergefields/splitdemo/DomainMesh_3.med diff --git a/src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_4.med b/doc/tut/mergefields/splitdemo/DomainMesh_4.med similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/DomainMesh_4.med rename to doc/tut/mergefields/splitdemo/DomainMesh_4.med diff --git a/src/MEDCalc/tut/mergefields/splitdemo/README.txt b/doc/tut/mergefields/splitdemo/README.txt similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/README.txt rename to doc/tut/mergefields/splitdemo/README.txt diff --git a/src/MEDCalc/tut/mergefields/splitdemo/splitdemo.py b/doc/tut/mergefields/splitdemo/splitdemo.py similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/splitdemo.py rename to doc/tut/mergefields/splitdemo/splitdemo.py diff --git a/src/MEDCalc/tut/mergefields/splitdemo/splitdemo_partiel.py b/doc/tut/mergefields/splitdemo/splitdemo_partiel.py similarity index 100% rename from src/MEDCalc/tut/mergefields/splitdemo/splitdemo_partiel.py rename to doc/tut/mergefields/splitdemo/splitdemo_partiel.py diff --git a/src/MEDCalc/tut/projection/additionaldata/Projection1.jpg b/doc/tut/projection/additionaldata/Projection1.jpg similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/Projection1.jpg rename to doc/tut/projection/additionaldata/Projection1.jpg diff --git a/src/MEDCalc/tut/projection/additionaldata/Projection1.png b/doc/tut/projection/additionaldata/Projection1.png similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/Projection1.png rename to doc/tut/projection/additionaldata/Projection1.png diff --git a/src/MEDCalc/tut/projection/additionaldata/Projection2.jpg b/doc/tut/projection/additionaldata/Projection2.jpg similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/Projection2.jpg rename to doc/tut/projection/additionaldata/Projection2.jpg diff --git a/src/MEDCalc/tut/projection/additionaldata/Projection2.png b/doc/tut/projection/additionaldata/Projection2.png similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/Projection2.png rename to doc/tut/projection/additionaldata/Projection2.png diff --git a/src/MEDCalc/tut/projection/additionaldata/SRMA_Lionel.brep b/doc/tut/projection/additionaldata/SRMA_Lionel.brep similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/SRMA_Lionel.brep rename to doc/tut/projection/additionaldata/SRMA_Lionel.brep diff --git a/src/MEDCalc/tut/projection/additionaldata/Study1.hdf b/doc/tut/projection/additionaldata/Study1.hdf similarity index 100% rename from src/MEDCalc/tut/projection/additionaldata/Study1.hdf rename to doc/tut/projection/additionaldata/Study1.hdf diff --git a/src/MEDCalc/tut/projection/demomed/README.txt b/doc/tut/projection/demomed/README.txt similarity index 100% rename from src/MEDCalc/tut/projection/demomed/README.txt rename to doc/tut/projection/demomed/README.txt diff --git a/src/MEDCalc/tut/projection/demomed/demo_createsource.py b/doc/tut/projection/demomed/demo_createsource.py similarity index 100% rename from src/MEDCalc/tut/projection/demomed/demo_createsource.py rename to doc/tut/projection/demomed/demo_createsource.py diff --git a/src/MEDCalc/tut/projection/demomed/demo_loadsource.py b/doc/tut/projection/demomed/demo_loadsource.py similarity index 100% rename from src/MEDCalc/tut/projection/demomed/demo_loadsource.py rename to doc/tut/projection/demomed/demo_loadsource.py diff --git a/src/MEDCalc/tut/projection/demomed/fieldsource.med b/doc/tut/projection/demomed/fieldsource.med similarity index 100% rename from src/MEDCalc/tut/projection/demomed/fieldsource.med rename to doc/tut/projection/demomed/fieldsource.med diff --git a/src/MEDCalc/tut/projection/demomed/meshsource.med b/doc/tut/projection/demomed/meshsource.med similarity index 100% rename from src/MEDCalc/tut/projection/demomed/meshsource.med rename to doc/tut/projection/demomed/meshsource.med diff --git a/src/MEDCalc/tut/projection/demomed/meshtarget.med b/doc/tut/projection/demomed/meshtarget.med similarity index 100% rename from src/MEDCalc/tut/projection/demomed/meshtarget.med rename to doc/tut/projection/demomed/meshtarget.med diff --git a/src/MEDCalc/tut/projection/demovtu/MeshSource.med b/doc/tut/projection/demovtu/MeshSource.med similarity index 100% rename from src/MEDCalc/tut/projection/demovtu/MeshSource.med rename to doc/tut/projection/demovtu/MeshSource.med diff --git a/src/MEDCalc/tut/projection/demovtu/MeshTarget.med b/doc/tut/projection/demovtu/MeshTarget.med similarity index 100% rename from src/MEDCalc/tut/projection/demovtu/MeshTarget.med rename to doc/tut/projection/demovtu/MeshTarget.med diff --git a/src/MEDCalc/tut/projection/demovtu/README.txt b/doc/tut/projection/demovtu/README.txt similarity index 100% rename from src/MEDCalc/tut/projection/demovtu/README.txt rename to doc/tut/projection/demovtu/README.txt diff --git a/src/MEDCalc/tut/projection/demovtu/projection.py b/doc/tut/projection/demovtu/projection.py similarity index 100% rename from src/MEDCalc/tut/projection/demovtu/projection.py rename to doc/tut/projection/demovtu/projection.py diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index ea4a204f4..fe3061ee4 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -124,9 +124,9 @@ SET(MED_RESOURCES_FILES Old_maillage_chemvalIV_cas1_40elts.med pointe_nomorereadable21.med # pointe.med - poly3D.med +# poly3D.med polyedres.med - polygones.med +# polygones.med recoll_bord.med test19.med test_2D.med @@ -180,18 +180,18 @@ SET(MED_RESOURCES_FILES # MovedHexaBox2.med # BoxTetra2.med # square1.med - square1_split - square1_split1.med - square1_split2.med - square1_split3.med +# square1_split +# square1_split1.med +# square1_split2.med +# square1_split3.med # square2.med - square2_split - square2_split1.med - square2_split2.med +# square2_split +# square2_split1.med +# square2_split2.med testStructCart3D.med - Mesh3D_10_2d1.med - Mesh3D_10_2d2.med - Mesh3D_11.med +# Mesh3D_10_2d1.med +# Mesh3D_10_2d2.med +# Mesh3D_11.med # Pol1.fig # Pol2.fig # Pol3.fig -- 2.39.2