diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py index 1b816841c7a719d2e1c566cc3afacaa7a0d245b3..37aa364871b2db9bcf35fbeaaf82524df83dc240 100644 --- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py +++ b/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py @@ -8,20 +8,14 @@ class DakotaCommunicator(BaseMCOCommunicator): def receive_from_mco(self): data = sys.stdin.read() values = list(map(float, data.split())) - parameters = self.model.parameters - if len(values) != len(parameters): - raise ValueError( - "The passed information length is {}, but the model " - "specifies {} values.".format( - len(values), len(parameters) - )) - - value_types = [p.type for p in parameters] - value_names = [p.name for p in parameters] + value_types = self.model.value_types + if len(values) != len(value_types): + raise ValueError("Length of provided data differs from the number " + "of expected types. {} {}".format(values, + value_types)) return DataSourceParameters( - value_names=value_names, value_types=value_types, values=numpy.array(values) ) diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py index 5ff9571f510e81810640be1ca41917ed41f7974e..b4c081a6b38bd5478f4287624411c5ce185cd01d 100644 --- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py +++ b/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py @@ -1,4 +1,5 @@ from traits.api import List, String + from force_bdss.api import BaseMCOModel diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py index 0f845ecc6dc8757780272340ac564661ec8641d2..6b607cfce35432d286642465e36e90387f5a6c34 100644 --- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py +++ b/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py @@ -5,7 +5,7 @@ import sys from force_bdss.api import BaseMultiCriteriaOptimizer -class DummyDakotaOptimizer(BaseMultiCriteriaOptimizer): +class DakotaOptimizer(BaseMultiCriteriaOptimizer): def run(self): print("Running dakota optimizer") for initial_value in range(10): @@ -18,5 +18,3 @@ class DummyDakotaOptimizer(BaseMultiCriteriaOptimizer): out = ps.communicate("{}".format(initial_value).encode("utf-8")) print("{}: {}".format(initial_value, out[0].decode("utf-8"))) - - diff --git a/force_bdss/tests/fixtures/test_csv.json b/force_bdss/tests/fixtures/test_csv.json index f061c1092201a1cb409595a1d002ea3a85d57166..1c15b0f07f2bdeee497b41ea655e31fb64b19dff 100644 --- a/force_bdss/tests/fixtures/test_csv.json +++ b/force_bdss/tests/fixtures/test_csv.json @@ -4,6 +4,7 @@ "multi_criteria_optimizer": { "id": "force.bdss.bundles.enthought.dakota", "model_data": { + "value_types": ["DUMMY"] } }, "data_sources": [