<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computational Chemistry Group</title>
	<atom:link href="http://www.compchem.kiev.ua/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.compchem.kiev.ua</link>
	<description>Computational Chemistry Group site</description>
	<lastBuildDate>Wed, 15 Jul 2009 07:47:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why the quantum chemical models of active carbons, which were obtained by the ‘technology following’ methodology are so differ from the commonly accepted graphite-like model?</title>
		<link>http://www.compchem.kiev.ua/index.php/2009/07/why-the-quantum-chemical-models-of-active-carbons-which-were-obtained-by-the-%e2%80%98technology-following%e2%80%99-methodology-are-so-differ-from-the-commonly-accepted-graphite-like-model/</link>
		<comments>http://www.compchem.kiev.ua/index.php/2009/07/why-the-quantum-chemical-models-of-active-carbons-which-were-obtained-by-the-%e2%80%98technology-following%e2%80%99-methodology-are-so-differ-from-the-commonly-accepted-graphite-like-model/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 22:14:59 +0000</pubDate>
		<dc:creator>vkhavr</dc:creator>
				<category><![CDATA[Group]]></category>

		<guid isPermaLink="false">http://www.compchem.kiev.ua/index.php/2009/07/why-the-quantum-chemical-models-of-active-carbons-which-were-obtained-by-the-%e2%80%98technology-following%e2%80%99-methodology-are-so-differ-from-the-commonly-accepted-graphite-like-model/</guid>
		<description><![CDATA[<p>The commonly accepted model for the activated carbon structure is flat graphite fragment, may be with defect(s), and terminated by the hydrogen atoms and/or functional groups. Therefore, the point of view of masters in active carbon chemistry is [Activated Carbon; Harry Marsh and Francisco Rodríguez-Reinoso; Copyright © 2006 Elsevier Ltd.]:
Question: Can activated carbons be described [...]</p>
]]></description>
			<content:encoded><![CDATA[<p>The commonly accepted model for the activated carbon structure is flat graphite fragment, may be with defect(s), and terminated by the hydrogen atoms and/or functional groups. Therefore, the point of view of masters in active carbon chemistry is [Activated Carbon; Harry Marsh and Francisco Rodríguez-Reinoso; Copyright © 2006 Elsevier Ltd.]:
Question: Can activated carbons be described as amorphous materials?
Answer. Emphatically, no.</p>

<p>No comments to this.
But, the vibration spectra of graphite and active carbon (type SKS from synthetic polymer or other), obtained by inelastic neutron method (where no selected rules are work and one can see amplitude weighted density of vibration states – AWDS) are greatly differ! It means that the structures of these two carbon’s form are greatly differing too!
The physical properties, which can be tested very easy and directly – hardness – for these two carbon’s form are greatly differ too! Graphite has hardness near 1 by Moos scale and some samples of the SKS active carbon can scratch the hardening steel! Graphite cannot do this!
We simulate the carbonization process using next methodology. Step-by-step we remove that groups (hydrogen and hydroxyl, if they are presented) from the starting molecule(s), which produces the gases from carbonization process (hydrogen and water, if it is possible, molecules). After that, the system under study is optimized and process repeats again up to complete carbonization. One of the obtained structures is shown here.
The main differences between our model and commonly accepted graphite-like model are:
1. We have cycle size distribution. It means that we have 3-fold, 4- fold, 5- fold, 6- fold, 7- fold,8- fold and more folds cycles in comparable amount, while the graphite-like model only now can accept a small amount 5-fold and seven-fold cycles into graphene plane – the most important renovation into graphite-like model during last 70 years.
2. We have a big amount of two-fold coordinated carbon atoms in the carben-carbin-coumulet chains. Nobody from carbon-coal chemists would like to accept this idea!
3. A lot of benzene cycles have a triple bond. And again nobody from carbon-coal chemists would like to accept this idea! As I know from my discussions with that scientists, nobody know the term ‘Aryne Chemistry’ and the article: “One Century of Aryne Chemistry” by Hans Henning Wenk, Dr., Michael Winkler, Dipl.-Chem., Wolfram Sander, Prof. Dr. &#8211; Angewandte Chemie International Edition, 2003, v. 42, No 5, p. 502-528. My question to them: “What should be with graphene plane, which terminated by hydrogen atoms, after mechanical partition onto two parts?”. Every times I had got the answere: “the dangling bonds”! What is means “ the dangling bonds ”?  &#8211; “ The bonds after breaking-off!” – “How many “the dangling bonds” one can obtain after removing two hydrogen from ethane CH3-CH3 (one hydrogen per one carbons)?  -  Qualify chemists usually say: “No dangling bonds – one has got the ethylene H2C=CH2”. Illiterate chemists and most physicist usually say: “ Two dangling bonds”!!! How to improve the brains?</p>

<p>But the question about active carbon structure for the time being is opened! Where is the exact model? A big amount of the cycle size distribution and two-fold coordinated carbon atoms are the quantum chemistry deviation from the true? Or it is the deviation of the ‘technology following’ methodology? Or it is unknown and unidentified mistake? Or, the most probable, we have the same structure, but we look on it from the different sides? (те же яйца, только в профиль!)???
May be, the common send on the active carbon was formed at that old time, when only graphite and diamond were known. Starting from the black color and common physical properties (electric conductivity) and some XRD data (but XRD cannot directly define the amorphous part!) only graphite-like model was proposed at the times of Rosalind E.Franklin [Rosalind E.Franklin. - Crystallite growth in graphitizing and non-graphitizing carbons. - Proc. R. Soc. Lond. Ser. A, 1951, v. 209, p. 196-218] and nobody whould like to improve these types of models? Only small corrections to this graphite-like model as 5-fold and 7-fold cycles as rare defects in regular 6-fold cycles. For chemists were introduced the functional groups to describe the chemical properties of the active carbons. As usually, physicists would not like to take in account these “chemical impurities”. As result – lack of common model to describe and predict the properties of different carbon materials. But, our experience in the silica glass structure simulation shows that any amount of defects, introduced into crystal structure, cannot convert it into amorphous silica glass structure. Last data [J. -F. Poggemann, G. Heide, G. H. Frischat. - Direct view of the structure of different glass fracture surfaces by atomic force microscopy - Journal of Non-Crystalline Solids, 2003, v. 326-327, p. 15-20 and others] about direct observation on the silica glass structure has supported our amorphous model [V Khavryutchenko, J Garapon, B Poumellec. - Structure simulation of silica glasses: approach to CVD - Modelling Simul. Mater. Sci. Eng., 2001, v. 9, p. 465-483].
Who can solve this very interesting situation?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.compchem.kiev.ua/index.php/2009/07/why-the-quantum-chemical-models-of-active-carbons-which-were-obtained-by-the-%e2%80%98technology-following%e2%80%99-methodology-are-so-differ-from-the-commonly-accepted-graphite-like-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1995 prediction of surface magnetic properties</title>
		<link>http://www.compchem.kiev.ua/index.php/2006/06/1995-prediction-of-surface-magnetic-properties/</link>
		<comments>http://www.compchem.kiev.ua/index.php/2006/06/1995-prediction-of-surface-magnetic-properties/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 12:29:12 +0000</pubDate>
		<dc:creator>akhavr</dc:creator>
				<category><![CDATA[Publications]]></category>

		<guid isPermaLink="false">http://www.compchem.kiev.ua/?p=11</guid>
		<description><![CDATA[<p>Cluster Rhomb_4, 882 Si, totally 1216 atoms, including terminated hydrogen/ This cluster was used to investigate surface magnetis properties for silicon (7*7) superlattice. This phenomenon was predicted by calculation of Dr. V.D.Khavryuchenko in 1995, experimentally supported in 1999.</p>
]]></description>
			<content:encoded><![CDATA[<p>Cluster Rhomb_4, 882 Si, totally 1216 atoms, including terminated hydrogen/ This cluster was used to investigate surface magnetis properties for silicon (7*7) superlattice. This phenomenon was predicted by calculation of Dr. V.D.Khavryuchenko in 1995, experimentally supported in 1999.</p>

<p>Hardware used: Sun 10 sparcstation.</p>

<p><img src="http://www.compchem.kiev.ua/?action=download&amp;file_id=6&amp;record=no" alt="Silicon (111) 7*7 superlattice" width="600"/></p>

<p>Respective publications:</p>

<ol>
    <li>V. Khavryuchenko et al, Phys. Low-Dim. Struct. 11/12 (1996)  1.</li>
    <li>E. Sheka et al, <a href="http://www.compchem.kiev.ua/?action=download&#038;file_id=8">Highspin molecular magnetism of silicon surfaces</a>, Surf. Sci. 532-535 (2003) 754-758</li>
    <li>Z. Wu et al, Surf. Sci. 386 (1997) 311.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.compchem.kiev.ua/index.php/2006/06/1995-prediction-of-surface-magnetic-properties/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overview of Group&#8217;s activities &#8211; Presentation in Samsung, 2003</title>
		<link>http://www.compchem.kiev.ua/index.php/2006/06/overview-of-groups-activities-presentation-in-samsung-2003/</link>
		<comments>http://www.compchem.kiev.ua/index.php/2006/06/overview-of-groups-activities-presentation-in-samsung-2003/#comments</comments>
		<pubDate>Thu, 15 Jun 2006 14:52:21 +0000</pubDate>
		<dc:creator>akhavr</dc:creator>
				<category><![CDATA[Group]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.compchem.kiev.ua/?p=10</guid>
		<description><![CDATA[<p>Brief overview of recent (as of 2003) Group's activity.</p>
]]></description>
			<content:encoded><![CDATA[<p>This is a web-enabled copy of a presentation done in Samsung in 2003.  </p>

<ul><li>
<object width="400" height="300">
<param name="movie" value="http://www.compchem.kiev.ua/?action=download&#038;file_id=3&#038;record=no">
<embed src="http://www.compchem.kiev.ua/?action=download&#038;file_id=3&#038;record=no" width="400" height="300">
</embed>
</param>
</object>

</li><li><a href="http://www.compchem.kiev.ua/static/samsung_2003/">Html copy</a> 
</li>
<li>  <a href="http://www.compchem.kiev.ua/?action=download&#038;file_id=5&#038;record=no">OpenOffice version</a>
</li></ul>

<p>Check following pages for supplementary videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.compchem.kiev.ua/index.php/2006/06/overview-of-groups-activities-presentation-in-samsung-2003/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create PyQuante forcefield for MMTK.  Part 1.</title>
		<link>http://www.compchem.kiev.ua/index.php/2006/05/how-to-create-pyquante-forcefield-for-mmtk-part-1/</link>
		<comments>http://www.compchem.kiev.ua/index.php/2006/05/how-to-create-pyquante-forcefield-for-mmtk-part-1/#comments</comments>
		<pubDate>Thu, 25 May 2006 18:52:59 +0000</pubDate>
		<dc:creator>akhavr</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[akhavr]]></category>

		<guid isPermaLink="false">http://www.compchem.kiev.ua/?p=9</guid>
		<description><![CDATA[<p>One of the constant activities of Computational Chemistry Group, Kiev is an optimization and a redesign of our computational toolchain.  Being (a) responsible for the software redesign activity (b) chemist by education and (c) programmer by nature, I’ve decided - it’s time to automate all this stuff. Since I love high-level scripting and I love Python, the roadmap was clear to me: find existing python modules that encapsulate things like force field calculations, dynamics or visualization and glue them together. my first step is to create new MMTK force field using PyQuante.  </p>
]]></description>
			<content:encoded><![CDATA[<h2>How to create PyQuante forcefield for MMTK.  Part 1.</h2>

<h3>Introduction: Why and What</h3>

<p>One of the constant activities of <a href="http://www.compchem.kiev.ua">Computational Chemistry Group</a>, Kiev is an optimization and a redesign of our computational toolchain. </p>

<p>Finally, we&#8217;ve came to the point where no one of existing, nor our own quantum chemistry computational packages is not sufficient.  Say, I would like to set a random distribution of bunch of some molecules in space, run molecular dynamics simulation, cooling them, then perform an energy minimization and finally, compute their IR spectra.  And then repeat this 50 times for different molecules and setups. </p>

<p><a class="external" href="http://www.ks.uiuc.edu/Research/namd/"> One</a> package allows nice molecular dynamics, but, alas only for biomolecular systems. <a class="external" href="http://www.msg.ameslab.gov/GAMESS/GAMESS.html">Another</a> is fine regarding HF and DFT calculations, but what about dynamics?  In our semi-empirical code we routinely calculate systems in an external electric field or under mechanical stress, but tool integration (e.g. visualization) stays problematic. </p>

<p>Being (a) responsible for the software redesign activity (b) chemist by education and (c) programmer by nature, I&#8217;ve decided &#8211; it&#8217;s time to automate all this stuff.  Since I love high-level scripting and I love <a class="external" href="http://www.python.org">Python</a>, the roadmap was clear to me: find existing python modules that encapsulate things like force field calculations, dynamics or visualization and glue them together. </p>

<p>Thanks to open source we have a bunch of helpful projects: </p>

<ul>
<li><p> <a class="external" href="http://pyquante.sourceforge.net/">PyQuante</a> that provides fine-grained python interface to the heart of hartree-fock and density functional calculations </p>
</li>
<li><p> <a class="external" href="http://www.python.net/crew/hinsen/MMTK/"> MMTK</a> for daily molecular modelling activities </p>
</li>

<li><p> <a class="external" href="http://pymol.sourceforge.net/"> PyMol</a> and <a class="external" href="http://www.ks.uiuc.edu/Research/vmd/">VMD</a> for molecular visualization and construction </p>
</li>
<li><p> lots of open source (and, of course, our own) ab-initio and semi-empiric HF and DFT codes </p>
</li>
</ul>

<p>So, given the goal and the starting point, my first step is to create new MMTK force field using PyQuante. </p>

<p>Technical note.  I&#8217;m using <a class="external" href="http://www.altlinux.org">ALT Linux</a> distribution that&#8217;s rpm- and apt-based.  It&#8217;s central package repository is <a class="external" href="http://www.sisyphus.ru/"> Sisyphus</a> (similar to <a class="external" href="http://www.debian.org/releases/unstable/"> Debian unstable</a>) </p>

<h3>Preparing</h3>

<p>First, I&#8217;ve started by building stable versions of required packages: </p>

<ul>
<li><p> python-module-PyQuante 1.5.0 </p>
</li>
<li><p> python-module-Scientific 2.4.11 (MMTK helper module &#8211; <a href="http://dirac.cnrs-orleans.fr/ScientificPython/"><http ://dirac.cnrs-orleans.fr/ScientificPython/</a>) </http></a></p>
</li>
<li><p> python-module-MMTK 2.4.6 </p>

</li>
</ul>

<p>The process was pretty straighforward, despite I&#8217;ve found that the Numeric python module that&#8217;s present in my distribution is outdated and has bug in LinearAlgrebra module.  Result: <a class="external" href="https://bugzilla.altlinux.org/show_bug.cgi?id=9574">the bug report</a>. </p>

<h3>MMTK forcefield</h3>

<p>Finally, I&#8217;ve get my hands onto fresh installed python modules. Investigating the internals of MMTK energy calculations&#8230; </p>

<p>MMTK vocabulary uses Universe to define the system under study, the ForceField to set the energy calculation rules and usual Atom and Molecule to set the molecular structure. </p>

<p>I&#8217;ve called my new ForceField <strong>RhfForceField</strong> and set up simple test script: </p>

<div lang="en" class="codearea" dir="ltr">
<script type="text/javascript">
document.write('<a href="#" onClick="return togglenumber(\'CA-7db79c3bd7a123b5894c8aaa6deb8d56163d95b4_002\', 1, 1);" \
                class="codenumbers">Toggle line numbers< \/a>');
</a></script>
<pre lang="en" id="CA-7db79c3bd7a123b5894c8aaa6deb8d56163d95b4_002" dir="ltr">
<span class="line"></span><span class="LineNumber">   1 </span><span class="ResWord">from</span> <span class="ID">MMTK</span> <span class="ResWord">import</span> <span class="Operator">*</span>

<span class="line"></span><span class="LineNumber">   2 </span><span class="ResWord">from</span> <span class="ID">MMTK</span><span class="Operator">.</span><span class="ID">ForceFields</span><span class="Operator">.</span><span class="ID">ForceField</span> <span class="ResWord">import</span> <span class="ID">ForceField</span>
<span class="line"></span><span class="LineNumber">   3 </span>

<span class="line"></span><span class="LineNumber">   4 </span><span class="ResWord">class</span> <span class="ID">RhfForceField</span><span class="Operator">(</span><span class="ID">ForceField</span><span class="Operator">)</span><span class="Operator">:</span>
<span class="line"></span><span class="LineNumber">   5 </span>    <span class="ResWord">def</span> <span class="ID">__init__</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">)</span><span class="Operator">:</span> <span class="ResWord">pass</span>

<span class="line"></span><span class="LineNumber">   6 </span>    <span class="ResWord">pass</span>
<span class="line"></span><span class="LineNumber">   7 </span>
<span class="line"></span><span class="LineNumber">   8 </span><span class="ID">universe</span> <span class="Operator">=</span> <span class="ID">InfiniteUniverse</span><span class="Operator">(</span><span class="ID">RhfForceField</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">   9 </span><span class="ID">universe</span><span class="Operator">.</span><span class="ID">mol</span> <span class="Operator">=</span> <span class="ID">Molecule</span><span class="Operator">(</span><span class="String">'water'</span><span class="Operator">)</span>
<span class="line"></span><span class="LineNumber">  10 </span>
<span class="line"></span><span class="LineNumber">  11 </span><span class="ResWord">print</span> <span class="ID">universe</span><span class="Operator">.</span><span class="ID">energy</span><span class="Operator">(</span><span class="Operator">)</span><span class="Text"></span>

</pre>
</div>

<p>Sure it fails.  I&#8217;ve not defined anything! </p>

<pre>
  File "t2.py", line 11, in ?
    print universe.energy()
  File "/usr/lib/python2.4/site-packages/MMTK/Universe.py", line 629, in energy
    eval = self.energyEvaluator(subset1, subset2)
  File "/usr/lib/python2.4/site-packages/MMTK/Universe.py", line 615, in energyEvaluator
    threads, mpi_communicator)
  File "/usr/lib/python2.4/site-packages/MMTK/ForceFields/ForceField.py", line 183, in __init__
    self.global_data)
  File "/usr/lib/python2.4/site-packages/MMTK/ForceFields/ForceField.py", line 40, in evaluatorTerms
    raise AttributeError
AttributeError
</pre>

<p>Short peek into MMTK.ForceFields.ForceFileds reveals the <strong>evaluatorTerms</strong> method.  But when I define it to return nothing </p>

<div lang="en" class="codearea" dir="ltr">
<script type="text/javascript">
document.write('<a href="#" onClick="return togglenumber(\'CA-62234c6256bd5232d831bb4fea60c57daca68696_003\', 1, 1);" \
                class="codenumbers">Toggle line numbers< \/a>');
</a></script>
<pre lang="en" id="CA-62234c6256bd5232d831bb4fea60c57daca68696_003" dir="ltr">
<span class="line"></span><span class="LineNumber">   1 </span><span class="ResWord">class</span> <span class="ID">RhfForceField</span><span class="Operator">(</span><span class="ID">ForceField</span><span class="Operator">)</span><span class="Operator">:</span>
<span class="line"></span><span class="LineNumber">   2 </span>    <span class="ResWord">def</span> <span class="ID">__init__</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">)</span><span class="Operator">:</span> <span class="ResWord">pass</span>

<span class="line"></span><span class="LineNumber">   3 </span>    <span class="ResWord">def</span> <span class="ID">evaluatorTerms</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="ID">universe</span><span class="Operator">,</span> <span class="ID">subset1</span><span class="Operator">,</span> <span class="ID">subset2</span><span class="Operator">,</span> <span class="ID">global_data</span><span class="Operator">)</span><span class="Operator">:</span>

<span class="line"></span><span class="LineNumber">   4 </span>        <span class="ResWord">return</span>
<span class="line"></span><span class="LineNumber">   5 </span>    <span class="ResWord">pass</span><span class="Text"></span>
</pre>
</div>

<p>my python coredumps. </p>

<p>At this point (any really clever developer would do this from the very beginning), I read the examples, supplied with MMTK.  There is simple harmonic oscillator force field defined (Examples/Forcefield/).  Alas, it uses C-coded energy evaluation routine.  Not the way, I&#8217;d like to venture now. </p>

<p>Several hours of reading C and Python code resulted in various attempts, including the attempt to use undocumented MMTK_forcefield.PythonTerm class, but of no use &#8211; still coredump. </p>

<p>The problem was easily solved (the power of open source!) by <a class="external" href="http://starship.python.net/pipermail/mmtk/2006/001119.html">single e-mail</a> to the mmtk mailing list.  The <a class="external" href="http://starship.python.net/pipermail/mmtk/2006/001120.html">answer</a> is simple: to use python-defined force fields, one must use the development (2.5.x) version of MMTK.  Actually, as Konrad <a class="external" href="http://starship.python.net/pipermail/mmtk/2006/001123.html">says</a>, the only reason it wasn&#8217;t declared &#8217;stable&#8217; is the deficiency in his documentation toolkit: he can&#8217;t generate html, xml and pdf docs from old documentation base. </p>

<p>So, once again I&#8217;ve switched to rpm packaging, including packaging of <a class="external" href="http://effbot.org/zone/celementtree.htm">python-module-cElementTree</a>, required by 2.5.13 version of MMTK. </p>

<p>This version, among other, includes couple new ForceField examples, each implemented in C, <a class="external" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/">Pyrex</a> and Python. </p>

<p>Now, the implementation of the restricted Hartree-Fock force field seems straighforward: </p>

<div lang="en" class="codearea" dir="ltr">
<script type="text/javascript">
document.write('<a href="#" onClick="return togglenumber(\'CA-a31aa7ad97b85abd73d118a5b8a124007eae116d_004\', 1, 1);" \
                class="codenumbers">Toggle line numbers< \/a>');
</a></script>
<pre lang="en" id="CA-a31aa7ad97b85abd73d118a5b8a124007eae116d_004" dir="ltr">
<span class="line"></span><span class="LineNumber">   1 </span><span class="ResWord">from</span> <span class="ID">MMTK</span> <span class="ResWord">import</span> <span class="Operator">*</span>

<span class="line"></span><span class="LineNumber">   2 </span><span class="ResWord">from</span> <span class="ID">MMTK</span><span class="Operator">.</span><span class="ID">ForceFields</span><span class="Operator">.</span><span class="ID">ForceField</span> <span class="ResWord">import</span> <span class="ID">ForceField</span><span class="Operator">,</span> <span class="ID">EnergyTerm</span>

<span class="line"></span><span class="LineNumber">   3 </span><span class="ResWord">import</span> <span class="ID">PyQuante</span><span class="Operator">.</span><span class="ID">Molecule</span>
<span class="line"></span><span class="LineNumber">   4 </span><span class="ResWord">from</span> <span class="ID">PyQuante</span> <span class="ResWord">import</span> <span class="ID">hartree_fock</span>

<span class="line"></span><span class="LineNumber">   5 </span>
<span class="line"></span><span class="LineNumber">   6 </span><span class="ID">sym_to_nucl_map</span> <span class="Operator">=</span> <span class="Operator">{</span>
<span class="line"></span><span class="LineNumber">   7 </span>    <span class="String">'H'</span> <span class="Operator">:</span> <span class="Number">1</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">   8 </span>    <span class="String">'C'</span> <span class="Operator">:</span> <span class="Number">6</span><span class="Operator">,</span>
<span class="line"></span><span class="LineNumber">   9 </span>    <span class="String">'O'</span> <span class="Operator">:</span> <span class="Number">8</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">  10 </span>    <span class="Operator">}</span>
<span class="line"></span><span class="LineNumber">  11 </span>
<span class="line"></span><span class="LineNumber">  12 </span><span class="ResWord">class</span> <span class="ID">HfFieldTerm</span><span class="Operator">(</span><span class="ID">EnergyTerm</span><span class="Operator">)</span><span class="Operator">:</span>

<span class="line"></span><span class="LineNumber">  13 </span>    <span class="ResWord">def</span> <span class="ID">__init__</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="ID">universe</span><span class="Operator">)</span><span class="Operator">:</span>
<span class="line"></span><span class="LineNumber">  14 </span>        <span class="ID">EnergyTerm</span><span class="Operator">.</span><span class="ID">__init__</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="String">'Hatree Fock'</span><span class="Operator">,</span> <span class="ID">universe</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  15 </span>        <span class="ResWord">return</span>
<span class="line"></span><span class="LineNumber">  16 </span>
<span class="line"></span><span class="LineNumber">  17 </span>    <span class="ResWord">def</span> <span class="ID">evaluate</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="ID">configuration</span><span class="Operator">,</span> <span class="ID">do_gradients</span><span class="Operator">,</span> <span class="ID">do_force_constants</span><span class="Operator">)</span><span class="Operator">:</span>

<span class="line"></span><span class="LineNumber">  18 </span>        <span class="ID">atomlist</span> <span class="Operator">=</span> <span class="Operator">[</span><span class="Operator">]</span>
<span class="line"></span><span class="LineNumber">  19 </span>        <span class="ResWord">for</span> <span class="ID">atom</span> <span class="ResWord">in</span> <span class="ID">self</span><span class="Operator">.</span><span class="ID">universe</span><span class="Operator">.</span><span class="ID">atomList</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">:</span> <span class="ID">atomlist</span><span class="Operator">.</span><span class="ID">append</span><span class="Operator">(</span><span class="Operator">[</span>

<span class="line"></span><span class="LineNumber">  20 </span>            <span class="ID">sym_to_nucl_map</span><span class="Operator">[</span><span class="ID">atom</span><span class="Operator">.</span><span class="ID">type</span><span class="Operator">.</span><span class="ID">symbol</span><span class="Operator">]</span><span class="Operator">,</span>
<span class="line"></span><span class="LineNumber">  21 </span>            <span class="ID">atom</span><span class="Operator">.</span><span class="ID">position</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">]</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  22 </span>
<span class="line"></span><span class="LineNumber">  23 </span>        <span class="ID">mol</span> <span class="Operator">=</span> <span class="ID">PyQuante</span><span class="Operator">.</span><span class="ID">Molecule</span><span class="Operator">.</span><span class="ID">Molecule</span><span class="Operator">(</span><span class="String">'molecule'</span><span class="Operator">,</span> <span class="ID">atomlist</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">  24 </span>                                         <span class="ID">units</span> <span class="Operator">=</span> <span class="String">'Angstrom'</span><span class="Operator">,</span>
<span class="line"></span><span class="LineNumber">  25 </span>                                         <span class="ID">charge</span> <span class="Operator">=</span> <span class="Number">0</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">  26 </span>                                         <span class="ID">multiplicity</span> <span class="Operator">=</span> <span class="Number">1</span><span class="Operator">)</span>
<span class="line"></span><span class="LineNumber">  27 </span>        <span class="ID">en</span><span class="Operator">,</span><span class="ID">orbe</span><span class="Operator">,</span><span class="ID">self</span><span class="Operator">.</span><span class="ID">orbs</span> <span class="Operator">=</span> <span class="ID">hartree_fock</span><span class="Operator">.</span><span class="ID">hf</span><span class="Operator">(</span><span class="ID">mol</span><span class="Operator">,</span> <span class="ID">verbose</span><span class="Operator">=</span><span class="Number">1</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  28 </span>        <span class="ID">results</span> <span class="Operator">=</span> <span class="Operator">{</span> <span class="String">'energy'</span> <span class="Operator">:</span> <span class="ID">en</span> <span class="Operator">}</span>

<span class="line"></span><span class="LineNumber">  29 </span>
<span class="line"></span><span class="LineNumber">  30 </span>        <span class="ResWord">if</span> <span class="ID">do_gradients</span><span class="Operator">:</span> <span class="ResWord">assert</span> <span class="String">'Not implemented'</span>
<span class="line"></span><span class="LineNumber">  31 </span>        <span class="ResWord">if</span> <span class="ID">do_force_constants</span><span class="Operator">:</span> <span class="ResWord">assert</span> <span class="String">'Not implemented'</span>

<span class="line"></span><span class="LineNumber">  32 </span>
<span class="line"></span><span class="LineNumber">  33 </span>        <span class="ResWord">return</span> <span class="ID">results</span>
<span class="line"></span><span class="LineNumber">  34 </span>    <span class="ResWord">pass</span>
<span class="line"></span><span class="LineNumber">  35 </span>

<span class="line"></span><span class="LineNumber">  36 </span>
<span class="line"></span><span class="LineNumber">  37 </span><span class="ResWord">class</span> <span class="ID">HfForceField</span><span class="Operator">(</span><span class="ID">ForceField</span><span class="Operator">)</span><span class="Operator">:</span>
<span class="line"></span><span class="LineNumber">  38 </span>    <span class="ResWord">def</span> <span class="ID">__init__</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">)</span><span class="Operator">:</span> <span class="ID">ForceField</span><span class="Operator">(</span><span class="String">'Hartree Fock'</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  39 </span>
<span class="line"></span><span class="LineNumber">  40 </span>    <span class="ResWord">def</span> <span class="ID">evaluatorTerms</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="ID">universe</span><span class="Operator">,</span> <span class="ID">subset1</span><span class="Operator">,</span> <span class="ID">subset2</span><span class="Operator">,</span> <span class="ID">global_data</span><span class="Operator">)</span><span class="Operator">:</span>

<span class="line"></span><span class="LineNumber">  41 </span>        <span class="Comment"># We call this for its side effect: it makes sure that all</span>
<span class="line"></span><span class="LineNumber">  42 </span><span class="Comment"></span>        <span class="Comment"># atoms have a correct index assigned to them.</span>
<span class="line"></span><span class="LineNumber">  43 </span><span class="Comment"></span>        <span class="ID">universe</span><span class="Operator">.</span><span class="ID">configuration</span><span class="Operator">(</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  44 </span>        <span class="ResWord">return</span> <span class="Operator">[</span><span class="ID">HfFieldTerm</span><span class="Operator">(</span><span class="ID">universe</span><span class="Operator">)</span><span class="Operator">]</span>
<span class="line"></span><span class="LineNumber">  45 </span>    <span class="ResWord">pass</span>

<span class="line"></span><span class="LineNumber">  46 </span>
<span class="line"></span><span class="LineNumber">  47 </span><span class="ID">universe</span> <span class="Operator">=</span> <span class="ID">InfiniteUniverse</span><span class="Operator">(</span><span class="ID">HfForceField</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">)</span>
<span class="line"></span><span class="LineNumber">  48 </span><span class="ID">universe</span><span class="Operator">.</span><span class="ID">mol</span> <span class="Operator">=</span> <span class="ID">Molecule</span><span class="Operator">(</span><span class="String">'water'</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  49 </span>
<span class="line"></span><span class="LineNumber">  50 </span><span class="ResWord">print</span> <span class="ID">universe</span><span class="Operator">.</span><span class="ID">energy</span><span class="Operator">(</span><span class="Operator">)</span><span class="Text"></span>
</pre>
</div>

<p>This reveals the lack of one important property in MMTK Atom database &#8211; the charge of nuclea.  That&#8217;s why I had to create the map between the IUPAC symbol and the charge manually. </p>

<p>The result of the code run is </p>

<pre>
Nbf =  25
Nclosed =  5
Optimization of HF orbitals
0 -7.72644873092
1 -9.46445551337
2 -17.2283843599
3 -19.050454015
4 -19.8624953604
5 -20.0540489183
6 -20.1023997138
7 -20.1133127164
8 -20.115849504
9 -20.1164274514
10 -20.116560223
11 -20.1165905954
-20.1165905954
</pre>

<p>Wow, it calculates something! </p>

<h3 id="head-748408dc21045f61719aeddfd0cf5ea277361dba">Spot the difference: nanometers vs angstroms</h3>

<p>Yes, the code really does calculations.  But is it correct? </p>

<p>Quick run of one of the PyQuante <a class="external" href="http://pyquante.sourceforge.net/userguide.html">examples</a> shows that it is not: </p>

<pre>
&gt;&gt;&gt; from PyQuante.Molecule import Molecule
&gt;&gt;&gt; from PyQuante.hartree_fock import *
&gt;&gt;&gt; h2o = Molecule('H2O',
...                atomlist = [(8,(0,0,0)),
...                            (1,(0.959,0,0)),
...                            (1,(-.230,0.930,0))],
...                units = 'Angstrom')
&gt;&gt;&gt; en, orbe, orbs = hf(h2o, verbose=True)
Nbf =  25
Nclosed =  5
Optimization of HF orbitals
0 -68.2710764842
1 -71.4107153837
2 -73.8915175997
3 -75.0373719156
4 -75.6459826198
5 -75.8850728221
6 -75.9751560983
7 -76.0064588121
8 -76.0173702077
9 -76.0210974045
10 -76.0223774136
11 -76.0228145355
12 -76.0229641837
13 -76.023015328
&gt;&gt;&gt; en
-76.023015327968622
</pre>

<p>What&#8217;s wrong? </p>

<p>Oops&#8230; Looks like we&#8217;ve missed the measurement units completely: MMTK <a class="external" href="http://www.python.net/crew/hinsen/MMTK/Manual/MMTK_1.html">uses</a> SI units, while PyQuante expects them in Angstroms. </p>

<p>The quick fix  </p>

<div lang="en" class="codearea" dir="ltr">
<script type="text/javascript">
document.write('<a href="#" onClick="return togglenumber(\'CA-d80c30d941c4b629a9fc3328f7e09a6b2f1a4336_005\', 1, 1);" \
                class="codenumbers">Toggle line numbers< \/a>');
</a></script>
<pre lang="en" id="CA-d80c30d941c4b629a9fc3328f7e09a6b2f1a4336_005" dir="ltr">
<span class="line"></span><span class="LineNumber">   1 </span>    <span class="ResWord">def</span> <span class="ID">evaluate</span><span class="Operator">(</span><span class="ID">self</span><span class="Operator">,</span> <span class="ID">configuration</span><span class="Operator">,</span> <span class="ID">do_gradients</span><span class="Operator">,</span> <span class="ID">do_force_constants</span><span class="Operator">)</span><span class="Operator">:</span>

<span class="line"></span><span class="LineNumber">   2 </span>        <span class="ID">atomlist</span> <span class="Operator">=</span> <span class="Operator">[</span><span class="Operator">]</span>
<span class="line"></span><span class="LineNumber">   3 </span>        <span class="ResWord">for</span> <span class="ID">atom</span> <span class="ResWord">in</span> <span class="ID">self</span><span class="Operator">.</span><span class="ID">universe</span><span class="Operator">.</span><span class="ID">atomList</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">:</span> <span class="ID">atomlist</span><span class="Operator">.</span><span class="ID">append</span><span class="Operator">(</span><span class="Operator">[</span>

<span class="line"></span><span class="LineNumber">   4 </span>            <span class="ID">sym_to_nucl_map</span><span class="Operator">[</span><span class="ID">atom</span><span class="Operator">.</span><span class="ID">type</span><span class="Operator">.</span><span class="ID">symbol</span><span class="Operator">]</span><span class="Operator">,</span>
<span class="line"></span><span class="LineNumber">   5 </span>            <span class="ID">atom</span><span class="Operator">.</span><span class="ID">position</span><span class="Operator">(</span><span class="Operator">)</span><span class="Operator">/</span><span class="ID">Units</span><span class="Operator">.</span><span class="ID">Ang</span><span class="Operator">]</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">   6 </span>
<span class="line"></span><span class="LineNumber">   7 </span>        <span class="ID">mol</span> <span class="Operator">=</span> <span class="ID">PyQuante</span><span class="Operator">.</span><span class="ID">Molecule</span><span class="Operator">.</span><span class="ID">Molecule</span><span class="Operator">(</span><span class="String">'molecule'</span><span class="Operator">,</span> <span class="ID">atomlist</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">   8 </span>                                         <span class="ID">units</span> <span class="Operator">=</span> <span class="String">'Angstrom'</span><span class="Operator">,</span>
<span class="line"></span><span class="LineNumber">   9 </span>                                         <span class="ID">charge</span> <span class="Operator">=</span> <span class="Number">0</span><span class="Operator">,</span>

<span class="line"></span><span class="LineNumber">  10 </span>                                         <span class="ID">multiplicity</span> <span class="Operator">=</span> <span class="Number">1</span><span class="Operator">)</span>
<span class="line"></span><span class="LineNumber">  11 </span>        <span class="ID">en</span><span class="Operator">,</span><span class="ID">orbe</span><span class="Operator">,</span><span class="ID">self</span><span class="Operator">.</span><span class="ID">orbs</span> <span class="Operator">=</span> <span class="ID">hartree_fock</span><span class="Operator">.</span><span class="ID">hf</span><span class="Operator">(</span><span class="ID">mol</span><span class="Operator">,</span> <span class="ID">verbose</span><span class="Operator">=</span><span class="Number">1</span><span class="Operator">)</span>

<span class="line"></span><span class="LineNumber">  12 </span>        <span class="ID">results</span> <span class="Operator">=</span> <span class="Operator">{</span> <span class="String">'energy'</span> <span class="Operator">:</span> <span class="ID">en</span> <span class="Operator">}</span>

<span class="line"></span><span class="LineNumber">  13 </span>
<span class="line"></span><span class="LineNumber">  14 </span>        <span class="ResWord">if</span> <span class="ID">do_gradients</span><span class="Operator">:</span> <span class="ResWord">assert</span> <span class="String">'Not implemented'</span>
<span class="line"></span><span class="LineNumber">  15 </span>        <span class="ResWord">if</span> <span class="ID">do_force_constants</span><span class="Operator">:</span> <span class="ResWord">assert</span> <span class="String">'Not implemented'</span>

<span class="line"></span><span class="LineNumber">  16 </span>
<span class="line"></span><span class="LineNumber">  17 </span>        <span class="ResWord">return</span> <span class="ID">results</span><span class="Text"></span>
</pre>
</div>

<p>results in something consistent with previous calculation and more meaningfull: </p>

<pre>
Nbf =  25
Nclosed =  5
Optimization of HF orbitals
0 -68.2698558264
1 -71.4163874054
2 -73.8989849529
3 -75.0479917788
4 -75.6520823142
5 -75.8880296116
6 -75.9764512423
7 -76.0070491726
8 -76.0176718892
9 -76.0212871677
10 -76.0225241199
11 -76.0229450137
12 -76.0230885803
13 -76.0231374689
-76.0231374689

</pre>

<h3 id="head-99cf92524316505b0c6f73f5a55d6524b2e1816e">In the next article</h3>

<ul>
<li><p> System energy to the Heat of formation </p>
</li>
<li><p> Reuse orbitals from previous calculation </p>
</li>
<li><p> Polishing </p>

</li>
<li><p> Geometry optimization attempt </p>
</li>
<li><p> Further development </p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.compchem.kiev.ua/index.php/2006/05/how-to-create-pyquante-forcefield-for-mmtk-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mechanochemistry of carbon-polymer composites in active media: quantum chemical point of view</title>
		<link>http://www.compchem.kiev.ua/index.php/2006/04/mechanochemistry-of-carbon-polymer-composites-in-active-media-quantum-chemical-point-of-view/</link>
		<comments>http://www.compchem.kiev.ua/index.php/2006/04/mechanochemistry-of-carbon-polymer-composites-in-active-media-quantum-chemical-point-of-view/#comments</comments>
		<pubDate>Mon, 03 Apr 2006 16:25:01 +0000</pubDate>
		<dc:creator>akhavr</dc:creator>
				<category><![CDATA[Publications]]></category>

		<guid isPermaLink="false">http://www.compchem.kiev.ua/?p=7</guid>
		<description><![CDATA[<p>Mechanochemistry of carbon-polymer composites in active media: quantum chemical point of view  1Khavryuchenko V.D., 2Khavryuchenko O.V., 3Khavryuchenko A.V., 1Tarasenko Yu.O., 1Strelko V.V.  1Institute for Sorption and Problem of Endoecology, Gen. Naumov str., 13, Kyiv, 03680, Ukraine, e-mail:vkhavr@compchem.kiev.ua 2Kyiv Shevchenko National University, chemical department, Volodymyrska str. 60, Kyiv, 01033, Ukraine, e-mail:alexk@compchem.kiev.ua 3Computational Chemistry Group, [...]</p>
]]></description>
			<content:encoded><![CDATA[<p><p align="center"><strong><font size="4">Mechanochemistry of carbon-polymer composites in active media: quantum chemical point of view</font></strong></p> <font size="1"> </font><p align="center"><strong><sup>1</sup>Khavryuchenko V.D., <sup>2</sup>Khavryuchenko O.V.,<sup> 3</sup>Khavryuchenko A.V., <sup>1</sup>Tarasenko Yu.O., <sup>1</sup>Strelko V.V.</strong></p>  <p align="center"><sup>1</sup>Institute for Sorption and Problem of Endoecology, Gen. Naumov str., 13, Kyiv, 03680, Ukraine, e-mail:vkhavr@compchem.kiev.ua</p> <p align="center"><sup>2</sup>Kyiv Shevchenko National University, chemical department, Volodymyrska str. 60, Kyiv, 01033, Ukraine, e-mail:alexk@compchem.kiev.ua</p> <p align="center"><sup>3</sup>Computational Chemistry Group, Kyiv, 02091, Revutskogo str. 13, app. 149, e-mail:<u><font color="#0000ff">akhavr@gmail.com</font></u></p>   <font size="3"><p align="justify">The methodology and software for quantum chemical simulation of mechanochemical destruction of filled polymers in vacuo and in active media (oxygen, water, salt, acids and bases, surface active substances) has been developed. New computation methods increase the applicable area for wide range of objects, including metals, semiconductors and dielectric surfaces.<img border="0" align="left" alt=" " src="http://www.compchem.kiev.ua/?action=download&amp;file_id=1&amp;record=no" /> </p> <p align="justify">This presentation deals with the main methodological features of quantum chemical software and some result concerning &ldquo;polymer-carbon filler&rdquo; composite behaviour in free state and in active media under external mechanical stress. The model simulates the processes, occuring at atmospheric conditions and in vacuo during exploitation of the carbon black filled rubber. The active filler (carbon black) has been proved to be a trap for free radical, which are generated during mechanochemical destruction of polymer chains. The free radicals &ldquo;tie&rdquo; with active filler (carbon black) upon this process, resulting in the three-dimension network formation. Such processes increase the durability of the material.<img width="500" height="346" border="0" align="right" alt=" " src="http://www.compchem.kiev.ua/?action=download&amp;file_id=2&amp;record=no" /></p> <p align="justify">The presence of the chemically active small molecules (water, molecular oxygen, etc) leads to their reaction with the broken polymer chain, resulting in its termination and shortening, which decreases the material durability. The results of the quantum chemical simulations of the mechanochemical processes are presented as computer animations.</p> <p align="justify">The development of the presented methodology allows to design new &ldquo;polymer&ndash;filler&rdquo; based materials with the predetermined mechanical and chemical durability for the certain time or/and quantity of utilization cycles. Further, the designed material might loose the chemical inertness to the active media agents (water, oxygen, light) and destruct into the nonhazardous components, which do not pollute the environment. The possibility of the further recycling into the utilizable components also might be set into the structure and composition of the composites.</p> </font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.compchem.kiev.ua/index.php/2006/04/mechanochemistry-of-carbon-polymer-composites-in-active-media-quantum-chemical-point-of-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
