Salome HOME
27a2a4268d434feef645e536c019ffea38c272e6
[samples/genericsolver.git] / idl / DEVIATION_Gen.idl
1 //  Copyright (C) 2009-2014 EDF R&D
2 //
3 //  This library is free software; you can redistribute it and/or
4 //  modify it under the terms of the GNU Lesser General Public
5 //  License as published by the Free Software Foundation; either
6 //  version 2.1 of the License.
7 //
8 //  This library is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 //  Lesser General Public License for more details.
12 //
13 //  You should have received a copy of the GNU Lesser General Public
14 //  License along with this library; if not, write to the Free Software
15 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 //  $Id$
20 //
21
22 #ifndef __DEVIATION_GEN__
23 #define __DEVIATION_GEN__
24
25 #include "SALOME_Component.idl"
26 #include "SALOMEDS.idl"
27 #include "SALOME_Exception.idl"
28 #include "SALOME_Parametric.idl"
29
30 module GENERICSOLVER_ORB
31 {
32   interface DEVIATION_Gen : Engines::EngineComponent, SALOMEDS::Driver
33   {
34
35     /**
36      * @brief Initialize the component with the deterministic variables and the lists of
37      *        probabilistic variables.
38      *
39      * The Init method prepares the component for a series of computation with
40      * the method Exec. It extracts the deterministic data from Salome study and
41      * stores this data along with the lists of input and output variables to
42      * identify them in future calls to Exec.
43      *
44      * @param studyID        the identifier of the study containing the deterministic data
45      * @param detCaseEntry   the identifier of the deterministic case within the study
46      */
47     void Init(in long studyID, in SALOMEDS::ID detCaseEntry)
48       raises (SALOME::SALOME_Exception);
49
50     /**
51      * @brief Execute a computation with a given sample of variables.
52      *
53      * The Exec method realizes the computation with the probabilistic variables
54      * described in paramInput and the deterministic variables set previously with
55      * the Init method. The result is put in paramOutput in the order specified by
56      * paramInput.outputVarList.
57      *
58      * @param paramInput   a structure describing the probabilistic variables and the order
59      *                     of the output variables.
60      * @param paramOutput  a structure containing the result of the computation
61      */
62     void Exec(in SALOME_TYPES::ParametricInput paramInput,
63               out SALOME_TYPES::ParametricOutput paramOutput)
64       raises (SALOME::SALOME_Exception);
65
66     /**
67      * @brief Cleanup everything that was previously set
68      *
69      * The Finalize method is in charge of cleaning everything that what set hitherto.
70      * It may be empty.
71      */
72     void Finalize()
73       raises (SALOME::SALOME_Exception);
74
75     /**
76      * @brief Return the files and directories that must be transferred
77      *        from / to the computation resource
78      *
79      * This method is used to specify which files and directories must be
80      * transferred to the computation resource for the calculation code, and
81      * which resulting files and directories must be transferred from the
82      * computation resource to the local computer.
83      *
84      * @param studyID      the identifier of the study containing the
85      *                     deterministic data
86      * @param detCaseEntry the identifier of the deterministic case within the
87      *                     study
88      * @param inputFiles   the list of input files and directories to transfer
89      *                     from the local computer to the computation resource
90      *                     (absolute paths on the local computer)
91      * @param outputFiles  the list of output files and directories that must
92      *                     be transferred from the computation resource to the
93      *                     local computer after the computation (paths
94      *                     relative to the working directory on the
95      *                     computation resource)
96      */
97     void GetFilesToTransfer(in long studyID, in SALOMEDS::ID detCaseEntry,
98                             out SALOMEDS::ListOfStrings inputFiles,
99                             out SALOMEDS::ListOfStrings outputFiles)
100       raises (SALOME::SALOME_Exception);
101
102   };
103 };
104
105 #endif