// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: MED.idl // Project: SALOME // /*! This file contains the main IDL definitions of the %MED component in %SALOME application. */ #ifndef MED_IDL #define MED_IDL /*! \defgroup MED SALOME MED component This component is dedicated to the mounting in memory of a .med file. some services of that component store CORBA objects (MED, MESH, FIELD) in the study and/or give a direct access to those objects. */ #include "SALOME_GenericObj.idl" #include "SALOME_Exception.idl" #include "SALOME_Component.idl" #include "SALOME_Types.idl" #include "SALOMEDS.idl" #include "SALOME_Comm.idl" module SALOME_MED { /*! \ingroup MED This package contains a set of interfaces used for %SALOME %MED component. */ interface FIELD; interface FAMILY; interface GROUP; interface GMESH; interface MESH; interface SUPPORT; /*! This enumeration contains a set of elements defining the type of geometrical elements which constitue a %Mesh. */ typedef long medGeometryElement; const medGeometryElement MED_NONE = 0; const medGeometryElement MED_POINT1 = 1; const medGeometryElement MED_SEG2 = 102; const medGeometryElement MED_SEG3 = 103; const medGeometryElement MED_TRIA3 = 203; const medGeometryElement MED_QUAD4 = 204; const medGeometryElement MED_TRIA6 = 206; const medGeometryElement MED_QUAD8 = 208; const medGeometryElement MED_TETRA4 = 304; const medGeometryElement MED_PYRA5 = 305; const medGeometryElement MED_PENTA6 = 306; const medGeometryElement MED_HEXA8 = 308; const medGeometryElement MED_TETRA10 = 310; const medGeometryElement MED_PYRA13 = 313; const medGeometryElement MED_PENTA15 = 315; const medGeometryElement MED_HEXA20 = 320; const medGeometryElement MED_POLYGON = 400; const medGeometryElement MED_POLYHEDRA = 500; const medGeometryElement MED_ALL_ELEMENTS = 999; /*! This enumeration contains a set of elements defining the structural elements (entities) which constitue a %Mesh. */ typedef long medEntityMesh; const medEntityMesh MED_CELL = 0; const medEntityMesh MED_FACE = 1; const medEntityMesh MED_EDGE = 2; const medEntityMesh MED_NODE = 3; const medEntityMesh MED_ALL_ENTITIES = 4; /*! This enumeration contains a set of modes to store data in an array. For example an array of coordinates in 3D; tow storage may be considered: - X1,Y1,Z1,X2,Y2,Z2,...,Xn,Yn,Zn if MED_FULL_INTERLACE - X1,X2,...,Xn,Y1,Y2,...,Yn,Z1,Z2,...,Zn if MED_NO_INTERLACE */ typedef long medModeSwitch; const medModeSwitch MED_FULL_INTERLACE = 0; const medModeSwitch MED_NO_INTERLACE = 1; const medModeSwitch MED_NO_INTERLACE_BY_TYPE = 2; /*! This enumeration contains a set of elements defining the type of connectivity. */ typedef long medConnectivity; const medConnectivity MED_NODAL = 0; const medConnectivity MED_DESCENDING = 1; /*! enumeration contains a set of elements defining the type of driver. */ typedef long medDriverTypes; /*! medGeometryElement_array; /*! An array of %FAMILY */ typedef sequence Family_array; /*! An array of %GROUP */ typedef sequence Group_array; // ---------------------- // base mesh interface // ---------------------- interface GMESH : SALOME::MultiCommClass, SALOME::GenericObj { // Index range begins from 1 // General Informations //--------------------- /*! Returns the name of the mesh . */ string getName() raises (SALOME::SALOME_Exception); /*! Returns space dimension. */ long getSpaceDimension() raises (SALOME::SALOME_Exception); /*! Returns mesh dimension. Example : - we have only MED_TETRA4 in MED_CELL : MeshDimension = 3D - we have only MED_QUAD4 in MED_CELL : MeshDimension = 2D - we have both MED_SEG2 and MED_TRIA3 in MED_CELL : MeshDimension = 2D */ long getMeshDimension() raises (SALOME::SALOME_Exception); /*! Pour Alliances */ boolean getIsAGrid() raises (SALOME::SALOME_Exception); /*! Returns coordinate system : - "CARTESIAN" - "CYLINDRICAL" - "SPHERICAL" */ string getCoordinatesSystem() raises (SALOME::SALOME_Exception); /*! Returns the number of nodes defined in the mesh. */ long getNumberOfNodes() raises (SALOME::SALOME_Exception); /*! Returns an array containing the names of coordinates. Example : - x,y,z - r,teta,phi - ... It could be empty. */ SALOME_TYPES::ListOfString getCoordinatesNames() raises (SALOME::SALOME_Exception); /*! Returns an array containing the units of coordinates (cm, m, mm, ...) It could be empty. By defult IS is used (meter). */ SALOME_TYPES::ListOfString getCoordinatesUnits() raises (SALOME::SALOME_Exception); /*! Returns the %SUPPORT containing the boundary elements of the mesh. */ SUPPORT getBoundaryElements(in medEntityMesh Entity) raises (SALOME::SALOME_Exception); /*! Returns the %SUPPORT defined on all the element of an Entity. */ SUPPORT getSupportOnAll(in medEntityMesh Entity) raises (SALOME::SALOME_Exception); /*! Returns the %SUPPORT containing the boundary elements of the support mySupport3D. */ SUPPORT getSkin(in SUPPORT mySupport3D ) raises (SALOME::SALOME_Exception); struct coordinateInfos { string coordSystem; SALOME_TYPES::ListOfString coordNames; SALOME_TYPES::ListOfString coordUnits; }; coordinateInfos getCoordGlobal() raises (SALOME::SALOME_Exception); // Connectivity // ------------ /*! Returns the number of defferent %medGeometryElement types existing in the specified entity. \note Not implemented for MED_ALL_ENTITIES. */ long getNumberOfTypes(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns an array of all %medGeometryElement types existing in the mesh. \note Not implemented for MED_ALL_ENTITIES. */ medGeometryElement_array getTypes(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns the number of elements of type %medGeometryElement. Note : - Implemented for MED_ALL_ELEMENTS - Not implemented for MED_ALL_ENTITIES */ long getNumberOfElements(in medEntityMesh entity, in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); medGeometryElement getElementType (in medEntityMesh entity, in long number) raises (SALOME::SALOME_Exception); // Families and Groups // ------------------- /*! Returns the number of all families. */ long getNumberOfFamilies(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns the number of all groups. */ long getNumberOfGroups(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns an array of all families. */ Family_array getFamilies(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns the reference to i-th family. \note i is bounded by 1 and NumberOfFamilies. */ FAMILY getFamily(in medEntityMesh entity,in long familyNumber) raises (SALOME::SALOME_Exception); /*! Returns an array of all groups. */ Group_array getGroups(in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Returns the reference to i-th group. \note i is bounded by 1 and NumberOfGroups. */ GROUP getGroup(in medEntityMesh entity,in long groupNumber) raises (SALOME::SALOME_Exception); // Others // ------ /*! Returns a field on mySupport containing volume. \note mySupport must be on MED_CELL entity and MeshDimension must be 3D. */ FIELD getVolume(in SUPPORT mySupport) raises (SALOME::SALOME_Exception); /*! Returns a field on mySupport containing area. \note mySupport must be on MED_FACE entity. */ FIELD getArea(in SUPPORT mySupport) raises (SALOME::SALOME_Exception); /*! Returns a field on mySupport containing length. \note mySupport must be on MED_EDGE entity. */ FIELD getLength(in SUPPORT mySupport) raises (SALOME::SALOME_Exception); /*! Returns a field on mySupport containing normal. \note mySupport must be on MED_FACE entity if MeshDimension and SpaceDimension=3D and on MED_EDGE if MeshDimension and SpaceDimension=2D. */ FIELD getNormal(in SUPPORT mySupport) raises (SALOME::SALOME_Exception); /*! Returns a field on mySupport containing barycenter. */ FIELD getBarycenter(in SUPPORT mySupport) raises (SALOME::SALOME_Exception); /* Returns a field on mySupport containing neighbourhood. */ // FIELD getNeighbourhood(in SUPPORT mySupport) // raises (SALOME::SALOME_Exception); // Read & Write // ----------- /*! Adds the Mesh in the StudyManager. */ void addInStudy(in SALOMEDS::Study myStudy, in GMESH myIor ) raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection); // Add a MED/VTK/... driver // Multiple drivers can be added whatever the type long addDriver (in medDriverTypes driverType, in string fileName, in string meshName) raises (SALOME::SALOME_Exception); // Remove a driver void rmDriver (in long i) raises (SALOME::SALOME_Exception); // void read (in long i) raises (SALOME::SALOME_Exception); void write (in long i, in string driverMeshName) raises (SALOME::SALOME_Exception); /*! Internal Corba method. */ long getCorbaIndex() raises (SALOME::SALOME_Exception); struct meshInfos { string name ; long spaceDimension ; long meshDimension; long numberOfNodes ; boolean isAGrid; Family_array famNode; Family_array famEdge; Family_array famFace; Family_array famCell; Group_array groupNode; Group_array groupEdge; Group_array groupFace; Group_array groupCell; }; meshInfos getMeshGlobal() raises (SALOME::SALOME_Exception); boolean areEquals(in GMESH other); MESH convertInMESH(); }; // ---------------------- // mesh interface // ---------------------- interface MESH : GMESH { /*! Pour Alliances */ boolean existConnectivity (in medConnectivity mode, in medEntityMesh entity) raises (SALOME::SALOME_Exception); // Coordinates //------------ /*! Returns an array of coordinates stored in any type */ SALOME_TYPES::ListOfDouble getCoordinates(in medModeSwitch typeSwitch) raises (SALOME::SALOME_Exception); /*! Returns an array (Sender) of coordinates stored in any type.\n It could be used in a Client code using the MED Client classes. */ SALOME::SenderDouble getSenderForCoordinates(in medModeSwitch typeSwitch) raises (SALOME::SALOME_Exception); /*! Returns coordinate n° Number on axis n° Axis */ double getCoordinate(in long Number, in long Axis) raises (SALOME::SALOME_Exception); /*! Returns the %SUPPORT containing the boundary elements of the mesh. */ SALOME_TYPES::ListOfLong getGlobalNumberingIndex(in medEntityMesh entity) ; // Connectivity // ------------ /*! Give, in full or no interlace mode (for nodal connectivity), descending or nodal connectivity. You must give a %medEntityMesh (ie:MED_EDGE) and a %medGeometryElement (ie:MED_SEG3). */ SALOME_TYPES::ListOfLong getConnectivity(in medConnectivity mode, in medEntityMesh entity, in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! Idem getConnectivity but return a Sender.\n It could be used in a Client code using the MED Client classes. */ SALOME::SenderInt getSenderForConnectivity(in medConnectivity mode, in medEntityMesh entity, in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! Give morse index array to use with getConnectivity(mode,entity,MED_ALL_ELEMENTS). Each value give start index for corresponding entity in connectivity array. Example : i-th element, j-th node of it : - In C mode : Connectivity[ConnectivityIndex[i]-1+j-1] - In fortran mode : Connectivity[ConnectivityIndex[i]+j] */ SALOME_TYPES::ListOfLong getConnectivityIndex(in medConnectivity mode, in medEntityMesh entity) raises (SALOME::SALOME_Exception); /*! Idem getConnectivityIndex but return a Sender.\n It could be used in a Client code using the MED Client classes. */ SALOME::SenderInt getSenderForConnectivityIndex(in medConnectivity mode, in medEntityMesh entity, in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! Gets a global number of the element which have the same connectivity as the connectivity argument. */ long getElementNumber(in medConnectivity mode, in medEntityMesh entity, in medGeometryElement type, in SALOME_TYPES::ListOfLong connectivity) raises (SALOME::SALOME_Exception); /*! Returns a reverse connectivity to MED_CELL. If mode=MED_NODAL, the array contains, for each node, all cells arround it. If mode=MED_DESCENDING, the array contains, for each face (or edge), the 2 cells of each side. First is cell which face normal is outgoing. */ SALOME_TYPES::ListOfLong getReverseConnectivity(in medConnectivity mode) raises (SALOME::SALOME_Exception); /*! Give index array to use with getReverseConnectivity(MED_NODAL). This method is not used with MED_DESCENDING mode, because we have allways two cells. See getConnectivityIndex for details. */ SALOME_TYPES::ListOfLong getReverseConnectivityIndex(in medConnectivity mode) raises (SALOME::SALOME_Exception); struct connectivityInfos { long numberOfNodes; medGeometryElement_array meshTypes; SALOME_TYPES::ListOfLong numberOfElements; SALOME_TYPES::ListOfLong nodalConnectivityLength; long entityDimension; }; connectivityInfos getConnectGlobal(in medEntityMesh entity) raises (SALOME::SALOME_Exception); }; // ---------------------- // Support interface // ---------------------- interface SUPPORT : SALOME::MultiCommClass, SALOME::GenericObj { /*! Returns the name of the support. */ string getName() raises (SALOME::SALOME_Exception); /*! Returns the description of the support. */ string getDescription() raises (SALOME::SALOME_Exception); /*! Returns a reference to the mesh. */ GMESH getMesh() raises (SALOME::SALOME_Exception); /*! Returns the type of %medEntityMesh used by the support. \note A support deals only with one entity's type (for example : MED_FACE or MED_NODE) */ medEntityMesh getEntity() raises (SALOME::SALOME_Exception); /*! Returns True if all elements of this entity are engaged, False otherwise. If True, you must use mesh reference (getMesh) to get more information. */ boolean isOnAllElements() raises (SALOME::SALOME_Exception); /*! If the method %isOnAllElements() returns False, this method returns the number of elements in the support. Example : number of MED_TRIA3 or MED_ALL_ELEMETNS elements in entity of support. \note If %SUPPORT is defined on MED_NODE, use MED_NONE %medGeometryElement type. */ long getNumberOfElements(in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); long getNumberOfTypes() raises (SALOME::SALOME_Exception); /*! If isOnAllElements is False, returns an array of %medGeometryElement types used by the support. %medEntityMesh is given by getEntity. */ medGeometryElement_array getTypes() raises (SALOME::SALOME_Exception); /*! If the method %isOnAllElements() returns False, this method returns an array which contains all numbers of given %medGeometryElement. Numbering is global, ie numbers are bounded by 1 and MESH::getNumberOfElement(entity,MED_ALL_ELEMENTS) and not by 1 and MESH::getNumberOfElement(entity,geomElement). \note If %SUPPORT is defined on MED_NODE, use MED_NONE %medGeometryElement type. */ SALOME_TYPES::ListOfLong getNumber(in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! If the method %isOnAllElements() returns False, this method returns an array which contains all numbers of given %medGeometryElement. Numbering is from file, ie numbers are bounded by 1 and MESH::getNumberOfElement(entity,MED_ALL_ELEMENTS) and not by 1 and MESH::getNumberOfElement(entity,geomElement). \note If %SUPPORT is defined on MED_NODE, use MED_NONE %medGeometryElement type. */ SALOME_TYPES::ListOfLong getNumberFromFile(in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! Idem SALOME::Sender getNumber(in medGeometryElement geomElement) but returning Sender.\n It could be used in a Client code using the MED Client classes. */ SALOME::SenderInt getSenderForNumber(in medGeometryElement geomElement) raises (SALOME::SALOME_Exception); /*! If the method %isOnAllElements() returns False, this method returns the index of element number. Use it with getNumber(MED_ALL_ELEMENTS). \note See the method %getConnectivityIndex for more details. */ SALOME_TYPES::ListOfLong getNumberIndex() raises (SALOME::SALOME_Exception); /*! Idem SALOME_TYPES::ListOfLong getNumberIndex() but return a Sender.\n It could be used in a Client code using the MED Client classes. */ SALOME::SenderInt getSenderForNumberIndex() raises (SALOME::SALOME_Exception); void getBoundaryElements() raises (SALOME::SALOME_Exception); /*! Internal Corba method. */ long getCorbaIndex() raises (SALOME::SALOME_Exception); struct supportInfos { string name; string description; boolean isOnAllElements; medEntityMesh entity; long numberOfGeometricType; medGeometryElement_array types; SALOME_TYPES::ListOfLong nbEltTypes; SALOME_TYPES::ListOfLong nodalConnectivityLength; }; supportInfos getSupportGlobal() raises (SALOME::SALOME_Exception); }; //----------------- // Family interface //----------------- interface FAMILY : SUPPORT { /*! Returns Family identifier (Identifier of the family in the mesh). \note There is precisely only one indentifier for each family. */ long getIdentifier() raises (SALOME::SALOME_Exception); /*! Returns number of attributes. */ long getNumberOfAttributes() raises (SALOME::SALOME_Exception); /*! Returns an array of all attributes' identifiers. There is one for each attribute. */ SALOME_TYPES::ListOfLong getAttributesIdentifiers() raises (SALOME::SALOME_Exception); /*! Returns identifier of i-th attribute. \note i is bounded by 1 and NumberOfAttributes. */ long getAttributeIdentifier(in long i) raises (SALOME::SALOME_Exception); /*! Returns an array of all values of the attributes . There is one value for each attribute. */ SALOME_TYPES::ListOfLong getAttributesValues() raises (SALOME::SALOME_Exception); /*! Returns the value of i-th attribute. \note i is bounded by 1 and NumberOfAttributes. */ long getAttributeValue(in long i) raises (SALOME::SALOME_Exception); /*! Returns an array of all descriptions of the attributes . There is one description for each attribute. */ SALOME_TYPES::ListOfString getAttributesDescriptions() raises (SALOME::SALOME_Exception); /*! Returns the description of i-th attribute. \note i is bounded by 1 and NumberOfAttributes. */ string getAttributeDescription(in long i) raises (SALOME::SALOME_Exception); /*! Returns the number of groups the family belongs to. */ long getNumberOfGroups() raises (SALOME::SALOME_Exception); /*! Returns an array of names of groups the family belongs to . There is one name for each group. */ SALOME_TYPES::ListOfString getGroupsNames() raises (SALOME::SALOME_Exception); /*! Returns the name of i-th group. \note i is bounded by 1 and NumberOfAttributes. */ string getGroupName(in long i) raises (SALOME::SALOME_Exception); }; //---------------- // Group interface //---------------- interface GROUP : SUPPORT { /*! Returns the number of families in this group. */ long getNumberOfFamilies() raises (SALOME::SALOME_Exception); /*! Returns an array of all families. */ Family_array getFamilies() raises (SALOME::SALOME_Exception); /*! Returns a reference to the i-th family. \note i is bounded by 1 and NumberOfFamilies. */ FAMILY getFamily(in long i) raises (SALOME::SALOME_Exception); }; //---------------- // Field interface //---------------- interface FIELD : SALOME::GenericObj { /*! * Returns the field name. */ string getName() raises (SALOME::SALOME_Exception); /*! * Changes the field name. * * \param theName The new name for this field. */ void setName (in string theName) raises (SALOME::SALOME_Exception); /*! Returns the field description. */ string getDescription() raises (SALOME::SALOME_Exception); /*! Returns a reference to the support on which the field is defined. */ SUPPORT getSupport() raises (SALOME::SALOME_Exception); /*! Returns the number of field's components. */ long getNumberOfComponents() raises (SALOME::SALOME_Exception); /*! Returns an array containing components names. */ SALOME_TYPES::ListOfString getComponentsNames() raises (SALOME::SALOME_Exception); /*! Returns the name of i-th component. \note - i is bounded by 1 and NumberOfComponents. - Name is mandatory for each field's component. */ string getComponentName(in long i) raises (SALOME::SALOME_Exception); /*! Returns an array containing components units. */ SALOME_TYPES::ListOfString getComponentsUnits() raises (SALOME::SALOME_Exception); /*! * Returns the unit of i-th component. * * \note i is bounded by 1 and NumberOfComponents. */ string getComponentUnit(in long i) raises (SALOME::SALOME_Exception); /*! Returns an array containing components descriptions. */ SALOME_TYPES::ListOfString getComponentsDescriptions() raises (SALOME::SALOME_Exception); /*! Returns the description of i-th component. \note - i is bounded by 1 and NumberOfComponents. - Name is mandatory for each field's component. */ string getComponentDescription(in long i) raises (SALOME::SALOME_Exception); /*! Returns the iteration number. */ long getIterationNumber() raises (SALOME::SALOME_Exception); /*! Returns time for this iteration. */ double getTime() raises (SALOME::SALOME_Exception); /*! Returns order number use for internal step in this iteration. */ long getOrderNumber() raises (SALOME::SALOME_Exception); /*! Returns if gauss points are present. */ boolean getGaussPresence(); // Read & Write // ----------- long addDriver (in medDriverTypes driverType, in string fileName, in string fieldName) raises (SALOME::SALOME_Exception); /*! Removes a driver */ void rmDriver (in long i) raises (SALOME::SALOME_Exception); // void read (in long i) raises (SALOME::SALOME_Exception); /*! Writes a field. */ void write (in long i, in string driverFieldName) raises (SALOME::SALOME_Exception); /*! Adds the Field in the StudyManager. */ void addInStudy(in SALOMEDS::Study myStudy, in FIELD myIor) raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection); void addInStudyToComponent(in SALOMEDS::SComponent myComponent, in FIELD myIor) raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection); /*! Internal Corba method. */ long getCorbaIndex() raises (SALOME::SALOME_Exception); }; interface FIELDDOUBLE : FIELD , SALOME::MultiCommClass { /*! Returns an array of values of the field */ SALOME_TYPES::ListOfDouble getValue(in medModeSwitch mode) raises (SALOME::SALOME_Exception); /*! Idem as getValue but it could be used in a Client code using the MED Client classes. */ SALOME::SenderDouble getSenderForValue(in medModeSwitch mode) raises (SALOME::SALOME_Exception); }; interface FIELDDOUBLENO : FIELDDOUBLE { }; interface FIELDDOUBLENOBYTYPE : FIELDDOUBLE { }; interface FIELDDOUBLEFULL : FIELDDOUBLE { }; interface FIELDINT : FIELD , SALOME::MultiCommClass { /*! Returns an array of values of the field */ SALOME_TYPES::ListOfLong getValue(in medModeSwitch mode) raises (SALOME::SALOME_Exception); /*! Idem as getValue but it could be used in a Client code using the MED Client classes. */ SALOME::SenderInt getSenderForValue(in medModeSwitch mode) raises (SALOME::SALOME_Exception); }; interface FIELDINTNO : FIELDINT { }; interface FIELDINTNOBYTYPE : FIELDINT { }; interface FIELDINTFULL : FIELDINT { }; // MED interface interface MED : SALOME::GenericObj { /*! returns the number of meshes in the %MED object. */ long getNumberOfMeshes () raises (SALOME::SALOME_Exception); /*! returns the number of fields in the %MED object. */ long getNumberOfFields () raises (SALOME::SALOME_Exception); /*! returns an array which contains the name of each meshes in the %MED object. */ SALOME_TYPES::ListOfString getMeshNames () raises (SALOME::SALOME_Exception); /*! returns an array which contains the name of each fields in the %MED object. */ SALOME_TYPES::ListOfString getFieldNames () raises (SALOME::SALOME_Exception); /*! giving a mesh name, it returns the corresponding %MESH pointer. */ GMESH getMeshByName ( in string meshName) raises (SALOME::SALOME_Exception); /*! giving a %FIELD pointer, it returns the corresponding %MESH pointer of the mesh on which the field lies. */ GMESH getMesh ( in FIELD fieldPtr) raises (SALOME::SALOME_Exception); /*! giving a field name, it returns the number of iteration in the corresponding %FIELD object. */ long getFieldNumberOfIteration(in string fieldName) raises (SALOME::SALOME_Exception); /*! giving a field name and an integer %i, it returns a couple of integers: the time iteration and the order number of the %i^th iteration of the corresponding %FIELD object. */ SALOME_TYPES::ListOfLong getFieldIteration(in string fieldName, in long i) raises (SALOME::SALOME_Exception); /*! giving a field name, it returns an array of integers: the list of the order number and the time iteration couple of all iterations of the corresponding %FIELD object. (IT1, DT1, IT2, DT2, ... , ITn, DTn) when n is the number of the %FIELD iterations. */ SALOME_TYPES::ListOfLong getFieldIterations(in string fieldName) raises (SALOME::SALOME_Exception); /*! giving a field name, a time iteration and an order number, it returns the corresponding %FIELD oject. */ FIELD getField ( in string fieldName, in long pasTemps, in long numOrdre ) raises (SALOME::SALOME_Exception); // Add a MED/VTK/... driver to a MED'GEN' object to // be able to read/write files preserving meshes<-->fields association // Multiple drivers can be added whatever the type. // The access point in the returned long addDriver (in medDriverTypes driverType, in string fileName) raises (SALOME::SALOME_Exception); /*! Removes the driver */ void rmDriver (in long i) raises (SALOME::SALOME_Exception); /*! Reads the structure of the %MED file */ void readFileStruct(in long i) raises (SALOME::SALOME_Exception); void writeFrom (in long i) raises (SALOME::SALOME_Exception); void write (in long i) raises (SALOME::SALOME_Exception); void addMesh (in GMESH ptrMesh ) raises (SALOME::SALOME_Exception); void addField (in FIELD ptrField ) raises (SALOME::SALOME_Exception); void addInStudy (in SALOMEDS::Study myStudy, in MED medPtr) raises (SALOME::SALOME_Exception, SALOMEDS::StudyBuilder::LockProtection); }; /*! \brief A structure containing information about MED file */ struct MedFileInfo { string fileName; //!< name of file long fileSize; //!< size of file long major, minor, release; //!< MED file version }; }; #endif /* MED_IDL */