mol.props

Implementation level
Type Status
CML extraction template image1
HTML5 representation image2
Template attributes
Attribute Value
source MOLCAS log
id mol.props
name Molecular properties
pattern \s*(?:\+\+)?\s*Molecular\s[Pp]roperties:.*
pattern2 \s*Charge.*
pattern3 \s*Dipole\sMoment.*
endPattern \s*\-\-\s*
endPattern2 ~
repeat *
xml:base modules/properties/mol.props.xml
Input
++    Molecular properties:
      ---------------------

      Charge (e):
                      =   -0.0000
      Dipole Moment (Debye):
      Origin of the operator (Ang)=    0.0000    0.0000    0.0000
                     X=    0.0000               Y=    0.0000               Z=    0.0000           Total=    0.0000
      Quadrupole Moment (Debye*Ang):
      Origin of the operator (Ang)=    0.0000    0.0000    0.0000
                    XX=  -92.8211              XY=    0.0000              XZ=    0.0000              YY= -101.7054
                    YZ=    0.0000              ZZ= -128.7810
      In traceless form (Debye*Ang)
                    XX=   22.4221              XY=    0.0000              XZ=    0.0000              YY=    9.0956
                    YZ=    0.0000              ZZ=  -31.5177
--
Output text
<comment class="example.output" id="mol.props">
         <module cmlx:templateRef="mol.props">
           <scalar dataType="xsd:double" dictRef="cc:charge">-0.0000</scalar>
           <list cmlx:templateRef="dipole">
              <array dataType="xsd:double" dictRef="m:dipole" size="3">0.0000 0.0000 0.0000</array>
              <scalar dataType="xsd:double" dictRef="m:total">0.0000</scalar>
              <array dataType="xsd:double" dictRef="m:operatororig" size="3">0.0000 0.0000 0.0000</array>
           </list>
           <list cmlx:templateRef="quadrupole">
              <array dataType="xsd:double" dictRef="m:quadvalue" size="6">-92.8211 0.0000 0.0000 -101.7054 0.0000 -128.7810</array>
              <array dataType="xsd:double" dictRef="m:operatororig" size="3">0.0000 0.0000 0.0000</array>
              <array dataType="xsd:double" dictRef="m:quadtracevalue" size="6">22.4221 0.0000 0.0000 9.0956 0.0000 -31.5177</array>
           </list>
        </module>
    </comment>
Template definition
<templateList>  <template id="charge" name="Charge" pattern="\s*Charge.*" endPattern=".*[0-9]\s*" endOffset="1">    <record />    <record>\s*={F,cc:charge}</record>
        </template>  <template id="dipole" name="Dipole/Quadripole moment" pattern="\s*Dipole\sMoment.*" endPattern="\s*" endPattern2="~">    <record />    <record>\s*Origin\sof\sthe\soperator\s\(Ang\)=\s*{3F,m:operatororig}</record>    <record id="dipole">\s*X={E,m:dipole}Y={E,m:dipole}Z={E,m:dipole}Total={E,m:total}</record>    <record />    <record>\s*Origin\sof\sthe\soperator\s\(Ang\)=\s*{3F,m:operatororig}</record>    <record id="quadrupole">\s*XX={E,m:quadvalue}XY={E,m:quadvalue}XZ={E,m:quadvalue}YY={E,m:quadvalue}</record>    <record id="quadrupole">\s*YZ={E,m:quadvalue}ZZ={E,m:quadvalue}</record>    <record />    <record id="quadrupole">\s*XX={E,m:quadtracevalue}XY={E,m:quadtracevalue}XZ={E,m:quadtracevalue}YY={E,m:quadtracevalue}</record>    <record id="quadrupole">\s*YZ={E,m:quadtracevalue}ZZ={E,m:quadtracevalue}</record>
        </template>  <transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='m:dipole']" />  <transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='m:quadvalue']" />  <transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='m:quadtracevalue']" />  <transform process="move" xpath="(.//cml:array[@dictRef='m:operatororig'])[1]" to=".//cml:list[@cmlx:templateRef='dipole']" />  <transform process="move" xpath="(.//cml:array[@dictRef='m:operatororig'])[2]" to="(.//cml:list[@cmlx:templateRef='quadrupole'])[1]" />  <transform process="move" xpath=".//cml:array[@dictRef='m:quadtracevalue']" to="(.//cml:list[@cmlx:templateRef='quadrupole'])[1]" />  <transform process="pullup" xpath=".//cml:list[@cmlx:templateRef='dipole' or @cmlx:templateRef='quadrupole']/cml:list/*" />  <transform process="pullup" xpath=".//cml:scalar[@dictRef='cc:charge']" repeat="2" />  <transform process="pullup" xpath=".//cml:list[@cmlx:templateRef='dipole']" repeat="1" />  <transform process="pullup" xpath=".//cml:list[@cmlx:templateRef='quadrupole']" repeat="1" />  <transform process="delete" xpath=".//cml:list[count(*) = 0]" />  <transform process="delete" xpath=".//cml:list[count(*) = 0]" />  <transform process="delete" xpath=".//cml:module[count(*) = 0]" />

    </templateList>