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="python"
def run():
wrapper.getRunShare().lock()
rowFieldMsdIn(PHXRowFieldFile.GENERATE)
wrapper.getRunShare().run( 'msd' )
rowFieldMsdOut(PHXRowFieldFile.PARSE)
wrapper.getRunShare().unlock()
def rowFieldMsdIn(mode):
file = new PHXRowFieldFile(wrapper, int(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()
def rowFieldMsdOut(mode):
file = new PHXRowFieldFile(wrapper, int(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)
except RuntimeError:
pass