예제 #1
0
 def test_ModelPartOutput(self):
     settings = ParametersWrapper()
     model_part_output = operations.Create(settings)
     self.assertTrue(settings.Has('operation_type'))
     self.assertTrue(settings.Has('prefix'))
     self.assertEqual(settings['operation_type'], 'model_part_output')
     with patch('KratosMultiphysics.HDF5Application.core.operations.KratosHDF5.HDF5ModelPartIO', autospec=True) as p:
         model_part_io = p.return_value
         model_part = _SurrogateModelPart()
         hdf5_file = MagicMock(spec=KratosHDF5.HDF5FileSerial)
         model_part_output(model_part, hdf5_file)
         p.assert_called_once_with(hdf5_file, '/ModelData')
         model_part_io.WriteModelPart.assert_called_once_with(model_part)
예제 #2
0
 def test_PrimalBossakInput(self):
     settings = ParametersWrapper()
     settings['operation_type'] = 'primal_bossak_input'
     primal_bossak_input = operations.Create(settings)
     self.assertTrue(settings.Has('prefix'))
     self.assertTrue(settings.Has('list_of_variables'))
     self.assertTrue(settings['list_of_variables'].IsArray())
     self.assertIsInstance(primal_bossak_input, operations.VariableIO)
     with patch('KratosMultiphysics.HDF5Application.core.operations.KratosHDF5.HDF5NodalSolutionStepBossakIO', autospec=True) as p:
         nodal_solution_step_bossak_io = p.return_value
         model_part = _SurrogateModelPart()
         hdf5_file = MagicMock(spec=KratosHDF5.HDF5FileSerial)
         primal_bossak_input(model_part, hdf5_file)
         self.assertEqual(p.call_count, 1)
         self.assertEqual(nodal_solution_step_bossak_io.ReadNodalResults.call_count, 1)
예제 #3
0
 def test_ElementDataValueInput(self):
     settings = ParametersWrapper()
     settings['operation_type'] = 'element_data_value_input'
     element_data_value_input = operations.Create(settings)
     self.assertTrue(settings.Has('prefix'))
     self.assertTrue(settings.Has('list_of_variables'))
     self.assertTrue(settings['list_of_variables'].IsArray())
     self.assertIsInstance(element_data_value_input, operations.VariableIO)
     with patch('KratosMultiphysics.HDF5Application.core.operations.KratosHDF5.HDF5ElementDataValueIO', autospec=True) as p:
         element_data_value_io = p.return_value
         model_part = _SurrogateModelPart()
         hdf5_file = MagicMock(spec=KratosHDF5.HDF5FileSerial)
         element_data_value_input(model_part, hdf5_file)
         self.assertEqual(p.call_count, 1)
         self.assertEqual(element_data_value_io.ReadElementResults.call_count, 1)
예제 #4
0
 def test_Create_Settings(self):
     settings = ParametersWrapper()
     file_io.Create(settings)
     self.assertTrue(settings.Has('io_type'))
     self.assertTrue(settings.Has('file_name'))
     self.assertTrue(settings.Has('file_access_mode'))
     self.assertTrue(settings.Has('file_driver'))
     self.assertTrue(settings.Has('echo_level'))
     self.assertEqual(settings['io_type'], 'serial_hdf5_file_io')
     self.assertEqual(settings['file_access_mode'], 'exclusive')
     if os.name == 'posix':
         self.assertEqual(settings['file_driver'], 'sec2')
     elif os.name == 'nt':
         self.assertEqual(settings['file_driver'], 'windows')
     self.assertEqual(settings['echo_level'], 0)
예제 #5
0
 def test_PartitionedModelPartOutput(self):
     settings = ParametersWrapper()
     settings['operation_type'] = 'partitioned_model_part_output'
     partitioned_model_part_output = operations.Create(settings)
     self.assertTrue(settings.Has('operation_type'))
     self.assertTrue(settings.Has('prefix'))
     with patch(
             'KratosMultiphysics.HDF5Application.core.operations.KratosHDF5.HDF5PartitionedModelPartIO'
     ) as p:
         partitioned_model_part_io = p.return_value
         model_part = test_hdf5_core._SurrogateModelPart()
         hdf5_file = MagicMock(spec=KratosHDF5.HDF5FileParallel)
         partitioned_model_part_output(model_part, hdf5_file)
         p.assert_called_once_with(hdf5_file, '/ModelData')
         partitioned_model_part_io.WriteModelPart.assert_called_once_with(
             model_part)
예제 #6
0
 def test_Create_Settings(self):
     settings = ParametersWrapper()
     data_comm = KratosMultiphysics.Testing.GetDefaultDataCommunicator()
     file_io.Create(settings, data_comm)
     self.assertTrue(settings.Has('io_type'))
     self.assertTrue(settings.Has('file_name'))
     self.assertTrue(settings.Has('file_access_mode'))
     self.assertTrue(settings.Has('file_driver'))
     self.assertTrue(settings.Has('echo_level'))
     self.assertEqual(settings['io_type'], 'serial_hdf5_file_io')
     self.assertEqual(settings['file_access_mode'], 'exclusive')
     if os.name == 'posix':
         self.assertEqual(settings['file_driver'], 'sec2')
     elif os.name == 'nt':
         self.assertEqual(settings['file_driver'], 'windows')
     self.assertEqual(settings['echo_level'], 0)
예제 #7
0
 def test_NodalFlagValueOutput(self):
     settings = ParametersWrapper()
     settings['operation_type'] = 'nodal_flag_value_output'
     nodal_flag_value_output = operations.Create(settings)
     self.assertTrue(settings.Has('prefix'))
     self.assertTrue(settings.Has('list_of_variables'))
     self.assertTrue(settings['list_of_variables'].IsArray())
     self.assertIsInstance(nodal_flag_value_output, operations.VariableIO)
     with patch(
             'KratosMultiphysics.HDF5Application.core.operations.KratosHDF5.HDF5NodalFlagValueIO',
             autospec=True) as p:
         nodal_flag_value_io = p.return_value
         model_part = _SurrogateModelPart()
         hdf5_file = MagicMock(spec=KratosHDF5.HDF5FileSerial)
         nodal_flag_value_output(model_part, hdf5_file)
         self.assertEqual(p.call_count, 1)
         self.assertEqual(nodal_flag_value_io.WriteNodalFlags.call_count, 1)
예제 #8
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)
예제 #9
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)
예제 #10
0
 def test_SetDefaults_NonTerminalTime(self):
     settings = ParametersWrapper()
     settings['file_name'] = 'kratos-<time>.h5'
     file_io._SetDefaults(settings)
     self.assertTrue(settings.Has('time_format'))
     self.assertEqual(settings['time_format'], '0.4f')