Пример #1
0
 def test_TemporalController_CreateWithParameters(self):
     model_part = _SurrogateModelPart()
     io = file_io.Create(ParametersWrapper())
     controller_settings = ParametersWrapper()
     controller_settings['controller_type'] = 'temporal_controller'
     controller_settings['time_frequency'] = 2.0
     controller_settings['step_frequency'] = 3
     controller = controllers.Create(model_part, io, controller_settings)
     self.assertEqual(controller.time_frequency, 2.0)
     self.assertEqual(controller.step_frequency, 3)
Пример #2
0
 def test_TemporalController_CreateWithParameters(self):
     model_part = _SurrogateModelPart()
     io = file_io.Create(KratosMultiphysics.Parameters())
     controller_settings = KratosMultiphysics.Parameters()
     controller_settings.AddEmptyValue(
         'controller_type').SetString('temporal_controller')
     controller_settings.AddEmptyValue('time_frequency').SetDouble(2.0)
     controller_settings.AddEmptyValue('step_frequency').SetInt(3)
     controller = controllers.Create(model_part, io, controller_settings)
     self.assertEqual(controller.time_frequency, 2.0)
     self.assertEqual(controller.step_frequency, 3)
Пример #3
0
 def test_TemporalController_CreateWithDefaults(self):
     model_part = _SurrogateModelPart()
     io = file_io.Create(ParametersWrapper())
     controller_settings = ParametersWrapper()
     controller_settings['controller_type'] = 'temporal_controller'
     controller = controllers.Create(model_part, io, controller_settings)
     self.assertEqual(controller.model_part, model_part)
     self.assertEqual(controller.io, io)
     self.assertEqual(controller.time_frequency, 1.0)
     self.assertEqual(controller.step_frequency, 1)
     self.assertEqual(controller.current_time, 0.0)
     self.assertEqual(controller.current_step, 0)
Пример #4
0
 def test_TemporalController_OperationCall(self):
     model_part = _SurrogateModelPart()
     controller_settings = ParametersWrapper()
     controller_settings['controller_type'] = 'temporal_controller'
     io = file_io.Create(ParametersWrapper())
     operation = MagicMock(spec=operations.ModelPartOutput)
     controller = controllers.Create(
         model_part, io, controller_settings)
     controller.Add(operation)
     with patch('KratosMultiphysics.HDF5Application.core.file_io.KratosHDF5.HDF5FileSerial', autospec=True):
         for _ in range(10):
             controller()
         self.assertEqual(operation.call_count, 10)
Пример #5
0
 def test_TemporalController_StepFrequency(self):
     model_part = _SurrogateModelPart()
     controller_settings = ParametersWrapper()
     controller_settings['step_frequency'] = 2
     controller_settings['controller_type'] = 'temporal_controller'
     with patch('KratosMultiphysics.HDF5Application.core.file_io._HDF5SerialFileIO', autospec=True):
         io = file_io.Create(ParametersWrapper())
         controller = controllers.Create(
             model_part, io, controller_settings)
         for i in range(10):
             controller()
         io.Get.assert_called_with(model_part)
         self.assertEqual(io.Get.call_count, 5)
Пример #6
0
 def test_TemporalController_CreateWithDefaults(self):
     model_part = _SurrogateModelPart()
     io = file_io.Create(KratosMultiphysics.Parameters())
     controller_settings = KratosMultiphysics.Parameters()
     controller_settings.AddEmptyValue(
         'controller_type').SetString('temporal_controller')
     controller = controllers.Create(model_part, io, controller_settings)
     self.assertEqual(controller.model_part, model_part)
     self.assertEqual(controller.io, io)
     self.assertEqual(controller.time_frequency, 1.0)
     self.assertEqual(controller.step_frequency, 1)
     self.assertEqual(controller.current_time, 0.0)
     self.assertEqual(controller.current_step, 0)
Пример #7
0
 def test_TemporalController_StepFrequency(self):
     model_part = _SurrogateModelPart()
     controller_settings = KratosMultiphysics.Parameters()
     controller_settings.AddEmptyValue('step_frequency').SetInt(2)
     controller_settings.AddEmptyValue(
         'controller_type').SetString('temporal_controller')
     with patch('KratosMultiphysics.HDF5Application.core.file_io._HDF5SerialFileIO', autospec=True):
         io = file_io.Create(KratosMultiphysics.Parameters())
         controller = controllers.Create(
             model_part, io, controller_settings)
         for i in range(10):
             controller()
         io.Get.assert_called_with(model_part)
         self.assertEqual(io.Get.call_count, 5)
Пример #8
0
 def test_TemporalController_OperationCall(self, mock_class):
     mock_instance = mock_class.return_value
     mock_instance.GetFileName.return_value = 'kratos.h5'
     model_part = _SurrogateModelPart()
     data_comm = model_part.GetCommunicator().GetDataCommunicator()
     controller_settings = ParametersWrapper()
     controller_settings['controller_type'] = 'temporal_controller'
     io = file_io.Create(ParametersWrapper(), data_comm)
     operation = MagicMock(spec=operations.ModelPartOutput)
     controller = controllers.Create(model_part, io, controller_settings)
     controller.Add(operation)
     with patch(
             'KratosMultiphysics.HDF5Application.core.file_io.KratosHDF5.HDF5FileSerial',
             autospec=True):
         for _ in range(10):
             controller()
         self.assertEqual(operation.call_count, 10)
Пример #9
0
 def test_TemporalController_NearlyTheSameTimeFrequency(self):
     model_part = _SurrogateModelPart()
     data_comm = model_part.GetCommunicator().GetDataCommunicator()
     controller_settings = ParametersWrapper()
     controller_settings['step_frequency'] = 100
     controller_settings['time_frequency'] = 0.2000001
     controller_settings['controller_type'] = 'temporal_controller'
     with patch(
             'KratosMultiphysics.HDF5Application.core.file_io._HDF5SerialFileIO',
             autospec=True):
         io = file_io.Create(ParametersWrapper(), data_comm)
         controller = controllers.Create(model_part, io,
                                         controller_settings)
         for _ in range(10):
             controller()
         io.Get.assert_called_with(model_part)
         self.assertEqual(io.Get.call_count, 5)
Пример #10
0
 def test_DefaultController(self):
     model_part = _SurrogateModelPart()
     io_settings = ParametersWrapper()
     controller_settings = ParametersWrapper()
     with patch('KratosMultiphysics.HDF5Application.core.file_io.KratosHDF5.HDF5FileSerial', autospec=True):
         io = file_io.Create(io_settings)
         controller = controllers.Create(
             model_part, io, controller_settings)
         self.assertTrue(controller_settings.Has('controller_type'))
         self.assertEqual(
             controller_settings['controller_type'], 'default_controller')
         self.assertEqual(controller.model_part, model_part)
         self.assertEqual(controller.io, io)
         operation = MagicMock(spec=operations.ModelPartOutput)
         controller()
         controller.Add(operation)
         for i in range(10):
             controller()
         self.assertEqual(operation.call_count, 10)
Пример #11
0
 def test_DefaultController(self, mock_class):
     mock_instance = mock_class.return_value
     mock_instance.GetFileName.return_value = 'kratos.h5'
     model_part = _SurrogateModelPart()
     data_comm = model_part.GetCommunicator().GetDataCommunicator()
     io_settings = ParametersWrapper()
     controller_settings = ParametersWrapper()
     with patch(
             'KratosMultiphysics.HDF5Application.core.file_io.KratosHDF5.HDF5FileSerial',
             autospec=True):
         io = file_io.Create(io_settings, data_comm)
         controller = controllers.Create(model_part, io,
                                         controller_settings)
         self.assertTrue(controller_settings.Has('controller_type'))
         self.assertEqual(controller_settings['controller_type'],
                          'default_controller')
         self.assertEqual(controller.model_part, model_part)
         self.assertEqual(controller.io, io)
         operation = MagicMock(spec=operations.ModelPartOutput)
         controller()
         controller.Add(operation)
         for i in range(10):
             controller()
         self.assertEqual(operation.call_count, 10)
Пример #12
0
 def test_CreateNonExistingController(self):
     settings = ParametersWrapper()
     settings['controller_type'] = 'abcdefg'
     with self.assertRaisesRegex(ValueError, r'"controller_type" has invalid value "abcdefg"'):
         controllers.Create(MagicMock(), MagicMock(), settings)
Пример #13
0
 def test_CreateNonExistingController(self):
     settings = KratosMultiphysics.Parameters()
     settings.AddEmptyValue('controller_type').SetString('abcdefg')
     with self.assertRaisesRegex(ValueError, r'"controller_type" has invalid value "abcdefg"'):
         controllers.Create(MagicMock(), MagicMock(), settings)