from __future__ import division import argparse import numpy as np import precice parser = argparse.ArgumentParser() parser.add_argument("configurationFileName", help="Name of the xml config file.", type=str) parser.add_argument("participantName", help="Name of the solver.", type=str) parser.add_argument("meshName", help="Name of the mesh.", type=str) try: args = parser.parse_args() except SystemExit: print("") print("Usage: python ./solverdummy precice-config participant-name mesh-name") quit() configuration_file_name = args.configurationFileName participant_name = args.participantName mesh_name = args.meshName if participant_name == 'SolverOne': write_data_name = 'dataOne' read_data_name = 'dataTwo' if participant_name == 'SolverTwo': read_data_name = 'dataOne' write_data_name = 'dataTwo' num_vertices = 3 # Number of vertices solver_process_index = 0 solver_process_size = 1 interface = precice.Interface(participant_name, configuration_file_name, solver_process_index, solver_process_size) mesh_id = interface.get_mesh_id(mesh_name) dimensions = interface.get_dimensions() vertices = np.zeros((num_vertices, dimensions)) read_data = np.zeros((num_vertices, dimensions)) write_data = np.zeros((num_vertices, dimensions)) if participant_name == 'SolverTwo': vertices = np.zeros((3,3)) #vertices = np.array([[2., 2., 2.],[1., 1., 1.],[0., 0., 0.]]) read_data = vertices.copy() write_data = vertices.copy() else: vertices = np.array([[0., 0., 0.],[1., 1., 1.],[2., 2., 2.]]) read_data = vertices.copy() write_data = vertices.copy() vertex_ids = interface.set_mesh_vertices(mesh_id, vertices) read_data_id = interface.get_data_id(read_data_name, mesh_id) write_data_id = interface.get_data_id(write_data_name, mesh_id) print(vertices) import ipdb; ipdb.set_trace() dt = interface.initialize() while interface.is_coupling_ongoing(): if interface.is_action_required( precice.action_write_iteration_checkpoint()): print("DUMMY: Writing iteration checkpoint") interface.mark_action_fulfilled( precice.action_write_iteration_checkpoint()) if interface.is_read_data_available(): read_data = interface.read_block_vector_data(read_data_id, vertex_ids) print(read_data) import ipdb; ipdb.set_trace() write_data = np.ones((3,3)) #write_data = read_data + 1 print(write_data) if interface.is_write_data_required(dt): interface.write_block_vector_data( write_data_id, vertex_ids, write_data) print("DUMMY: Advancing in time") dt = interface.advance(dt) if interface.is_action_required( precice.action_read_iteration_checkpoint()): print("DUMMY: Reading iteration checkpoint") interface.mark_action_fulfilled( precice.action_read_iteration_checkpoint()) interface.finalize() print("DUMMY: Closing python solver dummy...")