Molcas¶
General Info¶
Field | Source | Sample value |
---|---|---|
Title | Set on Browse calculation publication | Sample calculation |
Browse Item | URL pointing Browse published item | https://rodi.urv.es:8080/browse/handle/123456789/6 |
Program | program.header template | Molcas 8.0 - service pack 1 |
Author | Username fullname | Doe, John |
Formula | Atom count from final geometry | C 8 H 12 N 8 O 2 |
Calculation type | Custom logic [1] | Geometry optimization |
Method | Custom logic [2] | RASSCF RASPT2 |

Atomics and Basis Sets¶
After header section, our HTML resume will output a xyz coordinates table with current molecule atoms.
For every atom, we will output it’s serial number, atom type, coordinates in angstroms, basis used and contraction.
In geometry optimizations calculations, next to geometry section header there will appear the word (optimized), pointing that this geometry is the last one from all optimization steps and has converged.
If the geometry optimization did not converge, there will appear the phrase (calculation did not converge).

Molecular Info¶
This section captures molecule additional information not captured on previous section.
Molecular Info¶
Field | Source | Sample value |
---|---|---|
Charge | Readed from “charge” scalar on molcharge line or from mulliken module | 0.000 |
Multiplicity | Readed from scalar[m:spinquantumnum] inside wave.specs module OR from scalar[m:spin] inside scf-ksdft module | 3 |

Solvation input¶
Data source: <module cmlx:templateRef=’pcm’>
Data source: <module cmlx:templateRef=’kirkwood’>

Bond distances¶
Data source (to read molecule and calculate bonds): <module cmlx:templateRef=’coordinates’>

Modules¶
Wave functions / Weights of the most important CSFs¶
Data source <module cmlx:templateRef=’wave.printout’>

Natural Occupation numbers¶
Data source: <module cmlx:templateRef=’wave.printout’>, module “natural”

Mulliken Spin Population¶
Data source: <module cmlx:templateRef=’mulliken’>, submodule “mulliken.spin”

Population analysis / Mulliken atomic charges¶
Data source: <module cmlx:templateRef=”loprop”>
Data source: <module cmlx:templateRef=”mulliken”>


Final energy¶
Data source: <module cmlx:templateRef=”scf-ksdft”> scalar dictRef=’m:scfener’
Data source: <module cmlx:templateRef=”cchc”> scalar dictRef=’m:e2mp2energy’
Data source: <module cmlx:templateRef=”cchc”> scalar dictRef=’m:e2ccsdenergy’
Data source: <module cmlx:templateRef=”ccsdt”> scalar dictRef=’m:ccsdtcorrenergy’


Harmonic frequencies¶
This module also allows displaying harmonic frequency intensities on a customizable chart.
Data source: <module cmlx:templateRef=’vibrations’>


IR spectrum / Vibrational frequencies¶
Data source: <module cmlx:templateRef=’vibrations’>
This module will display JSpecView + JSmol plugins (using javascript libraries) working together to represent molecule IR spectrum.

LoProp Analysis¶
Data source: <module cmlx:templateRef=’dynamic.loprop’>

[1] | string $isRestrictedOpt Exists module <module cmlx:templateRef="constraint" > ?
$isOptimization Input file from <module cmlx:templateRef="molcas.input" > is setup to perform a geometry optimization?
$isTS TS keyword is defined inside <module cmlx:templateRef="molcas.input" > ?
$isIncomplete Convergence table from <module cmlx:templateRef="energy.statistics" > shows 'all converged' OR $isOptimization and $hasLastEnergySection ?
<!-- Calculation type related constants -->
<xsl:param name="isRestrictedOpt"/>
<xsl:param name="isOptimization"/>
<xsl:param name="isTS"/>
<xsl:param name="isIncomplete"/>
<xsl:choose>
<xsl:when test="$isRestrictedOpt">
<xsl:value-of select="$molcas:RestrictedGeomOpt"/>
</xsl:when>
<xsl:when test="$isOptimization">
<xsl:value-of select="$molcas:GeometryOpt"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$molcas:SinglePoint"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$isTS">
<xsl:text> </xsl:text><xsl:value-of select="$molcas:TS"/>
</xsl:if>
<xsl:if test="$isIncomplete">
<xsl:text> </xsl:text><xsl:value-of select="$molcas:Incomplete"/>
</xsl:if>
|
[2] | string $modules Array with all executed module names
$ksdft Module from <module cmlx:templateRef="scf-ksdft" >
$wavespecs Entire <module cmlx:templateRef="wave.specs" > module
<xsl:param name="modules"/>
<xsl:param name="ksdft" />
<xsl:param name="wavespecs" />
<xsl:variable name="isCASSCF" select="
if(exists($wavespecs) and contains($modules,$molcas:RASSCFmodule) and ($wavespecs/cml:scalar[@dictRef='m:ras1holes'] = '0') and ($wavespecs/cml:scalar[@dictRef='m:ras3holes'] = 0)) then
true()
else
false()"/>
<xsl:variable name="isRASSCF" select="
if(contains($modules,$molcas:RASSCFmodule)) then
true()
else
false()"/>
<xsl:variable name="moduleArray">
<xsl:for-each select="$modules">
<xsl:value-of select="concat(upper-case(string(.)),'|')"/>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="distinct-values(tokenize($moduleArray/text(),'[|]+'))">
<xsl:if test="matches(.,$molcas:methodsRegex)">
<xsl:choose>
<xsl:when test="exists($ksdft) and matches(.,$molcas:SCFmodule)">
<xsl:choose>
<xsl:when test="matches($ksdft,$molcas:SCFmodule)">
<xsl:text>HF </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>DFT </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="matches(.,$molcas:RASSCFmodule)">
<xsl:choose>
<xsl:when test="$isCASSCF">
<xsl:value-of select="$molcas:CASSCFmodule"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/><xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="matches(.,$molcas:CASPT2module)">
<xsl:choose>
<xsl:when test="not($isCASSCF) and $isRASSCF">
<xsl:value-of select="$molcas:RASPT2module"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/><xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/><xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:for-each>
|