From 2396369bb6841d06a92f57b76a4269236bae9c47 Mon Sep 17 00:00:00 2001 From: Knut Birger Lunde Date: Thu, 18 Jan 2024 10:28:37 +0100 Subject: [PATCH 1/4] updated versions of GenieRuntime and SesamCore examples --- GeniERuntimeExample/GeniERuntimeExample.ipynb | 78 ++-- GeniERuntimeExample/GeniERuntimeExample.py | 52 +++ GeniERuntimeExample/SesamHelpers.py | 57 --- .../Workspace/CommonFiles/postprocessing.py | 1 + SesamCoreExample/SesamCoreExample.ipynb | 335 ++++++++++++++---- SesamCoreExample/SesamcoreExample.py | 49 +++ installation.ipynb | 2 +- pyproject.toml | 6 +- 8 files changed, 410 insertions(+), 170 deletions(-) create mode 100644 GeniERuntimeExample/GeniERuntimeExample.py delete mode 100644 GeniERuntimeExample/SesamHelpers.py create mode 100644 SesamCoreExample/SesamcoreExample.py diff --git a/GeniERuntimeExample/GeniERuntimeExample.ipynb b/GeniERuntimeExample/GeniERuntimeExample.ipynb index 78a2d90..d3db4b0 100644 --- a/GeniERuntimeExample/GeniERuntimeExample.ipynb +++ b/GeniERuntimeExample/GeniERuntimeExample.ipynb @@ -17,35 +17,26 @@ "metadata": {}, "outputs": [], "source": [ - "from pathlib import Path\n", "from dnv.oneworkflow.utils.workunit_extension import *\n", "from dnv.oneworkflow.utils.starter import *\n", - "from dnv.oneworkflow import OneWorkflowClient\n", "from pathlib import Path\n", "import os\n", - "oneWorkflowTMPFolder = r'D:\\OneWorkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", + "root_folder = os.getcwd()\n", + "workspacePath = str(Path(root_folder, 'Workspace'))\n", + "workspaceId = \"GeniERuntimeExample\"\n", + "\n", + "cloudRun = False\n", + "oneWorkflowTMPFolder = r'd:\\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", "if not os.path.exists(oneWorkflowTMPFolder):\n", " try:\n", " print(\"Trying to create tmp folder for one workflow local execution\")\n", " os.mkdir(oneWorkflowTMPFolder)\n", + " print(oneWorkflowTMPFolder + \" created!\\n\")\n", " except:\n", " print(\"did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.\")\n", - "\n", - "workspaceId = \"GeniERuntimeExample\"\n", - "# local workspace, all results will be put here after local or cloud runs\n", - "# location of common files for all analysis, has to be below workspacePath and in the folder names CommonFilesr\n", - "root_folder = os.getcwd()\n", - "print(root_folder)\n", - "workspacePath = str(Path(root_folder, 'Workspace'))\n", - "cloudRun = False\n", "#If running locally the code below will also start the local workflow host.\n", - "workflow_client = one_workflow_client(workspace_id = workspaceId, workspace_path = workspacePath, cloud_run = cloudRun,\n", - " local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, platform=Platform.WINDOWS, max_cores=5,auto_deploy_option = AutoDeployOption.DEV)\n", - "workflow_client.start_workflow_runtime_service()\n", - "if (cloudRun):\n", - " workflow_client.login()\n", - "if not workflow_client.upload_common_files(FileOptions(max_size=\"524MB\",patterns=[\"**/*.*\"], overwrite=True)):\n", - " print(\"Upload failed\")" + "workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder,\n", + " local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing)\n" ] }, { @@ -55,9 +46,8 @@ "outputs": [], "source": [ "import pandas as pd\n", - "from SesamHelpers import *\n", "import shutil\n", - "import json\n", + "from dnv.sesam.genie_runtime_command import *\n", "# we must delete existing results locally before generating new results\n", "local__result_path = Path(workspacePath, workflow_client.results_directory)\n", "if os.path.isdir(local__result_path):\n", @@ -65,33 +55,33 @@ "\n", "#parametrized values\n", "df = pd.DataFrame({'AP': [\"0m\", \"0.5m\", \"1m\"], 'FP': [\"150m\", \"250m\", \"500m\"]})\n", - "workUnit = GeniERuntimeTaskCreator(\"ContainerHull_template.js\", df,workflow_client).get_genieruntime_work_unit(cloudRun, workspacePath)\n", - "downloadOptions = FileOptions(\n", - " max_size=\"1112MB\",\n", - " patterns=[\"**/T1.FEM\", \"**/*.csv\"])\n", - "job = workflow_client.create_job(workUnit)\n", - "\n", "#for debugging only\n", "#job_json = json.dumps(job, default=lambda o: o.encode(), indent=4)\n", "#print(job_json)\n", - "await run_workflow_async(job, workflow_client, downloadOptions)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### CLose client -must be done before a new job can be started in a different notebook\n", - "Will remove all job and blob folders." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "workflow_client.local_workflow_runtime_service.stop_service()" + "\n", + "\n", + "commands_info = []\n", + "for index, row in df.iterrows():\n", + " loadcase_folder_name = f\"Model_{index + 1}\"\n", + " genieruntime_command = GeniERuntimeCommand()\n", + " genieruntime_command.Parameters = {}\n", + " genieruntime_command.TemplateInputFile = \"ContainerHull_template.js\"\n", + " for key, value in row.items():\n", + " genieruntime_command.Parameters[key] = value\n", + " \n", + " post_processing_command = PythonCommand(\n", + " directory=workflow_client.common_directory,\n", + " filename=\"postprocessing.py\")\n", + " cmd_info = CommandInfo(commands=[genieruntime_command, post_processing_command],load_case_foldername=loadcase_folder_name)\n", + " commands_info.append(cmd_info)\n", + " \n", + "print(\"Running commands in parallel\")\n", + "await run_managed_commands_parallelly_async(\n", + " client=workflow_client,\n", + " commands_info=commands_info,\n", + " files_to_download_from_blob_to_client=FileOptions(max_size=\"11124MB\",patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\", \"**/*.MLG\",\"**/*.CSV\"]),\n", + " enable_common_files_copy_to_load_cases=True,\n", + ")\n" ] }, { diff --git a/GeniERuntimeExample/GeniERuntimeExample.py b/GeniERuntimeExample/GeniERuntimeExample.py new file mode 100644 index 0000000..33853d3 --- /dev/null +++ b/GeniERuntimeExample/GeniERuntimeExample.py @@ -0,0 +1,52 @@ + +from dnv.oneworkflow.utils.workunit_extension import * +from dnv.oneworkflow.utils.starter import * +from pathlib import Path +import os +import pandas as pd +from dnv.sesam.genie_runtime_command import * +root_folder = os.path.dirname(os.path.abspath(__file__)) +workspacePath = str(Path(root_folder, 'Workspace')) +workspaceId = "GeniERuntimeExample" + +cloudRun = False +oneWorkflowTMPFolder = r'd:\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root +if not os.path.exists(oneWorkflowTMPFolder): + try: + print("Trying to create tmp folder for one workflow local execution") + os.mkdir(oneWorkflowTMPFolder) + print(oneWorkflowTMPFolder + " created!\n") + except: + print("did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.") +#If running locally the code below will also start the local workflow host. +workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, + local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing) +#parametrized values +df = pd.DataFrame({'AP': ["0m", "0.5m", "1m"], 'FP': ["150m", "250m", "500m"]}) +#for debugging only +#job_json = json.dumps(job, default=lambda o: o.encode(), indent=4) +#print(job_json) + + +commands_info = [] +for index, row in df.iterrows(): + loadcase_folder_name = f"Model_{index + 1}" + genieruntime_command = GeniERuntimeCommand() + genieruntime_command.Parameters = {} + genieruntime_command.TemplateInputFile = "ContainerHull_template.js" + for key, value in row.items(): + genieruntime_command.Parameters[key] = value + + post_processing_command = PythonCommand( + directory=workflow_client.common_directory, + filename="postprocessing.py") + cmd_info = CommandInfo(commands=[genieruntime_command, post_processing_command],load_case_foldername=loadcase_folder_name) + commands_info.append(cmd_info) + +print("Running commands in parallel") +asyncio.run(run_managed_commands_parallelly_async( + client=workflow_client, + commands_info=commands_info, + files_to_download_from_blob_to_client=FileOptions(max_size="11124MB",patterns=["**/*.txt", "**/*.lis", "**/*.MLG", "**/*.MLG","**/*.CSV"]), + enable_common_files_copy_to_load_cases=True, +)) \ No newline at end of file diff --git a/GeniERuntimeExample/SesamHelpers.py b/GeniERuntimeExample/SesamHelpers.py deleted file mode 100644 index 8a0f98d..0000000 --- a/GeniERuntimeExample/SesamHelpers.py +++ /dev/null @@ -1,57 +0,0 @@ - -import pandas as pd -from typing import Any -import os -from dnv.sesam.sima_command import SimaCommand -from dnv.onecompute.flowmodel import ParallelWork -from dnv.sesam.genie_runtime_command import * -from dnv.oneworkflow import PythonCommand, CompositeExecutableCommand -from dnv.onecompute import FileSpecification -from dnv.oneworkflow.oneworkflowclient import OneWorkflowClient -from dnv.onecompute.flowmodel import WorkUnit - - -class GeniERuntimeTaskCreator: - def __init__(self, template_input_file: str, data_frame : pd.DataFrame, workflow_client: OneWorkflowClient): - """ - A class for setting up a GeniERuntime analysis for local or cloud run including simple postprocessing using SifIO - Parameters: - template_input_file(str) : template file to be used. - data_frame(pd.DataFrame): Pandas dataframe containing values for the template file. - workflow_client(workflow_client) : is needed to provide information about relevant folders like common files, result files and workspace. - - """ - self.template_input_file = workflow_client.workspace_info - self.common_files_folder = workflow_client.common_directory - self.results_folder = workflow_client.results_directory - self.data = data_frame - - - - def get_genieruntime_work_unit(self, cloud_run : bool, full_path_to_workspace: str): - """Returns a parallel processing unit based on parameters given in templatefile. - """ - parallel_work = ParallelWork() - for index, row in self.data.iterrows(): - loadcase_folder_name = f"Model_{index + 1}" - result_folder_lc = os.path.join(self.results_folder, loadcase_folder_name) - genieruntime_command = GeniERuntimeCommand() - genieruntime_command.Parameters = {} - genieruntime_command.TemplateInputFile = "ContainerHull_template.js" - for key, value in row.items(): - genieruntime_command.Parameters[key] = value - - python_copy_command = PythonCommand( - directory=self.common_files_folder, - filename="copyfiles.py") - post_processing_command = PythonCommand( - directory=self.common_files_folder, - filename="postprocessing.py") - cmd = CompositeExecutableCommand([python_copy_command, genieruntime_command, post_processing_command], result_folder_lc) - - work_unit = ( - WorkUnit(cmd, work_unit_id=loadcase_folder_name) - .output_directory(result_folder_lc, include_files=["**/*.FEM","**/*.csv"]) - ) - parallel_work.WorkItems.append(work_unit) - return parallel_work \ No newline at end of file diff --git a/GeniERuntimeExample/Workspace/CommonFiles/postprocessing.py b/GeniERuntimeExample/Workspace/CommonFiles/postprocessing.py index 33f282e..f98be87 100644 --- a/GeniERuntimeExample/Workspace/CommonFiles/postprocessing.py +++ b/GeniERuntimeExample/Workspace/CommonFiles/postprocessing.py @@ -21,6 +21,7 @@ def write_node_element_count(): Reads the number of occurrences of a data type and the size of the established pointer table for a datatype. """ + print("Reading node and element count from T1.FEM file\n") with SesamDataFactory.CreateReader(".", 'T1.FEM') as reader: reader.CreateModel() all_data =[] diff --git a/SesamCoreExample/SesamCoreExample.ipynb b/SesamCoreExample/SesamCoreExample.ipynb index dba34b7..a417657 100644 --- a/SesamCoreExample/SesamCoreExample.ipynb +++ b/SesamCoreExample/SesamCoreExample.ipynb @@ -17,105 +17,310 @@ "source": [ "from dnv.oneworkflow.utils.workunit_extension import *\n", "from dnv.oneworkflow.utils.starter import *\n", - "from pathlib import Path\n", - "import os\n", - "await install_workflow_runtime(repository = PackageManager.Repository.DEV)" + "await install_workflow_runtime(repository = Repository.DEV)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The temporary blob storage directory is: d:\\oneworkflowTmp\\oc_nbrfab12_blob\n", + "The temporary jobs root directory is: d:\\oneworkflowTmp\\oc_sqw_ohhl_jobs\n" + ] + } + ], "source": [ "from dnv.oneworkflow.utils.workunit_extension import *\n", "from dnv.oneworkflow.utils.starter import *\n", - "from dnv.oneworkflow import OneWorkflowClient\n", "from pathlib import Path\n", "import os\n", - "oneWorkflowTMPFolder = r'c:\\OneWorkflowTMP' #due to possible issues with long file paths we prefer to have this folder at the root\n", + "root_folder = os.getcwd()\n", + "workspacePath = str(Path(root_folder, 'Workspace'))\n", + "workspaceId = \"SesamCoreExample\"\n", + "\n", + "cloudRun = False\n", + "oneWorkflowTMPFolder = r'd:\\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", "if not os.path.exists(oneWorkflowTMPFolder):\n", " try:\n", " print(\"Trying to create tmp folder for one workflow local execution\")\n", " os.mkdir(oneWorkflowTMPFolder)\n", + " print(oneWorkflowTMPFolder + \" created!\\n\")\n", " except:\n", " print(\"did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.\")\n", - "\n", - "# local workspace, all results will be put here after local or cloud runs\n", - "# location of common files for all analysis, has to be below workspacePath and in the folder names CommonFiles\n", - "root_folder = os.getcwd()\n", - "workspacePath = str(Path(root_folder, 'Workspace'))\n", - "workspaceId = \"SesamCoreExample\"\n", - "cloudRun = False\n", "#If running locally the code below will also start the local workflow host.\n", - "workflow_client = one_workflow_client(workspace_id = workspaceId, workspace_path = workspacePath, cloud_run = cloudRun,\n", - " local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, platform=Platform.WINDOWS, max_cores=5,auto_deploy_option = AutoDeployOption.DEV)\n", - "workflow_client.start_workflow_runtime_service()\n", - "if (cloudRun):\n", - " workflow_client.login()\n", - "upload_success = workflow_client.upload_common_files(FileOptions(max_size=\"524MB\",patterns=[\"**/*.*\"], overwrite=True))\n", - "\n", - "# max number of threads used when running locally\n" + "workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder,\n", + " local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing)\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing LoadCase1\n", + "Processing LoadCase2\n", + "Processing LoadCase3\n", + "Processing LoadCase4\n", + "Processing LoadCase5\n", + "Processing LoadCase6\n", + "Processing LoadCase7\n", + "Processing LoadCase8\n", + "Processing LoadCase9\n", + "Processing LoadCase10\n", + "Processing LoadCase11\n", + "Processing LoadCase12\n", + "Processing LoadCase13\n", + "Running commands in parallel\n", + "Info: Attempt 1/10: LocalWorkflowRuntime service is not ready yet. Retrying in 5 seconds.\n", + "Info: The LocalWorkflowRuntime service is ready.\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\copyFiles.py to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\copyFiles.py\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\Specimen1_HotSpotPlate_SCORE-HOTSPOT.JNL to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\Specimen1_HotSpotPlate_SCORE-HOTSPOT.JNL\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\Specimen1_HotSpots.json to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\Specimen1_HotSpots.json\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\Specimen1_input.json to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\Specimen1_input.json\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\Specimen1_sestra.inp to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\Specimen1_sestra.inp\n", + "Uploading d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\CommonFiles\\Specimen1_T1.FEM to d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\CommonFiles\\Specimen1_T1.FEM\n", + "Info: Directory 'd:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases' not specified or does not exist. Skipping files upload.\n", + "Info: The work item 8219911d-a113-4f20-baa7-72d7d255b88e message is 'Created'\n", + "Info: The work item LoadCase1 message is 'Created'\n", + "Info: The work item LoadCase2 message is 'Created'\n", + "Info: The work item LoadCase3 message is 'Created'\n", + "Info: The work item LoadCase4 message is 'Created'\n", + "Info: The work item LoadCase5 message is 'Created'\n", + "Info: The work item LoadCase6 message is 'Created'\n", + "Info: The work item LoadCase7 message is 'Created'\n", + "Info: The work item LoadCase8 message is 'Created'\n", + "Info: The work item LoadCase9 message is 'Created'\n", + "Info: The work item LoadCase10 message is 'Created'\n", + "Info: The work item LoadCase11 message is 'Created'\n", + "Info: The work item LoadCase12 message is 'Created'\n", + "Info: The work item LoadCase13 message is 'Created'\n", + "Info: The progress of the job is '0%'. The message is ''\n", + "Info: The work item LoadCase1 message is ''\n", + "Info: The work item LoadCase2 message is ''\n", + "Info: The work item LoadCase3 message is ''\n", + "Info: The work item LoadCase4 message is ''\n", + "Info: The work item LoadCase5 message is ''\n", + "Info: The work item LoadCase6 message is ''\n", + "Info: The work item LoadCase7 message is ''\n", + "Info: The work item LoadCase8 message is ''\n", + "Info: The work item LoadCase9 message is ''\n", + "Info: The work item LoadCase10 message is ''\n", + "Info: The work item LoadCase11 message is ''\n", + "Info: The work item LoadCase12 message is ''\n", + "Info: The work item LoadCase13 message is ''\n", + "Info: The status of work item '8219911d-a113-4f20-baa7-72d7d255b88e' is 'Completed'\n", + "Info: The status of work item 'LoadCase1' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase1\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase1\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/ to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase2' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase2\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase2\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/ to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase1\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase1\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase10\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase11\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase12\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase13\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase2\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase2\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase3\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase4\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase5\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase6\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase7\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase8\\SESTRA.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\\\LoadCase9\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase3' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase3\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase3\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase3 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase3\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase3\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase4' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase4\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase4\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase4 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase4\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase4\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase5' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase5\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase5\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase5 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase5\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase5\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase6' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase6\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase6\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase6 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase6\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase6\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase7' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase7\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase7\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase7 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase7\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase7\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase8' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase8\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase8\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase8 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase8\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase8\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase9' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase9\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase9\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase9 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase9\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase9\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase10' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase10\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase10\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase10 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase10\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase10\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase11' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase11\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase11\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase11 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase11\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase11\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase12' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase12\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase12\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase12 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase12\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase12\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: The status of work item 'LoadCase13' is 'Completed'\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase13\\stderr.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\\stderr.txt\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\Logs\\LoadCase13\\stdout.txt to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\\stdout.txt\n", + "Info: Downloading files from file:///d:/oneworkflowTmp/oc_nbrfab12_blob/SesamCoreExample/LoadCases/LoadCase13 to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\\SesamCore_Specimen1_HotSpotPlate.lis\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SCORE.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\\SCORE.MLG\n", + "Downloading d:\\oneworkflowTmp\\oc_nbrfab12_blob\\SesamCoreExample\\LoadCases\\LoadCase13\\SESTRA.MLG to d:\\source\\improveflowH4-workflow\\SesamCoreExample\\Workspace\\LoadCases\\LoadCase13\\SESTRA.MLG\n", + "Info: Download completed.\n", + "Info: Job ID: a93ba4a4-b4c1-4ce6-88ed-52cc27774f7e. Job Status: Completed. Job Progress: 100%. Job Message: Job a93ba4a4-b4c1-4ce6-88ed-52cc27774f7e completed with status Completed.\n" + ] + } + ], "source": [ - "import pandas as pd\n", "import os\n", - "from dnv.oneworkflow import ParallelWork\n", - "from dnv.onecompute.flowmodel import WorkUnit\n", "from dnv.sesam.sesam_core_command import *\n", - "from dnv.oneworkflow import PythonCommand, CompositeExecutableCommand\n", - "import json\n", "import shutil\n", - "from dnv.oneworkflow.utils.workunit_extension import with_shared_files_copied_to_loadcase\n", - "\n", "# we must delete existing results locally before generating new results\n", "local__result_path = Path(workspacePath, workflow_client.results_directory)\n", "if os.path.isdir(local__result_path):\n", " shutil.rmtree(local__result_path) \n", "\n", - "parallel_work = ParallelWork()\n", + "commands_info = []\n", "for index in range(1,14): # iterating over two simple cases, they now will do the same analysis\n", " loadcase_folder_name = f\"LoadCase{index}\"\n", - " result_folder_lc = os.path.join(workflow_client.results_directory, loadcase_folder_name)\n", - " python_copy_command = PythonCommand(\n", - " directory=workflow_client.common_directory)\n", + " print(\"Processing \" + loadcase_folder_name)\n", " core_command = SesamCoreCommand(command = \"fatigue\",input_file_name= \"Specimen1_input.json\", options = \"-hs\")\n", - " cmd = CompositeExecutableCommand([core_command], result_folder_lc)\n", - " work_unit = (WorkUnit(cmd, loadcase_folder_name)\n", - " .output_directory(result_folder_lc, include_files=[\"**/*.txt\", \"**/*.MLG\", \"**/*.lis\", \"**/*.sin\", \"*.log\"])\n", - " .with_shared_files_copied_to_loadcase(workflow_client.common_directory, [\"**/*.py\"])\n", - " )\n", - " parallel_work.WorkItems.append(work_unit)\n", - "downloadOptions = FileOptions(max_size=\"10MB\",patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\"])\n", - "job = workflow_client.create_job(parallel_work)\n", - "#for debugging\n", - "#job_json = json.dumps(job, default=lambda o: o.encode(), indent=4)\n", - "#print(job_json)\n", - "await run_workflow_async(job, workflow_client, downloadOptions)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### CLose client -must be done before a new job can be started in a different notebook\n", - "Will remove all job and blob folders." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "workflow_client.stop_workflow_runtime_service()" + " cmd_info = CommandInfo(commands=[core_command],load_case_foldername=loadcase_folder_name)\n", + " commands_info.append(cmd_info)\n", + "print(\"Running commands in parallel\")\n", + "await run_managed_commands_parallelly_async(\n", + " client=workflow_client,\n", + " commands_info=commands_info,\n", + " files_to_download_from_blob_to_client=FileOptions(max_size=\"11124MB\",patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\"]),\n", + " enable_common_files_copy_to_load_cases=True,\n", + " )" ] }, { diff --git a/SesamCoreExample/SesamcoreExample.py b/SesamCoreExample/SesamcoreExample.py new file mode 100644 index 0000000..da3d27d --- /dev/null +++ b/SesamCoreExample/SesamcoreExample.py @@ -0,0 +1,49 @@ +from pathlib import Path +import os +from dnv.oneworkflow.utils.workunit_extension import * +from dnv.oneworkflow.utils.starter import * +from dnv.onecompute.directory_client import FileOptions +from dnv.oneworkflow import ParallelWork +from dnv.onecompute.flowmodel import WorkUnit +from dnv.sesam.sesam_core_command import * +from dnv.oneworkflow import PythonCommand, CompositeExecutableCommand +import shutil +import json +# local workspace, all results will be put here after local or cloud runs +# location of common files for all analysis, has to be below workspacePath and in the folder names CommonFiles +root_folder = os.path.dirname(os.path.abspath(__file__)) +workspacePath = str(Path(root_folder, 'Workspace')) +workspaceId = "SesamCoreExample" + +cloudRun = False +oneWorkflowTMPFolder = r'd:\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root +if not os.path.exists(oneWorkflowTMPFolder): + try: + print("Trying to create tmp folder for one workflow local execution") + os.mkdir(oneWorkflowTMPFolder) + print(oneWorkflowTMPFolder + " created!\n") + except: + print("did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.") +#If running locally the code below will also start the local workflow host. +workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, + local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing) +# we must delete existing results locally before generating new results +local__result_path = Path(workspacePath, workflow_client.results_directory) +print(local__result_path) +if os.path.isdir(local__result_path): + shutil.rmtree(local__result_path) +commands_info = [] +for index in range(1,14): # iterating over two simple cases, they now will do the same analysis + loadcase_folder_name = f"LoadCase{index}" + print("Processing " + loadcase_folder_name) + core_command = SesamCoreCommand(command = "fatigue",input_file_name= "Specimen1_input.json", options = "-hs") + cmd_info = CommandInfo(commands=[core_command],load_case_foldername=loadcase_folder_name) + commands_info.append(cmd_info) + +asyncio.run(run_managed_commands_parallelly_async( + client=workflow_client, + commands_info=commands_info, + files_to_download_from_blob_to_client=FileOptions(max_size="11124MB",patterns=["**/*.txt", "**/*.lis", "**/*.MLG", "**/*.*"]), + enable_common_files_copy_to_load_cases=True, + )) + \ No newline at end of file diff --git a/installation.ipynb b/installation.ipynb index 4e715c2..6bacb8e 100644 --- a/installation.ipynb +++ b/installation.ipynb @@ -164,7 +164,7 @@ "outputs": [], "source": [ "from dnv.oneworkflow.utils.starter import *\n", - "await install_workflow_runtime(repository = PackageManager.Repository.DEV)" + "await install_workflow_runtime(repository = Repository.DEV)\n" ] } ], diff --git a/pyproject.toml b/pyproject.toml index 60d5bcf..a7f2c10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,9 +16,9 @@ dnv-net-runtime = "^1.0.0.39" dnv-net-intellisense = "^1.0.0.31" dnv-sifio = "^5.3.2.994" quantconnect-stubs = "^15851" -dnv-onecompute = "^8.3.0.22" -dnv-oneworkflow = "^1.0.0.939" -dnv-sesam-commands = "^5.12.0.192" +dnv-onecompute = "^8.4.0.88" +dnv-oneworkflow = "^1.0.0.1204" +dnv-sesam-commands = "^5.14.0.17" [tool.poetry.group.dev.dependencies] pytest = "^7.4.2" From a34bd87f67f87bc67e7f7b81ce9fa93e53e339d7 Mon Sep 17 00:00:00 2001 From: Knut Birger Lunde Date: Fri, 19 Jan 2024 09:26:05 +0100 Subject: [PATCH 2/4] sima examples in progress --- SE28ExampleSimaWasimSestra/SimaHelper.py | 30 +- SE28ExampleSimaWasimSestra/SimaHelperOld.py | 92 +++++ SE28ExampleSimaWasimSestra/simaSimple.ipynb | 345 ++++++++++++++++++ .../workflowCoreDemoSE28SestraAndWasim.ipynb | 89 +---- 4 files changed, 468 insertions(+), 88 deletions(-) create mode 100644 SE28ExampleSimaWasimSestra/SimaHelperOld.py create mode 100644 SE28ExampleSimaWasimSestra/simaSimple.ipynb diff --git a/SE28ExampleSimaWasimSestra/SimaHelper.py b/SE28ExampleSimaWasimSestra/SimaHelper.py index b6ec99f..8eefed4 100644 --- a/SE28ExampleSimaWasimSestra/SimaHelper.py +++ b/SE28ExampleSimaWasimSestra/SimaHelper.py @@ -3,11 +3,10 @@ from typing import Any import os from dnv.sesam.sima_command import SimaCommand -from dnv.onecompute.flowmodel import ParallelWork -from dnv.oneworkflow import PythonCommand from dnv.onecompute import FileSpecification from dnv.oneworkflow.oneworkflowclient import OneWorkflowClient - +from dnv.oneworkflow.utils.workunit_extension import * +from dnv.oneworkflow.utils.starter import * class SimaSettings: def __init__(self, sima_exe_path: str, result_files_to_keep=[ "*-sima.lis", @@ -53,7 +52,7 @@ def get_commands_inputs(self,stask_file: str, case: dict[str, Any]) -> dict[str, - def get_sima_work_unit(self, full_path_to_load_case_file: str, stask_file: str ,single_task: bool = False): + def get_sima_commands(self, full_path_to_load_case_file: str, stask_file: str ,single_task: bool = False): """Returns a parallel processing unit based on input given in an Excel file. Parameters: @@ -63,18 +62,13 @@ def get_sima_work_unit(self, full_path_to_load_case_file: str, stask_file: str , """ os.chdir(self.workspace.workspace_path) - load_cases_parent_folder_name = self.workspace.load_cases_parent_directory - - parallel_work = ParallelWork() - parallel_work.work_items.clear() - + commands_info = [] # Open environmental input file + index = 0 df_cases = pd.read_excel(full_path_to_load_case_file, index_col=0) for loadcase_folder_name, case in df_cases.iterrows(): - load_case_folder = os.path.join( - load_cases_parent_folder_name, loadcase_folder_name) - result_folder_lc = os.path.join( - self.workspace.results_directory, loadcase_folder_name) + index = index + 1 + loadcase_folder_name = f"loadcase_{index}" # Get SIMA commands and inputs commands_inputs = self.get_commands_inputs(stask_file, case.to_dict()) # Create SimaCommand instance @@ -82,11 +76,9 @@ def get_sima_work_unit(self, full_path_to_load_case_file: str, stask_file: str , sima_cmd.commands = commands_inputs["commands"] sima_cmd.input = commands_inputs["inputs"] sima_cmd.sima_result_files = self.sima_settings.result_files_to_keep - sima_cmd.working_directory = load_case_folder + #sima_cmd.working_directory = load_case_folder # Add work item to ParallelWork instance - parallel_work.add(sima_cmd, work_unit_id=loadcase_folder_name).output_directory(result_folder_lc, - include_files=self.sima_settings.result_files_to_keep) - if single_task == True: - break - return parallel_work \ No newline at end of file + cmd_info = CommandInfo(commands=[sima_cmd],load_case_foldername=loadcase_folder_name) + commands_info.append(cmd_info) + return commands_info \ No newline at end of file diff --git a/SE28ExampleSimaWasimSestra/SimaHelperOld.py b/SE28ExampleSimaWasimSestra/SimaHelperOld.py new file mode 100644 index 0000000..b6ec99f --- /dev/null +++ b/SE28ExampleSimaWasimSestra/SimaHelperOld.py @@ -0,0 +1,92 @@ + +import pandas as pd +from typing import Any +import os +from dnv.sesam.sima_command import SimaCommand +from dnv.onecompute.flowmodel import ParallelWork +from dnv.oneworkflow import PythonCommand +from dnv.onecompute import FileSpecification +from dnv.oneworkflow.oneworkflowclient import OneWorkflowClient + +class SimaSettings: + def __init__(self, sima_exe_path: str, result_files_to_keep=[ + "*-sima.lis", + "variable*.inp", + "*.log", + "results.tda", + "results.txt", + "sima_*.res", + "sys-sima.dat", + "sima_*.bin", + "key_sima_*.txt", + "sima.*"]): + self.sima_exe_path = sima_exe_path + self.result_files_to_keep = result_files_to_keep + + +class SimaTaskCreator: + def __init__(self, sima_settings: SimaSettings, workflow_client: OneWorkflowClient): + """ + A class for setting up a Sima analysis for local or cloud run. + Parameters: + sima_settings(SimaSettings) : contains basic information about path to Sima executable and which files to keep after a Sima run. + workflow_client(workflow_client) : is needed to provide information about relevant folders like common files, result files and workspace. + + """ + self.workspace = self.workspace = workflow_client.workspace_info + self.common_files_folder = workflow_client.common_directory + self.results_folder = workflow_client.results_directory + self.sima_settings = sima_settings + + def get_commands_inputs(self,stask_file: str, case: dict[str, Any]) -> dict[str, dict[str, Any]]: + commands = dict[str, Any]() + commands["--consoleLog"] = "" + commands["--log-level"] = "ALL" + commands["--data"] = "." + commands["--import"] = dict(file=FileSpecification(sharedfolder=True, + directory=self.common_files_folder, filename=stask_file)) + commands["--run"] = dict(task="WorkflowTask", + workflow="ExampleWorkflow") + + return {"commands": commands, "inputs": case} + + + + + def get_sima_work_unit(self, full_path_to_load_case_file: str, stask_file: str ,single_task: bool = False): + """Returns a parallel processing unit based on input given in an Excel file. + + Parameters: + full_path_to_load_case_file(str) : first row in the Excel file should contain the name of the loadcase, the other rows contains the variables to use with their variations. The name of the columns must match what is used with Sima. + stask_file(str) : the stask file to be used. I should be located in the common files folder. + single_task(bool): if set to True, the unit will only contain the first task. + + """ + os.chdir(self.workspace.workspace_path) + load_cases_parent_folder_name = self.workspace.load_cases_parent_directory + + parallel_work = ParallelWork() + parallel_work.work_items.clear() + + # Open environmental input file + df_cases = pd.read_excel(full_path_to_load_case_file, index_col=0) + for loadcase_folder_name, case in df_cases.iterrows(): + load_case_folder = os.path.join( + load_cases_parent_folder_name, loadcase_folder_name) + result_folder_lc = os.path.join( + self.workspace.results_directory, loadcase_folder_name) + # Get SIMA commands and inputs + commands_inputs = self.get_commands_inputs(stask_file, case.to_dict()) + # Create SimaCommand instance + sima_cmd = SimaCommand(self.sima_settings.sima_exe_path) + sima_cmd.commands = commands_inputs["commands"] + sima_cmd.input = commands_inputs["inputs"] + sima_cmd.sima_result_files = self.sima_settings.result_files_to_keep + sima_cmd.working_directory = load_case_folder + + # Add work item to ParallelWork instance + parallel_work.add(sima_cmd, work_unit_id=loadcase_folder_name).output_directory(result_folder_lc, + include_files=self.sima_settings.result_files_to_keep) + if single_task == True: + break + return parallel_work \ No newline at end of file diff --git a/SE28ExampleSimaWasimSestra/simaSimple.ipynb b/SE28ExampleSimaWasimSestra/simaSimple.ipynb new file mode 100644 index 0000000..61b01b2 --- /dev/null +++ b/SE28ExampleSimaWasimSestra/simaSimple.ipynb @@ -0,0 +1,345 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction \n", + "\n", + "\n", + "## How to use this notebook\n", + "This example runs Sima in locally based on input created in the [Create load case folders with unique Sima input](#loadcase_id) section. The code is only a pilot and only intended for testing. \n", + "\n", + "This note bookshould be run in the following way:\n", + "1. [Installation](#installation) can be run to install all the relevant tools, like python modules and local worker executable\n", + "2. [Initialize Workflow](#initialize), run this Python code once at every notebook start to set up basic settings. [Set up custom user parameters](#custom) section should be changed if you want to change workspace or switch between cloud and local run. 2. If you changed something in this section, remember to rerun [Set up OneWorkflow client](#builder).\n", + "3. [Run analysis](#run) shall be run each time a new Sima analysis needs to be run.\n", + "4. [Run Wasim and Sestra](#runwasim) run Wasim and Sestra using results from above Sima run.\n", + "\n", + "### Postprocessing\n", + "It is now possible to read the SIN/FEM file using SifIO, please consult the [Python examples](https://test.pypi.org/project/dnv-sifio/) C# [documentation](https://sesam.dnv.com/dev/api/sifio/). This notebook provides a small example script for getting node coordinates and displacements for the 200 first nodes for loadcase 11, [postprocessing.py](Workspace/CommonFiles/postprocessing.py). The script will be run just after Wasim and Sestra for each load case, see the [Run Wasim and Sestra](#runwasim) section. The section [Post processing](#postprocessing) shows how the post processed result files may be read and visualized in this notebook. More Python examples will be provided later. Relevant additional documents are:\n", + "- The input interface file documentations can be found [here](https://sesam.dnv.com/download/windows64/sesam_input_interface_format.pdf)\n", + "- The results interface format [here](https://sesam.dnv.com/download/windows64/sesam_results_interface_format.pdf)\n", + "\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Initialize workflow \n", + "Run only once when notebook is opened." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up custom user parameters \n", + "You need to set oneWorkflowTMPFolder to a folder that works for you. A short folder path is recommended due to possible issues with Sima and long file names." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "c:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "import os\n", + "\n", + "oneWorkflowTMPFolder = r'd:\\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", + "if not os.path.exists(oneWorkflowTMPFolder):\n", + " try:\n", + " print(\"Trying to create tmp folder for one workflow local execution\")\n", + " os.mkdir(oneWorkflowTMPFolder)\n", + " print(oneWorkflowTMPFolder + \" created!\\n\")\n", + " except:\n", + " print(\"did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.\")\n", + "\n", + "# local workspace, all results will be put here after local or cloud runs\n", + "# location of common files for all analysis, has to be below workspacePath\n", + "root_folder = os.getcwd()\n", + "print(root_folder)\n", + "workspacePath = str(Path(root_folder, 'Workspace'))\n", + "workspaceId = \"SE28\"\n", + "loadcase_file = f\"{workspacePath}\\\\test_cases.xlsx\"\n", + "wasim_input_file = \"test_cases_wasim_input.xlsx\"\n", + "stask_file = \"SimaTemplate.stask\"\n", + "cloudRun = False\n", + "notebook_root_folder = os.getcwd()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up OneWorkflow client \n", + "Run only once workbook is started or if some parameters above are changed." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'WindowsPath' object has no attribute 'strip'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mc:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\\workflowCoreDemoSE28SestraAndWasim.ipynb Cell 6\u001b[0m line \u001b[0;36m4\n\u001b[0;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mworkunit_extension\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstarter\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[1;32m----> 4\u001b[0m workflow_client \u001b[39m=\u001b[39m one_workflow_client(workspace_id \u001b[39m=\u001b[39;49m workspaceId, workspace_path \u001b[39m=\u001b[39;49m workspacePath, cloud_run \u001b[39m=\u001b[39;49m cloudRun,\n\u001b[0;32m 5\u001b[0m local_workflow_runtime_temp_folder_path \u001b[39m=\u001b[39;49m oneWorkflowTMPFolder, platform\u001b[39m=\u001b[39;49mPlatform\u001b[39m.\u001b[39;49mWINDOWS, max_cores\u001b[39m=\u001b[39;49m\u001b[39m5\u001b[39;49m,auto_deploy_option \u001b[39m=\u001b[39;49m AutoDeployOption\u001b[39m.\u001b[39;49mDEV)\n\u001b[0;32m 6\u001b[0m workflow_client\u001b[39m.\u001b[39mstart_workflow_runtime_service()\n\u001b[0;32m 7\u001b[0m workspace \u001b[39m=\u001b[39m workflow_client\u001b[39m.\u001b[39mworkspace_info\n", + "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\utils\\starter.py:187\u001b[0m, in \u001b[0;36mone_workflow_client\u001b[1;34m(workspace_id, workspace_path, cloud_run, local_workflow_runtime_temp_folder_path, local_workflow_runtime_service_visible, platform, max_cores, debug_local_worker, local_worker_host_apps_path, local_workflow_runtime_path, auto_deploy_option, console_log_level, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mone_workflow_client\u001b[39m(\n\u001b[0;32m 136\u001b[0m workspace_id: \u001b[39mstr\u001b[39m,\n\u001b[0;32m 137\u001b[0m workspace_path: \u001b[39mstr\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 148\u001b[0m redirect_console_logs_to_terminal: \u001b[39mbool\u001b[39m \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m,\n\u001b[0;32m 149\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m OneWorkflowClient:\n\u001b[0;32m 150\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 151\u001b[0m \u001b[39m Creates and configures an instance of the OneWorkflowClient for interacting with the\u001b[39;00m\n\u001b[0;32m 152\u001b[0m \u001b[39m OneWorkflow system. The client can be used to manage and execute workflows. It is\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[39m parameters.\u001b[39;00m\n\u001b[0;32m 186\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 187\u001b[0m workflow_client \u001b[39m=\u001b[39m OneWorkflowClient(\n\u001b[0;32m 188\u001b[0m local_workflow_runtime_temp_folder_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_temp_folder_path,\n\u001b[0;32m 189\u001b[0m local_workflow_runtime_service_visible\u001b[39m=\u001b[39;49mlocal_workflow_runtime_service_visible,\n\u001b[0;32m 190\u001b[0m cloud_run\u001b[39m=\u001b[39;49mcloud_run,\n\u001b[0;32m 191\u001b[0m workspace_id\u001b[39m=\u001b[39;49mworkspace_id,\n\u001b[0;32m 192\u001b[0m workspace_path\u001b[39m=\u001b[39;49mworkspace_path,\n\u001b[0;32m 193\u001b[0m environment\u001b[39m=\u001b[39;49mEnvironment\u001b[39m.\u001b[39;49mTesting,\n\u001b[0;32m 194\u001b[0m application_id\u001b[39m=\u001b[39;49moc_application_id(cloud_run, platform),\n\u001b[0;32m 195\u001b[0m executable_name\u001b[39m=\u001b[39;49mexecutable_name(cloud_run),\n\u001b[0;32m 196\u001b[0m local_worker_host_apps_path\u001b[39m=\u001b[39;49mlocal_worker_host_apps_path,\n\u001b[0;32m 197\u001b[0m local_workflow_runtime_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_path,\n\u001b[0;32m 198\u001b[0m debug_local_worker\u001b[39m=\u001b[39;49mdebug_local_worker,\n\u001b[0;32m 199\u001b[0m console_log_level\u001b[39m=\u001b[39;49mconsole_log_level,\n\u001b[0;32m 200\u001b[0m auto_deploy_option\u001b[39m=\u001b[39;49mauto_deploy_option,\n\u001b[0;32m 201\u001b[0m max_concurrent_workers\u001b[39m=\u001b[39;49mmax_cores,\n\u001b[0;32m 202\u001b[0m redirect_console_logs_to_terminal\u001b[39m=\u001b[39;49mredirect_console_logs_to_terminal,\n\u001b[0;32m 203\u001b[0m )\n\u001b[0;32m 204\u001b[0m \u001b[39mreturn\u001b[39;00m workflow_client\n", + "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:208\u001b[0m, in \u001b[0;36mOneWorkflowClient.__init__\u001b[1;34m(self, application_id, executable_name, workspace_id, workspace_path, common_directory, load_cases_directory, results_directory, local_workflow_runtime_endpoint, local_workflow_runtime_path, local_workflow_runtime_temp_folder_path, local_workflow_runtime_startup_wait_time, local_workflow_runtime_service_visible, local_workflow_runtime_log_filename, local_worker_host_apps_path, debug_local_worker, console_log_level, auto_deploy_option, max_concurrent_workers, cloud_run, environment, authenticator, pool_id, job_status_polling_interval, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 206\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_workspace_config: Optional[WorkspaceConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 207\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_worker_config: Optional[WorkerConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m--> 208\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m__post_init__()\n", + "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:218\u001b[0m, in \u001b[0;36mOneWorkflowClient.__post_init__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 215\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id\u001b[39m.\u001b[39mstrip():\n\u001b[0;32m 216\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id \u001b[39m=\u001b[39m \u001b[39mstr\u001b[39m(uuid\u001b[39m.\u001b[39muuid4())\n\u001b[1;32m--> 218\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mworkspace_path\u001b[39m.\u001b[39;49mstrip():\n\u001b[0;32m 219\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_path \u001b[39m=\u001b[39m os\u001b[39m.\u001b[39mgetcwd()\n\u001b[0;32m 221\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcommon_directory\u001b[39m.\u001b[39mstrip():\n", + "\u001b[1;31mAttributeError\u001b[0m: 'WindowsPath' object has no attribute 'strip'" + ] + } + ], + "source": [ + "from dnv.oneworkflow.utils.workunit_extension import *\n", + "from dnv.oneworkflow.utils.starter import *\n", + "\n", + "workflow_client = one_workflow_client(workspace_id = workspaceId, workspace_path = workspacePath, cloud_run = cloudRun,\n", + " local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, platform=Platform.WINDOWS, max_cores=5,auto_deploy_option = AutoDeployOption.DEV)\n", + "workflow_client.start_workflow_runtime_service()\n", + "workspace = workflow_client.workspace_info\n", + "commonfiles_folder = workspace.common_files_directory\n", + "results_folder = workspace.results_directory\n", + "#If running locally the code below will also start the local workflow host.\n", + "if (cloudRun):\n", + " workflow_client.login()\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload common files for the job \n", + "This step uploads all common files in folder *commonFilesDirectory* to the job. Only needed to run if new common files are to be uploaded or workspace changed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from dnv.onecompute.directory_client import FileOptions\n", + "try:\n", + " workflow_client.upload_common_files(FileOptions(\n", + " # max_size_bytes=124_000,\n", + " #patterns=[\"**/*.py\",\"**/*.inp\"],\n", + " overwrite=True))\n", + "except Exception as e:\n", + " print(e)\n", + " print(\"Ignore this error message if the files are already present.\")\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run Sima analysis \n", + "This code will fetch data from the blob storage created in the step above, and run all the job tasks. The code will wait for all tasks to complete before downloading the results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from SimaHelperOld import *\n", + "import json\n", + "\"\"\"Tests SIMA and Python commands\"\"\"\n", + "# Upload Input Files\n", + "workflow_client.upload_input_files()\n", + "\n", + "#Sima path must be specified\n", + "sima_settings = SimaSettings(sima_exe_path=r'C:\\Program Files\\DNV\\Sima V4.4-00')\n", + "sima_work_unit = SimaTaskCreator(sima_settings, workflow_client).get_sima_work_unit(loadcase_file, stask_file)\n", + "\n", + "# Create Parallel Work Unit and Job\n", + "job = workflow_client.create_job(sima_work_unit)\n", + "job_json = json.dumps(job, default=lambda o: o.encode(), indent=4)\n", + "\n", + "#print(job_json)\n", + "# Run workflow\n", + "downloadOptions = FileOptions(\n", + " max_size=\"11124MB\",\n", + " patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.mlg\"])\n", + "await run_workflow_async(job, workflow_client, downloadOptions)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run Wasim and Sestra " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from dnv.onecompute.flowmodel import WorkUnit\n", + "from SesamUtilities import WasimAndSestraTaskCreator\n", + "import pandas as pd\n", + "from dnv.oneworkflow import ParallelWork\n", + "import json\n", + "import os\n", + "workspace.results_directory = \"Results\"\n", + "load_cases = [\"test001\", \"test002\"]\n", + "\n", + "os.chdir(workspacePath)\n", + "topSuperElement = 3\n", + "# due to 5 field width on Sestra cards we need to use as short name here\n", + "additionalTemplateParameters = {\n", + " 'FMT': topSuperElement, 'topsel': topSuperElement}\n", + "\n", + "def run_wasim_and_sestra_using_results_from_sima(\n", + " results_directory: str, load_cases: str) -> ParallelWork:\n", + " \"\"\"Creates a parallel work unit\"\"\"\n", + " df_cases = pd.read_excel(os.path.join(\n", + " workspacePath, wasim_input_file), index_col=0)\n", + " parallel_work_units = list[WorkUnit]()\n", + "\n", + " for casename, case in df_cases.iterrows():\n", + " if not casename in load_cases:\n", + " print(\"skipping \" + casename)\n", + " continue\n", + " \n", + " load_case_result_files_dir = os.path.join(results_directory, casename)\n", + " casedict = case.to_dict()\n", + " \n", + " cmd = WasimAndSestraTaskCreator(\n", + " load_case_result_files_dir, commonfiles_folder, casedict, additionalTemplateParameters).CreateTasks()\n", + " work_unit = (\n", + " WorkUnit(cmd, f\"post_rerun_{casename}\")\n", + " .input_directory(load_case_result_files_dir)\n", + " .output_directory(load_case_result_files_dir, include_files=[\"**/sima.*\", \"**/*.txt\", \"**/*.tda\", \"**/*.bin\", \"**/*.log\", \"**/*.inp\", \"**/*.lis\", \"**/*.mlg\", \"**/*.sin\"])\n", + " )\n", + " parallel_work_units.append(work_unit)\n", + "\n", + " return ParallelWork(parallel_work_units)\n", + "print(os.getcwd())\n", + "print(workflow_client.workspace_path)\n", + "\n", + "work_unit = run_wasim_and_sestra_using_results_from_sima(\n", + " workspace.results_directory, load_cases)\n", + "if not cloudRun:\n", + " workflow_client.upload_common_files()\n", + " workflow_client.upload_result_files()\n", + "\n", + "\n", + "downloadOptions = FileOptions(\n", + " min_size =0,\n", + " max_size= \"11124MB\",\n", + " patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.mlg\", \"**/*.sin\"])\n", + "await run_workflow_async(workflow_client.create_job(work_unit), workflow_client, downloadOptions)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "workflow_client.stop_workflow_runtime_service()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Post processing " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import display\n", + "import numpy as np\n", + "import pandas as pd\n", + "import glob\n", + "from ipywidgets import interactive\n", + "\n", + "lc = 11\n", + "dataFrames = {}\n", + "print(workspacePath)\n", + "for folder in glob.glob(f\"{workspacePath}\\\\Results\\\\*\"):\n", + " test_name = folder.split(\"\\\\\")[-1]\n", + " try:\n", + " data = np.loadtxt(f\"{folder}\\\\postprocessedresultsLC{lc}.txt\")\n", + " dispdata = {\n", + " \"x-coord\": data[:, 0],\n", + " \"total-disp\": np.sqrt(data[:, 3]**2+data[:, 4]**2+data[:, 5]**2)\n", + " }\n", + " dataFrames[test_name] = pd.DataFrame(dispdata)\n", + " except:\n", + " print(\"Failed loading data for test :\" + test_name)\n", + "\n", + "def multiplot(resultcase):\n", + " dataFrames[resultcase].plot(\n", + " x=\"x-coord\", y=\"total-disp\", kind=\"scatter\", figsize=(15, 15))\n", + "\n", + "\n", + "interactive_plot = interactive(multiplot, resultcase=dataFrames.keys())\n", + "interactive_plot\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.1" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "e3f4950b6ecc2246e9f46f113f926a9a268224216b0af4259a912530ba1db262" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SE28ExampleSimaWasimSestra/workflowCoreDemoSE28SestraAndWasim.ipynb b/SE28ExampleSimaWasimSestra/workflowCoreDemoSE28SestraAndWasim.ipynb index 61131f9..fe0fdcc 100644 --- a/SE28ExampleSimaWasimSestra/workflowCoreDemoSE28SestraAndWasim.ipynb +++ b/SE28ExampleSimaWasimSestra/workflowCoreDemoSE28SestraAndWasim.ipynb @@ -44,17 +44,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "c:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "import os\n", @@ -92,64 +84,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'WindowsPath' object has no attribute 'strip'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mc:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\\workflowCoreDemoSE28SestraAndWasim.ipynb Cell 6\u001b[0m line \u001b[0;36m4\n\u001b[0;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mworkunit_extension\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstarter\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[1;32m----> 4\u001b[0m workflow_client \u001b[39m=\u001b[39m one_workflow_client(workspace_id \u001b[39m=\u001b[39;49m workspaceId, workspace_path \u001b[39m=\u001b[39;49m workspacePath, cloud_run \u001b[39m=\u001b[39;49m cloudRun,\n\u001b[0;32m 5\u001b[0m local_workflow_runtime_temp_folder_path \u001b[39m=\u001b[39;49m oneWorkflowTMPFolder, platform\u001b[39m=\u001b[39;49mPlatform\u001b[39m.\u001b[39;49mWINDOWS, max_cores\u001b[39m=\u001b[39;49m\u001b[39m5\u001b[39;49m,auto_deploy_option \u001b[39m=\u001b[39;49m AutoDeployOption\u001b[39m.\u001b[39;49mDEV)\n\u001b[0;32m 6\u001b[0m workflow_client\u001b[39m.\u001b[39mstart_workflow_runtime_service()\n\u001b[0;32m 7\u001b[0m workspace \u001b[39m=\u001b[39m workflow_client\u001b[39m.\u001b[39mworkspace_info\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\utils\\starter.py:187\u001b[0m, in \u001b[0;36mone_workflow_client\u001b[1;34m(workspace_id, workspace_path, cloud_run, local_workflow_runtime_temp_folder_path, local_workflow_runtime_service_visible, platform, max_cores, debug_local_worker, local_worker_host_apps_path, local_workflow_runtime_path, auto_deploy_option, console_log_level, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mone_workflow_client\u001b[39m(\n\u001b[0;32m 136\u001b[0m workspace_id: \u001b[39mstr\u001b[39m,\n\u001b[0;32m 137\u001b[0m workspace_path: \u001b[39mstr\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 148\u001b[0m redirect_console_logs_to_terminal: \u001b[39mbool\u001b[39m \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m,\n\u001b[0;32m 149\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m OneWorkflowClient:\n\u001b[0;32m 150\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 151\u001b[0m \u001b[39m Creates and configures an instance of the OneWorkflowClient for interacting with the\u001b[39;00m\n\u001b[0;32m 152\u001b[0m \u001b[39m OneWorkflow system. The client can be used to manage and execute workflows. It is\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[39m parameters.\u001b[39;00m\n\u001b[0;32m 186\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 187\u001b[0m workflow_client \u001b[39m=\u001b[39m OneWorkflowClient(\n\u001b[0;32m 188\u001b[0m local_workflow_runtime_temp_folder_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_temp_folder_path,\n\u001b[0;32m 189\u001b[0m local_workflow_runtime_service_visible\u001b[39m=\u001b[39;49mlocal_workflow_runtime_service_visible,\n\u001b[0;32m 190\u001b[0m cloud_run\u001b[39m=\u001b[39;49mcloud_run,\n\u001b[0;32m 191\u001b[0m workspace_id\u001b[39m=\u001b[39;49mworkspace_id,\n\u001b[0;32m 192\u001b[0m workspace_path\u001b[39m=\u001b[39;49mworkspace_path,\n\u001b[0;32m 193\u001b[0m environment\u001b[39m=\u001b[39;49mEnvironment\u001b[39m.\u001b[39;49mTesting,\n\u001b[0;32m 194\u001b[0m application_id\u001b[39m=\u001b[39;49moc_application_id(cloud_run, platform),\n\u001b[0;32m 195\u001b[0m executable_name\u001b[39m=\u001b[39;49mexecutable_name(cloud_run),\n\u001b[0;32m 196\u001b[0m local_worker_host_apps_path\u001b[39m=\u001b[39;49mlocal_worker_host_apps_path,\n\u001b[0;32m 197\u001b[0m local_workflow_runtime_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_path,\n\u001b[0;32m 198\u001b[0m debug_local_worker\u001b[39m=\u001b[39;49mdebug_local_worker,\n\u001b[0;32m 199\u001b[0m console_log_level\u001b[39m=\u001b[39;49mconsole_log_level,\n\u001b[0;32m 200\u001b[0m auto_deploy_option\u001b[39m=\u001b[39;49mauto_deploy_option,\n\u001b[0;32m 201\u001b[0m max_concurrent_workers\u001b[39m=\u001b[39;49mmax_cores,\n\u001b[0;32m 202\u001b[0m redirect_console_logs_to_terminal\u001b[39m=\u001b[39;49mredirect_console_logs_to_terminal,\n\u001b[0;32m 203\u001b[0m )\n\u001b[0;32m 204\u001b[0m \u001b[39mreturn\u001b[39;00m workflow_client\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:208\u001b[0m, in \u001b[0;36mOneWorkflowClient.__init__\u001b[1;34m(self, application_id, executable_name, workspace_id, workspace_path, common_directory, load_cases_directory, results_directory, local_workflow_runtime_endpoint, local_workflow_runtime_path, local_workflow_runtime_temp_folder_path, local_workflow_runtime_startup_wait_time, local_workflow_runtime_service_visible, local_workflow_runtime_log_filename, local_worker_host_apps_path, debug_local_worker, console_log_level, auto_deploy_option, max_concurrent_workers, cloud_run, environment, authenticator, pool_id, job_status_polling_interval, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 206\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_workspace_config: Optional[WorkspaceConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 207\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_worker_config: Optional[WorkerConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m--> 208\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m__post_init__()\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:218\u001b[0m, in \u001b[0;36mOneWorkflowClient.__post_init__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 215\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id\u001b[39m.\u001b[39mstrip():\n\u001b[0;32m 216\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id \u001b[39m=\u001b[39m \u001b[39mstr\u001b[39m(uuid\u001b[39m.\u001b[39muuid4())\n\u001b[1;32m--> 218\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mworkspace_path\u001b[39m.\u001b[39;49mstrip():\n\u001b[0;32m 219\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_path \u001b[39m=\u001b[39m os\u001b[39m.\u001b[39mgetcwd()\n\u001b[0;32m 221\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcommon_directory\u001b[39m.\u001b[39mstrip():\n", - "\u001b[1;31mAttributeError\u001b[0m: 'WindowsPath' object has no attribute 'strip'" + "name": "stdout", + "output_type": "stream", + "text": [ + "The temporary blob storage directory is: d:\\oneworkflowTmp\\oc_nov1vni5_blob\n", + "The temporary jobs root directory is: d:\\oneworkflowTmp\\oc_o4hq2wnp_jobs\n" ] } ], "source": [ "from dnv.oneworkflow.utils.workunit_extension import *\n", "from dnv.oneworkflow.utils.starter import *\n", - "\n", - "workflow_client = one_workflow_client(workspace_id = workspaceId, workspace_path = workspacePath, cloud_run = cloudRun,\n", - " local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, platform=Platform.WINDOWS, max_cores=5,auto_deploy_option = AutoDeployOption.DEV)\n", - "workflow_client.start_workflow_runtime_service()\n", - "workspace = workflow_client.workspace_info\n", - "commonfiles_folder = workspace.common_files_directory\n", - "results_folder = workspace.results_directory\n", - "#If running locally the code below will also start the local workflow host.\n", - "if (cloudRun):\n", - " workflow_client.login()\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Upload common files for the job \n", - "This step uploads all common files in folder *commonFilesDirectory* to the job. Only needed to run if new common files are to be uploaded or workspace changed." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "from dnv.onecompute.directory_client import FileOptions\n", - "try:\n", - " workflow_client.upload_common_files(FileOptions(\n", - " # max_size_bytes=124_000,\n", - " #patterns=[\"**/*.py\",\"**/*.inp\"],\n", - " overwrite=True))\n", - "except Exception as e:\n", - " print(e)\n", - " print(\"Ignore this error message if the files are already present.\")\n" + "workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder,\n", + " local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing)\n" ] }, { @@ -175,18 +126,18 @@ "\n", "#Sima path must be specified\n", "sima_settings = SimaSettings(sima_exe_path=r'C:\\Program Files\\DNV\\Sima V4.4-00')\n", - "sima_work_unit = SimaTaskCreator(sima_settings, workflow_client).get_sima_work_unit(loadcase_file, stask_file)\n", + "sima_commands = SimaTaskCreator(sima_settings, workflow_client).get_sima_commands(loadcase_file, stask_file)\n", "\n", - "# Create Parallel Work Unit and Job\n", - "job = workflow_client.create_job(sima_work_unit)\n", - "job_json = json.dumps(job, default=lambda o: o.encode(), indent=4)\n", "\n", - "#print(job_json)\n", - "# Run workflow\n", - "downloadOptions = FileOptions(\n", - " max_size=\"11124MB\",\n", - " patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.mlg\"])\n", - "await run_workflow_async(job, workflow_client, downloadOptions)\n" + "\n", + "print(\"Running commands in parallel\")\n", + "await run_managed_commands_parallelly_async(\n", + " log_job = True,\n", + " client=workflow_client,\n", + " commands_info=sima_commands,\n", + " files_to_download_from_blob_to_client=FileOptions(max_size=\"11124MB\",patterns=[\"**/*.log\",\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\", \"**/*.MLG\",\"**/*.CSV\",\"**/*.*\"]),\n", + " enable_common_files_copy_to_load_cases=True,\n", + ")" ] }, { From e56a1258f7fefe1f6b11d63c39aabd84236164f2 Mon Sep 17 00:00:00 2001 From: Knut Birger Lunde Date: Fri, 19 Jan 2024 13:00:45 +0100 Subject: [PATCH 3/4] a simplified sima example --- SE28ExampleSimaWasimSestra/SimaExample.py | 48 ++++++++++++++++++ .../CommonFiles/SimaTemplateV2.stask | Bin 0 -> 269115 bytes .../Workspace/test_cases_light.xlsx | Bin 0 -> 18147 bytes SE28ExampleSimaWasimSestra/simaSimple.ipynb | 35 +++---------- 4 files changed, 54 insertions(+), 29 deletions(-) create mode 100644 SE28ExampleSimaWasimSestra/SimaExample.py create mode 100644 SE28ExampleSimaWasimSestra/Workspace/CommonFiles/SimaTemplateV2.stask create mode 100644 SE28ExampleSimaWasimSestra/Workspace/test_cases_light.xlsx diff --git a/SE28ExampleSimaWasimSestra/SimaExample.py b/SE28ExampleSimaWasimSestra/SimaExample.py new file mode 100644 index 0000000..e6611c6 --- /dev/null +++ b/SE28ExampleSimaWasimSestra/SimaExample.py @@ -0,0 +1,48 @@ +from pathlib import Path +import os +from dnv.oneworkflow.utils.workunit_extension import * +from dnv.oneworkflow.utils.starter import * +from SimaHelper import * +import json +root_folder = os.path.dirname(os.path.abspath(__file__)) +oneWorkflowTMPFolder = r'd:\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root +if not os.path.exists(oneWorkflowTMPFolder): + try: + print("Trying to create tmp folder for one workflow local execution") + os.mkdir(oneWorkflowTMPFolder) + print(oneWorkflowTMPFolder + " created!\n") + except: + print("did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.") + +# local workspace, all results will be put here after local or cloud runs +# location of common files for all analysis, has to be below workspacePath +print(root_folder) +workspacePath = str(Path(root_folder, 'Workspace')) +workspaceId = "SE28" +loadcase_file = f"{workspacePath}\\test_cases_light.xlsx" +wasim_input_file = "test_cases_wasim_input.xlsx" +stask_file = "SimaTemplateV2.stask" +cloudRun = False +notebook_root_folder = os.getcwd() + +workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder, + local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing) + +"""Tests SIMA and Python commands""" +# Upload Input Files +workflow_client.upload_input_files() + +#Sima path must be specified +sima_settings = SimaSettings(sima_exe_path=r'C:\Program Files\DNV\Sima V4.4-00') +sima_commands = SimaTaskCreator(sima_settings, workflow_client).get_sima_commands(loadcase_file, stask_file) + + + +print("Running commands in parallel") +asyncio.run(run_managed_commands_parallelly_async( + #log_job = True, + client=workflow_client, + commands_info=sima_commands, + files_to_download_from_blob_to_client=FileOptions(max_size="11124MB",patterns=["**/*.log","**/*.txt", "**/*.lis", "**/*.MLG", "**/*.MLG","**/*.CSV"]), + enable_common_files_copy_to_load_cases=True, +)) \ No newline at end of file diff --git a/SE28ExampleSimaWasimSestra/Workspace/CommonFiles/SimaTemplateV2.stask b/SE28ExampleSimaWasimSestra/Workspace/CommonFiles/SimaTemplateV2.stask new file mode 100644 index 0000000000000000000000000000000000000000..814bc18a3400ff10416407c31a95b9a17bf4c857 GIT binary patch literal 269115 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

t};P&ydCE6f*374*gONb&peKJ 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

M_oejMF$$ zKz7qj=@5B9of;?(Pf)kjYB|QQ1@J_;K|R-KoRL%36sFP8(qM8k3^k|%2$1WHsMFdm z5FXLU2T)tzwT&_(Fgk=om@Nvr#yzdOc3g6{;AW6jGF-<|PkRbg+|cSf5El9dphDG~ z73gyD%KPjrA8oATJWZdADybv>An}V^` zJOD!yy_{%^(9dU_F!E(!IXY;xZi!edRCW7dn%A6d$M$Qc6mrUdYZ(`CS7W!V4j)tB zI5X3sv{-ulHQPA&EsK)~xlc6w;8xt#nXq;A3t^R8Rq?qIZswTuz|c5xs-;fBK%qJ5 z|3Ui%MRF&hfl`z_OX!K40#v6S3%QOyhBiRCR@=Gw6ICwl6-7<7C08S#mvVJUP!yIC zQ}NhQD*6Sz092!U8gAu6zk{A{5EZ)09N8k>EE7haN(s-%X2BMJY1ye1w6F@8MC9mq zkYtg6=@esca`e{)!TON@vMoOx|fs!N8Tt9$iZorqMX%SZ~^puO{ahHCBWS9~)!HjNxr46r?Qt@jmiP@^udQ z-fG0(8%?yFZ}+{`CJu=(T%xjH^K`!&ZV0SLWN~P<(6#E+7hu1ZC$Z?Ak<)L{b}mRO z%KOaONdE~A$bOwpX$yVaN&;HZg+l&;0*iA?!1{xH1$b?387HFBB3@nFv7`E9 zu}Kn2ZPirDEnL(QU8ETw zc_;@OtGIXv8Q*p4aSmWxZ!J%r zuF-^F$|EmJ*c1`rE&K39I_GO2T}P5=gPgB(Q*e84C}hd4ZYx{2P8P9(Jq6J9LD8`qVr_aUwfLkAne<)bi6uunJ6p;S}PKD;shUxV!Yn zEa~AE^svI&Lea;|J%RK|eCdt!oYlXakhaL-p^7!bA&9%JfU^dE8}OPASn)PD?Z`)R z5+~;Iei?^&8O4D&J_U=n4r=2$lRI-b$%?&bfCR2a&qBLfh5Ss}{=0$?|1;bF({DbY zNYmMdiEJXN30uBXHP@}t;SESyXg$?C8L54NOOOMIbcPcElnF|9cT|&`1H{(3(HR2% zlsbUhk)tEGeCbGo`;oDB+C1TZycP_$4gPLNys_pkhr8`Si>BqF(d*Y~K$2I32Vrbg z9aL1vQHFrL-GP|U^q}wuE{A0uh?}A}WQk}hEX{1gf*-E|l1rae?bRA6>BjK&na(D^gFV{C2DKD8q3X%oxI$100!l4g| z;-bF1S!fZM>k^Fc(ygGY&1xu+*9#{Ry(my5I)M~Nbbbuc{^slmG5rWiD%$9I2P?s3g^b_O`Z$IBUrS;=ak4AQOSTERh=N3%dE zY=_482hrF0dg(C*^FBz4)J}>a7g|J@VV-Q8_Z=8Bk0G6sA%0#gl zYEeM4WG$VQY?BhCju<`LaGyI?iS`Io3y^M2#}|?VjI^SBf_S68^1}bEpo}J0D0Zxi zZy=8(8w)sR85R~P4YWS0A{4ZNAA20=n3X(=ck(;7L;0-uA9+aV)i&Bg2D<@8ONEYl zDY`bMQG+CyZ7=~$LI}sDrE4Pz0SY~M;oyttSX!VK)``rUbM481gL$QKv!=z}chlX7 zX6Xoi)jXgejG93jc7Xa#$JlVe+r2s2E9dGQLnHk;a3N z%Bc{b4NHj4P7Vk2sc;sOolPp9Hh;%fqV~G>I;wyB=pP!tfnBS^7(Y;5P|a6dc~xl}CPglKzqx>$K6Lyi__|)qs$;bGyn*B1UK^b}V@d zMurs{PAV}I(Kf?>)ls3v`*6yg3iRVdu?`o|GdWgrcDvzNj6AfZAl}D>$IQt6Tq7Du zQsi2ohJI}JuEWJuU=Km6$Z6S;HSULYdQ>fnB`6Hp{lH@f6}OjDBRT|Tgl!5%W6G&^ zP*mgSaO$KeKHA^o$LAH>Vz-=im0uhB zkx)-mv7yOxZajQf#cX7f;B#_PR+W5g3%M#&w@y<>9&>+>wiJJ3u*odsg zdQ?OT$*FN_H5L>xGZqExIlJs`-;e3a|0d&f8 zScY#jit1aiadNtb(=;WI4&^gSJLrI0YL9?<0yX6dWwOKAsIQ*%CDW5gW3G|So#@HX z1{JBm&Om1nms4aoyG%;SzwZlhG0p!*vSovLilG? zi-6W0Zxxm-N6Sf3QzJw5meUyyKSnN^xYk9Np%&js&78y(=#(0>3?tJ3t$aDfA1%(| z*MA(Fvp}*?$f^n~ zq%`l1yN^wRsH&{Y$k;OCURDhsSv>H`AZZ5M%II(dUu{Iw0#1v`8Sy-6L0$r>CJ?It zlYrq?!4_LUK7dHsa_}k*%4ty`jze#TL|TbzWqO222a=2|K+q_y!C`cwZDCaT2TLmm;>oGFLBvmm%l0)tpW<`Myz96rKG`OY!kkj3QY-h#ugA-i9 zP%u_RXt2)HN}_4O^LU4mg(t;g1y0vEaD_Cp6vkuWm4$E2sg}|fG#AKZ0*it}+A{!Z zhXoxrs`fQ9%>9M}HKhn1olkKHBU2o(4bgRoRJmX{Zm_8VNVP~8(XQv9k_)^D`R?S2 zhQN6U8dSh@nULLL;a2vC zAONXF|49%ov10dM0pJxNF2bdXfwA=w*`aw6W9f5{o(JSnlGq6C~&wE^a{ zVx|~PVhe&`03_8j9yI`+ge5oCs6^#OyODQQ1dJUpJp{Ih;$1`mfd_~yX-L|-j`=77 zENhBa$=rDW({rxUNvEQ!k9=P1>1m89L>&p52*?WAWF;*pQ%yUV+$j&x00U+q)-}+o z;G07}n1VjWHNa^i9YG3A3sSR!l|~1~4F#;811K4-p9#-T(y!7{(*=ryXHg7bQY$ zhx{Fizv%rqYm2gKw1LnrC)>uDaxlmsDFtGT)M>(!2B<5r575?-BowS`P-7F&w(ij{ z%6X0g_y`3kkO;tI2Bszfxw)^JAC>T&bwwNu&r3*|>Yq6-PCy`N!7S`5iYJy~(T3KP z+((*i+7~=I!14ecB$B?P|8bNs%q4l9id<+UD=64unr4NH9)Y}`0X!LNQy8@6dQg7@ z*NTzg(BR`m;}ujZtKte>aA*Jly;nf&&hbrvzfU&@A~A4}S;7ObJak)9_$5)>%D4zM z0m8;2;=s*w((Uj>P!AXd!u7~I0Q5MKqd5aCt>D21(hCGKz@+Jrapd7$6%xhoxDvRA zTw$YaMgaxr_Rtx|@<#^Vpj#+{W&_7)oKTM<-9%;%PBCveeRRr`iy%OsiN;&YDB5s9 zyFwHu(9t9rwSB1NwkSZ7q^v!M|Jeia*&rEC8YfsrC9I){#ZjE^$%iEy%xM}huxiL6 z`h*qCYV8a<30VX#qu}sB;>^rN4a$cU=dpV8y`pVKui_CFb5c(}$$Rgoz zpg9AJyGQK=r+-j_#Tne^5iIfKgK~rghjRe(21^cy9|QRv^v>fn*8`T7QQSp>3qO~Z z5N42b1pu#+-UJXk2ZlV5<0TVpt6q+MBbb;7$S`q;5o2O_NsQS*{%05%i7X1Hj0^@n zkOOxo!6yPDds#fT(6Pd1s8XMpE|PfP)6RrnT96PszGgpwwEj?sG@) zbU>Fe%KB1fHLwn!X`#@2mD*GjUpFJ)Er5TBszZw&F9z_)fD~Iu1ve7?O051Kw48Vp zmcol5AA(VMkkEVqury1(TBn(URwNZE*Sbc!xlaUROiJM(S7EvN?W1E;FJ({~X{4xVD{0i`d zS_;_78{%jVdKU-uGl_g(s_yj3EVy9+!S|PDYTnmNlSaLs5$W>Z#&S^aFU}4`G9AS9JaJ9>|Tn<$RRJ#4v`LpEhlDB*o{RZ zq68d>Wbvm1OgCk)9qL&bRVM>9*B6N`z@RgL;WW9BC{JS|@emw~CMocB;J=VS?+l!% zT*7YRFar%io^_54{+hy~EnTBqg;O(1eveOZ?i9*;S{_ECJAlXpClF-T0V>Nd5k(Xv zGY&Zn$?BL^$O0YH{ynCy0xNJlUZpCnv(P>SJfmu8Dm$Eqn%unAxa zaDkjU)&a2i(8`LFZL$%91+QT#>hY)p0G=|3PHvFiCMtA8p_!fI=z)SLZ5EJ&2^Nez zX)O;AOeEM7&7$l>|67sj264V0IRU8z#ybuh9DD@L>FT3U94x#J$$4HbQU?H53y@p~ zPOzY%R~4H6J!onG-7{GuIF(3wal%p5j?kNvx{v6XAerBGPUqBp0dx2XI@1&gw*1TpEO06j@A3Hq5?Ic3tV zAgf0|iRZxO(Qs15yF$-+dh&o+qIHk=v9wd`l#DoINxBxVa5zGZH)u&hvmM@qARN)d>uH&$; z4@kJ6F_DX+a2y3#9IwGqAdWURAUbG{Jtr>#QIk2}KqMASjN5%t9MppbvzC5>!ocppOD@rD=Q7N;>qx^c(b)=L&#a z00;;JSP*57CW5%upg@TsUkj1>dq zkpKXT)8%v=!w^YuR=~|BF#}>03tig#07_vR83q1^mFfgR7mhHafjh%N$;SbXCGCw0 zYVbU;4vJ`U9lbuNOB3Az<8TEIIXGfHoS?|bcNqt49W-Wvgo5)Blr#dA4X4F0OpGfW zIN$(CPo_VxpbMljs96B?l>>V#quHB$D}lHK99l53oIX*KeRBK@G>eJ~FpII2I9Nq5 zHpvd)qFCge7IPNUSqdpy7O8}^Z~;NbU;$+1SkI9OV4Re4hytJ^EJY5xN+ui)2aW?P z0FYbc;e$wipJJiQMF1J$oQHOd^Nf=VRFVbM_8Y)*8CI_qPHqF*aT7wOXSB|MMivdc zFf`}^>wkG#dw?S-VAl#3t%L=3cR=`;ids2s(!ls66>F>V7*2eR?}kJ`j+S3eJ<$N! zK@YrFXHo|YD-{`FjzL&PZ=*Qr1qH?mz_8MiSkg<3-LFs=fzl|_NHjFV2$ylZ;n6jO zA_PF$Gn_Ht$)PS6bcG4Lx&IPpJwR1sD)d9DwBN##p98#KnP4S7hZ@@=w@{$jL&9Kk zDoQ-rZjS_u1z414G034@DFXKpEzjhWv9LjK{7Q=43jtlh%Hp888rUeHhBd4#mcpr! zMY&G|6brAU28psFXw>fD;En+;n80T!msf=L}ZOPezi4p zfAV3xCbbzj#9J~V$SoAAC~1}z=ZG7JmdN{(!32f_hvpYmIEW7;(ATl5oNh*hu4otc z8Wq)&6YwF<69Df8^&r6S7-djSVxN`4wVp4qe+p2;|3Q*7pb9@HUgI){vs9)zKupAf;P$Q$j zgb|>bP-t>GElT(SQQ3b9g}r2LamWfvO-4>1++r!x0*!Fs)YeiEXbQ5#S7FLvD380~j^gx!z_Zcx0s5{68c<{6f#R7DI*rWIg z;2BVEjG)vbOX`rFBI%DD8V2$)LD`s~22dr;$`=*j!~wEU;+A9BCy(@{q1nYjo9A>P zfQ}949O&Kgk~3ce3aSem0kBHCg-N69Oi_{Pkl8dG)Ckh&g{5#zpz95eBPUrVVK}S< zHfap3l5(5qA!Rb0P?L<{4?rG(R!+z3jI0N$?*%FsaP02{r-Bx&jR9S5pkV|Sd%q`- z{GCLrjs?&qix@-#F#%osieeu|mHz;+&jQ;7IR9R^!x^lsJa|FC;Ds32aiBy25aoSD zTLh588JZ=vSOblV)SU>NGD_q-WmO(RgJa=HR#|(jJUm&&p^;Ta0m7PApWJakS#YZF z9H>OdowGPr<3LLdT#Bqo>KzhfoJ_$$0#G0O3rJj&7hTgkkg*40M?_f(FNtG-j|K=v z5Rz$@mraVIK$n_IthkbMpa#aj0wsIoBLoHBH&#X#w#9<0N|0e?9QYs=sloLINkjb4 z;Z;;cI<*zh{(+${5MLs*gd==(;xg2jLh%mh@q`9FQe%iZff@M=tcWRr(l{J^062h?UjibmNWFTF2FE!~ zjtPH6p@tr~@0=~8fjqQzFplvuBAd)#oObUcp$B45`fvzPP zAu(tvXB@_X?9w{4xJn?9GT=v1z=GVkO1+mH2zQnG=@Xa-ZA?Z66D?#gtfY|xfE783 z)uLi+z)8PmWH2a_BEbp)c~2A(bILqv*OSu{0Er_di9V~jRTL6HItW-IStJ%D3C>1+ zax2Lh5o)wU zS~Q|DJSB8BqwfHRJ(iP^0V6hWtbjn_N%3(oaRD`sW90-a!U+yjdk!Fu94fdtM}4rZ z9#GRbBjKQpL%Cq}P_sutsAPd&LBuq)F=T~<_Xgey^2A79Vq#O4tXe-^pe73Chry>) ziGCNZAjJi$Ch}lqFdT9>Fhm%fkOwpci^y0>EfVn*@}o#|aEhE2N+aRHxfp8`?GBn&6aMmjpS}};kL}HwC z0McOLI*_aEaIi?$SQ;ceI5VJ;L87n2>EY-Lygx!Q1KdtB&5U>t3D1ziJ%GY<>NX^L z&e0QY6LpPYNSOuOhfBDkL8H{2F=2qdBG1Bti3R*aETf;WjTPWv05RA$ustO{+rj0o zIb6R9Tn_YF$jT^GC~?8%X#3GLQZx{Z;efYQ;Bp}mIV;ez@et|ISD?L=(E(wFg~d{# zumNfsb$rM@v$5q+&WI8?f%7dcwjA)XafT>JbqmJ^mvbnIN@aKCy|KaN92h_mBG4mQ zR{>lO5k3MCkPfh>5W2;r&JJ=b5brUu#kW6qnip5Q$fJSbN2`;ArhK<(D zU@Qj|D`Cr#cML77frrSVG_k1g2kR=12At$zP@`wT801$-aVQkmaoi<(m5`ulHGroW z=*R^MJV;LI|ByOP4Kcvwz#BqSAOVNK1(zd}f%rn91d+2m=pzCj2yG<*{IlduC)QPO zKr95xRu<-z0|YZTbU-Blsz=s#rSC;JTHphx9mvF%qm2#PS%suO50(&lcp%<_>r@%d zf_nq992i8RCW}kL$}6cy1q=MAL_VXni(F_q11KHLhk`6|*2$oQk9GuLka4`k@duG< z@+bs|Ag7B={73_Q7=_9d)Zz!uL;zk6-H50b^w=0ocsT&n(iXyb2Dx}lcsUTJ0o5F2 zBrJ{Ufn7s-l{BLPlP4n=lJKw5paP(Ip1%T?MA|@+l#gI{WJHD5RZ9aC617@fY`K&L zByH~yOfaG4NYX5MVQ7CK6U{Q`dhfpQzRfM~-1@fO)_u=J22t$GHPSU3AzpCK%Y8 zU^9kW4<2NOp^O$$3Ps-(3?jRhqjmf4_OUc3ip73@%$#o|@FpL#jZrv=k0T5qGAVHcoruAXD zMpS7Tl*5BRi$!FK#$N~0OM#YQ28y%RK-lp(unK_L?pJBj6&~E0F}40OiWvtQYybjO zw-}ajjNKDSc7Vi`EE>up7;#DJmKDgDf}_6w8K{`V0W}IHNqsQXIouKiWfA~{Rxmaj zAfJ$WQ($O=ePS$#1r8a4IKYf>n3DzyB(%X&fPwBea?&_HyiAxhG|d|G%OVdDv{QmY z)38rOW1PGyeXD>F1M}2yjvna}a)8ifZ6qlu!8sP8p*dY3D<*AX=3|uQ4iaccYBU3N zFHV&EH<$oNIlz*PrWN9lo+|nt`Z@wIpitnz*kUxhAeuuv7lI`YbsBvg_FqPrT^TtT z>8NQ$+=s4o^xAS9?TDPb0FMaZd{~W8@HCODLy?AJQOg2{0X={rlBdB-3o6{k8J1Wur3k-Ml8;}56u zon}kIMvw+a!8k`HN1)lH!bX|{$?<+8kVg@if@lkl8e<&=y}Q#0;L()oICRe`hIK{& z_`))@g|`8xL<)yC4!qy}O9FgTGG9LV*FkgCi%kVuphuFxF6Rg&8W;@t${m=PBnN*K zJfXmcLjxpf8dl{L*)V|wBaX>jU;sTjk1|k^dU+hHFAuaYMNHjKsm+p6s6i^CP^cXe zC z;D`aNHfbfsjx^}pae!|lDU+N6bFw9*i~zn5jzyH(F`{Hs)$rpO3`N#Vb%cX;GWHUJ z%;~WN7M+bCE6$X>045vfcnxjx==b)(dgPFaBRWDE01ood%D^E|L9Ybq?nur^08AVU z&7a_B!R0UV6 zvHFZ4G*Nw{Vhk-@k>R#$oFybaBTy3x2L4nu1+s%^-2&Pd!wGc`o$C}$1jOMi+%+Uc z659m%Nl5fF>Uakpy+ybRHA-ZSIQ4I|_(+UUfC%4$(~B-s#6q?bx{ur!4*z_ytl!WS z89D}{N(2!O`QT_K@O=(RA}`(Rfz!!Eo&f2w2ZSi3sjgy;0btB$pIe)<6u&gXmI5~qT;9q$GPCA z0r(gP2oMbC0j1?6E@U@iV^zvJOExm%HYzOJL9|} zozkEb3oH)cLSeWEiK`yR8#t#XSB&FP!U}`Y2}kb&-HQybJyE_Ikb(p0ij#jIz;j6q zwjgx?=q4jBCM!YTMRO<$J2>QITA)~k97?kGs0Crzd$7}>!pXpV3B=U>mlPl+@*ZV^ z=@5#OccS+vpUtCs87&4ZeJqVc;{w=NJcl&_oWJn!fggw}4MtvoJbjwoh+Y(6DsiG# z366L4cPkV<8kS)dAie`*x3;LJVs-jqXc7r0Lm^yJ{R}Zf!7@&u$>eD;#&DpK&>aZX zL|%gNoZ=QquVYZyg6zAPH!+;xa&_NdZ{0m7tQ1JWd0TaRrHLOmeV1 z2RoIb5OR2EpP?v3vG%e7I|12N=hA*=*khV75-))W%%fbM10PQzxI~H`5PUAM@S0F} zDA9$7GICDKiwArn`S=E>K%R9HBxAx-2_{5?J{A_!Jt#u}Q4TGGtP01*fN~hsp%KA8 zXOkr;nFJmJ%MaM<{!1)K8C`v4P#r*^k5(FcYoZs?rimT&u;f@ch&5lp01~5Ms(*1`W8>Q+BTB<*~Ivt!0aMw)MT-+5!Dzj zX_43K158W}j=iEq=6g;g%zEI8Lllgmky{^bKc84B^ob!clT)8wyb=7v&v4vq+LRzq z9^sd$MD7S(4vx}$Be9g(-;&(qbs-hMJ{prM<+Lu{vZCK4NaUhhd8Yrx5*R#bXu>3( z&L7(eH+3N>q;xwFdCbYn$Cm1d*QVqVok+-oN(idN8e185GJz8{2`AQqdM#_Z$DID` zsH!6qus*+g@i)OX`B!$#eAj%<>~4^R9~Glk1&+Qn7B-r`9eP{1_?da$dYt`L^N9r1C@>4Hx1yN&H<`nH`r46pt3+Ocg^q;9aBdYlidrQ7tT_BZ@G za)a{k(R$P;m@Nxvkd(8f)s4>5R#U5VIn+toAE{wr0d#z~n=m9V-w8VeOCt(nbr`jx ziQ8Hf$MU>R+N3_R^UFaJ)!wH8Ry&+ngm6=WYp&V2Djvk><=;I?h9pe*hqjK0b~uW* zU&kq66)6aah7yFr49RC3<74;m)w8H=9_6se-H5T-qCf3dW8O(@)=rbn;{2$qv6)0z^ ziKtuU(V}HpT^n$_f7(JVe;^I6J#2UR*+IuE!G)kY``c?T2^_!1A`U0c(;=npj#JGq z>@JHbg#E>WerzpYL8*dRt`Ohy_wP8dGoy85NyqTYFH)Ke2z6}6EcXtqpg1N-NgYjs z+R7ixGovM6HWQIY+gI`Y@Myd&cu&U@in)W_(z-OfKXsTqm`|Clj9W^sF~mX4AFWOgMi z_+i~bf8rn$lAvo1=Ej( zoxW8Q3=TTAi1$N9&i<~n=3)H-wVe;wgN)B@X(TfZh30$D5f)e!V?qb3LPwfxk+-OllsIW0Q#Uq2m*=a=mU+b4m0XoX^V{u)(oCReh&7U$UQMlAMOrdZII*y*)SE^JoQ20N&Gr^3tw=Qbpt;qC zc!^&qbD+_yRjZgon7+{M%2@w^n$upDl}+6G%pn_jDZwWud4Wu*7ZQsCN1LS4__;-S z1lmo!A5Did)@}X-A9ZN@(3jdA6E_K6nfdn(?5(+S>NN|@pFc460`$U>C^~qbq711+ z03xgu4xYOz!YVm#NO!4Wt1$R9!T&I?O^b4P_9Gd-*WHyYfBQ}29K5uz09UsYING<4 zTcjUEje>@l^S1-bGjcP1vBi9}6Rw}m0ij?9qb?SCS0@r-OSDrY?|H01Xw~U+2NOfP z*q^`RY?!5Se1TViv4(|eSz@)Ch)7V3GMMmbKXi6grO^_6U|_$>_{q`iV(1{3Px={#u|haKmn-Xw0q9{aUNbmy=JybK%=C|Mngt!*b<1WJJM|;1WYz4(Rx1R3=(t>Uzn1XO!gdte8l1c@1g; zetlYamCx5vwx|i}wKrqWhawW6kpDoRNA4!sk}7SEhDj1;kbZ);u==TL-!F+p`Zre( zT?S7#XYTVS^MSqrOw!rsgL4uaI9udtYC%jkpKtJU>|VG&_}-6mSXh*V=mdIUnq-be z-wfdS!=tC*qxZwDl{{zj@1!Ge;4nrGklqBd1c`F86cl&3M0bfhY`g?Bl%^e*TH_2; zN&&uYbR!5-D+s;sXGRE(3qgZdxi3^9pJ_-@(Su3&+dYM#Ue^O>-xv3D*FE~=f1@Mh zq0;%oqC35_M~J?(zQhivlag0eYdS_fbIq^Z!#`&t83iw@T=bdtLB+hSZ~rvff!-_w z(Qo{MN*v|}J*^uW=c++B5dO{0cg=O8dTQ<-*e>~F>pHvpPvQbL+Nx4QTkU~yN4p-M zl|@nN@#>W87#{F=wD)rC`bc+AnEriI4l6Q zDV0y(Wyh@54ZfTGd7&Fe{)iFMq&^Dp@r3?%?Uhx0CCIY8SV&YOfPJuoe1WeVod0TT z{6&XmWQ!h#BHtR;hcZU`Nk_58+!)?=%) za23{o^%^_M7_w=SXH-Fen>RmCHq$t#SuP{Rj!&>-X0}s=V2L!;gl6-I;EM(vd@i&= z#@|EJsAZN>GDIcBRjE@swK#_4S)IF*0yGt)j=Ba>}t-0$gpt;w>+{W51Ouzy+WX|-I_9*J<@YqC!nYqQ_-l4VDOoCQgSlZiTtDlqZ-4#AH3h!loV56HlcD$DD(d^yn>}NIrU zCphWJ4f=Gs5Oz~%kAfLxo08qkyuOCqE$@e{#}WzGMMA+rG`|D6#7O#5e;>c<$^Io- zIy@5m{IZI3(RrH|rX9W6NOfcxi`nT}e8a<&TcymuJUJ@e!*f4>9tSgzS^6#m=X-xH zySpAU*h7GAU1OeK8>`!WVDa?r%2!J=U0n3tMR%SJCl{ILzecm`c6?Xs)Ygex>g!a! z2==G2!8+e4!#>H<9?fR+~7E{1+Sq;iOmx`4)LYt?P5Rj%r7T_Nao zDZd}9=5k7?GKHN_KDO@F&xr8+${&rUmqG2x!+%e+$YhotmwEr*!(YZmmH!y`fW;~E zvSg@)BzCQ%4b45Z^~8_9m0qshPXZTQWCl3JRdb-Qr`-xg(k%qH7|gpjWIFSmv;aFt zmrndn>eXUNGkql_!A*8CSrsWpI3g`Rbj+%5>kY0AAK1-ZSGYB+wp`Sl6LS2Yvnu1q zMCFXNHs48J8rS^F>jpAn^n=ulb+G#BAY6f_A5nr5sVYQ~@M?KH0;t@07{aE{_cOJ1JM{{2&2u>pBbxH!q{e(*`XSW}s0#Mb}|ic&79!z;8HQtFyeO^1?)Xe$$;u zrn7_9&3&nI8W&tUN^bZd5uQ1^ahl@X`;@8_D&vm zk4@YK#Hk-xdwY1&vSLf{4xGENzXzem5b@}}4J6R4WjbpKtEpk>Gs>m2+omUUM?9Qf zCQFx3iOZUE4xExSicO8Do(rhg+B0^6_st#bj-1M$=YLgb#BGJAcq`ATGRNm4d-M|; zC8_ICtXynyCX;1jzS;q#TG#g0JMC#%AUz!MmrLRhk)femvbQ^Cg{b2+LuQUu5wvuH z3W|lwP|c&Cd>_9|aiDD+Jg=Uu+2$X)ZAog?2_tPvGatsfmL$3f4!jGTX#*_4eOcNj z4X)=I)1OXOYJhjr;+hF#W=pg9Q_KEbwQa^#D`Dn%>`oyksGG*aCJ^bN_>X8U^7?p% z9rL&RUPMA^1 zq4{{0RvC}FsY<%H1f&7oFAhCAjvSesylAYsw^r4i?bQL%u@f>ADP6t^4k{=;j+I1g`NrR--$_k>f}QT_m0jX5AJ;@)&9MqF^C?$0gAz|R} zS<0TB!V3W0q88YKwrx|!np<1TG^1=Jc%}L8A`}Ah+POWqFJm=o;`|p7;M9~D-{Tv< zhH57Xxjz4ZZHPmkT?z;sz8PSTxd%jTKTQ#x;B_N&*c2JH4(mpCR4evwr2{vNe3-xw-Gc8mp^wke%I<{wL2?~CiC#SN z!&G1_g74RUwbDSA(-u?tjhBjzzif8kN_)QHrm5NvX8sk<-cz=lj~8Nb5%03LV2tYc zFZ72Bc3{Y4y&V{1vTCHHX;K;KBZg#N8wZ_7PxpUkJQd`kZ2sWLY}AXtM? zfJAY@jl-=M4f=`B=$sfiqX3G)B(* z=*+eO-_KHikxQfcpn6Jc=A}yUu#q8fByB90y~31@hu$bV7D(^)aPd{8ObP+8v}W7m zX^>+ik9Xu?-it9qOY7lPx7PK71Aw8d^K`^gnSb zvAn}eJSxql0k6>;a(G0MzTY}OmUn%LA8r=#hVsV|ZnbpD>SE3p3|p{hOx!EVZ}mT6 z!%tn!TGI5(X}LHB^qRZ(-MC6ddcSSi`WpDz#P=gw)A6nbqZX_JYI(w(-Qz`zZ$kp^ zc!Mq;rjahkyM2D8-TPP+xdFCoeG=2EAKsWt-83(^@E)p|tp_<>%U?2_$~x&{DBOp^ zJDc9BQ(QJvSw*mEYrdkF#C9@~YSMqL4tmq{_nNMF!D~m87U0bx@a7VD5)h|TJL?@P zZd_9I_uWLK^KZ*R zeaQQ9hl{~WHRW9F*wC$Q*4q z=+?R%B*rbHA%98m;1JEr-qYq!;^j_i3#P(mYKnt65emdbQl5g?J{L&kkd54 zWl)>H$!vBt_qptvFFq-24=e4J5R-Lz&_-!BCUp}nBl^Oc%y(Koxb7Q`rF#4&t=z1h-1%LEyCcEOELO*#>3sh#QeL=7 z5|qGdGfFl5RMN%aU+Op<7oC&H^KhO=ap?Vxf7X56 z-nu2)h0*WV>CwMcN%gu-=(qr{Y3q{yW%QlZ@eJm{=d#SE_k#fydT0V|MuKHvRz7-H zUdZ4Ku?M zZ7c2!=aAJp=zRev+**;GfgUQwPzN)puHUW*OH5c!196*yq^||?si=*CXj6yw&FP)( zjLgVmGD8k~>r{M-bATt}BPnwJ?5vuYDve;JYrCgosP}U3U-O@M zGQ_;kh}OolYZr1I4(Zjv;5LWgYHNWQWjp?X$@vw@H2SO)65~pYM9DHP664Fq7Qum> zguF?_INgH<*Mb(oz88jV^lx7|nxW0n`MeQU8A7?uMYcxP@m-=_@7UZ~T_o%8V(T?N zJDDet{EGcRxMs8O(Q)oNYQ?qE2TG+Eid4j~d*CV)nbC}FaE-fz^r*HkjcL9|ByY31 zuiZPPlbOxP1Lwt?Rm}fDwpHB6ih9D*Cp|~Hf1Rg{z0moXvmc$UNT#!u+7$j9oLEg5`LnsDIAC~(g3DL=Jn^!kJAuzZr6dbQ%@%i^NmyI|%ZK|T_@|8d%wNJNDP zLEYsCuRT5ODdcK*D1^qEHTyr^D?ET9Tge3HsWa05rY4>TI)^(a&MPg_lrroZ*TO6w z!?^-HF$N`{2l-O6U$0U7VXyYmmo^^v2n36rqqLEY5KC#=ytF(O*Qjg! zj_5+Hz@=*bfqahV{)Clzj$r%rIr*44_b&DCu^;1`zOp;f2wSs%>;c65yA05LoPxOa zD!w`KkDzC+8Lo!9O_& z5rC?XJzqXNS~=q>cJ&m$FFNqkE6YZp64s+0Hne;$D< zQ8_3rc5CW}tI)e3;XkfX173$=XMQ3$!`q`=5EiKV{UdrLHRXq`8zJEK`%LIv3<>AD z78vzJkB?<@G>~5Ud-I=#9>@;}h<{A?%^BlrAsG7oBYd>QV9yaD`DFzfU|3N;Jo%5# zeyhHjajmvLO2+lw>2+nC=it@fTeQ&JKm!vDqi5jp$(QZjhy7+FGm)sYAf?H$%EA$; z=uHPd^7Oi+u_e<85D$SswO=#lyXo{@%FWF23rQ>?8HsNj>5ht|Ji};y@G+1i#*YI& ziR%8}@u6!3yk77A(#hJ;zEy?yi~b6(CG^0C7+?lvQy>`I`A{dpepXHyqThCy`D7r3hB!WCOeqB zAj(`YmdsXkcyqtk5a;+lBfbM=M@HVhG%KDwu67Pw%(GnyELbPTdYQ+r6b)+c)g9>; ziA{*Jaq!qZGv?848)^NGtxeTlbi^ms%wiwebaPVWal$H*$U=R(71%FA!E41U^?E0; zD&@|8h!pSqxHEKcI`Pg--gIz}RqQoMWT`W$+v3nB|4msgmPrdsE|K37HORQ_;20VZ zNTp|fTD4rglXfAi`-xd}3h(!8m z8$8-X^6-_RF`>GnBzoqGsKlv=MB6X4$yC)+SxK9QS%MeGJbvr_E*+ceE**!Sin>v& z)QV|s?oJ6Z9@SBaHth6UjofCDL#O+P4e=V49BYCA@!Ia7>dwtMr;hdh4_bHX*ymQ% zJ)Wgj2v5~3mKh$H$l_Q-xF7t!6yRnBI-3{g?3!{@<-#;d{oxjp`=QxQ=|RQGF1ZO53U znGUwp3f@vPGFQ7iC)EP9Q#V=BE(Qehpo-0oHvIK03`UkUYfwkqq06?Br2b@VPW)Q` zcXmA=$rQH^8qQQ)6@Eu#b}eSV70kB=e&!Phq}x9;Z$6n-2;>hKxjaT*Bhja5ZDu^= zuK8@5|7yv3z4B;K!sP(+@=ijwmcQ^^T599 zF`O>JbDiI7s1JIc-$ln<<0{X2_l(qwEVWNoV*09@Es*vK4=yYMVB+AN@ z{!!ylB9s88piGl%nBLDlL0N_i@@$DPT<8efj786zu^epjWDPAGs;W4KN*^!q-fEsn zt*wX9``|&U4WwtBD1wwjwC0!U>ejntq?bBckDI=Ua-ld}23P=*foFVb7Y-H)QH9Mh z@S@M3IL+&LB^z6~ilqS-&+8dQPzCpjW6Ra_$(kM17U?Y|ODXOSt3Pc*NxDz|vTAi_>Ow+(M^gUK`c+|1KYV;=BzDr6ulihCO`3f% zous@9Z}`$dF2OlQ(z8~#rHJ_thap_{^K&lu8aP`+5 zXxe?5TkAmEtx%$QPlxC&t?|@e3Ks>1J2b2Nc8cQ0Lx$~<&`Dz%F3zH6me95qikMW2 zODD1U(1L7-7(dbmqJ+hS;$-)FGcky$w}f|8FBt;ga6nLWzE|7pqx~5oh@|q*f;JZ4 z8mVNggVuX^mQK581`r{a0j_?w+`d#|QA+#c@?MTa}#@(IF{UAxo1gw(n@l zR2f}CGR3iN)sw~ege8fk5Xj@8bBl7UlGcblq076$j>_vUSYu>QG(Ti@)nG|f?%}$V zZNp!8C&oUYGhUpHF28ryo`VzdI0b0mWVj{(bU&sZW7IsXZn==kPs;BrG7~C5WV5zm z_7O7lYt?)7yxU4eC9Cb(;PmZ+#A=Ay(if$cWv|-`F<@HqU7ks&_ma5?EZw~xKeUq- zCrMVkI*gtj@puA;L)B@_xr$P-UjII$kQF9MhR-%oP!o*OjcT^qN*jn*GObC!h5B~< z=L@%Tp>bMDt!QMmIrSBFKiVrr)Able@0XiWKDI)`H2=%;WIp_2tNH2?eK^{7anevv zE3gvpRZk6(_2*NjUZQ*a&e`%Jg=$rqUTaC+{HpCf?S=e>fJ949@AupbTxmmr=Y+t+ zC9oarSY=i~61|9fNQ(J^u&Q*V<-O*_$W9#3w`hoe^z&w%>c%r$^6Rq--gfY&KL?9; zz0?klmw;-O?7kcO^Bj&Ovds7RjoN^c%aET1=tODbM|{HxtUZ=YPbO#D?5)S?l=cz~ z)Asms$g^yTFaeKf>9AhqcG6jC7dB#lvZcLpshnnrK&A45Yr4t5mDkW@;H`4|i;4kw zlDZ2G6f)o8%%UTziBvoAiQf+oP64s?hZC%Xay^^8DZXRY72jIE_1k%ZC?bDiH}GNf zkh!c%+`YDqG>~W^I=DWHZp7~gp1TJVb&gy}V}MMQz_F&A=!JCcqO5Q&@| zZnFCGPJvb-@lVfRQONYpdf3gJ&rN9!;S}Bk8~WN8aE3{YFvSLN6_g~EE}Mb zl~C=i&Q1OambN4b-Rzft6k56Mrk0FAfDo|m==9ksZitT;Cvq!j$kbL!!_%T+V{Wxu zGD*5dRs47z)r`*7^^nW7)rJA5j+2n~QQA;T=p0|=?NQ?EI9Y2fUBIDu(){j=&XAs5 zIp=m7rR)LOcIs3hU6(>zfiqr@*a1?#R!u;f0-RwX;4`~%UI z6>W%PPQ3E*`2$Pg>qKskrRmeca=ckh6VHOgp-PF_e#)og0!P>CSd3io7p&K`X4O`dLN@JSRs<=;Denz1^Gr=#xXFxq znj;LlUFy}%-rKpV$rqs-=7BirC})377AmN2cyYOm<`bD*bf|yJUK&zxRiD}erkzNA z)m56eC}KZ-m>CuBFni_ee*VfAPAul`|CxvP9!SpadYmP4IQmZyzCSGjHPQ3e=R$%l zZ_ex#@KWI6`sJITTul+8bm5zT44+V2_>?<;I?MQz1HhM^sFc+zEY2!5`M^j?ItXT$ zMr2zvH=g~~Q>2hX_g`>2I7j@gb8X4SRt^Msna6$M)QJ|H4Wq_3yC^(F)auo0t?2oh zx^Z|3UjGUN_`HG-UA_F~VWXb@+Nu?kj?O3lvPx75GwQhKqCPG!C+B*QLiz18i(vLv z_Q}u)_jghD8k<;*Spe&;Ya6c)PLb&1n5 z;(^i)2|L>ZEN~JWAAqVE^B`o?6MHwVoS6s1rd0M`65l_jpvo`{@*pF_Sw}s?*37vE2B*vWSQz-Q3BtrFj5NAv>&!kyY$-*FY+(?X+1ex*1_M2dZ{jwl* zCCc0#L#t6ytwMh!w@{ZLEym>~*qR<4@AhtPVb9f-O#$zXGfRt#U`k6DFADOrq;U^l z@&ZSo(96u80s{{~5UaRQQXIuF;hQ7qJ=t}WNo+F>`sntv)V zGWhHBF1ODsV@`G8`6H*%cmA~ceGAXG_-r&tPhH8!fHV~ha$W3F$aM~~wAlXWVfnqW zy&+69C9VDbeYzfgY1!Y`?=NL^jOoR>`A#>o!N6Uz2 zD#2Hr?~9w!)#sgBy$_fe7~gBR$9gtKx;F%1-%rR%deT?dq3nhBdv5|DkD+1d600XM z4k70cd!?Y(CtLN{6T=vlJDNL|lYLIMccomud4{7q2V?f!DaFvk_#=cTsn`gD^`uL0 zHUnbSSpi=o7J-tbx!eTX5;|V1o!l`_d7=kHqZD99juPv3=>#9~ppf^`jgvVY^RJNi z_nro1yYKT{H|adp@7?^b>WUT?)a1 z*ORE^Wt(7`og}%0&S5)eR4)%FXUPkG;HG;Tn9rv50w*qI1E@c~Zs$`7`H;Gjrx&Lx zTmhOk)Oj7;UUQv!0zqL9DrNzESMyxUkuBc>tm5QZDt@;--!Q9s6~;Joy`Z% z@m*bx>m2A?Td$`R+I-Yek5aDe96OCLRwMsg`%f-kPEJLU(ICU;Do1^dOIpNTKU)Xo zxZj&sf)i-pa5-+FYSz3-yLopxHAj3H*;B=@d}zp6>UlSJKx$l5tb;D3&otaP5!yrg zpg_J%59l^T9dqVnx%6sON(4vkxjGwCPo_p~rFA)F9`;Nb`hGQE(%SAC9n+qQ81or3 zo2go|zy1JSj=n70MIF{N5X~Fs5rnS9Csu#3t&A>ZbdYP& zxX`#}3&ECRD2>S{ewZ9MfN)ev7#rj-fhKnN1>5huq@7S_-fP}K3XuAg&s|wl?}9lW zDdDGQP#D*3h$PK*+Z~h(pdeE!Zeh$aLjd9cp3-ZK+)-=G;lFZ?_TnSkYW3OiJ_G^J z@7-eqI+q8K5N|sz5}z&<3U_y!vl(_d*LAiv7T3^yF4tr6dvPULuIx|6dUT$K?Sz`9 zkHM8m-+Fbxom;61$~yVp$kT?XR5y>58;hT-H_Jg9sG5 zTh!PQ)V0q_Mja>xz?Fy)D_SU=z2>|5F{D@37zzp=EC_BN8xt{aj2HU60Jf!+)}LIh zo!cOzg5Q@OMwij#eOw3i zI8ssoOULsf;oAi^}pB@D0M?O}lmicmqNL-?^ z)Ze{)RJ&7a%UIVQxp0S*uc-;YdwH#)uoZfeJPLSwMn5 za1&3KB;`cc#gL6!sPJ#k*1hMWeCtp^mUP@ogYE8Y4fMB?tuL`lp30a!KivFo5x`;d zps0KCbl60I=--t#sm6I=KTU|@J8xa*FnRklH5ntRc&dU8dtgGG_7woH0tZPYOQuBs zMX%79aJAo+)!RcP0bXm*nlxd{B{s+_0oZDTGv8Gx7u;UzAW^h!K-LX;7e({NyKt`ndEKUK3V1zoKfSR zStXz8e#k=fzrLoSVmr0g4764+tu0y{*<`xir+XC@{+hRU@LhE@PE_S5sYfNfR!_CZ zjm=@5Gf}O^u0<>{GdUuDp2)8WcV)NabaIknF>qFK^Ogjy?1T>El@inXlOUC}rKPIV z4VfYS{ZfyQV`)!kH%444tU)Os^^!)-A?1gf=oKkQ&$;aSwO>hGCP{z;@Vno+;L|j1VNcS`ZTwes-dI~N4p2~i zLt!A>rR8T^e6-*%k|a_Bw}x9m+`f}hLHhQtO)%^YcE06l9?}w0I-}+vIkV*0TDpHZ zjnThx4Ksc@m&C-w9>l$pOAC=otE6Z`@-??e@5)Z8%DjCwb8^xnhENC3M+r%1ENGi+ zO%vea2;u~1G+$OOGbbv3kY-0H>cmZNdfm;vI%G!#YsXDz(=C%_M+p$dO&0;Q<1Y2i zvW`|fU1?JG_`T;^mw5^|J|@0D1v(t6UADyz<_M%>?v8t!r;96y;->L2mJ59z+}?F9 zI2JDI#}77Kl85(*PGms|?_Q6mN3`6cJVHdVj{2`t?}Vu6*L(d7SGhv3H`hBtWW+sQ zAjnhz^blLDOsbWOzO@jCZqljtxTP3@lq7LPnZC~HyKeX66YC5*e9${M09siN0WlDx ze{78a4yuHP0!mp977qIZD+LisU-r8;)PD_(582Ml)tJT6*}>7w+11L-MGgJ_)=iyG zhG|+;nn`wglu1rQx|(j3l|e>9MY=-$+8u-h0I0e%j;mkGPO5!tQvX)h#NJfL{zDBB z%}Mhc`#1JI01N?UimrNAdai{{fklx;-$Zgsdg5t{QBtNhOyV~n0OrFb1jOt$VI1=h z2W&q`Sq>To8|r_Z{BQRW|I6Y35nZh8j9EPGtp2anf3NtT(EfK|5W@Z6K$Yb_!T(1A P=Hqht;0+%tP*DF5vO&EL literal 0 HcmV?d00001 diff --git a/SE28ExampleSimaWasimSestra/Workspace/test_cases_light.xlsx b/SE28ExampleSimaWasimSestra/Workspace/test_cases_light.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e625c8d4bf9a78fa49b8a2d3de921132f5d48084 GIT binary patch literal 18147 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%0Du!B~7qg=& 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 literal 0 HcmV?d00001 diff --git a/SE28ExampleSimaWasimSestra/simaSimple.ipynb b/SE28ExampleSimaWasimSestra/simaSimple.ipynb index 61b01b2..5dd9820 100644 --- a/SE28ExampleSimaWasimSestra/simaSimple.ipynb +++ b/SE28ExampleSimaWasimSestra/simaSimple.ipynb @@ -44,17 +44,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "c:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "import os\n", @@ -74,9 +66,9 @@ "print(root_folder)\n", "workspacePath = str(Path(root_folder, 'Workspace'))\n", "workspaceId = \"SE28\"\n", - "loadcase_file = f\"{workspacePath}\\\\test_cases.xlsx\"\n", + "loadcase_file = f\"{workspacePath}\\\\test_cases_light.xlsx\"\n", "wasim_input_file = \"test_cases_wasim_input.xlsx\"\n", - "stask_file = \"SimaTemplate.stask\"\n", + "stask_file = \"SimaTemplateV2.stask\"\n", "cloudRun = False\n", "notebook_root_folder = os.getcwd()" ] @@ -92,24 +84,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'WindowsPath' object has no attribute 'strip'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mc:\\Users\\kblu\\source\\repos\\improveflowGIT\\SE28ExampleSimaWasimSestra\\workflowCoreDemoSE28SestraAndWasim.ipynb Cell 6\u001b[0m line \u001b[0;36m4\n\u001b[0;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mworkunit_extension\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdnv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39moneworkflow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstarter\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n\u001b[1;32m----> 4\u001b[0m workflow_client \u001b[39m=\u001b[39m one_workflow_client(workspace_id \u001b[39m=\u001b[39;49m workspaceId, workspace_path \u001b[39m=\u001b[39;49m workspacePath, cloud_run \u001b[39m=\u001b[39;49m cloudRun,\n\u001b[0;32m 5\u001b[0m local_workflow_runtime_temp_folder_path \u001b[39m=\u001b[39;49m oneWorkflowTMPFolder, platform\u001b[39m=\u001b[39;49mPlatform\u001b[39m.\u001b[39;49mWINDOWS, max_cores\u001b[39m=\u001b[39;49m\u001b[39m5\u001b[39;49m,auto_deploy_option \u001b[39m=\u001b[39;49m AutoDeployOption\u001b[39m.\u001b[39;49mDEV)\n\u001b[0;32m 6\u001b[0m workflow_client\u001b[39m.\u001b[39mstart_workflow_runtime_service()\n\u001b[0;32m 7\u001b[0m workspace \u001b[39m=\u001b[39m workflow_client\u001b[39m.\u001b[39mworkspace_info\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\utils\\starter.py:187\u001b[0m, in \u001b[0;36mone_workflow_client\u001b[1;34m(workspace_id, workspace_path, cloud_run, local_workflow_runtime_temp_folder_path, local_workflow_runtime_service_visible, platform, max_cores, debug_local_worker, local_worker_host_apps_path, local_workflow_runtime_path, auto_deploy_option, console_log_level, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mone_workflow_client\u001b[39m(\n\u001b[0;32m 136\u001b[0m workspace_id: \u001b[39mstr\u001b[39m,\n\u001b[0;32m 137\u001b[0m workspace_path: \u001b[39mstr\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 148\u001b[0m redirect_console_logs_to_terminal: \u001b[39mbool\u001b[39m \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m,\n\u001b[0;32m 149\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m OneWorkflowClient:\n\u001b[0;32m 150\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 151\u001b[0m \u001b[39m Creates and configures an instance of the OneWorkflowClient for interacting with the\u001b[39;00m\n\u001b[0;32m 152\u001b[0m \u001b[39m OneWorkflow system. The client can be used to manage and execute workflows. It is\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[39m parameters.\u001b[39;00m\n\u001b[0;32m 186\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 187\u001b[0m workflow_client \u001b[39m=\u001b[39m OneWorkflowClient(\n\u001b[0;32m 188\u001b[0m local_workflow_runtime_temp_folder_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_temp_folder_path,\n\u001b[0;32m 189\u001b[0m local_workflow_runtime_service_visible\u001b[39m=\u001b[39;49mlocal_workflow_runtime_service_visible,\n\u001b[0;32m 190\u001b[0m cloud_run\u001b[39m=\u001b[39;49mcloud_run,\n\u001b[0;32m 191\u001b[0m workspace_id\u001b[39m=\u001b[39;49mworkspace_id,\n\u001b[0;32m 192\u001b[0m workspace_path\u001b[39m=\u001b[39;49mworkspace_path,\n\u001b[0;32m 193\u001b[0m environment\u001b[39m=\u001b[39;49mEnvironment\u001b[39m.\u001b[39;49mTesting,\n\u001b[0;32m 194\u001b[0m application_id\u001b[39m=\u001b[39;49moc_application_id(cloud_run, platform),\n\u001b[0;32m 195\u001b[0m executable_name\u001b[39m=\u001b[39;49mexecutable_name(cloud_run),\n\u001b[0;32m 196\u001b[0m local_worker_host_apps_path\u001b[39m=\u001b[39;49mlocal_worker_host_apps_path,\n\u001b[0;32m 197\u001b[0m local_workflow_runtime_path\u001b[39m=\u001b[39;49mlocal_workflow_runtime_path,\n\u001b[0;32m 198\u001b[0m debug_local_worker\u001b[39m=\u001b[39;49mdebug_local_worker,\n\u001b[0;32m 199\u001b[0m console_log_level\u001b[39m=\u001b[39;49mconsole_log_level,\n\u001b[0;32m 200\u001b[0m auto_deploy_option\u001b[39m=\u001b[39;49mauto_deploy_option,\n\u001b[0;32m 201\u001b[0m max_concurrent_workers\u001b[39m=\u001b[39;49mmax_cores,\n\u001b[0;32m 202\u001b[0m redirect_console_logs_to_terminal\u001b[39m=\u001b[39;49mredirect_console_logs_to_terminal,\n\u001b[0;32m 203\u001b[0m )\n\u001b[0;32m 204\u001b[0m \u001b[39mreturn\u001b[39;00m workflow_client\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:208\u001b[0m, in \u001b[0;36mOneWorkflowClient.__init__\u001b[1;34m(self, application_id, executable_name, workspace_id, workspace_path, common_directory, load_cases_directory, results_directory, local_workflow_runtime_endpoint, local_workflow_runtime_path, local_workflow_runtime_temp_folder_path, local_workflow_runtime_startup_wait_time, local_workflow_runtime_service_visible, local_workflow_runtime_log_filename, local_worker_host_apps_path, debug_local_worker, console_log_level, auto_deploy_option, max_concurrent_workers, cloud_run, environment, authenticator, pool_id, job_status_polling_interval, redirect_console_logs_to_terminal)\u001b[0m\n\u001b[0;32m 206\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_workspace_config: Optional[WorkspaceConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 207\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_worker_config: Optional[WorkerConfiguration] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m--> 208\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m__post_init__()\n", - "File \u001b[1;32mc:\\Users\\kblu\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ow-X4wP4oR8-py3.10\\lib\\site-packages\\dnv\\oneworkflow\\oneworkflowclient.py:218\u001b[0m, in \u001b[0;36mOneWorkflowClient.__post_init__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 215\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id\u001b[39m.\u001b[39mstrip():\n\u001b[0;32m 216\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_id \u001b[39m=\u001b[39m \u001b[39mstr\u001b[39m(uuid\u001b[39m.\u001b[39muuid4())\n\u001b[1;32m--> 218\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mworkspace_path\u001b[39m.\u001b[39;49mstrip():\n\u001b[0;32m 219\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mworkspace_path \u001b[39m=\u001b[39m os\u001b[39m.\u001b[39mgetcwd()\n\u001b[0;32m 221\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcommon_directory\u001b[39m.\u001b[39mstrip():\n", - "\u001b[1;31mAttributeError\u001b[0m: 'WindowsPath' object has no attribute 'strip'" - ] - } - ], + "outputs": [], "source": [ "from dnv.oneworkflow.utils.workunit_extension import *\n", "from dnv.oneworkflow.utils.starter import *\n", From abe1b4ab31529467f7df98c1c83bfa49da434fb4 Mon Sep 17 00:00:00 2001 From: Knut Birger Lunde Date: Wed, 31 Jan 2024 20:15:28 +0100 Subject: [PATCH 4/4] updated genieruntime example --- GeniERuntimeExample/GeniERuntimeExample.ipynb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/GeniERuntimeExample/GeniERuntimeExample.ipynb b/GeniERuntimeExample/GeniERuntimeExample.ipynb index d3db4b0..6b19974 100644 --- a/GeniERuntimeExample/GeniERuntimeExample.ipynb +++ b/GeniERuntimeExample/GeniERuntimeExample.ipynb @@ -17,8 +17,7 @@ "metadata": {}, "outputs": [], "source": [ - "from dnv.oneworkflow.utils.workunit_extension import *\n", - "from dnv.oneworkflow.utils.starter import *\n", + "from dnv.oneworkflow.utils import *\n", "from pathlib import Path\n", "import os\n", "root_folder = os.getcwd()\n", @@ -26,7 +25,7 @@ "workspaceId = \"GeniERuntimeExample\"\n", "\n", "cloudRun = False\n", - "oneWorkflowTMPFolder = r'd:\\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", + "oneWorkflowTMPFolder = r'c:\\oneworkflowTmp' #due to possible issues with long file paths we prefer to have this folder at the root\n", "if not os.path.exists(oneWorkflowTMPFolder):\n", " try:\n", " print(\"Trying to create tmp folder for one workflow local execution\")\n", @@ -36,7 +35,7 @@ " print(\"did not manage to create tmp folder for local execution. Check that you have privileges to create it or try to manually create it from the coomand line.\")\n", "#If running locally the code below will also start the local workflow host.\n", "workflow_client = one_workflow_client(workspace_id = workspaceId, cloud_run = cloudRun, workspace_path = workspacePath, local_workflow_runtime_temp_folder_path = oneWorkflowTMPFolder,\n", - " local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing)\n" + " local_workflow_runtime_temp_folders_cleanup=False,environment=Environment.Testing,pool_id=\"SesamWorkflow_Windows_Standard_A1_v2\")\n" ] }, { @@ -47,6 +46,7 @@ "source": [ "import pandas as pd\n", "import shutil\n", + "from dnv.oneworkflow import PythonCommand\n", "from dnv.sesam.genie_runtime_command import *\n", "# we must delete existing results locally before generating new results\n", "local__result_path = Path(workspacePath, workflow_client.results_directory)\n", @@ -72,14 +72,14 @@ " post_processing_command = PythonCommand(\n", " directory=workflow_client.common_directory,\n", " filename=\"postprocessing.py\")\n", - " cmd_info = CommandInfo(commands=[genieruntime_command, post_processing_command],load_case_foldername=loadcase_folder_name)\n", + " cmd_info = CommandInfo(commands=[genieruntime_command,post_processing_command],load_case_foldername=loadcase_folder_name)\n", " commands_info.append(cmd_info)\n", " \n", "print(\"Running commands in parallel\")\n", "await run_managed_commands_parallelly_async(\n", " client=workflow_client,\n", " commands_info=commands_info,\n", - " files_to_download_from_blob_to_client=FileOptions(max_size=\"11124MB\",patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\", \"**/*.MLG\",\"**/*.CSV\"]),\n", + " files_to_download_from_blob_to_client=FileOptions(max_size=\"11124MB\",patterns=[\"**/*.txt\", \"**/*.lis\", \"**/*.MLG\", \"**/*.MLG\",\"**/*.CSV\",\"**/*.FEM\"]),\n", " enable_common_files_copy_to_load_cases=True,\n", ")\n" ]