Exemplo n.º 1
0
def write_nh_header(f, desc, iter, spf, temp, workflow_fname, mmp_fname):
    '''Writes the Nano-Hive Sim specification file, which is an XML file that describes the
    simulation environment, plugin selection and plugin parameters.
    '''
    nh_home = get_nh_home()

    #print "files_nh.write_nh_header(): Nano-Hive Home:", nh_home

    # Write SimSpec header ########################################

    f.write('<simulation>\n')
    f.write('  <description>%s</description>\n' % desc)
    f.write('\n')
    f.write('  <parameter name="timeQuantumLength" value="%e" />\n' % spf)
    f.write('  <parameter name="environmentTemperature" value="%d" />\n' %
            temp)
    f.write('  <parameter name="startIteration" value="0" />\n')
    f.write('  <parameter name="iterations" value="%d" />\n' % iter)
    f.write('\n')
    f.write('  <simulationFlow file="%s">\n' % workflow_fname)
    f.write('    <input name="inFile" type="nanorexMMP" file="%s" />\n' %
            mmp_fname)

    # This traverser is for the local machine.
    f.write('    <traverser name="traverser" plugin="RC_Traverser" />\n')
Exemplo n.º 2
0
def write_nh_mpqc_gd_rec(f):

    nh_home = get_nh_home()

    f.write('\n')
    f.write('    <calculator name="physicalInteraction" plugin="REBO_MBM">\n')
    f.write('      <parameter name="dataDirectory" value="%s/data/REBO_MBM" />\n' % nh_home)
    f.write('    </calculator>\n')
Exemplo n.º 3
0
def write_nh_mpqc_gd_rec(f):

    nh_home = get_nh_home()

    f.write('\n')
    f.write('    <calculator name="physicalInteraction" plugin="REBO_MBM">\n')
    f.write(
        '      <parameter name="dataDirectory" value="%s/data/REBO_MBM" />\n' %
        nh_home)
    f.write('    </calculator>\n')
Exemplo n.º 4
0
def write_nh_mpqc_esp_plane_rec(f, esp_image, output_dir):

    nh_home = get_nh_home()

    cpnt = esp_image.center * 1e-10
    centerPoint = (float(cpnt[0]), float(cpnt[1]), float(cpnt[2]))
    #print "ESP Image CenterPoint =", centerPoint

    npnt = cpnt + (esp_image.planeNorm  * 1e-10)

    # This is a temporary workaround until Brian fixes the normalPoint Y value issue (must be positive).
    # This forces ESP Images to be oriented in the X-Z plane until it is fixed.
    # Mark 050927.
    # normalPoint = (0.0, 0.0, 1.0) + cpnt
    normalPoint = (float(npnt[0]), float(npnt[1]), float(npnt[2])) # KEEP THIS!!!
    #print "ESP Image NormalPoint =", normalPoint

    resolution = esp_image.resolution
    # print "ESP Image Resolution =", resolution

    cutoffHeight = esp_image.image_offset * 1e-10
    #print "ESP Image cutoffHeight =", cutoffHeight
    cutoffWidth = esp_image.edge_offset * 1e-10
    #print "ESP Image cutoffWidth =", cutoffWidth
    outputLength = esp_image.width * 1e-10
    #print "ESP Image outputLength =", outputLength

    multi = esp_image.multiplicity

    f.write('\n')
    f.write('    <calculator name="espImage" plugin="MPQC_SClib">\n')
    f.write('      <parameter name="logDirectory" value="%s/log" />\n' % nh_home)
    f.write('      <parameter name="dataDirectory" value="%s/data/MPQC_SClib" />\n' % nh_home)
    f.write('      <parameter name="basis" value="STO-3G" />\n')
    f.write('      <parameter name="method" value="HF" />\n')
    f.write('      <parameter name="desiredEnergyAccuracy" value="1.0e-5" />\n')
    f.write('      <parameter name="multiplicity" value="%d" />\n' % multi)
    f.write('\n')
    f.write('      <parameter name="outputType" value="ESPplane" />\n')
    f.write('      <parameter name="resolution" value="%d" />\n' % resolution)
    f.write('\n')
    f.write('      <parameter name="centerPoint" value="%.2e %.2e %.2e" />\n' % centerPoint)
    f.write('      <parameter name="normalPoint" value="%.2e %.2e %.2e" />\n' % normalPoint)
    f.write('      <parameter name="cutoffHeight" value="%.2e" />\n' % cutoffHeight)
    f.write('      <parameter name="cutoffWidth" value="%.2e" />\n' % cutoffWidth)
    f.write('      <parameter name="outputLength" value="%.2e" />\n' % outputLength)
    f.write('    </calculator>\n')
    f.write('\n')
    f.write('    <result name="simResult" plugin="_ESP_Image">\n')
    f.write('      <parameter name="outputFilename" value="%s\\%s.png" />\n' % (output_dir, esp_image.name))
    f.write('      <parameter name="xaxisOrient" value="%d" />\n' % esp_image.xaxis_orient)
    f.write('      <parameter name="yaxisOrient" value="%d" />\n' % esp_image.yaxis_orient)
    f.write('    </result>\n')
Exemplo n.º 5
0
def write_nh_mpqc_gd_rec(f):

    nh_home = get_nh_home()

    f.write('\n')
    f.write('    <calculator name="qmDynamicsInteraction" plugin="MPQC_SClib">\n')
    f.write('      <parameter name="logDirectory" value="%s/log" />\n' % nh_home)
    f.write('      <parameter name="dataDirectory" value="%s/data/MPQC_SClib" />\n' % nh_home)
    f.write('      <parameter name="basis" value="STO-3G" />\n')
    f.write('      <parameter name="method" value="HF" />\n')
    f.write('      <parameter name="gradientDynamics" value="yes" />\n')
    f.write('      <parameter name="deltaTbyTau" value="1.0" />\n')
    f.write('    </calculator>\n')
Exemplo n.º 6
0
def write_nh_mpqc_gd_rec(f):

    nh_home = get_nh_home()

    f.write('\n')
    f.write(
        '    <calculator name="qmDynamicsInteraction" plugin="MPQC_SClib">\n')
    f.write('      <parameter name="logDirectory" value="%s/log" />\n' %
            nh_home)
    f.write(
        '      <parameter name="dataDirectory" value="%s/data/MPQC_SClib" />\n'
        % nh_home)
    f.write('      <parameter name="basis" value="STO-3G" />\n')
    f.write('      <parameter name="method" value="HF" />\n')
    f.write('      <parameter name="gradientDynamics" value="yes" />\n')
    f.write('      <parameter name="deltaTbyTau" value="1.0" />\n')
    f.write('    </calculator>\n')
Exemplo n.º 7
0
def write_nh_povrayvideo_results_rec(f, output_dir, partname):

    nh_home = get_nh_home()

    # Need subdirectory for all the POV-Ray pov files.
    # Also need to add lighting, scene setup, background color, etc.
    f.write('\n')
    f.write('    <result name="POVRayVideo" plugin="POVRayVideo">\n')
    f.write('      <parameter name="outputInterval" value="1" />\n')
    f.write('      <parameter name="lengthMultiplier" value="1e10" />\n')
    f.write('      <parameter name="outputDirectory"\n')
    f.write('        value="%s/povray" />\n' % output_dir)
    f.write('      <parameter name="outputIdentifier" value="%s" />\n' % partname)
    # POV-Ray template.  Mark needs to write the include file for lighting and camera angle(s)
    # and put that file in the appropriate place (outdir/povray).
    f.write('      <parameter name="povTemplateFilename"\n')
    f.write('        value="%s/data/pov.tmplt" />')
    f.write('      <parameter name="mpegTemplateFilename"\n')
    f.write('        value="%s/data/mpeg_encode.param.tmplt" />\n' % nh_home)
    f.write('    </result>\n')
Exemplo n.º 8
0
def write_nh_povrayvideo_results_rec(f, output_dir, partname):

    nh_home = get_nh_home()

    # Need subdirectory for all the POV-Ray pov files.
    # Also need to add lighting, scene setup, background color, etc.
    f.write('\n')
    f.write('    <result name="POVRayVideo" plugin="POVRayVideo">\n')
    f.write('      <parameter name="outputInterval" value="1" />\n')
    f.write('      <parameter name="lengthMultiplier" value="1e10" />\n')
    f.write('      <parameter name="outputDirectory"\n')
    f.write('        value="%s/povray" />\n' % output_dir)
    f.write('      <parameter name="outputIdentifier" value="%s" />\n' %
            partname)
    # POV-Ray template.  Mark needs to write the include file for lighting and camera angle(s)
    # and put that file in the appropriate place (outdir/povray).
    f.write('      <parameter name="povTemplateFilename"\n')
    f.write('        value="%s/data/pov.tmplt" />')
    f.write('      <parameter name="mpegTemplateFilename"\n')
    f.write('        value="%s/data/mpeg_encode.param.tmplt" />\n' % nh_home)
    f.write('    </result>\n')
Exemplo n.º 9
0
def write_nh_header(f, desc, iter, spf, temp, workflow_fname, mmp_fname):
    '''Writes the Nano-Hive Sim specification file, which is an XML file that describes the
    simulation environment, plugin selection and plugin parameters.
    '''
    nh_home = get_nh_home()
    
    #print "files_nh.write_nh_header(): Nano-Hive Home:", nh_home
    
    # Write SimSpec header ########################################
    
    f.write ('<simulation>\n')
    f.write('  <description>%s</description>\n' % desc)
    f.write('\n')
    f.write('  <parameter name="timeQuantumLength" value="%e" />\n' % spf)
    f.write('  <parameter name="environmentTemperature" value="%d" />\n' % temp)
    f.write('  <parameter name="startIteration" value="0" />\n')
    f.write('  <parameter name="iterations" value="%d" />\n' % iter)
    f.write('\n')
    f.write('  <simulationFlow file="%s">\n' % workflow_fname)
    f.write('    <input name="inFile" type="nanorexMMP" file="%s" />\n' % mmp_fname)
    
    # This traverser is for the local machine.
    f.write('    <traverser name="traverser" plugin="RC_Traverser" />\n')
Exemplo n.º 10
0
def write_nh_mpqc_esp_plane_rec(f, esp_image, output_dir):

    nh_home = get_nh_home()

    cpnt = esp_image.center * 1e-10
    centerPoint = (float(cpnt[0]), float(cpnt[1]), float(cpnt[2]))
    #print "ESP Image CenterPoint =", centerPoint

    npnt = cpnt + (esp_image.planeNorm * 1e-10)

    # This is a temporary workaround until Brian fixes the normalPoint Y value issue (must be positive).
    # This forces ESP Images to be oriented in the X-Z plane until it is fixed.
    # Mark 050927.
    # normalPoint = (0.0, 0.0, 1.0) + cpnt
    normalPoint = (float(npnt[0]), float(npnt[1]), float(npnt[2])
                   )  # KEEP THIS!!!
    #print "ESP Image NormalPoint =", normalPoint

    resolution = esp_image.resolution
    # print "ESP Image Resolution =", resolution

    cutoffHeight = esp_image.image_offset * 1e-10
    #print "ESP Image cutoffHeight =", cutoffHeight
    cutoffWidth = esp_image.edge_offset * 1e-10
    #print "ESP Image cutoffWidth =", cutoffWidth
    outputLength = esp_image.width * 1e-10
    #print "ESP Image outputLength =", outputLength

    multi = esp_image.multiplicity

    f.write('\n')
    f.write('    <calculator name="espImage" plugin="MPQC_SClib">\n')
    f.write('      <parameter name="logDirectory" value="%s/log" />\n' %
            nh_home)
    f.write(
        '      <parameter name="dataDirectory" value="%s/data/MPQC_SClib" />\n'
        % nh_home)
    f.write('      <parameter name="basis" value="STO-3G" />\n')
    f.write('      <parameter name="method" value="HF" />\n')
    f.write(
        '      <parameter name="desiredEnergyAccuracy" value="1.0e-5" />\n')
    f.write('      <parameter name="multiplicity" value="%d" />\n' % multi)
    f.write('\n')
    f.write('      <parameter name="outputType" value="ESPplane" />\n')
    f.write('      <parameter name="resolution" value="%d" />\n' % resolution)
    f.write('\n')
    f.write('      <parameter name="centerPoint" value="%.2e %.2e %.2e" />\n' %
            centerPoint)
    f.write('      <parameter name="normalPoint" value="%.2e %.2e %.2e" />\n' %
            normalPoint)
    f.write('      <parameter name="cutoffHeight" value="%.2e" />\n' %
            cutoffHeight)
    f.write('      <parameter name="cutoffWidth" value="%.2e" />\n' %
            cutoffWidth)
    f.write('      <parameter name="outputLength" value="%.2e" />\n' %
            outputLength)
    f.write('    </calculator>\n')
    f.write('\n')
    f.write('    <result name="simResult" plugin="_ESP_Image">\n')
    f.write('      <parameter name="outputFilename" value="%s\\%s.png" />\n' %
            (output_dir, esp_image.name))
    f.write('      <parameter name="xaxisOrient" value="%d" />\n' %
            esp_image.xaxis_orient)
    f.write('      <parameter name="yaxisOrient" value="%d" />\n' %
            esp_image.yaxis_orient)
    f.write('    </result>\n')