3 # Copyright (C) 2009-2019 EDF R&D
5 # This library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License, or (at your option) any later version.
10 # This library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 from module_generator import *
24 # This example shows how to create a component used as a calculation code for OpenTURNS
25 # with YACSGEN tool. This example is very basic. See YACSGEN documentation and DEVIATION
26 # component for more advanced features.
28 # edit those values to reflect your environment:
29 prerequisites_script_path = "/path/to/prerequisites.sh"
30 kernel_path = "/path/to/KERNEL_install"
31 openturns_module_path = "/path/to/OPENTURNS_install"
32 eficas_module_path = "/path/to/EFICAS_install"
34 c1 = PYComponent("EXAMPLE_COMPONENT",
37 inport=[("studyID", "long"),
38 ("detCaseEntry", "string")],
40 # Those values should be initialized from the deterministic case in the study
41 # (see component DEVIATION for an example)
42 self.deterministicValues = {'E' : 210.e9,
49 inport=[("paramInput", "SALOME_TYPES/ParametricInput"),],
50 outport=[("paramOutput", "SALOME_TYPES/ParametricOutput")],
51 defs = "from salome.kernel.parametric.compo_utils import \
52 create_input_dict, create_normal_parametric_output, create_error_parametric_output",
54 # This section creates the point to evaluate "inputDict"
55 inputDict = create_input_dict(self.deterministicValues, paramInput)
57 # This section should be modified according to your needs (it's the evaluation itself)
58 if inputDict["L"] <= 0: # Test for an invalid parameter and return an error in this case
59 paramOutput = create_error_parametric_output("Invalid value: L must be positive")
62 outputDict["dev"] = (inputDict["F"] * inputDict["L"] * inputDict["L"] * inputDict["L"]) / \
63 (3. * inputDict["E"] * inputDict["I"])
65 # This section builds the returned object
66 paramOutput = create_normal_parametric_output(outputDict, paramInput)
70 Service("GetFilesToTransfer",
71 inport=[("studyID", "long"),
72 ("detCaseEntry", "string")],
73 outport=[("inputFiles", "stringvec"),
74 ("outputFiles", "stringvec")],
78 return (inputFiles, outputFiles)
84 m = Module("EXAMPLE_MODULE",components=[c1],prefix="./EXAMPLE_MODULE_INSTALL")
87 "prerequisites":prerequisites_script_path,
90 g=Generator(m,context)
96 g.make_appli("example_appli",
97 altmodules={"OPENTURNS":openturns_module_path,
98 "EFICAS":eficas_module_path})