Salome HOME
updated copyright message
[samples/genericsolver.git] / idl / DEVIATION_Gen.idl
1 // Copyright (C) 2009-2023  EDF
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, or (at your option) any later version.
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
20 #ifndef __DEVIATION_GEN__
21 #define __DEVIATION_GEN__
22
23 #include "SALOME_Component.idl"
24 #include "SALOMEDS.idl"
25 #include "SALOME_Exception.idl"
26 #include "SALOME_Parametric.idl"
27
28 module GENERICSOLVER_ORB
29 {
30   interface DEVIATION_Gen : Engines::EngineComponent, SALOMEDS::Driver
31   {
32
33     /**
34      * @brief Initialize the component with the deterministic variables and the lists of
35      *        probabilistic variables.
36      *
37      * The Init method prepares the component for a series of computation with
38      * the method Exec. It extracts the deterministic data from Salome study and
39      * stores this data along with the lists of input and output variables to
40      * identify them in future calls to Exec.
41      *
42      * @param studyID        the identifier of the study containing the deterministic data
43      * @param detCaseEntry   the identifier of the deterministic case within the study
44      */
45     void Init(in long studyID, in SALOMEDS::ID detCaseEntry)
46       raises (SALOME::SALOME_Exception);
47
48     /**
49      * @brief Execute a computation with a given sample of variables.
50      *
51      * The Exec method realizes the computation with the probabilistic variables
52      * described in paramInput and the deterministic variables set previously with
53      * the Init method. The result is put in paramOutput in the order specified by
54      * paramInput.outputVarList.
55      *
56      * @param paramInput   a structure describing the probabilistic variables and the order
57      *                     of the output variables.
58      * @param paramOutput  a structure containing the result of the computation
59      */
60     void Exec(in SALOME_TYPES::ParametricInput paramInput,
61               out SALOME_TYPES::ParametricOutput paramOutput)
62       raises (SALOME::SALOME_Exception);
63
64     /**
65      * @brief Cleanup everything that was previously set
66      *
67      * The Finalize method is in charge of cleaning everything that what set hitherto.
68      * It may be empty.
69      */
70     void Finalize()
71       raises (SALOME::SALOME_Exception);
72
73     /**
74      * @brief Return the files and directories that must be transferred
75      *        from / to the computation resource
76      *
77      * This method is used to specify which files and directories must be
78      * transferred to the computation resource for the calculation code, and
79      * which resulting files and directories must be transferred from the
80      * computation resource to the local computer.
81      *
82      * @param studyID      the identifier of the study containing the
83      *                     deterministic data
84      * @param detCaseEntry the identifier of the deterministic case within the
85      *                     study
86      * @param inputFiles   the list of input files and directories to transfer
87      *                     from the local computer to the computation resource
88      *                     (absolute paths on the local computer)
89      * @param outputFiles  the list of output files and directories that must
90      *                     be transferred from the computation resource to the
91      *                     local computer after the computation (paths
92      *                     relative to the working directory on the
93      *                     computation resource)
94      */
95     void GetFilesToTransfer(in long studyID, in SALOMEDS::ID detCaseEntry,
96                             out SALOMEDS::ListOfStrings inputFiles,
97                             out SALOMEDS::ListOfStrings outputFiles)
98       raises (SALOME::SALOME_Exception);
99
100   };
101 };
102
103 #endif