Skip to content

Commit

Permalink
deploy: 3e1fe3c
Browse files Browse the repository at this point in the history
  • Loading branch information
cameronabrams committed Jan 3, 2024
1 parent c960bf4 commit f8dec97
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion _modules/HTPolyNet/molecule.html
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ <h1>Source code for HTPolyNet.molecule</h1><div class="highlight"><pre>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">!=</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;Built </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1"> using topology of </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">; copying </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.top to </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.top&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">load_top_gro</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.top&#39;</span><span class="p">,</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.gro&#39;</span><span class="p">,</span><span class="n">tpxfilename</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.tpx&#39;</span><span class="p">,</span><span class="n">wrap_coords</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">load_top_gro</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.top&#39;</span><span class="p">,</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.gro&#39;</span><span class="p">,</span><span class="n">tpxfilename</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.tpx&#39;</span><span class="p">,</span><span class="n">wrap_coords</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.top&#39;</span><span class="p">,</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.top&#39;</span><span class="p">)</span>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.grx&#39;</span><span class="p">,</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.grx&#39;</span><span class="p">)</span>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">parentname</span><span class="si">}</span><span class="s1">.tpx&#39;</span><span class="p">,</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">.tpx&#39;</span><span class="p">)</span>
Expand Down
4 changes: 2 additions & 2 deletions _sources/user-guide/program-flow.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Program Flow

``htpolynet run`` workflow.

A basic depiction of the the workflow initiated by ``htpolynet run`` is shown in the figure above. The "0"th step is generation of the molecular structure data for any monomeric reactants, in the form of either Sybyl ``mol2`` or RCSB ``pdb`` files. ``HTPolyNet`` does **not** do this, we provide some general guidance :ref:`here <molecular_structure_inputs>` and some specific example cases in the :ref:`tutorials <example_tutorials>`. Then, based on instructions in the :ref:`configuration file <configuration_files>`, ``HTPolyNet`` proceeds with setting up all reactions and oligomer templates. Once these are generated, it then generates the full initial system topology in Gromacs format (that is, it generates a ``top`` file), and an initial set of coordinates (a ``gro`` file). Since the initial coordinates are built a low density (typically), ``HTPolyNet`` then performs MD to "densify" the system, followed by any pre-cure equilibration the user would like. Then the :ref:`CURE algorithm <cure_section>` takes over to generate intermolecular bonds and drive the polymerization. Once it finishes, ``HTPolyNet`` conducts any post-cure equilibration the user likes, before saving the final ``top`` and ``gro`` file. All of this work happens in the project subdirectory of the current directory in which `` run`` is invoked.
A basic depiction of the the workflow initiated by ``htpolynet run`` is shown in the figure above. The "0"th step is generation of the molecular structure data for any monomeric reactants, in the form of either Sybyl ``mol2`` or RCSB ``pdb`` files. ``HTPolyNet`` does **not** do this; we provide some general guidance :ref:`here <molecular_structure_inputs>` and some specific example cases in the :ref:`tutorials <example_tutorials>`. Then, based on instructions in the :ref:`configuration file <configuration_files>`, ``HTPolyNet`` proceeds with setting up all reactions and oligomer templates. Once these are generated, it then generates the full initial system topology in Gromacs format (that is, it generates a ``top`` file), and an initial set of coordinates (a ``gro`` file). Since the initial coordinates are built a low density (typically), ``HTPolyNet`` then performs MD to "densify" the system, followed by any pre-cure equilibration the user would like. Then the :ref:`CURE algorithm <cure_section>` takes over to generate intermolecular bonds and drive the polymerization. Once it finishes, ``HTPolyNet`` conducts any post-cure equilibration the user likes, before saving the final ``top`` and ``gro`` file. All of this work happens in the project subdirectory of the current directory in which ``run`` is invoked.

This workflow should make clear that the two required tasks of the user are:

Expand All @@ -25,7 +25,7 @@ The Connect-Update-Relax-Equilibrate (CURE) algorithm

Block flow diagram of the CURE algorithm used in ``HTPolyNet``.

The algorithm used to create new bonds and polymerize a system is called the CURE algorithm, depicted above. This is just a slightly modified version of a standard search-radius-type algorithm, first used by Li and Strahan to study EPON/DETDA thermosets :cite:t:`Li2010Crosslinking`. The CURE algorithm begins by executing a search for new bonds on a frozen system configuration. Bonds are downselected through a series of filters to arrive at a final set of bonds to form. If the distance between any pair of "bond-designate" atoms is greater than some threshold (the ``trigger_distance`` parameter in the :ref:`drag subdirective <cure.drag>` of the ``CURE`` directive of a configuration file), a series of MD simulations that slowly bring all to-be-bound atom closer together is performed. Then the topology is updated, where ``HTPolyNet`` applies the charges, atom type, and bonded interaction templates from the oligomer template set to each bond. After the update, a series of relaxation MD simulations bring all bonds to their equilibrium lengths. Then a short NPT MD simulation equilibrates the overall density before initiating the next CURE iteration. CURE iterations continue until (a) a desired conversion is reached, or (b) no new allowable bonds are identified.
The algorithm used to create new bonds and polymerize a system is called the CURE algorithm, depicted above. This is just a slightly modified version of a standard search-radius-type algorithm, first used by Li and Strahan to study EPON/DETDA thermosets (:cite:t:`Li2010Crosslinking`). The CURE algorithm begins by executing a search for new bonds on a frozen system configuration. Bonds are downselected through a series of filters to arrive at a final set of bonds to form. If the distance between any pair of "bond-designate" atoms is greater than some threshold (the ``trigger_distance`` parameter in the :ref:`drag subdirective <cure.drag>` of the ``CURE`` directive of a configuration file), a series of MD simulations that slowly bring all to-be-bound atom closer together is performed. Then the topology is updated, where ``HTPolyNet`` applies the charges, atom type, and bonded interaction templates from the oligomer template set to each bond. After the update, a series of relaxation MD simulations bring all bonds to their equilibrium lengths. Then a short NPT MD simulation equilibrates the overall density before initiating the next CURE iteration. CURE iterations continue until (a) a desired conversion is reached, or (b) no new allowable bonds are identified.

.. _bondsearch_filters:

Expand Down
Loading

0 comments on commit f8dec97

Please sign in to comment.