XCrySDen --
(X-Window)
	      CRYstalline Structures and DENsities

[Figure]
Home | About | Description | Documentation | Download | News | Links
XCrySDen Scripting Documentation

Table of Contents
    ScriptingExamples/multiScript.tcl


Generated from multiScript.tcl with ROBODoc v3.2.4 on Wed May 25 16:04:51 2005


ScriptingExamples/multiScript.tcl

NAME
 multiScript.tcl -- a simple example of multi-job script (i.e. multiScript)

USAGE
 xcrysden --script multiScript.tcl

COPYRIGHT
 Anton Kokalj (C) 2003

PURPOSE
 This is a scripting example that shows how to produce a multi-jobs.
 It uses the scripting::multiScript facility. Many times, one might
 want to produce several plots of molecular orbitals of a given
 molecule. It would be desirable that the display parameters are
 exactly the same for all plots. This is one such example, where CO
 HOMO and LUMO molecular-orbitals are printed. 

 The multiScript uses major and minor script. In the first script the
 loading of the files is specified, while in the latter script the
 operations of what to do with each file are defined. The usage of
 multiScript is:

 scripting::multiScript scriptMajor scriptMinor

 scripting::multiScript scriptMajor scriptMinor

WARNINGS
 Inside the major-script (i.e. scriptMajor) the scripting::exec
 should be used instead of scripting::open.

AUTHOR
 Anton Kokalj

CREATION DATE
 Sometime in February 2003
 
SOURCE
    scripting::multiScript {
    
        # ------------------------------------------------------------------------
        # This is the MAJOR script 
        #
        # It opens two files, one at a time, and then for each opened
        # file proceed accoring to minor script instructions
        # ------------------------------------------------------------------------
        global env
        set dir [file join $env(XCRYSDEN_TOPDIR) examples Xcrysden_Structure_Files]
        
        set file1 [file join $dir CO_homo.xsf.gz]
        set file2 [file join $dir CO_lumo.xsf.gz]
        
        foreach file [list $file1 $file2] {
            # load the $file XSF
            scripting::exec --xsf $file
            
            # rename print.png to $file.png
            if { [file exists print.png] } {
                set filehead [file tail [file rootname $file]]
                file rename -force print.png $filehead.png
            }
        }
    
    } {
    
        # ------------------------------------------------------------------------
        # This is the MINOR script
        #
        # It produces and prints the isosurface + colorplane
        # ------------------------------------------------------------------------
    
    
        # ------------------------------------------------------------------------
        # display the structure in appropriate display-mode
        # ------------------------------------------------------------------------
        
        scripting::lighting On
        scripting::displayMode3D Pipe&Ball
    
        # ------------------------------------------------------------------------
        # zoom and rotate the structure 
        # ------------------------------------------------------------------------
    
        scripting::zoom -0.5
        scripting::rotate x -90 
    
        # ------------------------------------------------------------------------
        # load the 3D scalar field
        # ------------------------------------------------------------------------
        
        scripting::scalarField3D::load
    
        # ------------------------------------------------------------------------
        # configure, i.e., specify how to render the scalar field
        #
        # for the usage see, for example, isosurface+colorplane+print.tcl file
        # ------------------------------------------------------------------------
    
        scripting::scalarField3D::configure \
            -isosurface           1 \
            -interpolation_degree 2 \
            -isolevel             0.1 \
            -plusminus            1 \
            -basalplane           2 \
            -colorbasis           BLUE-WHITE-RED \
            -scalefunction        LINEAR \
            -expand2D             specify \
            -expand2D_X           1 \
            -expand2D_Y           1 \
            -expand2D_Z           1 \
            -colorplane           1 \
            -isoline              1 \
            -colorplane_lighting  0 \
            -cpl_transparency     0 \
            -cpl_thermometer      1 \
            -2Dlowvalue           -0.1 \
            -2Dhighvalue          +0.1 \
            -2Dnisoline           11 \
            -anim_step            1 \
            -current_slide        25 \
            -isoline_color        monocolor \
            -isoline_width        3 \
            -isoline_monocolor    \#000000
    
        # ------------------------------------------------------------------------
        # hide the isosourface control window
        # ------------------------------------------------------------------------
        
        wm withdraw .iso
    
        # ------------------------------------------------------------------------
        # render the 3D scalar field as requested by 
        # scripting::scalarField3D::configure
        # ------------------------------------------------------------------------
        
        scripting::scalarField3D::render
        
        
        # # ------------------------------------------------------------------------
        # # revert the isosurface normals (this should be done after rendering of 
        # # isosurface)
        # # ------------------------------------------------------------------------
        # 
        # scripting::scalarField3D::configure -revertnormal {pos neg}
    
        # ------------------------------------------------------------------------
        # now lets print to file what we have on the display window
        # ------------------------------------------------------------------------
    
        scripting::printToFile print.png windowdump    
    
        # we've done all; exit
        exit 0
    }

Home | About | Description | Documentation | Download | News | Links
Webmaster: Tone Kokalj
This document was last modified on Wed Oct 7 16:12:18 CEST 2015