Download (right-click and "save as")

# @author: tester
# @version: 1
# @description: mass-spring-damper analysis
# @keywords: msd, training

variable: k       double   input
variable: c       double   input
variable: m       double   input
variable: x0      double   input
variable: v0      double   input
variable: force   double   input
variable: w       double   input
variable: tStart  double   input
variable: tEnd    double   input
variable: tStep   double   input

variable: wN      double   output
variable: wD      double   output
variable: xMag    double   output
variable: t       double[] output
variable: x       double[] output
variable: x_ss    double[] output
variable: x_trans double[] output

# ------------------------------------------
script: language="java"

void run()
{
   wrapper.getRunShare().lock();
   rowFieldMsdIn(PHXRowFieldFile.GENERATE);
   wrapper.getRunShare().run( "msd" );
   rowFieldMsdOut(PHXRowFieldFile.PARSE);
}

void rowFieldMsdIn( int mode )
{
   PHXRowFieldFile file = new PHXRowFieldFile(wrapper, mode);
   file.setTemplateFile("msd.in.template");
   file.setFileToGenerate("msd.in");

   file.transferVar(k, 7, 2);
   file.transferVar(c, 8, 2);
   file.transferVar(m, 9, 2);
   file.transferVar(x0, 10, 2);
   file.transferVar(v0, 11, 2);
   file.transferVar(force, 12, 2);
   file.transferVar(w, 13, 2);
   file.transferVar(tStart, 16, 2);
   file.transferVar(tEnd, 17, 2);
   file.transferVar(tStep, 18, 2);

   if ( mode == PHXRowFieldFile.GENERATE )
      file.generate();
}

void rowFieldMsdOut( int mode )
{
   PHXRowFieldFile file = new PHXRowFieldFile(wrapper, mode);
   file.setFileToGenerateOrParse("msd.out");

   file.setDelimiters("=");
   file.transferVar(wN, 25, 2);
   file.transferVar(wD, 26, 2);
   file.transferVar(xMag, 28, 2);

   file.setDelimiters(" \t");
   file.transferArray(t, 33, 42, 1, 1);
   file.transferArray(x, 33, 42, 2, 2);
   file.transferArray(x_ss, 33, 42, 3, 3);
   file.transferArray(x_trans, 33, 42, 4, 4);

   if ( mode == PHXRowFieldFile.GENERATE )
      file.generate();
}

try
{
   rowFieldMsdIn(PHXRowFieldFile.READ_TEMPLATE);
   rowFieldMsdOut(PHXRowFieldFile.READ_TEMPLATE);
}
catch( Exception e )
{
}