vibrations

Implementation level

Type

Status

CML extraction template

image1

HTML5 representation

image2

Template attributes

Attribute

Value

source

Orca log

id

vibrations

name

Vibrational frequencies

pattern

\s*\-+\s*$\s*VIBRATIONAL\sFREQUENCIES.*

endPattern

\s*\-+\s*$(?!(NORMAL|VIBRATIONAL)).*$\s*\-+\s*

repeat

*

xml:base

job/vibrations.xml

Input

-----------------------
VIBRATIONAL FREQUENCIES
-----------------------

   0:         0.00 cm**-1
   1:         0.00 cm**-1
   2:         0.00 cm**-1
   3:         0.00 cm**-1
   4:         0.00 cm**-1
   5:         0.00 cm**-1
   6:      -434.84 cm**-1 ***imaginary mode***
   7:      -419.45 cm**-1 ***imaginary mode***
   8:      -289.83 cm**-1 ***imaginary mode***
   9:      -272.32 cm**-1 ***imaginary mode***
  10:      -168.02 cm**-1 ***imaginary mode***
  11:      -122.97 cm**-1 ***imaginary mode***
  12:      -114.81 cm**-1 ***imaginary mode***
  13:      -110.33 cm**-1 ***imaginary mode***
  14:       -68.54 cm**-1 ***imaginary mode***
  15:       -51.59 cm**-1 ***imaginary mode***
  16:       -30.16 cm**-1
  17:        12.43 cm**-1
  18:        48.29 cm**-1
  19:        56.20 cm**-1
  20:        76.33 cm**-1
...
 119:      3560.03 cm**-1
 120:      3687.73 cm**-1
 121:      3905.08 cm**-1
 122:      3910.12 cm**-1


------------
NORMAL MODES
------------

These modes are the cartesian displacements weighted by the diagonal matrix
M(i,i)=1/sqrt(m[i]) where m[i] is the mass of the displaced atom
Thus, these vectors are normalized but *not* orthogonal

                  0          1          2          3          4          5
      0       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      1       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      2       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      3       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      4       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      5       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      6       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      7       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
      8       0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
...
    120       0.158785   0.002231  -0.004623
    121      -0.160155  -0.002115   0.004968
    122      -0.035114  -0.000336   0.001664

Output text

1<comment class="example.output" id="vibrations">
2      <module cmlx:templateRef="vibrations">
3         <array dataType="xsd:double" dictRef="cc:frequency" size="123">0.00 0.00 0.00 0.00 0.00 0.00 -434.84 -419.45 -289.83 -272.32 -168.02 -122.97 -114.81 -110.33 -68.54 -51.59 -30.16 12.43 48.29 56.20 76.33 ... 3560.03 3687.73 3905.08 3910.12</array>
4         <matrix cols="123" dataType="xsd:double" dictRef="cc:displacement" rows="123">0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ... -0.000121 -0.000040 -0.000235 -0.000016 0.000051 0.000049 -0.000072 0.000062 0.000277 0.000188 0.000023 -0.000067 0.000039 0.000005 -0.000052 0.000067 0.000027 0.000108 -0.000026 -0.000007 0.000011 0.000079 -0.000014 0.000017 0.000008 -0.000181 0.000019 0.000405 -0.000100 0.001416 -0.004623 0.004968 0.001664</matrix>
5     </module>
6    </comment>

Template definition

 1<templateList>  <template id="frequencies" pattern="\s*VIBRATIONAL\sFREQUENCIES\s*" endPattern=".*cm\*\*-1$\s*" endPattern2="~" endOffset="1">    <templateList>      <template pattern="\s*[0-9].*" endPattern2="~" endOffset="1">        <record repeat="*" makeArray="true">{I,cc:index}:{F,cc:frequency}cm\*\*-1.*</record>
 2                </template>
 3            </templateList>
 4        </template>  <template id="normal" pattern="\s*NORMAL\sMODES\s*" endPattern=".*[0-9]$\s*" endPattern2="~" endOffset="1">    <record repeat="7" />    <templateList>      <template id="section" pattern="[^\.]*" endPattern="[^\.]*" endPattern2="\s*" endPattern3="~" endOffset="0" repeat="*">        <record repeat="1" />        <record repeat="*" makeArray="false">{I,cc:index}{1_6F,cc:value}</record>        <transform process="addAttribute" name="index" xpath=".//cml:array" value="$number(..//cml:scalar[@dictRef='cc:index']/text())" />
 5                </template>
 6            </templateList>
 7        </template>  <transform process="joinArrays" xpath=".//cml:array[@dictRef='cc:value']" key="$number(@index)" />  <transform process="createMatrix" xpath="." from=".//cml:array[@dictRef='cc:value']" dictRef="cc:displacement" />  <transform process="operateMatrix" xpath=".//cml:matrix[@dictRef='cc:displacement']" args="operator=transpose" />
 8    </templateList>
 9<transform process="move" xpath=".//cml:array[@dictRef='cc:frequency']" to="." />
10<transform process="move" xpath=".//cml:matrix" to="." />
11<transform process="delete" xpath=".//cml:module[@cmlx:templateRef='frequencies']" />
12<transform process="delete" xpath=".//cml:module[@cmlx:templateRef='normal']" />