Challenge Overview
Welcome to the OpenWarp - Provide a Command Line Interface using Python. As part of this contest, you will provide a Command Line Interface for our current application which has a Graphical User Interface.
Project Overview
OpenWARP allows Wave Energy Conversion (WEC) companies to create a software model to simulate the movement of waves and determine the amount of power that the WEC device would output in the modelled environment. It consists of a web application that can mesh and simulate a body of an offshore structure.
Contest Details
Our application currently has a web interface. Our client would like to have a command line interface created for the application that enables them to run batch jobs.
Specifically, we are looking for the following:
- A command line interface written in Python
- Ability to specify the settings and / or configurations for the application using a text based ASCII file. We will share a Nemoh.cal file that describes the values to input for the application execution and we would like you to either reuse this file or provide another file (for example in JSON) that allows the end user to specify the runtime values. In case you are proposing your own file, you need to ensure that the ordering and field types mirror the Nemoh.cal file as much as possible.
- The command line interface is expected to support out ALL features (meshing, simulation, post processing, configuration) currently present in the web interface / GUI. This includes the debugging / logging feature that was implemented in an earlier contest.
- Update the existing Deployment Guide with information on how to use the Command Line Interface
Our client’s use case is as follows: A user may want to run several simulations with the same settings, but with different geometry files. The user should be able to execute one script and run multiple simulations with the different meshes. Likewise, they may want to run multiple simulations with the same mesh file, but different simulation settings. There are numerous ways to implement this, and I'm not sure what the best one is.
Your submission should help our client achieve the above use case. If you have a better solution in mind, one that does not use python to achieve the above, please propose it in the contest forum. We are open to suggestions.
Final Submission Guidelines
Since you are building a command line interface from scratch, you can upload only the files created for this contest with instructions on how to deploy the files with the current app. This deployment instruction is only meant for this contest - the updates to the Deployment Guide are separate and also need to be uploaded additionally.
In case you have made changes to existing files (apart from the Deployment Guide), since the application size is huge, it does not make sense to upload the entire app. You can either submit a git patch of your changes or you can submit a pull request 5 minutes before the contest ends and upload just a text file containing your github handle to Topcoder.