Run OpenSees-Express App#
Submit job(s) OpenSees-Express App
by Silvia Mazzoni, DesignSafe, 2025
In this Notebook we are going to run a set of OpenSeesMP jobs and a set of OpenSees-Express Jobs. We are also submitting the jobs from different input-file storage systems – MyData, CommunityData, Work, MyProjects
This notebook serves as a template for submitting the following DesignSafe OpenSees Apps:
openSees-express
I have combined all the commands into a common-command cell and one cell per storage system.
We are using previously-defined python function to streamline the process.
Connect to Tapis#
t=OpsUtils.connect_tapis()
-- Checking Tapis token --
Token loaded from file. Token is still valid!
Token expires at: 2025-09-19T21:03:18+00:00
Token expires in: 3:24:19.851550
-- LOG IN SUCCESSFUL! --
OpenSees-Express#
Common Input#
# initalize
tapisInputAll = {}
tapisInputAll["name"] = 'OpenSeesExpress'
tapisInputAll["appId"] = "opensees-express" # options: "opensees-express", "opensees-mp-s3", "opensees-2p-s3"
tapisInputAll["appVersion"] = "latest" # always use latest in this Notebook Template
tapisInputAll["maxMinutes"] = 6
tapisInputAll['archive_system']='MyData' # Options: MyData (Work does not exist on the OpenSees-Express VM)
MyData#
This job is in the MyData Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'MyData' # ########################## unique
tapisInput['input_folder'] = '_ToCommunityData/OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a.Canti2D.Push.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
CommunityData#
This job is in the CommunityData Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'CommunityData' # ########################## unique
tapisInput['input_folder'] = 'OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a.Canti2D.Push.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
Work#
This job is in the Work Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'Work/stampede3' # ########################## unique
tapisInput['input_folder'] = 'BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a.Canti2D.Push.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
MyProjects#
This job is in the MyProjects Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'MyProjects' # ########################## unique
# The following are project-dependent
tapisInput['storage_system_baseURL'] = 'tapis://project-7997906542076432871-242ac11c-0001-012' # ########################## unique
tapisInput['input_folder'] = 'OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a.Canti2D.Push.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
print('done!')
done!