This software is to validate an extension of SysML for physical interaction and signal flow simulation (OMG SysPhS 1.1) by translation between extended SysML models and Simulink®, Simscape™, and Modelica® and simulation files.

This ZIP file contains the following:
- sysphs.jar: the translator as a standalone JAR file
- sysphs-sources.zip: the source code
- samples: directory containing various sample SysML models:
  - SysPhSProfile.xmi: SysPhS profile
  - SysPhSLibrary.xmi: SysPhS library
  - SysPhSAnnexA-ElectricCircuit.xmi: model of an electrical circuit
  - SysPhSAnnexA-Humidifier.xmi: model of a humidifier system
  - SysPhSAnnexA-Hydraulics.xmi: model of a hydraulic system
  - SysPhSAnnexA-SignalProcessor.xmi: model of a low /high pass signal filter
  - SysPhSAnnexA-CruiseController.xmi: model of a cruise controller system in a car

The generated simulation files have been tested with OpenModelica and Simulink/Simscape R2016a.

The README.md file in the source code contains additional information regarding the compilation and testing of the source code.
The source code itself is organized as follows:
- The metamodels for Modelica, Simulink, and Simscape were created in Ecore. These metamodels are located in "sysphs/models/" 
- The translation code is located in "sysphs/src/main/java/com/engisis/sysphs/translation/(language)".
- The serialization code is located in "sysphs/src/main/java/com/engisis/sysphs/serialization/(language)".
- The deserialization code is located in "sysphs/src/main/java/com/engisis/sysphs/deserialization/(language)".
- The preprocessing code is located in "sysphs/src/main/java/com/engisis/sysphs/util/SysMLPreProcessor.java".

To use the translator:
- run the standalone JAR file with Java
- select the root block to translate (e.g. CruiseControlTotalSystem, Circuit, HumidifierSystemScenario1, ConnectedTanks, TestBedScenario1)
- select the target simulation platforms. For Simulink, models relying on physical interaction require the Simscape option
- select the "preprocessing" option for complex models (e.g. for CruiseControlTotalSystem)
- run the translation

This software is a U.S. Government work.  It is based in part on work supported by U.S. National Institute of Standards and Technology (NIST, http://www.nist.gov) contract SB1341-13-RQ-0709 and grant award 70NANB14H249, 70NANB16H172, 70NANB18H200 and  to Engisis, LLC, and in part on work supported by the NIST-ARRA Measurement Science and Engineering Fellowship Program award 70NANB10H026, through the University of Maryland, and in part on work supported by NIST grant award 70NANB11H148 to the University of Maryland.

NIST assumes no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.

This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.  We would appreciate acknowledgement if the software is used.

Disclaimer: Certain commercial firms and trade names are identified in this document in order to specify the installation and usage procedures adequately. Such identification is not intended to imply recommendation or endorsement by the National Institute of Standards and Technology <http://www.nist.gov/> , nor is it intended to imply that related products are necessarily the best available for the purpose.
