diff --git a/_build/.doctrees/README.doctree b/_build/.doctrees/README.doctree
index 230a14af66b998588986a0d720cc37f6e0d8c436..ea65b6292537ef12c4681fe2f6a60774b1d290ef 100644
Binary files a/_build/.doctrees/README.doctree and b/_build/.doctrees/README.doctree differ
diff --git a/_build/.doctrees/api/core/core_objects.doctree b/_build/.doctrees/api/core/core_objects.doctree
index 4d8c550bf8aa983447f9272c8e04b052dc90558c..9429a7639b2d313cb898294b24c13bdb697e423f 100644
Binary files a/_build/.doctrees/api/core/core_objects.doctree and b/_build/.doctrees/api/core/core_objects.doctree differ
diff --git a/_build/.doctrees/api/core/index.doctree b/_build/.doctrees/api/core/index.doctree
index e194f4dd5d82a7a21db155af34800eed976b20b8..bcc42d39e883c5e62e313851339a18dafc1eba79 100644
Binary files a/_build/.doctrees/api/core/index.doctree and b/_build/.doctrees/api/core/index.doctree differ
diff --git a/_build/.doctrees/api/core/model.doctree b/_build/.doctrees/api/core/model.doctree
index 361d66c1cf5ba943fbbd65c961e13a24eb106d34..7b2467a29b244c4cfd686d62382a5627c77d9898 100644
Binary files a/_build/.doctrees/api/core/model.doctree and b/_build/.doctrees/api/core/model.doctree differ
diff --git a/_build/.doctrees/api/core/sim_config.doctree b/_build/.doctrees/api/core/sim_config.doctree
index 1bf2d9b9596b9b305f8e365d32c4882248c912fb..1a300641812b7db90ae62a3fcd46c37eb6c465a2 100644
Binary files a/_build/.doctrees/api/core/sim_config.doctree and b/_build/.doctrees/api/core/sim_config.doctree differ
diff --git a/_build/.doctrees/api/index.doctree b/_build/.doctrees/api/index.doctree
index 8f08d5eadd508a16484b623e6094c84e19f45408..75b7eb83842bb8c05925d0cc1affbdadf40dad78 100644
Binary files a/_build/.doctrees/api/index.doctree and b/_build/.doctrees/api/index.doctree differ
diff --git a/_build/.doctrees/api/interaction_potentials/ibi.doctree b/_build/.doctrees/api/interaction_potentials/ibi.doctree
index 47cb7752c27fbd3226269debab207b966e1bcf1c..14ea04d1a1417e6c321b84a8594920aa6b02e1ca 100644
Binary files a/_build/.doctrees/api/interaction_potentials/ibi.doctree and b/_build/.doctrees/api/interaction_potentials/ibi.doctree differ
diff --git a/_build/.doctrees/api/interaction_potentials/index.doctree b/_build/.doctrees/api/interaction_potentials/index.doctree
index 4ad63c5e5d3f54b1176a583cf044501f02dc342e..bb1bb88763e466be2b6c2f889532e24b582573ab 100644
Binary files a/_build/.doctrees/api/interaction_potentials/index.doctree and b/_build/.doctrees/api/interaction_potentials/index.doctree differ
diff --git a/_build/.doctrees/api/interaction_potentials/interactions.doctree b/_build/.doctrees/api/interaction_potentials/interactions.doctree
index 6149660598ad8d014c75609a7cae939b32a4e451..cca418c254b677a32e85a82b895dd5cd7c46f087 100644
Binary files a/_build/.doctrees/api/interaction_potentials/interactions.doctree and b/_build/.doctrees/api/interaction_potentials/interactions.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/fjc_polymer_model.doctree b/_build/.doctrees/api/polymer_modeling/fjc_polymer_model.doctree
index e19fb3c002111347bbee856ea15870a35da3b773..df452d9a32fe523a2ae31e95636f7a5ad6bb3d60 100644
Binary files a/_build/.doctrees/api/polymer_modeling/fjc_polymer_model.doctree and b/_build/.doctrees/api/polymer_modeling/fjc_polymer_model.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/hps_polymer_model.doctree b/_build/.doctrees/api/polymer_modeling/hps_polymer_model.doctree
index 31cf14f20a5c2ba9e4b9f0e3b893b17f57ad87d4..7722b5274d33f27bbe05c47449be792b702013ec 100644
Binary files a/_build/.doctrees/api/polymer_modeling/hps_polymer_model.doctree and b/_build/.doctrees/api/polymer_modeling/hps_polymer_model.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/index.doctree b/_build/.doctrees/api/polymer_modeling/index.doctree
index 381c79295311de1780062471f25dbc3beaffad71..bc8b10c0ac699254721cd02d665d6c025c5efe97 100644
Binary files a/_build/.doctrees/api/polymer_modeling/index.doctree and b/_build/.doctrees/api/polymer_modeling/index.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/kh_polymer_model.doctree b/_build/.doctrees/api/polymer_modeling/kh_polymer_model.doctree
index bc2e3afcfeb64bf6707c1f5f66919bf46d68b106..4d7b773625e6b7c5106b65da79d2d3ed1e7d1d5b 100644
Binary files a/_build/.doctrees/api/polymer_modeling/kh_polymer_model.doctree and b/_build/.doctrees/api/polymer_modeling/kh_polymer_model.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/mpipi_polymer.doctree b/_build/.doctrees/api/polymer_modeling/mpipi_polymer.doctree
index 2dac134bca9848cbad17d72a4a9c068f4b54dbfe..9848c50bee1081f738f0144e30174de6327c302b 100644
Binary files a/_build/.doctrees/api/polymer_modeling/mpipi_polymer.doctree and b/_build/.doctrees/api/polymer_modeling/mpipi_polymer.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/onck_polymer_model.doctree b/_build/.doctrees/api/polymer_modeling/onck_polymer_model.doctree
index f3e65925eb4b407f85809400b597457f0dd4386c..f55f031d0a84b7c51a1bcb2bfe6a5ff25d318be2 100644
Binary files a/_build/.doctrees/api/polymer_modeling/onck_polymer_model.doctree and b/_build/.doctrees/api/polymer_modeling/onck_polymer_model.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/polymer.doctree b/_build/.doctrees/api/polymer_modeling/polymer.doctree
index dbc1efdb870213b584969c0d6f54399ca921dbca..5e0c4c95f4091c558004457e48ef1efc76031fbd 100644
Binary files a/_build/.doctrees/api/polymer_modeling/polymer.doctree and b/_build/.doctrees/api/polymer_modeling/polymer.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/sali_polymer_model.doctree b/_build/.doctrees/api/polymer_modeling/sali_polymer_model.doctree
index 127ad068132adf78b03500c6ddf02a1d4211ee4c..7ccc36994b6feb44b3dc53e612165e3d7e990c3c 100644
Binary files a/_build/.doctrees/api/polymer_modeling/sali_polymer_model.doctree and b/_build/.doctrees/api/polymer_modeling/sali_polymer_model.doctree differ
diff --git a/_build/.doctrees/api/polymer_modeling/ssdna_two_bead.doctree b/_build/.doctrees/api/polymer_modeling/ssdna_two_bead.doctree
index 400d7a34e0bc7434ebfb2d57481017e6a9a68b4b..0da45342647bfe69ff4a1d76861b90a89a85aac3 100644
Binary files a/_build/.doctrees/api/polymer_modeling/ssdna_two_bead.doctree and b/_build/.doctrees/api/polymer_modeling/ssdna_two_bead.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/index.doctree b/_build/.doctrees/api/rigidbody_models/index.doctree
index 759a3d2ad43f1a2d6ce1603e270f8e76f23e7029..70c3c69cc7532eab7942877bc29ded56b60f5f9a 100644
Binary files a/_build/.doctrees/api/rigidbody_models/index.doctree and b/_build/.doctrees/api/rigidbody_models/index.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/mesh_process_surface.doctree b/_build/.doctrees/api/rigidbody_models/mesh_process_surface.doctree
index 15bf912c40a540922c97948d86622f52f083a44d..2f45e7e5115b460cd341af0a185d2cf010e4bf9a 100644
Binary files a/_build/.doctrees/api/rigidbody_models/mesh_process_surface.doctree and b/_build/.doctrees/api/rigidbody_models/mesh_process_surface.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/mesh_process_volume.doctree b/_build/.doctrees/api/rigidbody_models/mesh_process_volume.doctree
index 19e395e394e68a588448e1e57dfd1f2e543be86f..d15db787d14743b26da9f41262bb46cbbc1e644e 100644
Binary files a/_build/.doctrees/api/rigidbody_models/mesh_process_volume.doctree and b/_build/.doctrees/api/rigidbody_models/mesh_process_volume.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/mesh_rigidbody.doctree b/_build/.doctrees/api/rigidbody_models/mesh_rigidbody.doctree
index 653602520a70c8f73e532acb58c76a948a19092f..3bc3c5caeafdaafc0f2dafb23e4cddd13e70b28e 100644
Binary files a/_build/.doctrees/api/rigidbody_models/mesh_rigidbody.doctree and b/_build/.doctrees/api/rigidbody_models/mesh_rigidbody.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/simplearbd.doctree b/_build/.doctrees/api/rigidbody_models/simplearbd.doctree
index 33c20511c039bf2447a08b89046981d0e1235826..68dd714f1634686f7ebd825bf71f71f2b14cf908 100644
Binary files a/_build/.doctrees/api/rigidbody_models/simplearbd.doctree and b/_build/.doctrees/api/rigidbody_models/simplearbd.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/structure_from_pdb.doctree b/_build/.doctrees/api/rigidbody_models/structure_from_pdb.doctree
index e38af9599cb8b37c758d1d63324325427fc73dc2..7e2c259d95d6d9e85304618f1f34ade581be9219 100644
Binary files a/_build/.doctrees/api/rigidbody_models/structure_from_pdb.doctree and b/_build/.doctrees/api/rigidbody_models/structure_from_pdb.doctree differ
diff --git a/_build/.doctrees/api/rigidbody_models/structure_rigidbody.doctree b/_build/.doctrees/api/rigidbody_models/structure_rigidbody.doctree
index 0b024412f8b01bc47f71e2ab0ae626cfc03daa21..ea8495ce9db7443a4d470b9abcb6354805a3b8be 100644
Binary files a/_build/.doctrees/api/rigidbody_models/structure_rigidbody.doctree and b/_build/.doctrees/api/rigidbody_models/structure_rigidbody.doctree differ
diff --git a/_build/.doctrees/api/shape-based_models/index.doctree b/_build/.doctrees/api/shape-based_models/index.doctree
index 61ce190e204cb1d6b86b0a359ba3aacd09e428b4..d4f6ce5b42e971c338a0c4c1e70d642ac907f379 100644
Binary files a/_build/.doctrees/api/shape-based_models/index.doctree and b/_build/.doctrees/api/shape-based_models/index.doctree differ
diff --git a/_build/.doctrees/api/shape-based_models/shape_cg.doctree b/_build/.doctrees/api/shape-based_models/shape_cg.doctree
index bab0fc9a7d859261590f6078e338881e83d46429..66d63ab08d0550d8351819f43ede04fba6f22770 100644
Binary files a/_build/.doctrees/api/shape-based_models/shape_cg.doctree and b/_build/.doctrees/api/shape-based_models/shape_cg.doctree differ
diff --git a/_build/.doctrees/api/simulation_engines/engine.doctree b/_build/.doctrees/api/simulation_engines/engine.doctree
index 6eec1d300e3a71b96a92e523f3521d7ef6d509ca..21aa6a0903b5b79717802ebb5541f59983a0cf96 100644
Binary files a/_build/.doctrees/api/simulation_engines/engine.doctree and b/_build/.doctrees/api/simulation_engines/engine.doctree differ
diff --git a/_build/.doctrees/api/simulation_engines/index.doctree b/_build/.doctrees/api/simulation_engines/index.doctree
index c499081eb8261ffa85cbe2197bc3f925be90ab1b..81e8e80ab699a3660af13a0c495040f3f401d5e6 100644
Binary files a/_build/.doctrees/api/simulation_engines/index.doctree and b/_build/.doctrees/api/simulation_engines/index.doctree differ
diff --git a/_build/.doctrees/api/simulation_engines/parmed_bd.doctree b/_build/.doctrees/api/simulation_engines/parmed_bd.doctree
index 3f8aafe1be277e4f42ba5e73409a743cc3d45b88..a637c2715b610f7244a8e23e76228d6cca9b72b0 100644
Binary files a/_build/.doctrees/api/simulation_engines/parmed_bd.doctree and b/_build/.doctrees/api/simulation_engines/parmed_bd.doctree differ
diff --git a/_build/.doctrees/api/utilities/binary_manager.doctree b/_build/.doctrees/api/utilities/binary_manager.doctree
index a2ffa4a2e04072047fc27a68737ea2d45ca54723..6cfc4651bd6c2b9820986e656043a3ba2ba9c260 100644
Binary files a/_build/.doctrees/api/utilities/binary_manager.doctree and b/_build/.doctrees/api/utilities/binary_manager.doctree differ
diff --git a/_build/.doctrees/api/utilities/coords.doctree b/_build/.doctrees/api/utilities/coords.doctree
index 6d64a300d12102203beacd3d86e44c999a0fdd73..7ffeed106154e150df941f1f90a995c511fb1606 100644
Binary files a/_build/.doctrees/api/utilities/coords.doctree and b/_build/.doctrees/api/utilities/coords.doctree differ
diff --git a/_build/.doctrees/api/utilities/grid.doctree b/_build/.doctrees/api/utilities/grid.doctree
index 7d9271d360a9206da6d3a2d2b2dde5cbfde542d5..6349181e79d7561cab8db2e4fc64703b84b847c0 100644
Binary files a/_build/.doctrees/api/utilities/grid.doctree and b/_build/.doctrees/api/utilities/grid.doctree differ
diff --git a/_build/.doctrees/api/utilities/index.doctree b/_build/.doctrees/api/utilities/index.doctree
index 249eae24c06e337b09719a1418d739d40adb30e0..0880b7861a7175c75a53686bc02452847352593b 100644
Binary files a/_build/.doctrees/api/utilities/index.doctree and b/_build/.doctrees/api/utilities/index.doctree differ
diff --git a/_build/.doctrees/api/utilities/logger.doctree b/_build/.doctrees/api/utilities/logger.doctree
index b0f4c4fc921853be00026e40f8132c8e5e3f5c02..012a9c8b4cc0c71c7c6ce19dab42e269e1f25f65 100644
Binary files a/_build/.doctrees/api/utilities/logger.doctree and b/_build/.doctrees/api/utilities/logger.doctree differ
diff --git a/_build/.doctrees/api/utilities/version.doctree b/_build/.doctrees/api/utilities/version.doctree
index ce3af7bc484832204ac8b695d5caf169bdd8a579..436e3d32e1416a029161508468ecc68d87c8d7e2 100644
Binary files a/_build/.doctrees/api/utilities/version.doctree and b/_build/.doctrees/api/utilities/version.doctree differ
diff --git a/_build/.doctrees/environment.pickle b/_build/.doctrees/environment.pickle
index af1fb9396f0221279c04bd55683f02231a59a317..1b6bbb0d5c3f845f641e5370492e10dc28b35e12 100644
Binary files a/_build/.doctrees/environment.pickle and b/_build/.doctrees/environment.pickle differ
diff --git a/_build/.doctrees/intro.doctree b/_build/.doctrees/intro.doctree
index a44d3c8cc39f02f02ae1a283f4dad7c18372fc4c..b5682b2f5e8e997fa814cd8f5d8e9c387953415e 100644
Binary files a/_build/.doctrees/intro.doctree and b/_build/.doctrees/intro.doctree differ
diff --git a/_build/.doctrees/tutorials/1-basics/1-basics.doctree b/_build/.doctrees/tutorials/1-basics/1-basics.doctree
index baebb1ad07237ff686832a5f182de0dd5376f6de..a10a0e620979a53532cc34c0f8cd9e68f5630a65 100644
Binary files a/_build/.doctrees/tutorials/1-basics/1-basics.doctree and b/_build/.doctrees/tutorials/1-basics/1-basics.doctree differ
diff --git a/_build/.doctrees/tutorials/2-polymer-objects/2-polymer-objects.doctree b/_build/.doctrees/tutorials/2-polymer-objects/2-polymer-objects.doctree
index 132c82cd54432a27672ef411de95dcb3d416903f..c85c5c635d5db7e84cc304ced0af00ed2d1c83be 100644
Binary files a/_build/.doctrees/tutorials/2-polymer-objects/2-polymer-objects.doctree and b/_build/.doctrees/tutorials/2-polymer-objects/2-polymer-objects.doctree differ
diff --git a/_build/.doctrees/tutorials/3-iterative-boltzmann-inversion/3-ibi.doctree b/_build/.doctrees/tutorials/3-iterative-boltzmann-inversion/3-ibi.doctree
index b368fd0c947ceded73668152ee629b19853cb6be..8cfbe8c2eedd5ebfe003b25c48ab2f4b00fdf542 100644
Binary files a/_build/.doctrees/tutorials/3-iterative-boltzmann-inversion/3-ibi.doctree and b/_build/.doctrees/tutorials/3-iterative-boltzmann-inversion/3-ibi.doctree differ
diff --git a/_build/.doctrees/tutorials/4-rigid-bodies/4-rigid-bodies.doctree b/_build/.doctrees/tutorials/4-rigid-bodies/4-rigid-bodies.doctree
index 8791a73bb7fb9ad852e3eaf4987e6c1eba15e128..cebc15ef978b6a30b240bc92a6158b08b270f71d 100644
Binary files a/_build/.doctrees/tutorials/4-rigid-bodies/4-rigid-bodies.doctree and b/_build/.doctrees/tutorials/4-rigid-bodies/4-rigid-bodies.doctree differ
diff --git a/_build/.doctrees/tutorials/index.doctree b/_build/.doctrees/tutorials/index.doctree
index cf5375fe2e0918fb6893388f3c9f4ff464d13c73..ffdba37eae6b08702d1fa6b089453488175ad83c 100644
Binary files a/_build/.doctrees/tutorials/index.doctree and b/_build/.doctrees/tutorials/index.doctree differ
diff --git a/_build/html/.buildinfo b/_build/html/.buildinfo
index 5fdb4ec1aae557e65971662bd688da49c9fd5577..0626afa78d1c6a1a0aab47ec4634de3be245c15e 100644
--- a/_build/html/.buildinfo
+++ b/_build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: c1abc802096a689f0a5673eabc73ebf4
+config: 1e8ee7232910a66e18c94666de469906
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/_build/html/_modules/arbdmodel/binary_manager.html b/_build/html/_modules/arbdmodel/binary_manager.html
index a45fd17f9825ba252dfbace758e47ab47df1c621..461da706468a1b5e2075b457f0df376ba9b7f08d 100644
--- a/_build/html/_modules/arbdmodel/binary_manager.html
+++ b/_build/html/_modules/arbdmodel/binary_manager.html
@@ -31,19 +31,19 @@
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-book-theme.css?v=eba8b062" />
     <link rel="stylesheet" type="text/css" href="../../_static/togglebutton.css?v=13237357" />
     <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-thebe.css?v=4fa983c6" />
     <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=4c969af8" />
-    <link rel="stylesheet" type="text/css" href="../../_static/proof.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/proof.css?v=b4b7a797" />
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-examples.css?v=e236af4b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css?v=7bc2f056" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css?v=37217874" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css?v=6227e517" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css?v=94669e23" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css?v=21a39f42" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css?v=a18b2449" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css?v=dbff53e4" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css?v=d7bf34ee" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
@@ -60,9 +60,9 @@
     <script src="../../_static/copybutton.js?v=f281be69"></script>
     <script src="../../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
     <script src="../../_static/tabs.js?v=3ee01567"></script>
-    <script src="../../_static/js/hoverxref.js"></script>
-    <script src="../../_static/js/tooltipster.bundle.min.js"></script>
-    <script src="../../_static/js/micromodal.min.js"></script>
+    <script src="../../_static/js/hoverxref.js?v=c95ade4f"></script>
+    <script src="../../_static/js/tooltipster.bundle.min.js?v=18bf091b"></script>
+    <script src="../../_static/js/micromodal.min.js?v=04d6302d"></script>
     <script>let toggleHintShow = 'Click to show';</script>
     <script>let toggleHintHide = 'Click to hide';</script>
     <script>let toggleOpenOnPrint = 'true';</script>
@@ -504,6 +504,13 @@ document.write(`
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Initialize binary paths from environment variables.</span>
 <span class="sd">    This function should be called during package initialization.</span>
+<span class="sd">    If users don&#39;t wish to call this function, they can set the paths manually.</span>
+
+<span class="sd">    Example: </span>
+<span class="sd">    &gt;&gt;arbd_path = BinaryManager.get_binary_path(&quot;arbd&quot;)</span>
+<span class="sd">    &gt;&gt;print(f&quot;ARBD binary path: {arbd_path}&quot;)</span>
+
+<span class="sd">    &gt;&gt;BinaryManager.set_binary_path(&quot;hydropro&quot;, &quot;/path/to/hydropro&quot;)</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># Check environment variables for binary paths</span>
     <span class="k">for</span> <span class="n">binary</span> <span class="ow">in</span> <span class="n">DEFAULT_BINARIES</span><span class="p">:</span>
diff --git a/_build/html/_modules/arbdmodel/core_objects.html b/_build/html/_modules/arbdmodel/core_objects.html
index a5bd644d3a46624008907373c41be191d4c50907..69922c8f8be5ab5bf61636a4cb036e54f11e83c6 100644
--- a/_build/html/_modules/arbdmodel/core_objects.html
+++ b/_build/html/_modules/arbdmodel/core_objects.html
@@ -31,19 +31,19 @@
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-book-theme.css?v=eba8b062" />
     <link rel="stylesheet" type="text/css" href="../../_static/togglebutton.css?v=13237357" />
     <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-thebe.css?v=4fa983c6" />
     <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=4c969af8" />
-    <link rel="stylesheet" type="text/css" href="../../_static/proof.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/proof.css?v=b4b7a797" />
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-examples.css?v=e236af4b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css?v=7bc2f056" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css?v=37217874" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css?v=6227e517" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css?v=94669e23" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css?v=21a39f42" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css?v=a18b2449" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css?v=dbff53e4" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css?v=d7bf34ee" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
@@ -60,9 +60,9 @@
     <script src="../../_static/copybutton.js?v=f281be69"></script>
     <script src="../../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
     <script src="../../_static/tabs.js?v=3ee01567"></script>
-    <script src="../../_static/js/hoverxref.js"></script>
-    <script src="../../_static/js/tooltipster.bundle.min.js"></script>
-    <script src="../../_static/js/micromodal.min.js"></script>
+    <script src="../../_static/js/hoverxref.js?v=c95ade4f"></script>
+    <script src="../../_static/js/tooltipster.bundle.min.js?v=18bf091b"></script>
+    <script src="../../_static/js/micromodal.min.js?v=04d6302d"></script>
     <script>let toggleHintShow = 'Click to show';</script>
     <script>let toggleHintHide = 'Click to hide';</script>
     <script>let toggleOpenOnPrint = 'true';</script>
@@ -311,6 +311,31 @@ document.write(`
 <div class="viewcode-block" id="Transformable">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Transformable">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">Transformable</span><span class="p">():</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    A class for objects that can be transformed in 3D space.</span>
+<span class="sd">    The Transformable class provides basic functionality for positioning and orienting</span>
+<span class="sd">    objects in 3D space, as well as methods for applying transformations such as</span>
+<span class="sd">    translations and rotations.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        position (numpy.ndarray): The position of the object in 3D space.</span>
+<span class="sd">        orientation (numpy.ndarray or None): The orientation matrix of the object.</span>
+<span class="sd">            If None, the object has no orientation.</span>
+
+<span class="sd">    Methods:</span>
+<span class="sd">        translate(offset): Translate the object by the given offset.</span>
+<span class="sd">        rotate(R, about): Rotate the object by the rotation matrix R about a center point.</span>
+<span class="sd">        transform(R, center, offset): Apply a general transformation to the object.</span>
+<span class="sd">        get_collapsed_position(): Get the absolute position of the object, taking into</span>
+<span class="sd">            account parent transformations if the object is a Child.</span>
+<span class="sd">        applyOrientation(obj): Apply the orientation chain to an object, considering</span>
+<span class="sd">            parent orientations if the object is a Child.</span>
+
+<span class="sd">    Note:</span>
+<span class="sd">        - The class is designed to work with the Child class for hierarchical transformations.</span>
+<span class="sd">        - Orientation is represented as a rotation matrix.</span>
+<span class="sd">        - All transformation methods modify the object in place.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">position</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">position</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">position</span><span class="p">)</span>
         <span class="k">if</span> <span class="n">orientation</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@@ -378,6 +403,24 @@ document.write(`
 <div class="viewcode-block" id="Parent">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Parent">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">Parent</span><span class="p">():</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    The Parent class implements a hierarchical tree structure for organizing objects in a simulation.</span>
+<span class="sd">    This class serves as a container for child objects and provides methods for managing relationships, properties, and interactions between these objects within a molecular simulation context.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        children (list): A list of child objects belonging to this parent.</span>
+<span class="sd">        remove_duplicate_bonded_terms (bool): Whether to remove duplicate bonded terms when collecting them.</span>
+<span class="sd">        bonds (list): List of bond interactions between particles.</span>
+<span class="sd">        angles (list): List of angle interactions between triplets of particles.</span>
+<span class="sd">        dihedrals (list): List of dihedral interactions between quartets of particles.</span>
+<span class="sd">        vector_angles (list): List of vector angle interactions.</span>
+<span class="sd">        impropers (list): List of improper dihedral interactions.</span>
+<span class="sd">        exclusions (list): List of pairwise exclusions from non-bonded interactions.</span>
+<span class="sd">        bond_angles (list): List of combined bond-angle interactions.</span>
+<span class="sd">        product_potentials (list): List of product potentials.</span>
+<span class="sd">        group_sites (list): List of group sites.</span>
+<span class="sd">    This class implements iteration methods to traverse the tree structure depth-first.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">remove_duplicate_bonded_terms</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">children</span> <span class="o">=</span> <span class="p">[]</span>
         <span class="k">if</span> <span class="n">children</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@@ -401,7 +444,25 @@ document.write(`
 <div class="viewcode-block" id="Parent.add">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Parent.add">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">x</span><span class="p">):</span>
-        <span class="c1">## TODO: check the parent-child tree to make sure there are no cycles</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Adds a Child object to this group.</span>
+<span class="sd">        </span>
+<span class="sd">        This method establishes a parent-child relationship between the current object</span>
+<span class="sd">        and the provided Child object. It checks that the provided object is a Child,</span>
+<span class="sd">        and that it doesn&#39;t already belong to another parent.</span>
+<span class="sd">        </span>
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        x : Child</span>
+<span class="sd">            The Child object to add to this group</span>
+<span class="sd">            </span>
+<span class="sd">        Raises</span>
+<span class="sd">        ------</span>
+<span class="sd">        Exception</span>
+<span class="sd">            If x is not an instance of Child</span>
+<span class="sd">            If x already belongs to another parent</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">Child</span><span class="p">):</span>
             <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Attempted to add an object to a group that does not inherit from the &quot;Child&quot; type&#39;</span><span class="p">)</span>
 
@@ -414,7 +475,27 @@ document.write(`
 <div class="viewcode-block" id="Parent.insert">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Parent.insert">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">insert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">idx</span><span class="p">,</span><span class="n">x</span><span class="p">):</span>
-        <span class="c1">## TODO: check the parent-child tree to make sure there are no cycles</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Insert a child object at a specific position in the group&#39;s children list.</span>
+
+<span class="sd">        This method inserts a new child object into the group at the specified index.</span>
+<span class="sd">        It performs checks to ensure the object is a valid Child type and that it</span>
+<span class="sd">        doesn&#39;t already belong to another parent group to maintain the integrity</span>
+<span class="sd">        of the parent-child hierarchy.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        idx : int</span>
+<span class="sd">            The index position where the child should be inserted.</span>
+<span class="sd">        x : Child</span>
+<span class="sd">            The child object to be inserted. Must inherit from the Child class.</span>
+
+<span class="sd">        Raises</span>
+<span class="sd">        ------</span>
+<span class="sd">        Exception</span>
+<span class="sd">            If the provided object doesn&#39;t inherit from the Child class or</span>
+<span class="sd">            if the child already belongs to another parent group.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">Child</span><span class="p">):</span>
             <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Attempted to add an object to a group that does not inherit from the &quot;Child&quot; type&#39;</span><span class="p">)</span>
 
@@ -732,6 +813,22 @@ document.write(`
 <div class="viewcode-block" id="Child">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Child">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">Child</span><span class="p">():</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    A class that represents a child object which can inherit attributes from a parent.</span>
+<span class="sd">    This class establishes a parent-child relationship where attributes not found in the child </span>
+<span class="sd">    can be looked up from the parent. This implementation allows for a form of delegation where </span>
+<span class="sd">    attribute access is forwarded to the parent object.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        parent (Parent, optional): The parent object that this child is associated with.</span>
+<span class="sd">                                  When set, the child registers itself with the parent.</span>
+<span class="sd">                                  Defaults to None.</span>
+<span class="sd">    </span>
+<span class="sd">    Note:</span>
+<span class="sd">        - When a parent is provided, it must be an instance of the Parent class.</span>
+<span class="sd">        - Method lookups from the parent are explicitly prevented.</span>
+<span class="sd">        - Certain attributes like &#39;parent&#39; are excluded from the parent lookup mechanism.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
         <span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@@ -741,7 +838,6 @@ document.write(`
     <span class="k">def</span><span class="w"> </span><span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Try to get attribute from the parent</span>
-
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># if self.parent is not None:</span>
         <span class="k">if</span> <span class="s2">&quot;parent&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">[</span><span class="s2">&quot;parent&quot;</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;children&quot;</span><span class="p">:</span>
@@ -825,7 +921,26 @@ document.write(`
 <div class="viewcode-block" id="ParticleType">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.ParticleType">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">ParticleType</span><span class="p">():</span>
-<span class="w">    </span><span class="sd">&quot;&quot;&quot;Class that hold common attributes that particles can point to&quot;&quot;&quot;</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class that holds common attributes that particles can point to.</span>
+<span class="sd">    ParticleType serves as a template for properties shared across multiple particles.</span>
+<span class="sd">    It supports inheritance through parent types, attribute lookup, and provides mechanisms</span>
+<span class="sd">    for comparing particle types.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        excludedAttributes (tuple): Attributes that are not inherited from parent types.</span>
+<span class="sd">        name (str): Unique identifier for this particle type.</span>
+<span class="sd">        charge (float): Electric charge of the particle. Defaults to 0.</span>
+<span class="sd">        mass (float, optional): Mass of the particle.</span>
+<span class="sd">        diffusivity (float, optional): Diffusion coefficient of the particle.</span>
+<span class="sd">        damping_coefficient (float, optional): Damping coefficient for dynamics.</span>
+<span class="sd">        parent (ParticleType, optional): Parent type to inherit properties from.</span>
+
+<span class="sd">    Note:</span>
+<span class="sd">        - When a parent is specified, all non-excluded attributes are inherited.</span>
+<span class="sd">        - Particle types with the same name must have identical properties.</span>
+<span class="sd">        - The class implements custom copy behavior to prevent unnecessary duplication.</span>
+<span class="sd">    Class that hold common attributes that particles can point to&quot;&quot;&quot;</span>
 
     <span class="n">excludedAttributes</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;idx&quot;</span><span class="p">,</span><span class="s2">&quot;type_&quot;</span><span class="p">,</span>
                           <span class="s2">&quot;position&quot;</span><span class="p">,</span>
@@ -870,6 +985,29 @@ document.write(`
 <div class="viewcode-block" id="ParticleType.is_same_type">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.ParticleType.is_same_type">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">is_same_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">consider_parents</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Checks if this object is of the same type as another object.</span>
+<span class="sd">        </span>
+<span class="sd">        This method compares two objects to determine if they are of the same type.</span>
+<span class="sd">        Objects are considered the same type if they are equal or if one is the parent</span>
+<span class="sd">        of the other (when consider_parents=True).</span>
+<span class="sd">        </span>
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        other : same type as self</span>
+<span class="sd">            The object to compare with</span>
+<span class="sd">        consider_parents : bool, default=True</span>
+<span class="sd">            If True, objects are considered the same type if one is the parent of the other</span>
+<span class="sd">            </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        bool</span>
+<span class="sd">            True if objects are considered of the same type, False otherwise</span>
+<span class="sd">            </span>
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        The method assumes both objects are of the same Python class type.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">assert</span><span class="p">(</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="p">)</span>
         <span class="k">if</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">True</span>
@@ -887,6 +1025,31 @@ document.write(`
 <div class="viewcode-block" id="ParticleType.add_grid_potential">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.ParticleType.add_grid_potential">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">add_grid_potential</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">gridfile</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">boundary_condition</span><span class="o">=</span><span class="s1">&#39;dirichlet&#39;</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Adds a grid potential to the model.</span>
+
+<span class="sd">        This method appends a new grid potential to the model&#39;s list of grid potentials.</span>
+<span class="sd">        The grid potential is defined by a grid file, a scaling factor, and boundary conditions.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        gridfile : str</span>
+<span class="sd">            Path to the file containing the grid potential data.</span>
+<span class="sd">        scale : float, default=1</span>
+<span class="sd">            Scaling factor to apply to the grid potential.</span>
+<span class="sd">        boundary_condition : str, default=&#39;dirichlet&#39;</span>
+<span class="sd">            The type of boundary condition to use for the grid potential.</span>
+<span class="sd">            Must be one of &#39;dirichlet&#39;, &#39;neumann&#39;, or &#39;periodic&#39;.</span>
+
+<span class="sd">        Raises</span>
+<span class="sd">        ------</span>
+<span class="sd">        ValueError</span>
+<span class="sd">            If the boundary_condition is not one of &#39;dirichlet&#39;, &#39;neumann&#39;, or &#39;periodic&#39;.</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">boundary_condition</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;dirichlet&#39;</span><span class="p">,</span><span class="s1">&#39;neumann&#39;</span><span class="p">,</span><span class="s1">&#39;periodic&#39;</span><span class="p">):</span>
             <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;Unrecognized grid boundary condition &quot;</span><span class="si">{</span><span class="n">boundary_condition</span><span class="si">}</span><span class="s1">&quot;; should be one of &quot;dirichlet&quot;, &quot;neumann&quot; or &quot;periodic&quot;.&#39;</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">grid_potentials</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;grid_potentials&#39;</span><span class="p">,</span> <span class="p">[])</span> <span class="o">+</span> <span class="p">[(</span><span class="n">gridfile</span><span class="p">,</span><span class="n">scale</span><span class="p">,</span><span class="n">boundary_condition</span><span class="p">)]</span></div>
@@ -958,6 +1121,25 @@ document.write(`
 <div class="viewcode-block" id="RigidBodyType">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">RigidBodyType</span><span class="p">(</span><span class="n">ParticleType</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;Class that holds common attributes for RigidBody objects.</span>
+<span class="sd">    This class extends ParticleType to represent rigid bodies that can have</span>
+<span class="sd">    attached particles, orientation, and rotational dynamics.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        name (str): Name identifier for the rigid body type.</span>
+<span class="sd">        parent (ParticleType, optional): Parent type to fall back on for nonbonded interactions.</span>
+<span class="sd">        moment_of_inertia (float or array-like, optional): Moment of inertia tensor for the rigid body.</span>
+<span class="sd">        rotational_diffusivity (float or array-like, optional): Rotational diffusivity coefficient.</span>
+<span class="sd">        rotational_damping_coefficient (float or array-like, optional): Rotational damping coefficient.</span>
+<span class="sd">        attached_particles (tuple or list): Particles attached to this rigid body.</span>
+<span class="sd">        potential_grids (tuple): Collection of potential grid definitions, each with length 2 or 3.</span>
+<span class="sd">        charge_grids (tuple): Collection of charge grid definitions, each with length 2 or 3.</span>
+<span class="sd">        pmf_grids (tuple): Collection of pmf grid definitions, each with length 2 or 3.</span>
+
+<span class="sd">    Note:</span>
+<span class="sd">        If rotational_diffusivity is not provided, both moment_of_inertia and </span>
+<span class="sd">        rotational_damping_coefficient must be specified.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;Class that holds common attributes for RigidBody objects&quot;&quot;&quot;</span>
 
@@ -1009,6 +1191,19 @@ document.write(`
 <div class="viewcode-block" id="PointParticle">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.PointParticle">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">PointParticle</span><span class="p">(</span><span class="n">Transformable</span><span class="p">,</span> <span class="n">Child</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    A class representing a point particle in a simulation system.</span>
+<span class="sd">    This class inherits from both Transformable and Child base classes, allowing</span>
+<span class="sd">    it to be positioned in space and exist in a parent-child hierarchy.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        type_ (ParticleType): Type definition of the particle.</span>
+<span class="sd">        idx (int): Index of the particle in the system, default is None.</span>
+<span class="sd">        name (str): Name identifier for the particle, default is &quot;A&quot;.</span>
+<span class="sd">        counter (int): Counter for operations on this particle, initialized to 0.</span>
+<span class="sd">        restraints (list): List of restraints applied to this particle.</span>
+<span class="sd">        rigid (bool): Flag indicating whether the particle is rigid, default is False.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">,</span> <span class="n">position</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;A&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
         <span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
         <span class="k">if</span> <span class="s1">&#39;parent&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
@@ -1029,13 +1224,51 @@ document.write(`
 <div class="viewcode-block" id="PointParticle.add_restraint">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.PointParticle.add_restraint">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">add_restraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">restraint</span><span class="p">):</span>
-        <span class="c1">## TODO: how to handle duplicating and cloning bonds</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add a restraint to the model&#39;s restraint list.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        restraint : Restraint</span>
+<span class="sd">            The restraint object to add to the model.</span>
+
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        TODO: Determine how to handle duplicating and cloning bonds.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">restraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">restraint</span> <span class="p">)</span></div>
 
 
 <div class="viewcode-block" id="PointParticle.add_grid_potential">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.PointParticle.add_grid_potential">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">add_grid_potential</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">gridfile</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">boundary_condition</span><span class="o">=</span><span class="s1">&#39;dirichlet&#39;</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add a grid-based potential to the particle type.</span>
+<span class="sd">        </span>
+<span class="sd">        This method creates a new particle type derived from the current one and adds </span>
+<span class="sd">        a grid-based potential to it. The grid potential is loaded from the specified file.</span>
+<span class="sd">        After adding the potential, the particle&#39;s type is updated to the new type.</span>
+<span class="sd">        </span>
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        gridfile : str</span>
+<span class="sd">            Path to the grid file in .dx format containing the potential data.</span>
+<span class="sd">        scale : float, optional</span>
+<span class="sd">            Scaling factor applied to the potential values. Default is 1.</span>
+<span class="sd">        boundary_condition : str, optional</span>
+<span class="sd">            Type of boundary condition to use for the grid potential.</span>
+<span class="sd">            Options are &#39;dirichlet&#39; (default) or other boundary types supported by the system.</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        None</span>
+<span class="sd">            The method updates the particle&#39;s type in place.</span>
+<span class="sd">        </span>
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        This method will create a copy of the particle&#39;s type if it already has a parent,</span>
+<span class="sd">        or create a new derived type if it doesn&#39;t.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">t0</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type_</span>
         <span class="n">name</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">t0</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">_g_</span><span class="si">{</span><span class="n">gridfile</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.dx&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">)</span><span class="si">}</span><span class="s1">_s_</span><span class="si">{</span><span class="n">scale</span><span class="si">}</span><span class="s1">&#39;</span>
         <span class="k">if</span> <span class="n">t0</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@@ -1052,12 +1285,29 @@ document.write(`
 <div class="viewcode-block" id="PointParticle.get_restraints">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.PointParticle.get_restraints">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">get_restraints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get all restraints associated with this model.</span>
+
+<span class="sd">        Returns:</span>
+<span class="sd">            list[tuple]: A list of tuples, where each tuple contains:</span>
+<span class="sd">                - First element: this model instance</span>
+<span class="sd">                - Second element: a restraint object associated with this model</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="p">[(</span><span class="bp">self</span><span class="p">,</span><span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">restraints</span><span class="p">]</span></div>
 
 
 <div class="viewcode-block" id="PointParticle.duplicate">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.PointParticle.duplicate">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">duplicate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Create a deep copy of the current object.</span>
+
+<span class="sd">        This method creates a completely independent copy of the object, using the `deepcopy` function.</span>
+<span class="sd">        Any modifications to the returned object will not affect the original object.</span>
+
+<span class="sd">        Returns:</span>
+<span class="sd">            A new instance of the same class with identical attribute values.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">new</span></div>
 
@@ -1138,6 +1388,49 @@ document.write(`
 <div class="viewcode-block" id="RigidBody">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.RigidBody">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">RigidBody</span><span class="p">(</span><span class="n">PointParticle</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Represents a rigid body in a physical simulation.</span>
+<span class="sd">    A rigid body is a collection of particles that maintain fixed positions relative to each other.</span>
+<span class="sd">    It inherits from PointParticle and implements transformation capabilities to move and rotate as a single unit.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    type_ : RigidBodyType</span>
+<span class="sd">        The type definition for this rigid body.</span>
+<span class="sd">    position : array-like</span>
+<span class="sd">        The initial position of the rigid body in 3D space.</span>
+<span class="sd">    orientation : array-like or quaternion</span>
+<span class="sd">        The initial orientation of the rigid body.</span>
+<span class="sd">    name : str, optional</span>
+<span class="sd">        A name identifier for this rigid body. Defaults to &quot;A&quot;.</span>
+<span class="sd">    attached_particles : tuple, optional</span>
+<span class="sd">        Particles to attach to the rigid body, which will move with it. Defaults to empty tuple.</span>
+<span class="sd">    **kwargs : </span>
+<span class="sd">        Additional keyword arguments to set as attributes.</span>
+
+<span class="sd">    Attributes</span>
+<span class="sd">    ----------</span>
+<span class="sd">    type_ : RigidBodyType</span>
+<span class="sd">        The type definition for this rigid body.</span>
+<span class="sd">    idx : int or None</span>
+<span class="sd">        Index identifier, assigned when added to a simulation.</span>
+<span class="sd">    name : str</span>
+<span class="sd">        Name identifier for this rigid body.</span>
+<span class="sd">    counter : int</span>
+<span class="sd">        Counter value, initialized at 0.</span>
+<span class="sd">    restraints : list</span>
+<span class="sd">        List of restraints applied to this rigid body.</span>
+<span class="sd">    rigid : bool</span>
+<span class="sd">        Boolean flag indicating if the object is rigid, always True for this class.</span>
+<span class="sd">    attached_particles : list</span>
+<span class="sd">        Copied particles attached to the rigid body. </span>
+
+<span class="sd">    Note</span>
+<span class="sd">    ----------</span>
+<span class="sd">    TODO: for attached_particles, it should be possible to uniquely apply bonds/angles etc to these particles, but their types should be fixed or otherwise unified among rbs; </span>
+<span class="sd">    here we are copying them simply so that they can recieve and index and be used in bonded potentials and group sites</span>
+
+<span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">,</span> <span class="n">position</span><span class="p">,</span> <span class="n">orientation</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;A&quot;</span><span class="p">,</span> <span class="n">attached_particles</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
         <span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
@@ -1156,7 +1449,6 @@ document.write(`
         <span class="bp">self</span><span class="o">.</span><span class="n">restraints</span> <span class="o">=</span> <span class="p">[]</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">rigid</span> <span class="o">=</span> <span class="kc">True</span>
 
-        <span class="c1">## TODO: it should be possible to uniquely apply bonds/angles etc to these particles, but their types should be fixed or otherwise unified among rbs; here we are copying them simply so that they can recieve and index and be used in bonded potentials and group sites</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">attached_particles</span> <span class="o">=</span> <span class="p">[</span><span class="n">copy</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">type_</span><span class="o">.</span><span class="n">attached_particles</span><span class="p">]</span>
         
         <span class="k">for</span> <span class="n">key</span><span class="p">,</span><span class="n">val</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
@@ -1203,6 +1495,27 @@ document.write(`
 <div class="viewcode-block" id="Group">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.Group">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">Group</span><span class="p">(</span><span class="n">Transformable</span><span class="p">,</span> <span class="n">Parent</span><span class="p">,</span> <span class="n">Child</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    A class representing a group of objects that can be transformed, have children, and be a child.</span>
+<span class="sd">    The Group class inherits from Transformable, Parent, and Child, combining the functionality</span>
+<span class="sd">    of all three classes. It allows for hierarchical grouping of objects, where each group can</span>
+<span class="sd">    have a position, orientation, parent, and children.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        name (str, optional): The name of the group.</span>
+<span class="sd">        children (list, optional): A list of child objects belonging to this group.</span>
+<span class="sd">        parent (Parent, optional): The parent object of this group.</span>
+<span class="sd">        position (numpy.ndarray): The 3D position of the group, defaults to origin (0,0,0).</span>
+<span class="sd">        orientation (numpy.ndarray): The 3x3 rotation matrix representing the orientation,</span>
+<span class="sd">            defaults to identity matrix.</span>
+<span class="sd">        isClone (bool): Flag indicating whether this group is a clone, defaults to False.</span>
+<span class="sd">        remove_duplicate_bonded_terms (bool): Whether to remove duplicate bonded terms when</span>
+<span class="sd">            combining children, defaults to False.</span>
+<span class="sd">            </span>
+<span class="sd">    Methods:</span>
+<span class="sd">        clone(): Creates a clone of this group.</span>
+<span class="sd">        duplicate(): Creates a deep copy of this group, preserving parent-child relationships.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">children</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 
                  <span class="n">position</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)),</span>
@@ -1253,11 +1566,37 @@ document.write(`
     <span class="c1"># def __setstate__(self, state):</span>
     <span class="c1">#     self.children, self.parent, self.position, self.orientation = state</span>
 
-<span class="c1">#Not sure where should it go</span>
+
 <div class="viewcode-block" id="GroupSite">
 <a class="viewcode-back" href="../../api/core/core_objects.html#arbdmodel.core_objects.GroupSite">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">GroupSite</span><span class="p">:</span>
-<span class="w">    </span><span class="sd">&quot;&quot;&quot; Class to represent a collection of particles that can be used by bond potentials. In arbdmodel only &quot;&quot;&quot;</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to represent a collection of particles that can be used by bond potentials in arbdmodel.</span>
+<span class="sd">    This class groups multiple particles together and provides methods to calculate their center</span>
+<span class="sd">    and manage restraints applied to the group.</span>
+
+<span class="sd">    Attributes</span>
+<span class="sd">    ----------</span>
+<span class="sd">    particles : list</span>
+<span class="sd">        List of particle objects to be included in the group.</span>
+<span class="sd">    idx : int or None</span>
+<span class="sd">        Identifier for the group site, default is None.</span>
+<span class="sd">    restraints : list</span>
+<span class="sd">        List of restraints applied to the group site.</span>
+
+<span class="sd">    Methods</span>
+<span class="sd">    -------</span>
+<span class="sd">    get_center()</span>
+<span class="sd">        Calculate the center position of the group by averaging particle positions.</span>
+<span class="sd">    add_restraint(restraint)</span>
+<span class="sd">        Add a restraint to the group site.</span>
+<span class="sd">    get_restraints()</span>
+<span class="sd">        Get all restraints associated with this group site as tuples of (site, restraint).</span>
+
+<span class="sd">    Note</span>
+<span class="sd">    -----</span>
+<span class="sd">    Currently does not support weighted particles (weights parameter in __init__).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">particles</span><span class="p">,</span> <span class="n">weights</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">weights</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="k">raise</span> <span class="ne">NotImplementedError</span>
diff --git a/_build/html/_modules/arbdmodel/engine.html b/_build/html/_modules/arbdmodel/engine.html
index d6ee79f69a2270a038e340148eb6ee7c874a8cd4..302eec234bdb3d6f6d2ea4ceadd8a71e2667867a 100644
--- a/_build/html/_modules/arbdmodel/engine.html
+++ b/_build/html/_modules/arbdmodel/engine.html
@@ -458,7 +458,24 @@ document.write(`
 <div class="viewcode-block" id="ArbdEngine">
 <a class="viewcode-back" href="../../api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine">[docs]</a>
 <span class="k">class</span><span class="w"> </span><span class="nc">ArbdEngine</span><span class="p">(</span><span class="n">SimEngine</span><span class="p">):</span>
-<span class="w">    </span><span class="sd">&quot;&quot;&quot; Interface to ARBD simulation engine &quot;&quot;&quot;</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Interface to ARBD simulation engine.</span>
+<span class="sd">    The ArbdEngine class provides an interface to the ARBD (Atomically-Resolved Brownian Dynamics) </span>
+<span class="sd">    simulation engine. It handles the generation of simulation configuration files, particle coordinates,</span>
+<span class="sd">    and various potential files required for ARBD simulations.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">        extra_bd_file_lines (str): Additional lines to be added to the BD configuration file.</span>
+<span class="sd">        configuration (SimConf): The simulation configuration object.</span>
+<span class="sd">        num_particles (int): Number of particles in the system.</span>
+<span class="sd">        particles (list): List of particles in the system.</span>
+<span class="sd">        type_counts (dict): Count of each particle type.</span>
+<span class="sd">        _written_bond_files (dict): Dictionary tracking written bond files.</span>
+<span class="sd">        cacheUpToDate (bool): Flag indicating if the cache is current.</span>
+<span class="sd">        potential_directory (str): Directory for storing potential files.</span>
+<span class="sd">        rb_type_dirs (dict): Directories for rigid body types.</span>
+
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">extra_bd_file_lines</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">configuration</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">conf_params</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">extra_bd_file_lines</span> <span class="o">=</span> <span class="n">extra_bd_file_lines</span>
         
@@ -504,6 +521,36 @@ document.write(`
 <div class="viewcode-block" id="ArbdEngine.write_simulation_files">
 <a class="viewcode-back" href="../../api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.write_simulation_files">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">write_simulation_files</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">,</span> <span class="n">output_name</span><span class="p">,</span> <span class="n">configuration</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">conf_params</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Write simulation files for a model.</span>
+<span class="sd">        This method generates all necessary files for simulation, including system </span>
+<span class="sd">        topology files (PSF, PDB), particle coordinates, and various potential files.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        model : object</span>
+<span class="sd">            The model object containing all necessary information about the system.</span>
+<span class="sd">        output_name : str</span>
+<span class="sd">            Base name for output files.</span>
+<span class="sd">        configuration : dict, optional</span>
+<span class="sd">            Configuration dictionary for the model. If None, a configuration will be </span>
+<span class="sd">            generated using _get_combined_conf.</span>
+<span class="sd">        **conf_params : dict</span>
+<span class="sd">            Additional configuration parameters to pass to _get_combined_conf if</span>
+<span class="sd">            configuration is None.</span>
+
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        The method creates directory structure for potentials and rigid body types</span>
+<span class="sd">        if they don&#39;t exist. It generates the following files:</span>
+<span class="sd">        - PSF and PDB topology files</span>
+<span class="sd">        - Particle configuration file</span>
+<span class="sd">        - Various potential files (restraint, bond, angle, dihedral, etc.)</span>
+<span class="sd">        - Rigid body coordinate and configuration files</span>
+<span class="sd">        - Creates directories if they don&#39;t exist</span>
+<span class="sd">        - Sets self.potential_directory and self.rb_type_dirs attributes</span>
+<span class="sd">        - Writes multiple files to disk</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">configuration</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">configuration</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_combined_conf</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="o">**</span><span class="n">conf_params</span><span class="p">)</span>
         
diff --git a/_build/html/_modules/arbdmodel/grid.html b/_build/html/_modules/arbdmodel/grid.html
index 5062c1aab2738ce553a2bf8965859fa9a815f0eb..2a498b6793d6c7cb438e8d1d727144d3712a53b3 100644
--- a/_build/html/_modules/arbdmodel/grid.html
+++ b/_build/html/_modules/arbdmodel/grid.html
@@ -332,7 +332,7 @@ document.write(`
 <span class="sd">  fmt : str, optional</span>
 <span class="sd">    Format string for the data values. Default is &quot;%.12f&quot;.</span>
 <span class="sd">    </span>
-<span class="sd">  Notes</span>
+<span class="sd">  Note</span>
 <span class="sd">  -----</span>
 <span class="sd">  The output file follows the OpenDX format specification:</span>
 <span class="sd">  http://opendx.sdsc.edu/docs/html/pages/usrgu068.htm#HDREDF</span>
@@ -539,7 +539,7 @@ document.write(`
 <span class="sd">    Returns:</span>
 <span class="sd">        ndarray: The grid with the neighborhood average computed.</span>
 
-<span class="sd">    Notes:</span>
+<span class="sd">    Note:</span>
 <span class="sd">        - Currently, only the &#39;mirror&#39; fill value option is implemented.</span>
 <span class="sd">        - This function requires the &#39;average_grids&#39; function from an external source.</span>
 
@@ -647,7 +647,7 @@ document.write(`
 <span class="sd">    Returns:</span>
 <span class="sd">        ndarray: The grid with NaN values filled using neighborhood averaging.</span>
 
-<span class="sd">    Notes:</span>
+<span class="sd">    Note:</span>
 <span class="sd">        - This function requires the &#39;skimage&#39; package, specifically the &#39;find_boundaries&#39; function from &#39;skimage.segmentation&#39;.</span>
 
 <span class="sd">    Example:</span>
@@ -692,7 +692,7 @@ document.write(`
 <span class="sd">        AssertionError: If the dimensions of the array and kernel do not match.</span>
 <span class="sd">        AssertionError: If any dimension of the array is smaller than the corresponding dimension of the kernel.</span>
 
-<span class="sd">    Notes:</span>
+<span class="sd">    Note:</span>
 <span class="sd">        - This function assumes that the kernel has odd dimensions along each dimension.</span>
 <span class="sd">        - If any dimension of the kernel has an even number of elements, a warning message is printed to stderr indicating that the output may be shifted.</span>
 
@@ -825,6 +825,7 @@ document.write(`
 <span class="k">def</span><span class="w"> </span><span class="nf">slab_potential_z</span><span class="p">(</span><span class="n">force_constant</span><span class="p">,</span> <span class="n">center</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">resolution</span><span class="p">,</span> <span class="n">exponent</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
 <span class="w">  </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  Generate a potential energy field that depends only on the z-coordinate, creating a slab-like potential.</span>
+
 <span class="sd">  Parameters</span>
 <span class="sd">  ----------</span>
 <span class="sd">  force_constant : float</span>
@@ -837,12 +838,14 @@ document.write(`
 <span class="sd">    The grid spacing in length units. If a single value is provided, it&#39;s used for all dimensions.</span>
 <span class="sd">  exponent : int, optional</span>
 <span class="sd">    The exponent determining the shape of the potential. Default is 2 (harmonic potential).</span>
+
 <span class="sd">  Returns</span>
 <span class="sd">  -------</span>
 <span class="sd">  numpy.ndarray</span>
 <span class="sd">    A 3D array representing the potential energy field, where the energy depends only</span>
 <span class="sd">    on the distance from the z-center raised to the specified exponent.</span>
-<span class="sd">  Notes</span>
+
+<span class="sd">  Note:</span>
 <span class="sd">  -----</span>
 <span class="sd">  The potential U at each point is calculated as:</span>
 <span class="sd">  U = (force_constant/exponent) * |z - center_z|^exponent</span>
@@ -863,6 +866,29 @@ document.write(`
 <div class="viewcode-block" id="constant_force">
 <a class="viewcode-back" href="../../api/utilities/grid.html#arbdmodel.grid.constant_force">[docs]</a>
 <span class="k">def</span><span class="w"> </span><span class="nf">constant_force</span><span class="p">(</span><span class="n">force</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">resolution</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<span class="w">  </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  Generate a constant force field over a 3D grid.</span>
+
+<span class="sd">  Parameters</span>
+<span class="sd">  ----------</span>
+<span class="sd">  force : float or list</span>
+<span class="sd">    The force vector [fx, fy, fz] to apply. If a scalar is provided, </span>
+<span class="sd">    it&#39;s interpreted as [0, 0, scalar].</span>
+<span class="sd">  dimensions : list</span>
+<span class="sd">    The physical dimensions [dx, dy, dz] of the grid in length units.</span>
+<span class="sd">  resolution : float or list</span>
+<span class="sd">    The resolution of each voxel [rx, ry, rz]. If a scalar is provided, </span>
+<span class="sd">    it&#39;s used for all three dimensions.</span>
+<span class="sd">  origin : list, optional</span>
+<span class="sd">    The coordinates of the grid origin [ox, oy, oz]. If not provided, </span>
+<span class="sd">    defaults to [-dx/2, -dy/2, -dz/2].</span>
+
+<span class="sd">  Returns</span>
+<span class="sd">  -------</span>
+<span class="sd">  numpy.ndarray</span>
+<span class="sd">    A 3D array representing the potential field U = fx*X + fy*Y + fz*Z, </span>
+<span class="sd">    where X, Y, Z are the coordinate grids.</span>
+<span class="sd">  &quot;&quot;&quot;</span>
   <span class="k">try</span><span class="p">:</span>
     <span class="n">force</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
   <span class="k">except</span><span class="p">:</span>
@@ -887,6 +913,36 @@ document.write(`
 <div class="viewcode-block" id="spherical_confinement">
 <a class="viewcode-back" href="../../api/utilities/grid.html#arbdmodel.grid.spherical_confinement">[docs]</a>
 <span class="k">def</span><span class="w"> </span><span class="nf">spherical_confinement</span><span class="p">(</span><span class="n">force_constant</span><span class="p">,</span> <span class="n">radius</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span>  <span class="n">resolution</span><span class="p">,</span> <span class="n">center</span><span class="o">=</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">exponent</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
+<span class="w">  </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  Creates a spherical confinement potential field in 3D space.</span>
+<span class="sd">  The potential is zero inside the sphere (R &lt;= radius) and follows a power law </span>
+<span class="sd">  (force_constant/exponent) * (R-radius)^exponent outside the sphere (R &gt; radius).</span>
+
+<span class="sd">  Parameters</span>
+<span class="sd">  ----------</span>
+<span class="sd">  force_constant : float</span>
+<span class="sd">    The force constant that determines the strength of the confinement potential.</span>
+<span class="sd">  radius : float</span>
+<span class="sd">    Radius of the spherical confinement in the same units as dimensions and resolution.</span>
+<span class="sd">  dimensions : list or tuple</span>
+<span class="sd">    The dimensions of the 3D space [x_dim, y_dim, z_dim].</span>
+<span class="sd">  resolution : float or list or tuple</span>
+<span class="sd">    The spatial resolution of the grid. If a single value is provided, it will be used </span>
+<span class="sd">    for all three dimensions. Otherwise, provide [x_res, y_res, z_res].</span>
+<span class="sd">  center : tuple, optional</span>
+<span class="sd">    The center coordinates of the sphere (x, y, z), default is (0, 0, 0).</span>
+<span class="sd">  exponent : int, optional</span>
+<span class="sd">    The exponent in the power law of the potential, default is 2.</span>
+
+<span class="sd">  Returns</span>
+<span class="sd">  -------</span>
+<span class="sd">  U : numpy.ndarray</span>
+<span class="sd">    3D array containing the potential energy values at each grid point.</span>
+
+<span class="sd">  Note</span>
+<span class="sd">  -----</span>
+<span class="sd">  The function seems to have an unused &#39;force&#39; variable that might be part of incomplete code.</span>
+<span class="sd">  &quot;&quot;&quot;</span>
   <span class="k">try</span><span class="p">:</span>
     <span class="n">force</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
   <span class="k">except</span><span class="p">:</span>
@@ -911,6 +967,32 @@ document.write(`
 <div class="viewcode-block" id="write_confine_dx">
 <a class="viewcode-back" href="../../api/utilities/grid.html#arbdmodel.grid.write_confine_dx">[docs]</a>
 <span class="k">def</span><span class="w"> </span><span class="nf">write_confine_dx</span><span class="p">(</span><span class="n">radius</span><span class="o">=</span><span class="mi">100</span> <span class="p">):</span>  <span class="c1">#Might merge with spherical confinement? </span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Create and write a spherical confinement potential to a DX file.</span>
+
+<span class="sd">    This function generates a spherical confinement potential with a harmonic potential</span>
+<span class="sd">    outside the specified radius and a linear potential beyond radius + 25Ã…. The potential</span>
+<span class="sd">    is written to a DX file named &#39;confine-{radius}.dx&#39;.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    radius : float, default=100</span>
+<span class="sd">    Radius of the spherical confinement in Angstroms. The potential is zero within</span>
+<span class="sd">    this radius and increases harmonically outside it.</span>
+
+<span class="sd">    Returns</span>
+<span class="sd">    -------</span>
+<span class="sd">    None</span>
+<span class="sd">    The function returns nothing but writes the potential to a DX file.</span>
+<span class="sd">    If the file already exists, the function returns without doing anything.</span>
+
+<span class="sd">    Note</span>
+<span class="sd">    -----</span>
+<span class="sd">    - The grid extends from -radius-50 to +radius+50 in all dimensions</span>
+<span class="sd">    - Grid spacing is 2Ã… in all dimensions</span>
+<span class="sd">    - The spring constant k is set to 1 kcal/mol/Ų</span>
+<span class="sd">    - The potential transitions from harmonic to linear at radius + 25Ã…</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">outfile</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;confine-</span><span class="si">{</span><span class="n">radius</span><span class="si">}</span><span class="s1">.dx&#39;</span>
     <span class="k">if</span> <span class="n">Path</span><span class="p">(</span><span class="n">outfile</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span> <span class="k">return</span>
@@ -988,6 +1070,39 @@ document.write(`
 <div class="viewcode-block" id="get_slice_enclosing_smaller_grid">
 <a class="viewcode-back" href="../../api/utilities/grid.html#arbdmodel.grid.get_slice_enclosing_smaller_grid">[docs]</a>
 <span class="k">def</span><span class="w"> </span><span class="nf">get_slice_enclosing_smaller_grid</span><span class="p">(</span> <span class="n">grid</span><span class="p">,</span> <span class="n">smaller_grid</span> <span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Calculates the slices necessary to extract a portion of a larger grid that encloses a smaller grid.</span>
+<span class="sd">    This function computes the slice indices needed to extract a subgrid from a larger grid</span>
+<span class="sd">    that corresponds to the region covered by a smaller grid. The function assumes that both</span>
+<span class="sd">    grids are orthonormal and have the same grid spacing (delta).</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    grid : Grid</span>
+<span class="sd">      The larger grid object containing a 3D array and grid metadata.</span>
+<span class="sd">      Must have attributes: grid (3D numpy array), origin (3D coordinates), and delta (grid spacing).</span>
+<span class="sd">    smaller_grid : Grid</span>
+<span class="sd">      The smaller grid object that is fully contained within the larger grid.</span>
+<span class="sd">      Must have the same attributes as grid.</span>
+
+<span class="sd">    Returns</span>
+<span class="sd">    -------</span>
+<span class="sd">    list of slice</span>
+<span class="sd">      A list of three slice objects, one for each dimension, that can be used to extract</span>
+<span class="sd">      the portion of the larger grid that corresponds to the smaller grid.</span>
+
+<span class="sd">    Raises</span>
+<span class="sd">    ------</span>
+<span class="sd">    AssertionError</span>
+<span class="sd">      If grids are not 3D, if grid spacings are not identical, if smaller_grid is not</span>
+<span class="sd">      contained within grid, if grids are not aligned on grid points, or if smaller_grid</span>
+<span class="sd">      extends beyond the boundaries of grid.</span>
+
+<span class="sd">    Note</span>
+<span class="sd">    -----</span>
+<span class="sd">    The function assumes that both grids are aligned such that the origin of smaller_grid</span>
+<span class="sd">    falls exactly on a grid point of the larger grid.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     
     <span class="c1">## Check grids are orthonormal</span>
     <span class="k">assert</span><span class="p">(</span> <span class="nb">len</span><span class="p">(</span><span class="n">grid</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span> <span class="p">)</span>
diff --git a/_build/html/_modules/arbdmodel/logger.html b/_build/html/_modules/arbdmodel/logger.html
index f75f469f82f3456df6dace30d28470996dc94502..a77afcb102f500401b7fef8ab5895ab38cf3ac77 100644
--- a/_build/html/_modules/arbdmodel/logger.html
+++ b/_build/html/_modules/arbdmodel/logger.html
@@ -329,6 +329,27 @@ document.write(`
 <div class="viewcode-block" id="get_resource_path">
 <a class="viewcode-back" href="../../api/utilities/logger.html#arbdmodel.logger.get_resource_path">[docs]</a>
 <span class="k">def</span><span class="w"> </span><span class="nf">get_resource_path</span><span class="p">(</span><span class="n">relative_path</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Get the absolute path from a relative path by joining it with the resource directory.</span>
+
+<span class="sd">    This function computes the absolute path by combining the base resource directory</span>
+<span class="sd">    with the provided relative path.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    relative_path : str or pathlib.Path</span>
+<span class="sd">        The relative path to be combined with the resource directory.</span>
+
+<span class="sd">    Returns</span>
+<span class="sd">    -------</span>
+<span class="sd">    pathlib.Path</span>
+<span class="sd">        The absolute path to the resource.</span>
+
+<span class="sd">    Examples</span>
+<span class="sd">    --------</span>
+<span class="sd">    &gt;&gt;&gt; get_resource_path(&#39;data/config.json&#39;)</span>
+<span class="sd">    PosixPath(&#39;/path/to/resources/data/config.json&#39;)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">_RESOURCE_DIR</span> <span class="o">/</span> <span class="n">relative_path</span></div>
 
 </pre></div>
diff --git a/_build/html/_modules/arbdmodel/polymer.html b/_build/html/_modules/arbdmodel/polymer.html
index 0dba27791399809e05a94531335e70d70db45de8..6ba1d2878771cb43f81026df65b2ffa8eb809acb 100644
--- a/_build/html/_modules/arbdmodel/polymer.html
+++ b/_build/html/_modules/arbdmodel/polymer.html
@@ -31,19 +31,19 @@
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-book-theme.css?v=eba8b062" />
     <link rel="stylesheet" type="text/css" href="../../_static/togglebutton.css?v=13237357" />
     <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-thebe.css?v=4fa983c6" />
     <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=4c969af8" />
-    <link rel="stylesheet" type="text/css" href="../../_static/proof.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/proof.css?v=b4b7a797" />
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-examples.css?v=e236af4b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css?v=7bc2f056" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css?v=37217874" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css?v=6227e517" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css?v=94669e23" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css?v=21a39f42" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css?v=a18b2449" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css?v=dbff53e4" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css?v=d7bf34ee" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
@@ -60,9 +60,9 @@
     <script src="../../_static/copybutton.js?v=f281be69"></script>
     <script src="../../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
     <script src="../../_static/tabs.js?v=3ee01567"></script>
-    <script src="../../_static/js/hoverxref.js"></script>
-    <script src="../../_static/js/tooltipster.bundle.min.js"></script>
-    <script src="../../_static/js/micromodal.min.js"></script>
+    <script src="../../_static/js/hoverxref.js?v=c95ade4f"></script>
+    <script src="../../_static/js/tooltipster.bundle.min.js?v=18bf091b"></script>
+    <script src="../../_static/js/micromodal.min.js?v=04d6302d"></script>
     <script>let toggleHintShow = 'Click to show';</script>
     <script>let toggleHintHide = 'Click to hide';</script>
     <script>let toggleOpenOnPrint = 'true';</script>
@@ -313,6 +313,7 @@ document.write(`
 <span class="kn">from</span><span class="w"> </span><span class="nn">.model</span><span class="w"> </span><span class="kn">import</span> <span class="n">ArbdModel</span>
 <span class="kn">from</span><span class="w"> </span><span class="nn">.coords</span><span class="w"> </span><span class="kn">import</span> <span class="n">rotationAboutAxis</span><span class="p">,</span> <span class="n">quaternion_from_matrix</span><span class="p">,</span> <span class="n">quaternion_to_matrix</span>
 <span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">Group</span><span class="p">,</span> <span class="n">PointParticle</span>
+<span class="kn">from</span><span class="w"> </span><span class="nn">.interactions</span><span class="w"> </span><span class="kn">import</span> <span class="n">HarmonicBond</span>
 
 <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">TODO:</span>
@@ -434,7 +435,7 @@ document.write(`
 <span class="sd">        get_connections_and_locations(connection_type=None, exclude=()):</span>
 <span class="sd">            Returns a list of [connection, location_in_self, location_in_other] for each connection.</span>
 
-<span class="sd">    Notes:</span>
+<span class="sd">    Note:</span>
 <span class="sd">        - The class is designed to be subclassed.</span>
 <span class="sd">        - It appears to be part of a system for modeling polymer structures, possibly DNA origami or similar structures.</span>
 <span class="sd">        - The class enforces that objects cannot be connected to themselves directly.</span>
@@ -538,22 +539,6 @@ document.write(`
 <span class="sd">        quaternion_spline_params (tuple, optional): Spline parameters for orientation interpolation.</span>
 <span class="sd">        sequence (list, optional): Sequence of monomers if applicable.</span>
 
-<span class="sd">    Methods:</span>
-<span class="sd">        set_splines: Define position splines from contours and coordinates.</span>
-<span class="sd">        set_orientation_splines: Define orientation splines from contours and quaternions.</span>
-<span class="sd">        get_center: Get the center point of the polymer section.</span>
-<span class="sd">        insert_monomers: Insert monomers at a specified position.</span>
-<span class="sd">        remove_monomers: Remove a range of monomers from the section.</span>
-<span class="sd">        translate: Apply a translation to the polymer section, with optional filtering.</span>
-<span class="sd">        rotate: Apply a rotation to the polymer section, with optional filtering.</span>
-<span class="sd">        contour_to_monomer_index: Convert contour position to monomer index.</span>
-<span class="sd">        monomer_index_to_contour: Convert monomer index to contour position.</span>
-<span class="sd">        contour_to_position: Get 3D position from contour parameter.</span>
-<span class="sd">        contour_to_tangent: Get tangent vector at contour position.</span>
-<span class="sd">        contour_to_orientation: Get orientation matrix at contour position.</span>
-<span class="sd">        get_contour_sorted_connections_and_locations: Get sorted connections and locations by type.</span>
-<span class="sd">        add_location: Add a new location at a specific monomer position.</span>
-<span class="sd">        iterate_connections_and_locations: Iterate through all connections and locations.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">num_monomers</span><span class="p">,</span>
@@ -594,6 +579,30 @@ document.write(`
 <div class="viewcode-block" id="PolymerSection.set_splines">
 <a class="viewcode-back" href="../../api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.set_splines">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">set_splines</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contours</span><span class="p">,</span> <span class="n">coords</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Sets up splines for the polymer&#39;s position.</span>
+
+<span class="sd">        This method creates cubic splines that interpolate the polymer&#39;s position coordinates</span>
+<span class="sd">        along its contour. These splines can be used for smooth interpolation between discrete</span>
+<span class="sd">        polymer positions.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        contours : array_like</span>
+<span class="sd">            Contour parameter values corresponding to each coordinate point.</span>
+<span class="sd">            Typically represents positions along the polymer chain.</span>
+<span class="sd">            </span>
+<span class="sd">        coords : ndarray</span>
+<span class="sd">            Coordinates of the polymer, shape (n_points, n_dimensions).</span>
+<span class="sd">            Each row represents the position of a polymer segment in space.</span>
+
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        The method uses scipy.interpolate.splprep with linear splines (k=1) and no smoothing (s=0).</span>
+<span class="sd">        The resulting spline parameters are stored in self.position_spline_params as a tuple </span>
+<span class="sd">        containing the knot points, coefficients, and degree of the spline (tck) and </span>
+<span class="sd">        the parameter values (u).</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">tck</span><span class="p">,</span> <span class="n">u</span> <span class="o">=</span> <span class="n">interpolate</span><span class="o">.</span><span class="n">splprep</span><span class="p">(</span> <span class="n">coords</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">u</span><span class="o">=</span><span class="n">contours</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">position_spline_params</span> <span class="o">=</span> <span class="p">(</span><span class="n">tck</span><span class="p">,</span><span class="n">u</span><span class="p">)</span></div>
 
@@ -601,6 +610,25 @@ document.write(`
 <div class="viewcode-block" id="PolymerSection.set_orientation_splines">
 <a class="viewcode-back" href="../../api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.set_orientation_splines">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">set_orientation_splines</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contours</span><span class="p">,</span> <span class="n">quaternions</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Set spline interpolation parameters for orientation.</span>
+<span class="sd">        </span>
+<span class="sd">        Creates a linear interpolation spline (k=1) for quaternion orientations along contour points.</span>
+<span class="sd">        The spline parameters are stored in the self.quaternion_spline_params attribute.</span>
+<span class="sd">        </span>
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        contours : array_like</span>
+<span class="sd">            Parametric positions along the polymer contour where orientations are defined.</span>
+<span class="sd">        quaternions : array_like</span>
+<span class="sd">            Array of quaternions defining orientations at each contour point.</span>
+<span class="sd">            Should be of shape (n, 4) where n is the number of contour points.</span>
+<span class="sd">            </span>
+<span class="sd">        Note</span>
+<span class="sd">        -----</span>
+<span class="sd">        Uses scipy.interpolate.splprep with smoothing factor s=0 (exact interpolation)</span>
+<span class="sd">        and k=1 (linear interpolation).</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">tck</span><span class="p">,</span> <span class="n">u</span> <span class="o">=</span> <span class="n">interpolate</span><span class="o">.</span><span class="n">splprep</span><span class="p">(</span> <span class="n">quaternions</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">u</span><span class="o">=</span><span class="n">contours</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">quaternion_spline_params</span> <span class="o">=</span> <span class="p">(</span><span class="n">tck</span><span class="p">,</span><span class="n">u</span><span class="p">)</span></div>
 
diff --git a/_build/html/_modules/arbdmodel/sim_config.html b/_build/html/_modules/arbdmodel/sim_config.html
index be467357944ec3e751748fe894b8bd277c8ad735..acbe3baf5ab564e907b995a9d2c88b832cc4d098 100644
--- a/_build/html/_modules/arbdmodel/sim_config.html
+++ b/_build/html/_modules/arbdmodel/sim_config.html
@@ -31,19 +31,19 @@
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-book-theme.css?v=eba8b062" />
     <link rel="stylesheet" type="text/css" href="../../_static/togglebutton.css?v=13237357" />
     <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-thebe.css?v=4fa983c6" />
     <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=4c969af8" />
-    <link rel="stylesheet" type="text/css" href="../../_static/proof.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/proof.css?v=b4b7a797" />
     <link rel="stylesheet" type="text/css" href="../../_static/styles/sphinx-examples.css?v=e236af4b" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css" />
-    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.custom.css?v=7bc2f056" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster.bundle.min.css?v=37217874" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-shadow.min.css?v=6227e517" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-punk.min.css?v=94669e23" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-noir.min.css?v=21a39f42" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-light.min.css?v=a18b2449" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/tooltipster-sideTip-borderless.min.css?v=dbff53e4" />
+    <link rel="stylesheet" type="text/css" href="../../_static/css/micromodal.css?v=d7bf34ee" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
@@ -60,9 +60,9 @@
     <script src="../../_static/copybutton.js?v=f281be69"></script>
     <script src="../../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
     <script src="../../_static/tabs.js?v=3ee01567"></script>
-    <script src="../../_static/js/hoverxref.js"></script>
-    <script src="../../_static/js/tooltipster.bundle.min.js"></script>
-    <script src="../../_static/js/micromodal.min.js"></script>
+    <script src="../../_static/js/hoverxref.js?v=c95ade4f"></script>
+    <script src="../../_static/js/tooltipster.bundle.min.js?v=18bf091b"></script>
+    <script src="../../_static/js/micromodal.min.js?v=04d6302d"></script>
     <script>let toggleHintShow = 'Click to show';</script>
     <script>let toggleHintHide = 'Click to hide';</script>
     <script>let toggleOpenOnPrint = 'true';</script>
@@ -352,12 +352,6 @@ document.write(`
 <span class="sd">        viscosity (float): Solvent viscosity. </span>
 <span class="sd">        solvent_density (float): Solvent density. in g/cm^3</span>
 <span class="sd">        num_heavy_cluster (int): Number of heavy clusters.</span>
-
-<span class="sd">    Methods:</span>
-<span class="sd">        get_binary(name): Get the path to a specific binary.</span>
-<span class="sd">        set_binary(name, path): Set the path to a specific binary.</span>
-<span class="sd">        combine(other, policy=&#39;override&#39;, warn=False): Combine two SimConf objects.</span>
-<span class="sd">        items(): Iterate over attribute name-value pairs.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num_steps</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">output_period</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
@@ -438,6 +432,29 @@ document.write(`
 <div class="viewcode-block" id="SimConf.set_binary">
 <a class="viewcode-back" href="../../api/core/sim_config.html#arbdmodel.sim_config.SimConf.set_binary">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">set_binary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Set the path to a specific binary.</span>
+
+<span class="sd">        This method updates the path for a binary in the BinaryManager. It associates the given binary name</span>
+<span class="sd">        with the specified file path.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        name : str</span>
+<span class="sd">            The name of the binary to set the path for.</span>
+<span class="sd">        path : str</span>
+<span class="sd">            The file system path to the binary.</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        str</span>
+<span class="sd">            The path that was set.</span>
+
+<span class="sd">        Examples</span>
+<span class="sd">        --------</span>
+<span class="sd">        &gt;&gt;&gt; config.set_binary(&#39;ffmpeg&#39;, &#39;/usr/local/bin/ffmpeg&#39;)</span>
+<span class="sd">        &#39;/usr/local/bin/ffmpeg&#39;</span>
+<span class="sd">        &quot;&quot;&quot;</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;Set the path to a specific binary.&quot;&quot;&quot;</span>
         <span class="n">BinaryManager</span><span class="o">.</span><span class="n">set_binary_path</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">path</span></div>
@@ -456,10 +473,36 @@ document.write(`
 <div class="viewcode-block" id="SimConf.combine">
 <a class="viewcode-back" href="../../api/core/sim_config.html#arbdmodel.sim_config.SimConf.combine">[docs]</a>
     <span class="k">def</span><span class="w"> </span><span class="nf">combine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">policy</span><span class="o">=</span><span class="s1">&#39;override&#39;</span><span class="p">,</span> <span class="n">warn</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot; </span>
-<span class="sd">        Creates a new SimConf object whose properties are</span>
-<span class="sd">        initialized to be from &quot;self&quot;, but are overridden with</span>
-<span class="sd">        properties in &quot;other&quot;, provided they are not None</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Combines two SimConf objects into a new one based on a specified policy.</span>
+
+<span class="sd">        This method creates a new SimConf object whose properties are initialized from &#39;self&#39;,</span>
+<span class="sd">        but are potentially overridden with properties from &#39;other&#39; according to the specified policy.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        other : SimConf</span>
+<span class="sd">            The SimConf object whose properties may override the properties of &#39;self&#39;.</span>
+<span class="sd">        policy : str, optional</span>
+<span class="sd">            The policy to use when combining properties. Options are:</span>
+<span class="sd">            - &#39;override&#39;: Always use the value from &#39;other&#39; if it&#39;s not None (default).</span>
+<span class="sd">            - &#39;best&#39;: Use the more appropriate value based on property-specific rules:</span>
+<span class="sd">                - For &#39;timestep&#39;, &#39;output_period&#39;, &#39;decomp_period&#39;: uses the minimum value.</span>
+<span class="sd">                - For &#39;num_steps&#39;, &#39;cutoff&#39;, &#39;pairlist_distance&#39;: uses the maximum value.</span>
+<span class="sd">                - For &#39;integrator&#39;: prefers &#39;MD&#39; over &#39;BD&#39;.</span>
+<span class="sd">                - For other attributes: uses the value from &#39;other&#39; with a warning.</span>
+<span class="sd">        warn : bool, optional</span>
+<span class="sd">            If True, log warnings when attribute values differ and policy=&#39;best&#39; (default: False).</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        SimConf</span>
+<span class="sd">            A new SimConf object with combined properties.</span>
+
+<span class="sd">        Raises</span>
+<span class="sd">        ------</span>
+<span class="sd">        ValueError</span>
+<span class="sd">            If an unrecognized policy is specified.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">new_conf</span> <span class="o">=</span> <span class="n">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
         <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">_get_properties_and_dict_keys</span><span class="p">(</span><span class="n">other</span><span class="p">):</span>
diff --git a/_build/html/api/core/core_objects.html b/_build/html/api/core/core_objects.html
index a2dc8819608b9db333e6b3482012074421e88ee0..466bb39b45c5ea0f10d7dbd16a2d126faf8f9074 100644
--- a/_build/html/api/core/core_objects.html
+++ b/_build/html/api/core/core_objects.html
@@ -346,23 +346,52 @@ document.write(`
             </div>
             <nav aria-label="Page">
                 <ul class="visible nav section-nav flex-column">
-<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child"><code class="docutils literal notranslate"><span class="pre">Child</span></code></a></li>
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child"><code class="docutils literal notranslate"><span class="pre">Child</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child.parent"><code class="docutils literal notranslate"><span class="pre">Child.parent</span></code></a></li>
+</ul>
+</li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Clone"><code class="docutils literal notranslate"><span class="pre">Clone</span></code></a><ul class="nav section-nav flex-column">
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Clone.get_original_recursively"><code class="docutils literal notranslate"><span class="pre">Clone.get_original_recursively()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group"><code class="docutils literal notranslate"><span class="pre">Group</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.name"><code class="docutils literal notranslate"><span class="pre">Group.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.children"><code class="docutils literal notranslate"><span class="pre">Group.children</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.parent"><code class="docutils literal notranslate"><span class="pre">Group.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.position"><code class="docutils literal notranslate"><span class="pre">Group.position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.orientation"><code class="docutils literal notranslate"><span class="pre">Group.orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.isClone"><code class="docutils literal notranslate"><span class="pre">Group.isClone</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.remove_duplicate_bonded_terms"><code class="docutils literal notranslate"><span class="pre">Group.remove_duplicate_bonded_terms</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.clone"><code class="docutils literal notranslate"><span class="pre">Group.clone()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.duplicate"><code class="docutils literal notranslate"><span class="pre">Group.duplicate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">Group.clone()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">Group.duplicate()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite"><code class="docutils literal notranslate"><span class="pre">GroupSite</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.add_restraint"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.particles"><code class="docutils literal notranslate"><span class="pre">GroupSite.particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.idx"><code class="docutils literal notranslate"><span class="pre">GroupSite.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.restraints"><code class="docutils literal notranslate"><span class="pre">GroupSite.restraints</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.get_center"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_center()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.add_restraint"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.get_restraints"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_restraints()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id2"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id3"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_center()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id4"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_restraints()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent"><code class="docutils literal notranslate"><span class="pre">Parent</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.children"><code class="docutils literal notranslate"><span class="pre">Parent.children</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms"><code class="docutils literal notranslate"><span class="pre">Parent.remove_duplicate_bonded_terms</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.bonds"><code class="docutils literal notranslate"><span class="pre">Parent.bonds</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.angles"><code class="docutils literal notranslate"><span class="pre">Parent.angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.dihedrals"><code class="docutils literal notranslate"><span class="pre">Parent.dihedrals</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.vector_angles"><code class="docutils literal notranslate"><span class="pre">Parent.vector_angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.impropers"><code class="docutils literal notranslate"><span class="pre">Parent.impropers</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.exclusions"><code class="docutils literal notranslate"><span class="pre">Parent.exclusions</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.bond_angles"><code class="docutils literal notranslate"><span class="pre">Parent.bond_angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.product_potentials"><code class="docutils literal notranslate"><span class="pre">Parent.product_potentials</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.group_sites"><code class="docutils literal notranslate"><span class="pre">Parent.group_sites</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add"><code class="docutils literal notranslate"><span class="pre">Parent.add()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add_angle"><code class="docutils literal notranslate"><span class="pre">Parent.add_angle()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add_bond"><code class="docutils literal notranslate"><span class="pre">Parent.add_bond()</span></code></a></li>
@@ -389,12 +418,25 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType"><code class="docutils literal notranslate"><span class="pre">ParticleType</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">ParticleType.add_grid_potential()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.excludedAttributes"><code class="docutils literal notranslate"><span class="pre">ParticleType.excludedAttributes</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.name"><code class="docutils literal notranslate"><span class="pre">ParticleType.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.charge"><code class="docutils literal notranslate"><span class="pre">ParticleType.charge</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.mass"><code class="docutils literal notranslate"><span class="pre">ParticleType.mass</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.diffusivity"><code class="docutils literal notranslate"><span class="pre">ParticleType.diffusivity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.damping_coefficient"><code class="docutils literal notranslate"><span class="pre">ParticleType.damping_coefficient</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.parent"><code class="docutils literal notranslate"><span class="pre">ParticleType.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">ParticleType.add_grid_potential()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id5"><code class="docutils literal notranslate"><span class="pre">ParticleType.excludedAttributes</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.is_same_type"><code class="docutils literal notranslate"><span class="pre">ParticleType.is_same_type()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle"><code class="docutils literal notranslate"><span class="pre">PointParticle</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.type_"><code class="docutils literal notranslate"><span class="pre">PointParticle.type_</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.idx"><code class="docutils literal notranslate"><span class="pre">PointParticle.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.name"><code class="docutils literal notranslate"><span class="pre">PointParticle.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.counter"><code class="docutils literal notranslate"><span class="pre">PointParticle.counter</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.restraints"><code class="docutils literal notranslate"><span class="pre">PointParticle.restraints</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.rigid"><code class="docutils literal notranslate"><span class="pre">PointParticle.rigid</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">PointParticle.add_grid_potential()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.add_restraint"><code class="docutils literal notranslate"><span class="pre">PointParticle.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.duplicate"><code class="docutils literal notranslate"><span class="pre">PointParticle.duplicate()</span></code></a></li>
@@ -402,21 +444,44 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody"><code class="docutils literal notranslate"><span class="pre">RigidBody</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.type_"><code class="docutils literal notranslate"><span class="pre">RigidBody.type_</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.idx"><code class="docutils literal notranslate"><span class="pre">RigidBody.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.name"><code class="docutils literal notranslate"><span class="pre">RigidBody.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.counter"><code class="docutils literal notranslate"><span class="pre">RigidBody.counter</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.restraints"><code class="docutils literal notranslate"><span class="pre">RigidBody.restraints</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.rigid"><code class="docutils literal notranslate"><span class="pre">RigidBody.rigid</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.attached_particles"><code class="docutils literal notranslate"><span class="pre">RigidBody.attached_particles</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.add_restraint"><code class="docutils literal notranslate"><span class="pre">RigidBody.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.duplicate"><code class="docutils literal notranslate"><span class="pre">RigidBody.duplicate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.get_restraints"><code class="docutils literal notranslate"><span class="pre">RigidBody.get_restraints()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType"><code class="docutils literal notranslate"><span class="pre">RigidBodyType</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.name"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.parent"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.moment_of_inertia"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.moment_of_inertia</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.rotational_diffusivity"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.rotational_diffusivity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.rotational_damping_coefficient</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.attached_particles"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.attached_particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.potential_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.potential_grids</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.charge_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.charge_grids</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.pmf_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.pmf_grids</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.attach_particle"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.attach_particle()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable"><code class="docutils literal notranslate"><span class="pre">Transformable</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.applyOrientation"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.get_collapsed_position"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.position"><code class="docutils literal notranslate"><span class="pre">Transformable.position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.orientation"><code class="docutils literal notranslate"><span class="pre">Transformable.orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.translate"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.rotate"><code class="docutils literal notranslate"><span class="pre">Transformable.rotate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.transform"><code class="docutils literal notranslate"><span class="pre">Transformable.transform()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.translate"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.get_collapsed_position"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.applyOrientation"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id6"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id7"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id8"><code class="docutils literal notranslate"><span class="pre">Transformable.rotate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id9"><code class="docutils literal notranslate"><span class="pre">Transformable.transform()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id10"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
 </ul>
 </li>
 </ul>
@@ -437,6 +502,31 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Child">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Child</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Child"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Child" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
+<p>A class that represents a child object which can inherit attributes from a parent.
+This class establishes a parent-child relationship where attributes not found in the child
+can be looked up from the parent. This implementation allows for a form of delegation where
+attribute access is forwarded to the parent object.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Child.parent">
+<span class="sig-name descname"><span class="pre">parent</span></span><a class="headerlink" href="#arbdmodel.core_objects.Child.parent" title="Link to this definition">#</a></dt>
+<dd><p>The parent object that this child is associated with.
+When set, the child registers itself with the parent.
+Defaults to None.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.Parent" title="arbdmodel.core_objects.Parent">Parent</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<ul class="simple">
+<li><p>When a parent is provided, it must be an instance of the Parent class.</p></li>
+<li><p>Method lookups from the parent are explicitly prevented.</p></li>
+<li><p>Certain attributes like ‘parent’ are excluded from the parent lookup mechanism.</p></li>
+</ul>
+</div>
 </dd></dl>
 
 <dl class="py class">
@@ -454,14 +544,109 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Group">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Group</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">children</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">position</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">array([0,</span> <span class="pre">0,</span> <span class="pre">0])</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">orientation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">array([[1,</span> <span class="pre">0,</span> <span class="pre">0],</span> <span class="pre">[0,</span> <span class="pre">1,</span> <span class="pre">0],</span> <span class="pre">[0,</span> <span class="pre">0,</span> <span class="pre">1]])</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">remove_duplicate_bonded_terms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Group"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Group" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.core_objects.Transformable" title="arbdmodel.core_objects.Transformable"><code class="xref py py-class docutils literal notranslate"><span class="pre">Transformable</span></code></a>, <a class="reference internal" href="#arbdmodel.core_objects.Parent" title="arbdmodel.core_objects.Parent"><code class="xref py py-class docutils literal notranslate"><span class="pre">Parent</span></code></a>, <a class="reference internal" href="#arbdmodel.core_objects.Child" title="arbdmodel.core_objects.Child"><code class="xref py py-class docutils literal notranslate"><span class="pre">Child</span></code></a></p>
+<p>A class representing a group of objects that can be transformed, have children, and be a child.
+The Group class inherits from Transformable, Parent, and Child, combining the functionality
+of all three classes. It allows for hierarchical grouping of objects, where each group can
+have a position, orientation, parent, and children.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.name">
+<span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.name" title="Link to this definition">#</a></dt>
+<dd><p>The name of the group.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.children">
+<span class="sig-name descname"><span class="pre">children</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.children" title="Link to this definition">#</a></dt>
+<dd><p>A list of child objects belonging to this group.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.parent">
+<span class="sig-name descname"><span class="pre">parent</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.parent" title="Link to this definition">#</a></dt>
+<dd><p>The parent object of this group.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.Parent" title="arbdmodel.core_objects.Parent">Parent</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.position">
+<span class="sig-name descname"><span class="pre">position</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.position" title="Link to this definition">#</a></dt>
+<dd><p>The 3D position of the group, defaults to origin (0,0,0).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.orientation">
+<span class="sig-name descname"><span class="pre">orientation</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.orientation" title="Link to this definition">#</a></dt>
+<dd><p>The 3x3 rotation matrix representing the orientation,
+defaults to identity matrix.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.isClone">
+<span class="sig-name descname"><span class="pre">isClone</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.isClone" title="Link to this definition">#</a></dt>
+<dd><p>Flag indicating whether this group is a clone, defaults to False.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Group.remove_duplicate_bonded_terms">
+<span class="sig-name descname"><span class="pre">remove_duplicate_bonded_terms</span></span><a class="headerlink" href="#arbdmodel.core_objects.Group.remove_duplicate_bonded_terms" title="Link to this definition">#</a></dt>
+<dd><p>Whether to remove duplicate bonded terms when
+combining children, defaults to False.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Group.clone">
 <span class="sig-name descname"><span class="pre">clone</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Group.clone"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Group.clone" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Creates a clone of this group.</p>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Group.duplicate">
 <span class="sig-name descname"><span class="pre">duplicate</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Group.duplicate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Group.duplicate" title="Link to this definition">#</a></dt>
+<dd><p>Creates a deep copy of this group, preserving parent-child relationships.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="id0">
+<span class="sig-name descname"><span class="pre">clone</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Group.clone"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition">#</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="id1">
+<span class="sig-name descname"><span class="pre">duplicate</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Group.duplicate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -470,20 +655,77 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GroupSite</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">particles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">weights</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
-<p>Class to represent a collection of particles that can be used by bond potentials. In arbdmodel only</p>
+<p>Class to represent a collection of particles that can be used by bond potentials in arbdmodel.
+This class groups multiple particles together and provides methods to calculate their center
+and manage restraints applied to the group.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.particles">
+<span class="sig-name descname"><span class="pre">particles</span></span><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.particles" title="Link to this definition">#</a></dt>
+<dd><p>List of particle objects to be included in the group.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.idx">
+<span class="sig-name descname"><span class="pre">idx</span></span><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.idx" title="Link to this definition">#</a></dt>
+<dd><p>Identifier for the group site, default is None.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> or None</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.restraints">
+<span class="sig-name descname"><span class="pre">restraints</span></span><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.restraints" title="Link to this definition">#</a></dt>
+<dd><p>List of restraints applied to the group site.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.get_center">
+<span class="sig-name descname"><span class="pre">get_center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.get_center" title="Link to this definition">#</a></dt>
+<dd><p>Calculate the center position of the group by averaging particle positions.</p>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.add_restraint">
 <span class="sig-name descname"><span class="pre">add_restraint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">restraint</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.add_restraint"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.add_restraint" title="Link to this definition">#</a></dt>
+<dd><p>Add a restraint to the group site.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.get_restraints">
+<span class="sig-name descname"><span class="pre">get_restraints</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_restraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.get_restraints" title="Link to this definition">#</a></dt>
+<dd><p>Get all restraints associated with this group site as tuples of (site, restraint).</p>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>Currently does not support weighted particles (weights parameter in __init__).</p>
+</div>
+<dl class="py method">
+<dt class="sig sig-object py" id="id2">
+<span class="sig-name descname"><span class="pre">add_restraint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">restraint</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.add_restraint"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.get_center">
-<span class="sig-name descname"><span class="pre">get_center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.get_center" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id3">
+<span class="sig-name descname"><span class="pre">get_center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id3" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.GroupSite.get_restraints">
-<span class="sig-name descname"><span class="pre">get_restraints</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_restraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.GroupSite.get_restraints" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id4">
+<span class="sig-name descname"><span class="pre">get_restraints</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#GroupSite.get_restraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id4" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -492,10 +734,147 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Parent">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Parent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">children</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">remove_duplicate_bonded_terms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Parent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Parent" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
+<p>The Parent class implements a hierarchical tree structure for organizing objects in a simulation.
+This class serves as a container for child objects and provides methods for managing relationships, properties, and interactions between these objects within a molecular simulation context.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.children">
+<span class="sig-name descname"><span class="pre">children</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.children" title="Link to this definition">#</a></dt>
+<dd><p>A list of child objects belonging to this parent.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms">
+<span class="sig-name descname"><span class="pre">remove_duplicate_bonded_terms</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms" title="Link to this definition">#</a></dt>
+<dd><p>Whether to remove duplicate bonded terms when collecting them.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.bonds">
+<span class="sig-name descname"><span class="pre">bonds</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.bonds" title="Link to this definition">#</a></dt>
+<dd><p>List of bond interactions between particles.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.angles">
+<span class="sig-name descname"><span class="pre">angles</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.angles" title="Link to this definition">#</a></dt>
+<dd><p>List of angle interactions between triplets of particles.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.dihedrals">
+<span class="sig-name descname"><span class="pre">dihedrals</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.dihedrals" title="Link to this definition">#</a></dt>
+<dd><p>List of dihedral interactions between quartets of particles.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.vector_angles">
+<span class="sig-name descname"><span class="pre">vector_angles</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.vector_angles" title="Link to this definition">#</a></dt>
+<dd><p>List of vector angle interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.impropers">
+<span class="sig-name descname"><span class="pre">impropers</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.impropers" title="Link to this definition">#</a></dt>
+<dd><p>List of improper dihedral interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.exclusions">
+<span class="sig-name descname"><span class="pre">exclusions</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.exclusions" title="Link to this definition">#</a></dt>
+<dd><p>List of pairwise exclusions from non-bonded interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.bond_angles">
+<span class="sig-name descname"><span class="pre">bond_angles</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.bond_angles" title="Link to this definition">#</a></dt>
+<dd><p>List of combined bond-angle interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.product_potentials">
+<span class="sig-name descname"><span class="pre">product_potentials</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.product_potentials" title="Link to this definition">#</a></dt>
+<dd><p>List of product potentials.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.group_sites">
+<span class="sig-name descname"><span class="pre">group_sites</span></span><a class="headerlink" href="#arbdmodel.core_objects.Parent.group_sites" title="Link to this definition">#</a></dt>
+<dd><p>List of group sites.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<p>This class implements iteration methods to traverse the tree structure depth-first.</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.add">
 <span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Parent.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Parent.add" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Adds a Child object to this group.</p>
+<p>This method establishes a parent-child relationship between the current object
+and the provided Child object. It checks that the provided object is a Child,
+and that it doesn’t already belong to another parent.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>x</strong> (<a class="reference internal" href="#arbdmodel.core_objects.Child" title="arbdmodel.core_objects.Child"><em>Child</em></a>) – The Child object to add to this group</p>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.13)"><strong>Exception</strong></a> – If x is not an instance of Child
+    If x already belongs to another parent</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.add_angle">
@@ -601,7 +980,24 @@ document.write(`
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.insert">
 <span class="sig-name descname"><span class="pre">insert</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">idx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Parent.insert"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Parent.insert" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Insert a child object at a specific position in the group’s children list.</p>
+<p>This method inserts a new child object into the group at the specified index.
+It performs checks to ensure the object is a valid Child type and that it
+doesn’t already belong to another parent group to maintain the integrity
+of the parent-child hierarchy.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>idx</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – The index position where the child should be inserted.</p></li>
+<li><p><strong>x</strong> (<a class="reference internal" href="#arbdmodel.core_objects.Child" title="arbdmodel.core_objects.Child"><em>Child</em></a>) – The child object to be inserted. Must inherit from the Child class.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.13)"><strong>Exception</strong></a> – If the provided object doesn’t inherit from the Child class or
+    if the child already belongs to another parent group.</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Parent.remove">
@@ -614,21 +1010,151 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ParticleType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">charge</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">diffusivity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">damping_coefficient</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rigid_body_potentials</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#ParticleType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.ParticleType" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
+<p>Class that holds common attributes that particles can point to.
+ParticleType serves as a template for properties shared across multiple particles.
+It supports inheritance through parent types, attribute lookup, and provides mechanisms
+for comparing particle types.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.excludedAttributes">
+<span class="sig-name descname"><span class="pre">excludedAttributes</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.excludedAttributes" title="Link to this definition">#</a></dt>
+<dd><p>Attributes that are not inherited from parent types.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.name">
+<span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.name" title="Link to this definition">#</a></dt>
+<dd><p>Unique identifier for this particle type.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.charge">
+<span class="sig-name descname"><span class="pre">charge</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.charge" title="Link to this definition">#</a></dt>
+<dd><p>Electric charge of the particle. Defaults to 0.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.mass">
+<span class="sig-name descname"><span class="pre">mass</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.mass" title="Link to this definition">#</a></dt>
+<dd><p>Mass of the particle.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.diffusivity">
+<span class="sig-name descname"><span class="pre">diffusivity</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.diffusivity" title="Link to this definition">#</a></dt>
+<dd><p>Diffusion coefficient of the particle.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.damping_coefficient">
+<span class="sig-name descname"><span class="pre">damping_coefficient</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.damping_coefficient" title="Link to this definition">#</a></dt>
+<dd><p>Damping coefficient for dynamics.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.parent">
+<span class="sig-name descname"><span class="pre">parent</span></span><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.parent" title="Link to this definition">#</a></dt>
+<dd><p>Parent type to inherit properties from.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.ParticleType" title="arbdmodel.core_objects.ParticleType">ParticleType</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<ul class="simple">
+<li><p>When a parent is specified, all non-excluded attributes are inherited.</p></li>
+<li><p>Particle types with the same name must have identical properties.</p></li>
+<li><p>The class implements custom copy behavior to prevent unnecessary duplication.</p></li>
+</ul>
+</div>
 <p>Class that hold common attributes that particles can point to</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.add_grid_potential">
 <span class="sig-name descname"><span class="pre">add_grid_potential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gridfile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">boundary_condition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'dirichlet'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#ParticleType.add_grid_potential"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.add_grid_potential" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Adds a grid potential to the model.</p>
+<p>This method appends a new grid potential to the model’s list of grid potentials.
+The grid potential is defined by a grid file, a scaling factor, and boundary conditions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>gridfile</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – Path to the file containing the grid potential data.</p></li>
+<li><p><strong>scale</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>default=1</em>) – Scaling factor to apply to the grid potential.</p></li>
+<li><p><strong>boundary_condition</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>default='dirichlet'</em>) – The type of boundary condition to use for the grid potential.
+Must be one of ‘dirichlet’, ‘neumann’, or ‘periodic’.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.13)"><strong>ValueError</strong></a> – If the boundary_condition is not one of ‘dirichlet’, ‘neumann’, or ‘periodic’.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>None</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py attribute">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.excludedAttributes">
-<span class="sig-name descname"><span class="pre">excludedAttributes</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">('idx',</span> <span class="pre">'type_',</span> <span class="pre">'position',</span> <span class="pre">'orientation',</span> <span class="pre">'children',</span> <span class="pre">'name',</span> <span class="pre">'parent',</span> <span class="pre">'excludedAttributes')</span></em><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.excludedAttributes" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id5">
+<span class="sig-name descname"><span class="pre">excludedAttributes</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">('idx',</span> <span class="pre">'type_',</span> <span class="pre">'position',</span> <span class="pre">'orientation',</span> <span class="pre">'children',</span> <span class="pre">'name',</span> <span class="pre">'parent',</span> <span class="pre">'excludedAttributes')</span></em><a class="headerlink" href="#id5" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.ParticleType.is_same_type">
 <span class="sig-name descname"><span class="pre">is_same_type</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">consider_parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#ParticleType.is_same_type"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.ParticleType.is_same_type" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Checks if this object is of the same type as another object.</p>
+<p>This method compares two objects to determine if they are of the same type.
+Objects are considered the same type if they are equal or if one is the parent
+of the other (when consider_parents=True).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>other</strong> (<em>same type as self</em>) – The object to compare with</p></li>
+<li><p><strong>consider_parents</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a><em>, </em><em>default=True</em>) – If True, objects are considered the same type if one is the parent of the other</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>True if objects are considered of the same type, False otherwise</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The method assumes both objects are of the same Python class type.</p>
+</div>
+</dd></dl>
 
 </dd></dl>
 
@@ -636,25 +1162,153 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PointParticle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type_</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'A'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#PointParticle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.PointParticle" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.core_objects.Transformable" title="arbdmodel.core_objects.Transformable"><code class="xref py py-class docutils literal notranslate"><span class="pre">Transformable</span></code></a>, <a class="reference internal" href="#arbdmodel.core_objects.Child" title="arbdmodel.core_objects.Child"><code class="xref py py-class docutils literal notranslate"><span class="pre">Child</span></code></a></p>
+<p>A class representing a point particle in a simulation system.
+This class inherits from both Transformable and Child base classes, allowing
+it to be positioned in space and exist in a parent-child hierarchy.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.type_">
+<span class="sig-name descname"><span class="pre">type_</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.type_" title="Link to this definition">#</a></dt>
+<dd><p>Type definition of the particle.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.ParticleType" title="arbdmodel.core_objects.ParticleType">ParticleType</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.idx">
+<span class="sig-name descname"><span class="pre">idx</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.idx" title="Link to this definition">#</a></dt>
+<dd><p>Index of the particle in the system, default is None.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.name">
+<span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.name" title="Link to this definition">#</a></dt>
+<dd><p>Name identifier for the particle, default is “A”.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.counter">
+<span class="sig-name descname"><span class="pre">counter</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.counter" title="Link to this definition">#</a></dt>
+<dd><p>Counter for operations on this particle, initialized to 0.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.restraints">
+<span class="sig-name descname"><span class="pre">restraints</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.restraints" title="Link to this definition">#</a></dt>
+<dd><p>List of restraints applied to this particle.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.rigid">
+<span class="sig-name descname"><span class="pre">rigid</span></span><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.rigid" title="Link to this definition">#</a></dt>
+<dd><p>Flag indicating whether the particle is rigid, default is False.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.add_grid_potential">
 <span class="sig-name descname"><span class="pre">add_grid_potential</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gridfile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">boundary_condition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'dirichlet'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#PointParticle.add_grid_potential"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.add_grid_potential" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Add a grid-based potential to the particle type.</p>
+<p>This method creates a new particle type derived from the current one and adds
+a grid-based potential to it. The grid potential is loaded from the specified file.
+After adding the potential, the particle’s type is updated to the new type.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>gridfile</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – Path to the grid file in .dx format containing the potential data.</p></li>
+<li><p><strong>scale</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Scaling factor applied to the potential values. Default is 1.</p></li>
+<li><p><strong>boundary_condition</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>optional</em>) – Type of boundary condition to use for the grid potential.
+Options are ‘dirichlet’ (default) or other boundary types supported by the system.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The method updates the particle’s type in place.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>None</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>This method will create a copy of the particle’s type if it already has a parent,
+or create a new derived type if it doesn’t.</p>
+</div>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.add_restraint">
 <span class="sig-name descname"><span class="pre">add_restraint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">restraint</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#PointParticle.add_restraint"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.add_restraint" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Add a restraint to the model’s restraint list.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>restraint</strong> (<em>Restraint</em>) – The restraint object to add to the model.</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>TODO: Determine how to handle duplicating and cloning bonds.</p>
+</div>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.duplicate">
 <span class="sig-name descname"><span class="pre">duplicate</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#PointParticle.duplicate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.duplicate" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Create a deep copy of the current object.</p>
+<p>This method creates a completely independent copy of the object, using the <cite>deepcopy</cite> function.
+Any modifications to the returned object will not affect the original object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A new instance of the same class with identical attribute values.</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.PointParticle.get_restraints">
 <span class="sig-name descname"><span class="pre">get_restraints</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#PointParticle.get_restraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.PointParticle.get_restraints" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Get all restraints associated with this model.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p><dl class="simple">
+<dt>A list of tuples, where each tuple contains:</dt><dd><ul class="simple">
+<li><p>First element: this model instance</p></li>
+<li><p>Second element: a restraint object associated with this model</p></li>
+</ul>
+</dd>
+</dl>
+</p>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a>[<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a>]</p>
+</dd>
+</dl>
+</dd></dl>
 
 </dd></dl>
 
@@ -662,20 +1316,151 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">RigidBody</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type_</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">orientation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'A'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attached_particles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBody"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBody" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.core_objects.PointParticle" title="arbdmodel.core_objects.PointParticle"><code class="xref py py-class docutils literal notranslate"><span class="pre">PointParticle</span></code></a></p>
+<p>Represents a rigid body in a physical simulation.
+A rigid body is a collection of particles that maintain fixed positions relative to each other.
+It inherits from PointParticle and implements transformation capabilities to move and rotate as a single unit.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>type</strong> (<a class="reference internal" href="#arbdmodel.core_objects.RigidBodyType" title="arbdmodel.core_objects.RigidBodyType"><em>RigidBodyType</em></a>) – The type definition for this rigid body.</p></li>
+<li><p><strong>position</strong> (<em>array-like</em>) – The initial position of the rigid body in 3D space.</p></li>
+<li><p><strong>orientation</strong> (<em>array-like</em><em> or </em><em>quaternion</em>) – The initial orientation of the rigid body.</p></li>
+<li><p><strong>name</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>optional</em>) – A name identifier for this rigid body. Defaults to “A”.</p></li>
+<li><p><strong>attached_particles</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a><em>, </em><em>optional</em>) – Particles to attach to the rigid body, which will move with it. Defaults to empty tuple.</p></li>
+<li><p><strong>**kwargs</strong> – Additional keyword arguments to set as attributes.</p></li>
+</ul>
+</dd>
+</dl>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.type_">
+<span class="sig-name descname"><span class="pre">type_</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.type_" title="Link to this definition">#</a></dt>
+<dd><p>The type definition for this rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.RigidBodyType" title="arbdmodel.core_objects.RigidBodyType">RigidBodyType</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.idx">
+<span class="sig-name descname"><span class="pre">idx</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.idx" title="Link to this definition">#</a></dt>
+<dd><p>Index identifier, assigned when added to a simulation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> or None</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.name">
+<span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.name" title="Link to this definition">#</a></dt>
+<dd><p>Name identifier for this rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.counter">
+<span class="sig-name descname"><span class="pre">counter</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.counter" title="Link to this definition">#</a></dt>
+<dd><p>Counter value, initialized at 0.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.restraints">
+<span class="sig-name descname"><span class="pre">restraints</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.restraints" title="Link to this definition">#</a></dt>
+<dd><p>List of restraints applied to this rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.rigid">
+<span class="sig-name descname"><span class="pre">rigid</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.rigid" title="Link to this definition">#</a></dt>
+<dd><p>Boolean flag indicating if the object is rigid, always True for this class.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.attached_particles">
+<span class="sig-name descname"><span class="pre">attached_particles</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.attached_particles" title="Link to this definition">#</a></dt>
+<dd><p>Copied particles attached to the rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>TODO: for attached_particles, it should be possible to uniquely apply bonds/angles etc to these particles, but their types should be fixed or otherwise unified among rbs;
+here we are copying them simply so that they can recieve and index and be used in bonded potentials and group sites</p>
+</div>
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.add_restraint">
 <span class="sig-name descname"><span class="pre">add_restraint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">restraint</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBody.add_restraint"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.add_restraint" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Add a restraint to the model’s restraint list.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>restraint</strong> (<em>Restraint</em>) – The restraint object to add to the model.</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>TODO: Determine how to handle duplicating and cloning bonds.</p>
+</div>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.duplicate">
 <span class="sig-name descname"><span class="pre">duplicate</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBody.duplicate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.duplicate" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Create a deep copy of the current object.</p>
+<p>This method creates a completely independent copy of the object, using the <cite>deepcopy</cite> function.
+Any modifications to the returned object will not affect the original object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A new instance of the same class with identical attribute values.</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBody.get_restraints">
 <span class="sig-name descname"><span class="pre">get_restraints</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBody.get_restraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBody.get_restraints" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Get all restraints associated with this model.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p><dl class="simple">
+<dt>A list of tuples, where each tuple contains:</dt><dd><ul class="simple">
+<li><p>First element: this model instance</p></li>
+<li><p>Second element: a restraint object associated with this model</p></li>
+</ul>
+</dd>
+</dl>
+</p>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a>[<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a>]</p>
+</dd>
+</dl>
+</dd></dl>
 
 </dd></dl>
 
@@ -683,7 +1468,113 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">RigidBodyType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">moment_of_inertia</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rotational_diffusivity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rotational_damping_coefficient</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attached_particles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">potential_grids</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">charge_grids</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pmf_grids</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBodyType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.core_objects.ParticleType" title="arbdmodel.core_objects.ParticleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParticleType</span></code></a></p>
-<p>Class that holds common attributes for RigidBody objects</p>
+<p>Class that holds common attributes for RigidBody objects.
+This class extends ParticleType to represent rigid bodies that can have
+attached particles, orientation, and rotational dynamics.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.name">
+<span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.name" title="Link to this definition">#</a></dt>
+<dd><p>Name identifier for the rigid body type.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.parent">
+<span class="sig-name descname"><span class="pre">parent</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.parent" title="Link to this definition">#</a></dt>
+<dd><p>Parent type to fall back on for nonbonded interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.core_objects.ParticleType" title="arbdmodel.core_objects.ParticleType">ParticleType</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.moment_of_inertia">
+<span class="sig-name descname"><span class="pre">moment_of_inertia</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.moment_of_inertia" title="Link to this definition">#</a></dt>
+<dd><p>Moment of inertia tensor for the rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a> or array-like, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.rotational_diffusivity">
+<span class="sig-name descname"><span class="pre">rotational_diffusivity</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.rotational_diffusivity" title="Link to this definition">#</a></dt>
+<dd><p>Rotational diffusivity coefficient.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a> or array-like, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient">
+<span class="sig-name descname"><span class="pre">rotational_damping_coefficient</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient" title="Link to this definition">#</a></dt>
+<dd><p>Rotational damping coefficient.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a> or array-like, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.attached_particles">
+<span class="sig-name descname"><span class="pre">attached_particles</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.attached_particles" title="Link to this definition">#</a></dt>
+<dd><p>Particles attached to this rigid body.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a> or <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.potential_grids">
+<span class="sig-name descname"><span class="pre">potential_grids</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.potential_grids" title="Link to this definition">#</a></dt>
+<dd><p>Collection of potential grid definitions, each with length 2 or 3.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.charge_grids">
+<span class="sig-name descname"><span class="pre">charge_grids</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.charge_grids" title="Link to this definition">#</a></dt>
+<dd><p>Collection of charge grid definitions, each with length 2 or 3.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.pmf_grids">
+<span class="sig-name descname"><span class="pre">pmf_grids</span></span><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.pmf_grids" title="Link to this definition">#</a></dt>
+<dd><p>Collection of pmf grid definitions, each with length 2 or 3.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>If rotational_diffusivity is not provided, both moment_of_inertia and
+rotational_damping_coefficient must be specified.</p>
+</div>
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.RigidBodyType.attach_particle">
 <span class="sig-name descname"><span class="pre">attach_particle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">particle</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#RigidBodyType.attach_particle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.RigidBodyType.attach_particle" title="Link to this definition">#</a></dt>
@@ -696,29 +1587,96 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Transformable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">orientation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
+<p>A class for objects that can be transformed in 3D space.
+The Transformable class provides basic functionality for positioning and orienting
+objects in 3D space, as well as methods for applying transformations such as
+translations and rotations.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.position">
+<span class="sig-name descname"><span class="pre">position</span></span><a class="headerlink" href="#arbdmodel.core_objects.Transformable.position" title="Link to this definition">#</a></dt>
+<dd><p>The position of the object in 3D space.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.orientation">
+<span class="sig-name descname"><span class="pre">orientation</span></span><a class="headerlink" href="#arbdmodel.core_objects.Transformable.orientation" title="Link to this definition">#</a></dt>
+<dd><p>The orientation matrix of the object.
+If None, the object has no orientation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a> or None</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.translate">
+<span class="sig-name descname"><span class="pre">translate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">offset</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.translate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.translate" title="Link to this definition">#</a></dt>
+<dd><p>Translate the object by the given offset.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.rotate">
+<span class="sig-name descname"><span class="pre">rotate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">about</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.rotate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.rotate" title="Link to this definition">#</a></dt>
+<dd><p>Rotate the object by the rotation matrix R about a center point.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.transform">
+<span class="sig-name descname"><span class="pre">transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.transform" title="Link to this definition">#</a></dt>
+<dd><p>Apply a general transformation to the object.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.get_collapsed_position">
+<span class="sig-name descname"><span class="pre">get_collapsed_position</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.get_collapsed_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.get_collapsed_position" title="Link to this definition">#</a></dt>
+<dd><p>Get the absolute position of the object, taking into
+account parent transformations if the object is a Child.</p>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.applyOrientation">
 <span class="sig-name descname"><span class="pre">applyOrientation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.applyOrientation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.applyOrientation" title="Link to this definition">#</a></dt>
+<dd><p>Apply the orientation chain to an object, considering
+parent orientations if the object is a Child.</p>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<ul class="simple">
+<li><p>The class is designed to work with the Child class for hierarchical transformations.</p></li>
+<li><p>Orientation is represented as a rotation matrix.</p></li>
+<li><p>All transformation methods modify the object in place.</p></li>
+</ul>
+</div>
+<dl class="py method">
+<dt class="sig sig-object py" id="id6">
+<span class="sig-name descname"><span class="pre">applyOrientation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.applyOrientation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id6" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.get_collapsed_position">
-<span class="sig-name descname"><span class="pre">get_collapsed_position</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.get_collapsed_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.get_collapsed_position" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id7">
+<span class="sig-name descname"><span class="pre">get_collapsed_position</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.get_collapsed_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id7" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.rotate">
-<span class="sig-name descname"><span class="pre">rotate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">about</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.rotate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.rotate" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id8">
+<span class="sig-name descname"><span class="pre">rotate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">about</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.rotate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id8" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.transform">
-<span class="sig-name descname"><span class="pre">transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">((1,</span> <span class="pre">0,</span> <span class="pre">0),</span> <span class="pre">(0,</span> <span class="pre">1,</span> <span class="pre">0),</span> <span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">1))</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.transform" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id9">
+<span class="sig-name descname"><span class="pre">transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">((1,</span> <span class="pre">0,</span> <span class="pre">0),</span> <span class="pre">(0,</span> <span class="pre">1,</span> <span class="pre">0),</span> <span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">1))</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id9" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.core_objects.Transformable.translate">
-<span class="sig-name descname"><span class="pre">translate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.translate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.core_objects.Transformable.translate" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id10">
+<span class="sig-name descname"><span class="pre">translate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/core_objects.html#Transformable.translate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id10" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -771,23 +1729,52 @@ document.write(`
   </div>
   <nav class="bd-toc-nav page-toc">
     <ul class="visible nav section-nav flex-column">
-<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child"><code class="docutils literal notranslate"><span class="pre">Child</span></code></a></li>
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child"><code class="docutils literal notranslate"><span class="pre">Child</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Child.parent"><code class="docutils literal notranslate"><span class="pre">Child.parent</span></code></a></li>
+</ul>
+</li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Clone"><code class="docutils literal notranslate"><span class="pre">Clone</span></code></a><ul class="nav section-nav flex-column">
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Clone.get_original_recursively"><code class="docutils literal notranslate"><span class="pre">Clone.get_original_recursively()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group"><code class="docutils literal notranslate"><span class="pre">Group</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.name"><code class="docutils literal notranslate"><span class="pre">Group.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.children"><code class="docutils literal notranslate"><span class="pre">Group.children</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.parent"><code class="docutils literal notranslate"><span class="pre">Group.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.position"><code class="docutils literal notranslate"><span class="pre">Group.position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.orientation"><code class="docutils literal notranslate"><span class="pre">Group.orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.isClone"><code class="docutils literal notranslate"><span class="pre">Group.isClone</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.remove_duplicate_bonded_terms"><code class="docutils literal notranslate"><span class="pre">Group.remove_duplicate_bonded_terms</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.clone"><code class="docutils literal notranslate"><span class="pre">Group.clone()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Group.duplicate"><code class="docutils literal notranslate"><span class="pre">Group.duplicate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">Group.clone()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">Group.duplicate()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite"><code class="docutils literal notranslate"><span class="pre">GroupSite</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.add_restraint"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.particles"><code class="docutils literal notranslate"><span class="pre">GroupSite.particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.idx"><code class="docutils literal notranslate"><span class="pre">GroupSite.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.restraints"><code class="docutils literal notranslate"><span class="pre">GroupSite.restraints</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.get_center"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_center()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.add_restraint"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.GroupSite.get_restraints"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_restraints()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id2"><code class="docutils literal notranslate"><span class="pre">GroupSite.add_restraint()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id3"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_center()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id4"><code class="docutils literal notranslate"><span class="pre">GroupSite.get_restraints()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent"><code class="docutils literal notranslate"><span class="pre">Parent</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.children"><code class="docutils literal notranslate"><span class="pre">Parent.children</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms"><code class="docutils literal notranslate"><span class="pre">Parent.remove_duplicate_bonded_terms</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.bonds"><code class="docutils literal notranslate"><span class="pre">Parent.bonds</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.angles"><code class="docutils literal notranslate"><span class="pre">Parent.angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.dihedrals"><code class="docutils literal notranslate"><span class="pre">Parent.dihedrals</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.vector_angles"><code class="docutils literal notranslate"><span class="pre">Parent.vector_angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.impropers"><code class="docutils literal notranslate"><span class="pre">Parent.impropers</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.exclusions"><code class="docutils literal notranslate"><span class="pre">Parent.exclusions</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.bond_angles"><code class="docutils literal notranslate"><span class="pre">Parent.bond_angles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.product_potentials"><code class="docutils literal notranslate"><span class="pre">Parent.product_potentials</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.group_sites"><code class="docutils literal notranslate"><span class="pre">Parent.group_sites</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add"><code class="docutils literal notranslate"><span class="pre">Parent.add()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add_angle"><code class="docutils literal notranslate"><span class="pre">Parent.add_angle()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Parent.add_bond"><code class="docutils literal notranslate"><span class="pre">Parent.add_bond()</span></code></a></li>
@@ -814,12 +1801,25 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType"><code class="docutils literal notranslate"><span class="pre">ParticleType</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">ParticleType.add_grid_potential()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.excludedAttributes"><code class="docutils literal notranslate"><span class="pre">ParticleType.excludedAttributes</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.name"><code class="docutils literal notranslate"><span class="pre">ParticleType.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.charge"><code class="docutils literal notranslate"><span class="pre">ParticleType.charge</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.mass"><code class="docutils literal notranslate"><span class="pre">ParticleType.mass</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.diffusivity"><code class="docutils literal notranslate"><span class="pre">ParticleType.diffusivity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.damping_coefficient"><code class="docutils literal notranslate"><span class="pre">ParticleType.damping_coefficient</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.parent"><code class="docutils literal notranslate"><span class="pre">ParticleType.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">ParticleType.add_grid_potential()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id5"><code class="docutils literal notranslate"><span class="pre">ParticleType.excludedAttributes</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.ParticleType.is_same_type"><code class="docutils literal notranslate"><span class="pre">ParticleType.is_same_type()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle"><code class="docutils literal notranslate"><span class="pre">PointParticle</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.type_"><code class="docutils literal notranslate"><span class="pre">PointParticle.type_</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.idx"><code class="docutils literal notranslate"><span class="pre">PointParticle.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.name"><code class="docutils literal notranslate"><span class="pre">PointParticle.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.counter"><code class="docutils literal notranslate"><span class="pre">PointParticle.counter</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.restraints"><code class="docutils literal notranslate"><span class="pre">PointParticle.restraints</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.rigid"><code class="docutils literal notranslate"><span class="pre">PointParticle.rigid</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.add_grid_potential"><code class="docutils literal notranslate"><span class="pre">PointParticle.add_grid_potential()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.add_restraint"><code class="docutils literal notranslate"><span class="pre">PointParticle.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.PointParticle.duplicate"><code class="docutils literal notranslate"><span class="pre">PointParticle.duplicate()</span></code></a></li>
@@ -827,21 +1827,44 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody"><code class="docutils literal notranslate"><span class="pre">RigidBody</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.type_"><code class="docutils literal notranslate"><span class="pre">RigidBody.type_</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.idx"><code class="docutils literal notranslate"><span class="pre">RigidBody.idx</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.name"><code class="docutils literal notranslate"><span class="pre">RigidBody.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.counter"><code class="docutils literal notranslate"><span class="pre">RigidBody.counter</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.restraints"><code class="docutils literal notranslate"><span class="pre">RigidBody.restraints</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.rigid"><code class="docutils literal notranslate"><span class="pre">RigidBody.rigid</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.attached_particles"><code class="docutils literal notranslate"><span class="pre">RigidBody.attached_particles</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.add_restraint"><code class="docutils literal notranslate"><span class="pre">RigidBody.add_restraint()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.duplicate"><code class="docutils literal notranslate"><span class="pre">RigidBody.duplicate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBody.get_restraints"><code class="docutils literal notranslate"><span class="pre">RigidBody.get_restraints()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType"><code class="docutils literal notranslate"><span class="pre">RigidBodyType</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.name"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.name</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.parent"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.parent</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.moment_of_inertia"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.moment_of_inertia</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.rotational_diffusivity"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.rotational_diffusivity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.rotational_damping_coefficient</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.attached_particles"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.attached_particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.potential_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.potential_grids</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.charge_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.charge_grids</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.pmf_grids"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.pmf_grids</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.RigidBodyType.attach_particle"><code class="docutils literal notranslate"><span class="pre">RigidBodyType.attach_particle()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable"><code class="docutils literal notranslate"><span class="pre">Transformable</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.applyOrientation"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.get_collapsed_position"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.position"><code class="docutils literal notranslate"><span class="pre">Transformable.position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.orientation"><code class="docutils literal notranslate"><span class="pre">Transformable.orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.translate"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.rotate"><code class="docutils literal notranslate"><span class="pre">Transformable.rotate()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.transform"><code class="docutils literal notranslate"><span class="pre">Transformable.transform()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.translate"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.get_collapsed_position"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.core_objects.Transformable.applyOrientation"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id6"><code class="docutils literal notranslate"><span class="pre">Transformable.applyOrientation()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id7"><code class="docutils literal notranslate"><span class="pre">Transformable.get_collapsed_position()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id8"><code class="docutils literal notranslate"><span class="pre">Transformable.rotate()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id9"><code class="docutils literal notranslate"><span class="pre">Transformable.transform()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id10"><code class="docutils literal notranslate"><span class="pre">Transformable.translate()</span></code></a></li>
 </ul>
 </li>
 </ul>
diff --git a/_build/html/api/core/model.html b/_build/html/api/core/model.html
index 39446e2634e455ff61ca937533d114ef03b53d63..0ea84339ba1d55b3b7efe8ee902b4085442e2eb5 100644
--- a/_build/html/api/core/model.html
+++ b/_build/html/api/core/model.html
@@ -391,7 +391,20 @@ document.write(`
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.model.ArbdModel.add">
 <span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/model.html#ArbdModel.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.model.ArbdModel.add" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Adds a Child object to this group.</p>
+<p>This method establishes a parent-child relationship between the current object
+and the provided Child object. It checks that the provided object is a Child,
+and that it doesn’t already belong to another parent.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>x</strong> (<a class="reference internal" href="core_objects.html#arbdmodel.core_objects.Child" title="arbdmodel.core_objects.Child"><em>Child</em></a>) – The Child object to add to this group</p>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.13)"><strong>Exception</strong></a> – If x is not an instance of Child
+    If x already belongs to another parent</p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.model.ArbdModel.add_group_site">
diff --git a/_build/html/api/core/sim_config.html b/_build/html/api/core/sim_config.html
index 744c946af50de4b8f313e12ef1cc401099bff1f7..42da4aa34d302f58d0dadc5faa2cb246ca616252 100644
--- a/_build/html/api/core/sim_config.html
+++ b/_build/html/api/core/sim_config.html
@@ -347,15 +347,42 @@ document.write(`
             <nav aria-label="Page">
                 <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.num_steps"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.num_steps</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.output_period"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.output_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.pressure"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.pressure</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.viscosity"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.viscosity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.solvent_density"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.solvent_density</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.num_heavy_cluster</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.Properties"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.Properties</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.temperature"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.temperature</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf"><code class="docutils literal notranslate"><span class="pre">SimConf</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.num_steps"><code class="docutils literal notranslate"><span class="pre">SimConf.num_steps</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.output_period"><code class="docutils literal notranslate"><span class="pre">SimConf.output_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.integrator"><code class="docutils literal notranslate"><span class="pre">SimConf.integrator</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.timestep"><code class="docutils literal notranslate"><span class="pre">SimConf.timestep</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.thermostat"><code class="docutils literal notranslate"><span class="pre">SimConf.thermostat</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.barostat"><code class="docutils literal notranslate"><span class="pre">SimConf.barostat</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.temperature"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.pressure"><code class="docutils literal notranslate"><span class="pre">SimConf.pressure</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.cutoff"><code class="docutils literal notranslate"><span class="pre">SimConf.cutoff</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.pairlist_distance"><code class="docutils literal notranslate"><span class="pre">SimConf.pairlist_distance</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.decomp_period"><code class="docutils literal notranslate"><span class="pre">SimConf.decomp_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.gpu"><code class="docutils literal notranslate"><span class="pre">SimConf.gpu</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.seed"><code class="docutils literal notranslate"><span class="pre">SimConf.seed</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.restart_file"><code class="docutils literal notranslate"><span class="pre">SimConf.restart_file</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.rigid_body_integrator"><code class="docutils literal notranslate"><span class="pre">SimConf.rigid_body_integrator</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period"><code class="docutils literal notranslate"><span class="pre">SimConf.rigid_body_grid_grid_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.viscosity"><code class="docutils literal notranslate"><span class="pre">SimConf.viscosity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.solvent_density"><code class="docutils literal notranslate"><span class="pre">SimConf.solvent_density</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.num_heavy_cluster"><code class="docutils literal notranslate"><span class="pre">SimConf.num_heavy_cluster</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.combine"><code class="docutils literal notranslate"><span class="pre">SimConf.combine()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.get_binary"><code class="docutils literal notranslate"><span class="pre">SimConf.get_binary()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.items"><code class="docutils literal notranslate"><span class="pre">SimConf.items()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.set_binary"><code class="docutils literal notranslate"><span class="pre">SimConf.set_binary()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.temperature"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
 </ul>
 </li>
 </ul>
@@ -379,10 +406,127 @@ classes for configuring simulation parameters.</p>
 <dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DefaultSimConf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">num_steps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">100000.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_period</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1000.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">integrator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'MD'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2e-05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">thermostat</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Langevin'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">barostat</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temperature</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">295</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pressure</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pairlist_distance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">decomp_period</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">40</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restart_file</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gpu</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">viscosity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.01</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">solvent_density</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_heavy_cluster</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">3</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/sim_config.html#DefaultSimConf"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.sim_config.SimConf" title="arbdmodel.sim_config.SimConf"><code class="xref py py-class docutils literal notranslate"><span class="pre">SimConf</span></code></a></p>
-<p>Generic class describing properties for a simulation with default binary paths</p>
-<dl class="py property">
+<p>Generic class describing properties for a simulation with default binary paths.
+This class extends SimConf to provide default binary paths and configuration parameters
+for molecular dynamics simulations using ARBD.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>num_steps</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Number of simulation steps to run, default 1e5.</p></li>
+<li><p><strong>output_period</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Period for output generation, default 1e3.</p></li>
+<li><p><strong>integrator</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>optional</em>) – Integration method, default ‘MD’.</p></li>
+<li><p><strong>timestep</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Simulation timestep in ns, default 20e-6.</p></li>
+<li><p><strong>thermostat</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>optional</em>) – Thermostat type, default ‘Langevin’.</p></li>
+<li><p><strong>barostat</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em> or </em><em>None</em><em>, </em><em>optional</em>) – Barostat type if any, default None.</p></li>
+<li><p><strong>temperature</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Simulation temperature in K, default 295.</p></li>
+<li><p><strong>pressure</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Pressure value for barostat if used, default 1.</p></li>
+<li><p><strong>cutoff</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Interaction cutoff distance, default 50.</p></li>
+<li><p><strong>pairlist_distance</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em> or </em><em>None</em><em>, </em><em>optional</em>) – Pairlist buffer distance, default None.</p></li>
+<li><p><strong>decomp_period</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em>, </em><em>optional</em>) – Period for domain decomposition updates, default 40.</p></li>
+<li><p><strong>seed</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em> or </em><em>None</em><em>, </em><em>optional</em>) – Random seed for simulation, default None (random).</p></li>
+<li><p><strong>restart_file</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em> or </em><em>None</em><em>, </em><em>optional</em>) – Path to restart file if continuing a simulation, default None.</p></li>
+<li><p><strong>gpu</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em>, </em><em>optional</em>) – GPU device index to use, default 0.</p></li>
+<li><p><strong>viscosity</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Solvent viscosity, default 0.01.</p></li>
+<li><p><strong>solvent_density</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>optional</em>) – Density of the solvent, default 1.0.</p></li>
+<li><p><strong>num_heavy_cluster</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em>, </em><em>optional</em>) – Number of heavy atoms per cluster, default 3.</p></li>
+<li><p><strong>**kwargs</strong> – Additional keyword arguments to pass to SimConf.</p></li>
+</ul>
+</dd>
+</dl>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.num_steps">
+<span class="sig-name descname"><span class="pre">num_steps</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.num_steps" title="Link to this definition">#</a></dt>
+<dd><p>Number of simulation steps.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.output_period">
+<span class="sig-name descname"><span class="pre">output_period</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.output_period" title="Link to this definition">#</a></dt>
+<dd><p>Period for output generation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.pressure">
+<span class="sig-name descname"><span class="pre">pressure</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.pressure" title="Link to this definition">#</a></dt>
+<dd><p>Pressure value for barostat if used.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.viscosity">
+<span class="sig-name descname"><span class="pre">viscosity</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.viscosity" title="Link to this definition">#</a></dt>
+<dd><p>Solvent viscosity.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.solvent_density">
+<span class="sig-name descname"><span class="pre">solvent_density</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.solvent_density" title="Link to this definition">#</a></dt>
+<dd><p>Density of the solvent.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster">
+<span class="sig-name descname"><span class="pre">num_heavy_cluster</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster" title="Link to this definition">#</a></dt>
+<dd><p>Number of heavy atoms per cluster.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.Properties">
+<span class="sig-name descname"><span class="pre">Properties</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.Properties" title="Link to this definition">#</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">----------</span></span></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
 <dt class="sig sig-object py" id="arbdmodel.sim_config.DefaultSimConf.temperature">
-<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.temperature" title="Link to this definition">#</a></dt>
+<span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#arbdmodel.sim_config.DefaultSimConf.temperature" title="Link to this definition">#</a></dt>
+<dd><p>Simulation temperature with validation (must be positive).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<p class="rubric">Notes</p>
+<p>The class automatically searches for binary dependencies like ‘arbd’, ‘hydropro’, ‘apbs’,
+‘vmd’, and ‘namd’, and adds their paths to the configuration if found.
+Essential binaries (currently only ‘arbd’) will generate warnings if not found.</p>
+<dl class="py property">
+<dt class="sig sig-object py" id="id0">
+<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#id0" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -391,13 +535,263 @@ classes for configuring simulation parameters.</p>
 <dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SimConf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">num_steps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_period</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">integrator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">thermostat</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">barostat</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temperature</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pressure</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pairlist_distance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">decomp_period</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gpu</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restart_file</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rigid_body_integrator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rigid_body_grid_grid_period</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">viscosity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">solvent_density</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_heavy_cluster</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">arbd_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namd_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vmd_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hydropro_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">apbs_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gmsh_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/sim_config.html#SimConf"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.sim_config.SimConf" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
-<p>Class describing properties for a (ARBD or NAMD) simulation</p>
+<p>Class describing properties for a simulation (ARBD or NAMD).
+This class stores various simulation parameters, manages binary paths, and provides
+methods to combine simulation configurations.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.num_steps">
+<span class="sig-name descname"><span class="pre">num_steps</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.num_steps" title="Link to this definition">#</a></dt>
+<dd><p>Total number of simulation steps.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.output_period">
+<span class="sig-name descname"><span class="pre">output_period</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.output_period" title="Link to this definition">#</a></dt>
+<dd><p>Frequency of output generation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.integrator">
+<span class="sig-name descname"><span class="pre">integrator</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.integrator" title="Link to this definition">#</a></dt>
+<dd><p>Type of integrator used (e.g., ‘MD’, ‘BD’).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.timestep">
+<span class="sig-name descname"><span class="pre">timestep</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.timestep" title="Link to this definition">#</a></dt>
+<dd><p>Simulation time step.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.thermostat">
+<span class="sig-name descname"><span class="pre">thermostat</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.thermostat" title="Link to this definition">#</a></dt>
+<dd><p>Type of thermostat used.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.barostat">
+<span class="sig-name descname"><span class="pre">barostat</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.barostat" title="Link to this definition">#</a></dt>
+<dd><p>Type of barostat used.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.temperature">
+<span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.temperature" title="Link to this definition">#</a></dt>
+<dd><p>Simulation temperature (must be positive).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.pressure">
+<span class="sig-name descname"><span class="pre">pressure</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.pressure" title="Link to this definition">#</a></dt>
+<dd><p>Simulation pressure.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.cutoff">
+<span class="sig-name descname"><span class="pre">cutoff</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.cutoff" title="Link to this definition">#</a></dt>
+<dd><p>Cutoff distance for interactions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.pairlist_distance">
+<span class="sig-name descname"><span class="pre">pairlist_distance</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.pairlist_distance" title="Link to this definition">#</a></dt>
+<dd><p>Distance for generating pair lists.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.decomp_period">
+<span class="sig-name descname"><span class="pre">decomp_period</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.decomp_period" title="Link to this definition">#</a></dt>
+<dd><p>Period for decomposition.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.gpu">
+<span class="sig-name descname"><span class="pre">gpu</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.gpu" title="Link to this definition">#</a></dt>
+<dd><p>Whether to use GPU acceleration.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.seed">
+<span class="sig-name descname"><span class="pre">seed</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.seed" title="Link to this definition">#</a></dt>
+<dd><p>Random seed for reproducibility.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.restart_file">
+<span class="sig-name descname"><span class="pre">restart_file</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.restart_file" title="Link to this definition">#</a></dt>
+<dd><p>Path to restart file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">#</span> <span class="pre">ARBD-specific</span> <span class="pre">parameters</span></span></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.rigid_body_integrator">
+<span class="sig-name descname"><span class="pre">rigid_body_integrator</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.rigid_body_integrator" title="Link to this definition">#</a></dt>
+<dd><p>Type of rigid body integrator.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period">
+<span class="sig-name descname"><span class="pre">rigid_body_grid_grid_period</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period" title="Link to this definition">#</a></dt>
+<dd><p>Period for rigid body grid updates.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">#</span> <span class="pre">SimpleARBD</span> <span class="pre">parameters</span></span></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.viscosity">
+<span class="sig-name descname"><span class="pre">viscosity</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.viscosity" title="Link to this definition">#</a></dt>
+<dd><p>Solvent viscosity.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.solvent_density">
+<span class="sig-name descname"><span class="pre">solvent_density</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.solvent_density" title="Link to this definition">#</a></dt>
+<dd><p>Solvent density. in g/cm^3</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.num_heavy_cluster">
+<span class="sig-name descname"><span class="pre">num_heavy_cluster</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.num_heavy_cluster" title="Link to this definition">#</a></dt>
+<dd><p>Number of heavy clusters.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.combine">
 <span class="sig-name descname"><span class="pre">combine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">policy</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'override'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">warn</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/sim_config.html#SimConf.combine"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.sim_config.SimConf.combine" title="Link to this definition">#</a></dt>
-<dd><p>Creates a new SimConf object whose properties are
-initialized to be from “self”, but are overridden with
-properties in “other”, provided they are not None</p>
+<dd><p>Combines two SimConf objects into a new one based on a specified policy.</p>
+<p>This method creates a new SimConf object whose properties are initialized from ‘self’,
+but are potentially overridden with properties from ‘other’ according to the specified policy.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>other</strong> (<a class="reference internal" href="#arbdmodel.sim_config.SimConf" title="arbdmodel.sim_config.SimConf"><em>SimConf</em></a>) – The SimConf object whose properties may override the properties of ‘self’.</p></li>
+<li><p><strong>policy</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>optional</em>) – <p>The policy to use when combining properties. Options are:
+- ‘override’: Always use the value from ‘other’ if it’s not None (default).
+- ‘best’: Use the more appropriate value based on property-specific rules:</p>
+<blockquote>
+<div><ul>
+<li><p>For ‘timestep’, ‘output_period’, ‘decomp_period’: uses the minimum value.</p></li>
+<li><p>For ‘num_steps’, ‘cutoff’, ‘pairlist_distance’: uses the maximum value.</p></li>
+<li><p>For ‘integrator’: prefers ‘MD’ over ‘BD’.</p></li>
+<li><p>For other attributes: uses the value from ‘other’ with a warning.</p></li>
+</ul>
+</div></blockquote>
+</p></li>
+<li><p><strong>warn</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a><em>, </em><em>optional</em>) – If True, log warnings when attribute values differ and policy=’best’ (default: False).</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>A new SimConf object with combined properties.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="#arbdmodel.sim_config.SimConf" title="arbdmodel.sim_config.SimConf">SimConf</a></p>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.13)"><strong>ValueError</strong></a> – If an unrecognized policy is specified.</p>
+</dd>
+</dl>
 </dd></dl>
 
 <dl class="py method">
@@ -425,11 +819,32 @@ for graceful handling of missing optional dependencies.</p>
 <dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.set_binary">
 <span class="sig-name descname"><span class="pre">set_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/sim_config.html#SimConf.set_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.sim_config.SimConf.set_binary" title="Link to this definition">#</a></dt>
 <dd><p>Set the path to a specific binary.</p>
+<p>This method updates the path for a binary in the BinaryManager. It associates the given binary name
+with the specified file path.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>name</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – The name of the binary to set the path for.</p></li>
+<li><p><strong>path</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – The file system path to the binary.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The path that was set.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+<p class="rubric">Examples</p>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">config</span><span class="o">.</span><span class="n">set_binary</span><span class="p">(</span><span class="s1">&#39;ffmpeg&#39;</span><span class="p">,</span> <span class="s1">&#39;/usr/local/bin/ffmpeg&#39;</span><span class="p">)</span>
+<span class="go">&#39;/usr/local/bin/ffmpeg&#39;</span>
+</pre></div>
+</div>
 </dd></dl>
 
 <dl class="py property">
-<dt class="sig sig-object py" id="arbdmodel.sim_config.SimConf.temperature">
-<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#arbdmodel.sim_config.SimConf.temperature" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id1">
+<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">temperature</span></span><a class="headerlink" href="#id1" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -483,15 +898,42 @@ for graceful handling of missing optional dependencies.</p>
   <nav class="bd-toc-nav page-toc">
     <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.num_steps"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.num_steps</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.output_period"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.output_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.pressure"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.pressure</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.viscosity"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.viscosity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.solvent_density"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.solvent_density</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.num_heavy_cluster</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.Properties"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.Properties</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.DefaultSimConf.temperature"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">DefaultSimConf.temperature</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf"><code class="docutils literal notranslate"><span class="pre">SimConf</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.num_steps"><code class="docutils literal notranslate"><span class="pre">SimConf.num_steps</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.output_period"><code class="docutils literal notranslate"><span class="pre">SimConf.output_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.integrator"><code class="docutils literal notranslate"><span class="pre">SimConf.integrator</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.timestep"><code class="docutils literal notranslate"><span class="pre">SimConf.timestep</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.thermostat"><code class="docutils literal notranslate"><span class="pre">SimConf.thermostat</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.barostat"><code class="docutils literal notranslate"><span class="pre">SimConf.barostat</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.temperature"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.pressure"><code class="docutils literal notranslate"><span class="pre">SimConf.pressure</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.cutoff"><code class="docutils literal notranslate"><span class="pre">SimConf.cutoff</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.pairlist_distance"><code class="docutils literal notranslate"><span class="pre">SimConf.pairlist_distance</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.decomp_period"><code class="docutils literal notranslate"><span class="pre">SimConf.decomp_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.gpu"><code class="docutils literal notranslate"><span class="pre">SimConf.gpu</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.seed"><code class="docutils literal notranslate"><span class="pre">SimConf.seed</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.restart_file"><code class="docutils literal notranslate"><span class="pre">SimConf.restart_file</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.rigid_body_integrator"><code class="docutils literal notranslate"><span class="pre">SimConf.rigid_body_integrator</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period"><code class="docutils literal notranslate"><span class="pre">SimConf.rigid_body_grid_grid_period</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.viscosity"><code class="docutils literal notranslate"><span class="pre">SimConf.viscosity</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.solvent_density"><code class="docutils literal notranslate"><span class="pre">SimConf.solvent_density</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.num_heavy_cluster"><code class="docutils literal notranslate"><span class="pre">SimConf.num_heavy_cluster</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.combine"><code class="docutils literal notranslate"><span class="pre">SimConf.combine()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.get_binary"><code class="docutils literal notranslate"><span class="pre">SimConf.get_binary()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.items"><code class="docutils literal notranslate"><span class="pre">SimConf.items()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.set_binary"><code class="docutils literal notranslate"><span class="pre">SimConf.set_binary()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.sim_config.SimConf.temperature"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">SimConf.temperature</span></code></a></li>
 </ul>
 </li>
 </ul>
diff --git a/_build/html/api/polymer_modeling/polymer.html b/_build/html/api/polymer_modeling/polymer.html
index 3c00dc073280c440ff894ff1fa43a90b20414af3..d56f5fe56c4ccf972d8235ee9773330b3bb8275a 100644
--- a/_build/html/api/polymer_modeling/polymer.html
+++ b/_build/html/api/polymer_modeling/polymer.html
@@ -347,9 +347,15 @@ document.write(`
             <nav aria-label="Page">
                 <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement"><code class="docutils literal notranslate"><span class="pre">ConnectableElement</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_connections_and_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_location_at"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.locations</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.connection_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.connection_locations</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.connections"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.connections</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_location_at"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_connections_and_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id2"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_locations()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.Connection"><code class="docutils literal notranslate"><span class="pre">Connection</span></code></a><ul class="nav section-nav flex-column">
@@ -387,6 +393,15 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection"><code class="docutils literal notranslate"><span class="pre">PolymerSection</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.segname"><code class="docutils literal notranslate"><span class="pre">PolymerSection.segname</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.num_monomers"><code class="docutils literal notranslate"><span class="pre">PolymerSection.num_monomers</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.monomer_length"><code class="docutils literal notranslate"><span class="pre">PolymerSection.monomer_length</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.start_position"><code class="docutils literal notranslate"><span class="pre">PolymerSection.start_position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.end_position"><code class="docutils literal notranslate"><span class="pre">PolymerSection.end_position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.start_orientation"><code class="docutils literal notranslate"><span class="pre">PolymerSection.start_orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.position_spline_params"><code class="docutils literal notranslate"><span class="pre">PolymerSection.position_spline_params</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.quaternion_spline_params"><code class="docutils literal notranslate"><span class="pre">PolymerSection.quaternion_spline_params</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.sequence"><code class="docutils literal notranslate"><span class="pre">PolymerSection.sequence</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.add_location"><code class="docutils literal notranslate"><span class="pre">PolymerSection.add_location()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.contour_to_monomer_index"><code class="docutils literal notranslate"><span class="pre">PolymerSection.contour_to_monomer_index()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.contour_to_orientation"><code class="docutils literal notranslate"><span class="pre">PolymerSection.contour_to_orientation()</span></code></a></li>
@@ -422,22 +437,83 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ConnectableElement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connection_locations</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">connections</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
-<p>Abstract base class</p>
+<p>ConnectableElement is an abstract base class that represents an object that can be connected to other objects.
+This class provides functionality for managing connections between objects, where connections are typically made between ‘Location’ objects that are associated with the ConnectableElement.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.locations">
+<span class="sig-name descname"><span class="pre">locations</span></span><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.locations" title="Link to this definition">#</a></dt>
+<dd><p>A list of Location objects associated with this element. Alias for connection_locations.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.connection_locations">
+<span class="sig-name descname"><span class="pre">connection_locations</span></span><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.connection_locations" title="Link to this definition">#</a></dt>
+<dd><p>A list of Location objects associated with this element.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.connections">
+<span class="sig-name descname"><span class="pre">connections</span></span><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.connections" title="Link to this definition">#</a></dt>
+<dd><p>A list of Connection objects that this element is a part of.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.get_locations">
+<span class="sig-name descname"><span class="pre">get_locations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type_</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_locations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.get_locations" title="Link to this definition">#</a></dt>
+<dd><p>Returns locations of a specified type, excluding certain types.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.get_location_at">
+<span class="sig-name descname"><span class="pre">get_location_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contour_position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_fwd_strand</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'crossover'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_location_at"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.get_location_at" title="Link to this definition">#</a></dt>
+<dd><p>Returns a location at a specific contour position and strand orientation,
+creating one if necessary.</p>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.get_connections_and_locations">
 <span class="sig-name descname"><span class="pre">get_connections_and_locations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connection_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_connections_and_locations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.get_connections_and_locations" title="Link to this definition">#</a></dt>
+<dd><p>Returns a list of [connection, location_in_self, location_in_other] for each connection.</p>
+</dd></dl>
+
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<ul class="simple">
+<li><p>The class is designed to be subclassed.</p></li>
+<li><p>It appears to be part of a system for modeling polymer structures, possibly DNA origami or similar structures.</p></li>
+<li><p>The class enforces that objects cannot be connected to themselves directly.</p></li>
+</ul>
+</div>
+<dl class="py method">
+<dt class="sig sig-object py" id="id0">
+<span class="sig-name descname"><span class="pre">get_connections_and_locations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connection_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_connections_and_locations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition">#</a></dt>
 <dd><p>Returns a list with each entry of the form:
 connection, location_in_self, location_in_other</p>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.get_location_at">
-<span class="sig-name descname"><span class="pre">get_location_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contour_position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_fwd_strand</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'crossover'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_location_at"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.get_location_at" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id1">
+<span class="sig-name descname"><span class="pre">get_location_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contour_position</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_fwd_strand</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'crossover'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_location_at"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="arbdmodel.polymer.ConnectableElement.get_locations">
-<span class="sig-name descname"><span class="pre">get_locations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type_</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_locations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.ConnectableElement.get_locations" title="Link to this definition">#</a></dt>
+<dt class="sig sig-object py" id="id2">
+<span class="sig-name descname"><span class="pre">get_locations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type_</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#ConnectableElement.get_locations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -575,7 +651,109 @@ connection, location_in_self, location_in_other</p>
 <dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PolymerSection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_monomers</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">monomer_length</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_position</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_position</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#PolymerSection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.PolymerSection" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.polymer.ConnectableElement" title="arbdmodel.polymer.ConnectableElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">ConnectableElement</span></code></a></p>
-<p>Base class that describes a linear section of a polymer</p>
+<p>Base class that describes a linear section of a polymer.
+A PolymerSection represents a continuous section of a polymer, defined by the number of monomers
+and their spatial properties. It handles spatial transformations, contour-to-position mapping,
+and manages connections to other polymer elements.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.segname">
+<span class="sig-name descname"><span class="pre">segname</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.segname" title="Link to this definition">#</a></dt>
+<dd><p>Name of the polymer section.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.num_monomers">
+<span class="sig-name descname"><span class="pre">num_monomers</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.num_monomers" title="Link to this definition">#</a></dt>
+<dd><p>Number of monomers in this polymer section.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.monomer_length">
+<span class="sig-name descname"><span class="pre">monomer_length</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.monomer_length" title="Link to this definition">#</a></dt>
+<dd><p>Length of each monomer.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)">float</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.start_position">
+<span class="sig-name descname"><span class="pre">start_position</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.start_position" title="Link to this definition">#</a></dt>
+<dd><p>3D coordinates of the section’s starting point.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>ndarray</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.end_position">
+<span class="sig-name descname"><span class="pre">end_position</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.end_position" title="Link to this definition">#</a></dt>
+<dd><p>3D coordinates of the section’s ending point.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>ndarray</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.start_orientation">
+<span class="sig-name descname"><span class="pre">start_orientation</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.start_orientation" title="Link to this definition">#</a></dt>
+<dd><p>Initial orientation matrix.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>ndarray, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.position_spline_params">
+<span class="sig-name descname"><span class="pre">position_spline_params</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.position_spline_params" title="Link to this definition">#</a></dt>
+<dd><p>Spline parameters for position interpolation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.quaternion_spline_params">
+<span class="sig-name descname"><span class="pre">quaternion_spline_params</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.quaternion_spline_params" title="Link to this definition">#</a></dt>
+<dd><p>Spline parameters for orientation interpolation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.sequence">
+<span class="sig-name descname"><span class="pre">sequence</span></span><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.sequence" title="Link to this definition">#</a></dt>
+<dd><p>Sequence of monomers if applicable.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a>, optional</p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.add_location">
 <span class="sig-name descname"><span class="pre">add_location</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">nt</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type_</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_fwd_strand</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#PolymerSection.add_location"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.add_location" title="Link to this definition">#</a></dt>
@@ -656,12 +834,50 @@ connection, location_in_self, location_in_other</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.set_orientation_splines">
 <span class="sig-name descname"><span class="pre">set_orientation_splines</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contours</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quaternions</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#PolymerSection.set_orientation_splines"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.set_orientation_splines" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Set spline interpolation parameters for orientation.</p>
+<p>Creates a linear interpolation spline (k=1) for quaternion orientations along contour points.
+The spline parameters are stored in the self.quaternion_spline_params attribute.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>contours</strong> (<em>array_like</em>) – Parametric positions along the polymer contour where orientations are defined.</p></li>
+<li><p><strong>quaternions</strong> (<em>array_like</em>) – Array of quaternions defining orientations at each contour point.
+Should be of shape (n, 4) where n is the number of contour points.</p></li>
+</ul>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>Uses scipy.interpolate.splprep with smoothing factor s=0 (exact interpolation)
+and k=1 (linear interpolation).</p>
+</div>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.set_splines">
 <span class="sig-name descname"><span class="pre">set_splines</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contours</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coords</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/polymer.html#PolymerSection.set_splines"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.polymer.PolymerSection.set_splines" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Sets up splines for the polymer’s position.</p>
+<p>This method creates cubic splines that interpolate the polymer’s position coordinates
+along its contour. These splines can be used for smooth interpolation between discrete
+polymer positions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>contours</strong> (<em>array_like</em>) – Contour parameter values corresponding to each coordinate point.
+Typically represents positions along the polymer chain.</p></li>
+<li><p><strong>coords</strong> (<em>ndarray</em>) – Coordinates of the polymer, shape (n_points, n_dimensions).
+Each row represents the position of a polymer segment in space.</p></li>
+</ul>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The method uses scipy.interpolate.splprep with linear splines (k=1) and no smoothing (s=0).
+The resulting spline parameters are stored in self.position_spline_params as a tuple
+containing the knot points, coefficients, and degree of the spline (tck) and
+the parameter values (u).</p>
+</div>
+</dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.polymer.PolymerSection.translate">
@@ -719,9 +935,15 @@ connection, location_in_self, location_in_other</p>
   <nav class="bd-toc-nav page-toc">
     <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement"><code class="docutils literal notranslate"><span class="pre">ConnectableElement</span></code></a><ul class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_connections_and_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_location_at"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.locations</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.connection_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.connection_locations</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.connections"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.connections</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_location_at"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.ConnectableElement.get_connections_and_locations"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id0"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_connections_and_locations()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id1"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_location_at()</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#id2"><code class="docutils literal notranslate"><span class="pre">ConnectableElement.get_locations()</span></code></a></li>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.Connection"><code class="docutils literal notranslate"><span class="pre">Connection</span></code></a><ul class="nav section-nav flex-column">
@@ -759,6 +981,15 @@ connection, location_in_self, location_in_other</p>
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection"><code class="docutils literal notranslate"><span class="pre">PolymerSection</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.segname"><code class="docutils literal notranslate"><span class="pre">PolymerSection.segname</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.num_monomers"><code class="docutils literal notranslate"><span class="pre">PolymerSection.num_monomers</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.monomer_length"><code class="docutils literal notranslate"><span class="pre">PolymerSection.monomer_length</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.start_position"><code class="docutils literal notranslate"><span class="pre">PolymerSection.start_position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.end_position"><code class="docutils literal notranslate"><span class="pre">PolymerSection.end_position</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.start_orientation"><code class="docutils literal notranslate"><span class="pre">PolymerSection.start_orientation</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.position_spline_params"><code class="docutils literal notranslate"><span class="pre">PolymerSection.position_spline_params</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.quaternion_spline_params"><code class="docutils literal notranslate"><span class="pre">PolymerSection.quaternion_spline_params</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.sequence"><code class="docutils literal notranslate"><span class="pre">PolymerSection.sequence</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.add_location"><code class="docutils literal notranslate"><span class="pre">PolymerSection.add_location()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.contour_to_monomer_index"><code class="docutils literal notranslate"><span class="pre">PolymerSection.contour_to_monomer_index()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.polymer.PolymerSection.contour_to_orientation"><code class="docutils literal notranslate"><span class="pre">PolymerSection.contour_to_orientation()</span></code></a></li>
diff --git a/_build/html/api/simulation_engines/engine.html b/_build/html/api/simulation_engines/engine.html
index a5b3bd30501916a2a4ade7ac12013ee93271cadc..452853e183b0da3ecc2b52b000b35cbfecb006a2 100644
--- a/_build/html/api/simulation_engines/engine.html
+++ b/_build/html/api/simulation_engines/engine.html
@@ -352,6 +352,15 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine"><code class="docutils literal notranslate"><span class="pre">ArbdEngine</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.extra_bd_file_lines"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.extra_bd_file_lines</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.configuration"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.configuration</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.num_particles"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.num_particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.particles"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.type_counts"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.type_counts</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine._written_bond_files"><code class="docutils literal notranslate"><span class="pre">ArbdEngine._written_bond_files</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.cacheUpToDate"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.cacheUpToDate</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.potential_directory"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.potential_directory</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.rb_type_dirs"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.rb_type_dirs</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.default_binary"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.default_binary</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.get_default_conf"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.get_default_conf()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.write_simulation_files"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.write_simulation_files()</span></code></a></li>
@@ -440,7 +449,109 @@ document.write(`
 <dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine">
 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ArbdEngine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">extra_bd_file_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">conf_params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/engine.html#ArbdEngine"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.engine.ArbdEngine" title="Link to this definition">#</a></dt>
 <dd><p>Bases: <a class="reference internal" href="#arbdmodel.engine.SimEngine" title="arbdmodel.engine.SimEngine"><code class="xref py py-class docutils literal notranslate"><span class="pre">SimEngine</span></code></a></p>
-<p>Interface to ARBD simulation engine</p>
+<p>Interface to ARBD simulation engine.
+The ArbdEngine class provides an interface to the ARBD (Atomically-Resolved Brownian Dynamics)
+simulation engine. It handles the generation of simulation configuration files, particle coordinates,
+and various potential files required for ARBD simulations.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.extra_bd_file_lines">
+<span class="sig-name descname"><span class="pre">extra_bd_file_lines</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.extra_bd_file_lines" title="Link to this definition">#</a></dt>
+<dd><p>Additional lines to be added to the BD configuration file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.configuration">
+<span class="sig-name descname"><span class="pre">configuration</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.configuration" title="Link to this definition">#</a></dt>
+<dd><p>The simulation configuration object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="reference internal" href="../core/sim_config.html#arbdmodel.sim_config.SimConf" title="arbdmodel.sim_config.SimConf">SimConf</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.num_particles">
+<span class="sig-name descname"><span class="pre">num_particles</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.num_particles" title="Link to this definition">#</a></dt>
+<dd><p>Number of particles in the system.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.particles">
+<span class="sig-name descname"><span class="pre">particles</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.particles" title="Link to this definition">#</a></dt>
+<dd><p>List of particles in the system.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.type_counts">
+<span class="sig-name descname"><span class="pre">type_counts</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.type_counts" title="Link to this definition">#</a></dt>
+<dd><p>Count of each particle type.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)">dict</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine._written_bond_files">
+<span class="sig-name descname"><span class="pre">_written_bond_files</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine._written_bond_files" title="Link to this definition">#</a></dt>
+<dd><p>Dictionary tracking written bond files.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)">dict</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.cacheUpToDate">
+<span class="sig-name descname"><span class="pre">cacheUpToDate</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.cacheUpToDate" title="Link to this definition">#</a></dt>
+<dd><p>Flag indicating if the cache is current.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.potential_directory">
+<span class="sig-name descname"><span class="pre">potential_directory</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.potential_directory" title="Link to this definition">#</a></dt>
+<dd><p>Directory for storing potential files.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.rb_type_dirs">
+<span class="sig-name descname"><span class="pre">rb_type_dirs</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.rb_type_dirs" title="Link to this definition">#</a></dt>
+<dd><p>Directories for rigid body types.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)">dict</a></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py property">
 <dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.default_binary">
 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">default_binary</span></span><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.default_binary" title="Link to this definition">#</a></dt>
@@ -454,7 +565,34 @@ document.write(`
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.engine.ArbdEngine.write_simulation_files">
 <span class="sig-name descname"><span class="pre">write_simulation_files</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">conf_params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/engine.html#ArbdEngine.write_simulation_files"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.engine.ArbdEngine.write_simulation_files" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Write simulation files for a model.
+This method generates all necessary files for simulation, including system
+topology files (PSF, PDB), particle coordinates, and various potential files.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>model</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><em>object</em></a>) – The model object containing all necessary information about the system.</p></li>
+<li><p><strong>output_name</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – Base name for output files.</p></li>
+<li><p><strong>configuration</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)"><em>dict</em></a><em>, </em><em>optional</em>) – Configuration dictionary for the model. If None, a configuration will be
+generated using _get_combined_conf.</p></li>
+<li><p><strong>**conf_params</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)"><em>dict</em></a>) – Additional configuration parameters to pass to _get_combined_conf if
+configuration is None.</p></li>
+</ul>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The method creates directory structure for potentials and rigid body types
+if they don’t exist. It generates the following files:
+- PSF and PDB topology files
+- Particle configuration file
+- Various potential files (restraint, bond, angle, dihedral, etc.)
+- Rigid body coordinate and configuration files
+- Creates directories if they don’t exist
+- Sets self.potential_directory and self.rb_type_dirs attributes
+- Writes multiple files to disk</p>
+</div>
+</dd></dl>
 
 </dd></dl>
 
@@ -539,7 +677,7 @@ document.write(`
 
 <dl class="py method">
 <dt class="sig sig-object py" id="arbdmodel.engine.NamdEngine.write_simulation_files">
-<span class="sig-name descname"><span class="pre">write_simulation_files</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">write_pqr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">copy_ff_from</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PosixPath('/data/server10/pinyili2/arbdmodel-simple/arbdmodel/resources/charmm36.nbfix')</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">conf_params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/engine.html#NamdEngine.write_simulation_files"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.engine.NamdEngine.write_simulation_files" title="Link to this definition">#</a></dt>
+<span class="sig-name descname"><span class="pre">write_simulation_files</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">write_pqr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">copy_ff_from</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PosixPath('/Users/pinyili/Documents/research/arbdmodel-simple/arbdmodel/resources/charmm36.nbfix')</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">conf_params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/engine.html#NamdEngine.write_simulation_files"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.engine.NamdEngine.write_simulation_files" title="Link to this definition">#</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
@@ -625,6 +763,15 @@ document.write(`
 </ul>
 </li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine"><code class="docutils literal notranslate"><span class="pre">ArbdEngine</span></code></a><ul class="nav section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.extra_bd_file_lines"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.extra_bd_file_lines</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.configuration"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.configuration</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.num_particles"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.num_particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.particles"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.particles</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.type_counts"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.type_counts</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine._written_bond_files"><code class="docutils literal notranslate"><span class="pre">ArbdEngine._written_bond_files</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.cacheUpToDate"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.cacheUpToDate</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.potential_directory"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.potential_directory</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.rb_type_dirs"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.rb_type_dirs</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.default_binary"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.default_binary</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.get_default_conf"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.get_default_conf()</span></code></a></li>
 <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#arbdmodel.engine.ArbdEngine.write_simulation_files"><code class="docutils literal notranslate"><span class="pre">ArbdEngine.write_simulation_files()</span></code></a></li>
diff --git a/_build/html/api/utilities/binary_manager.html b/_build/html/api/utilities/binary_manager.html
index cdf5ceaef2b137d1fba3e181ec878f861559b782..d58cef4febe39c4931d90e0bcd774081f445d1f9 100644
--- a/_build/html/api/utilities/binary_manager.html
+++ b/_build/html/api/utilities/binary_manager.html
@@ -368,7 +368,12 @@ This module provides a singleton object to manage paths to external binaries.</p
 <dt class="sig sig-object py" id="arbdmodel.binary_manager.initialize_binary_paths">
 <span class="sig-name descname"><span class="pre">initialize_binary_paths</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/binary_manager.html#initialize_binary_paths"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.binary_manager.initialize_binary_paths" title="Link to this definition">#</a></dt>
 <dd><p>Initialize binary paths from environment variables.
-This function should be called during package initialization.</p>
+This function should be called during package initialization.
+If users don’t wish to call this function, they can set the paths manually.</p>
+<p>Example:
+&gt;&gt;arbd_path = BinaryManager.get_binary_path(“arbd”)
+&gt;&gt;print(f”ARBD binary path: {arbd_path}”)</p>
+<p>&gt;&gt;BinaryManager.set_binary_path(“hydropro”, “/path/to/hydropro”)</p>
 </dd></dl>
 
 </section>
diff --git a/_build/html/api/utilities/grid.html b/_build/html/api/utilities/grid.html
index e9731a0660bd4ed47bf9ec1ca997c8e5840f2707..1ecb2a8ad6d224182447100caa4e404c7c75b3be 100644
--- a/_build/html/api/utilities/grid.html
+++ b/_build/html/api/utilities/grid.html
@@ -443,7 +443,28 @@ document.write(`
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.constant_force">
 <span class="sig-name descname"><span class="pre">constant_force</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">force</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dimensions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resolution</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">origin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/grid.html#constant_force"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.grid.constant_force" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Generate a constant force field over a 3D grid.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>force</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a>) – The force vector [fx, fy, fz] to apply. If a scalar is provided,
+it’s interpreted as [0, 0, scalar].</p></li>
+<li><p><strong>dimensions</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a>) – The physical dimensions [dx, dy, dz] of the grid in length units.</p></li>
+<li><p><strong>resolution</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a>) – The resolution of each voxel [rx, ry, rz]. If a scalar is provided,
+it’s used for all three dimensions.</p></li>
+<li><p><strong>origin</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em>, </em><em>optional</em>) – The coordinates of the grid origin [ox, oy, oz]. If not provided,
+defaults to [-dx/2, -dy/2, -dz/2].</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>A 3D array representing the potential field U = fx*X + fy*Y + fz*Z,
+where X, Y, Z are the coordinate grids.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+</dd>
+</dl>
+</dd></dl>
 
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.convolve_kernel_truncate">
@@ -469,11 +490,13 @@ document.write(`
 </ul>
 </dd>
 </dl>
-<p class="rubric">Notes</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
 <ul class="simple">
 <li><p>This function assumes that the kernel has odd dimensions along each dimension.</p></li>
 <li><p>If any dimension of the kernel has an even number of elements, a warning message is printed to stderr indicating that the output may be shifted.</p></li>
 </ul>
+</div>
 <p class="rubric">Example</p>
 <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span> <span class="p">[</span><span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">]])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">kernel</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">]])</span>
@@ -509,10 +532,12 @@ document.write(`
 <dd class="field-odd"><p>ndarray</p>
 </dd>
 </dl>
-<p class="rubric">Notes</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
 <ul class="simple">
 <li><p>This function requires the ‘skimage’ package, specifically the ‘find_boundaries’ function from ‘skimage.segmentation’.</p></li>
 </ul>
+</div>
 <p class="rubric">Example</p>
 <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">grid</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">]])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">filled_grid</span> <span class="o">=</span> <span class="n">fill_nans</span><span class="p">(</span><span class="n">grid</span><span class="p">,</span> <span class="n">neighborhood</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">max_iterations</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
@@ -530,7 +555,38 @@ document.write(`
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.get_slice_enclosing_smaller_grid">
 <span class="sig-name descname"><span class="pre">get_slice_enclosing_smaller_grid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">grid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">smaller_grid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/grid.html#get_slice_enclosing_smaller_grid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.grid.get_slice_enclosing_smaller_grid" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Calculates the slices necessary to extract a portion of a larger grid that encloses a smaller grid.
+This function computes the slice indices needed to extract a subgrid from a larger grid
+that corresponds to the region covered by a smaller grid. The function assumes that both
+grids are orthonormal and have the same grid spacing (delta).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>grid</strong> (<em>Grid</em>) – The larger grid object containing a 3D array and grid metadata.
+Must have attributes: grid (3D numpy array), origin (3D coordinates), and delta (grid spacing).</p></li>
+<li><p><strong>smaller_grid</strong> (<em>Grid</em>) – The smaller grid object that is fully contained within the larger grid.
+Must have the same attributes as grid.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>A list of three slice objects, one for each dimension, that can be used to extract
+the portion of the larger grid that corresponds to the smaller grid.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)">list</a> of <a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#slice" title="(in Python v3.13)">slice</a></p>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#AssertionError" title="(in Python v3.13)"><strong>AssertionError</strong></a> – If grids are not 3D, if grid spacings are not identical, if smaller_grid is not
+    contained within grid, if grids are not aligned on grid points, or if smaller_grid
+    extends beyond the boundaries of grid.</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The function assumes that both grids are aligned such that the origin of smaller_grid
+falls exactly on a grid point of the larger grid.</p>
+</div>
+</dd></dl>
 
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.isotropic_kernel">
@@ -593,11 +649,13 @@ It should accept a scalar or an array-like object and return a scalar or an arra
 <dd class="field-odd"><p>ndarray</p>
 </dd>
 </dl>
-<p class="rubric">Notes</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
 <ul class="simple">
 <li><p>Currently, only the ‘mirror’ fill value option is implemented.</p></li>
 <li><p>This function requires the ‘average_grids’ function from an external source.</p></li>
 </ul>
+</div>
 <p class="rubric">Example</p>
 <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">grid</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span> <span class="p">[</span><span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">]])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">averaged_grid</span> <span class="o">=</span> <span class="n">neighborhood_average</span><span class="p">(</span><span class="n">grid</span><span class="p">,</span> <span class="n">neighborhood</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">fill_value</span><span class="o">=</span><span class="s1">&#39;mirror&#39;</span><span class="p">)</span>
@@ -614,35 +672,61 @@ It should accept a scalar or an array-like object and return a scalar or an arra
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.slab_potential_z">
 <span class="sig-name descname"><span class="pre">slab_potential_z</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">force_constant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dimensions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resolution</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exponent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/grid.html#slab_potential_z"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.grid.slab_potential_z" title="Link to this definition">#</a></dt>
-<dd><p>Generate a potential energy field that depends only on the z-coordinate, creating a slab-like potential.
-:param force_constant: The strength of the potential (energy per unit distance^exponent).
-:type force_constant: float
-:param center: The (x, y, z) coordinates of the center of the potential.
-:type center: list or tuple
-:param dimensions: The (x, y, z) dimensions of the grid in length units.
-:type dimensions: list or tuple
-:param resolution: The grid spacing in length units. If a single value is provided, it’s used for all dimensions.
-:type resolution: float or list or tuple
-:param exponent: The exponent determining the shape of the potential. Default is 2 (harmonic potential).
-:type exponent: int, optional</p>
+<dd><p>Generate a potential energy field that depends only on the z-coordinate, creating a slab-like potential.</p>
 <dl class="field-list simple">
-<dt class="field-odd">Returns<span class="colon">:</span></dt>
-<dd class="field-odd"><p>A 3D array representing the potential energy field, where the energy depends only
-on the distance from the z-center raised to the specified exponent.</p>
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>force_constant</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a>) – The strength of the potential (energy per unit distance^exponent).</p></li>
+<li><p><strong>center</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a>) – The (x, y, z) coordinates of the center of the potential.</p></li>
+<li><p><strong>dimensions</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a>) – The (x, y, z) dimensions of the grid in length units.</p></li>
+<li><p><strong>resolution</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a>) – The grid spacing in length units. If a single value is provided, it’s used for all dimensions.</p></li>
+<li><p><strong>exponent</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em>, </em><em>optional</em>) – The exponent determining the shape of the potential. Default is 2 (harmonic potential).</p></li>
+</ul>
 </dd>
-<dt class="field-even">Return type<span class="colon">:</span></dt>
-<dd class="field-even"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p><ul class="simple">
+<li><p><em>numpy.ndarray</em> – A 3D array representing the potential energy field, where the energy depends only
+on the distance from the z-center raised to the specified exponent.</p></li>
+<li><p><em>Note</em></p></li>
+<li><p><em>—–</em></p></li>
+<li><p><em>The potential U at each point is calculated as</em></p></li>
+<li><p><em>U = (force_constant/exponent) * |z - center_z|^exponent</em></p></li>
+</ul>
+</p>
 </dd>
 </dl>
-<p class="rubric">Notes</p>
-<p>The potential U at each point is calculated as:
-U = (force_constant/exponent) * <a href="#id1"><span class="problematic" id="id2">|</span></a>z - center_z|^exponent</p>
 </dd></dl>
 
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.spherical_confinement">
 <span class="sig-name descname"><span class="pre">spherical_confinement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">force_constant</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dimensions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resolution</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exponent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/grid.html#spherical_confinement"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.grid.spherical_confinement" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Creates a spherical confinement potential field in 3D space.
+The potential is zero inside the sphere (R &lt;= radius) and follows a power law
+(force_constant/exponent) * (R-radius)^exponent outside the sphere (R &gt; radius).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>force_constant</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a>) – The force constant that determines the strength of the confinement potential.</p></li>
+<li><p><strong>radius</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a>) – Radius of the spherical confinement in the same units as dimensions and resolution.</p></li>
+<li><p><strong>dimensions</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a>) – The dimensions of the 3D space [x_dim, y_dim, z_dim].</p></li>
+<li><p><strong>resolution</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a>) – The spatial resolution of the grid. If a single value is provided, it will be used
+for all three dimensions. Otherwise, provide [x_res, y_res, z_res].</p></li>
+<li><p><strong>center</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><em>tuple</em></a><em>, </em><em>optional</em>) – The center coordinates of the sphere (x, y, z), default is (0, 0, 0).</p></li>
+<li><p><strong>exponent</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em>, </em><em>optional</em>) – The exponent in the power law of the potential, default is 2.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p><strong>U</strong> – 3D array containing the potential energy values at each grid point.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.2)">numpy.ndarray</a></p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The function seems to have an unused ‘force’ variable that might be part of incomplete code.</p>
+</div>
+</dd></dl>
 
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.writeDx">
@@ -662,11 +746,13 @@ volumetric data.</p>
 </ul>
 </dd>
 </dl>
-<p class="rubric">Notes</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
 <p>The output file follows the OpenDX format specification:
 <a class="reference external" href="http://opendx.sdsc.edu/docs/html/pages/usrgu068.htm#HDREDF">http://opendx.sdsc.edu/docs/html/pages/usrgu068.htm#HDREDF</a></p>
 <p>The data is written in a way that is compatible with visualization software
 that accepts OpenDX format.</p>
+</div>
 <dl class="field-list simple">
 <dt class="field-odd">Raises<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/exceptions.html#AssertionError" title="(in Python v3.13)"><strong>AssertionError</strong></a> – If data is not a 3D array or if origin or delta do not have length 3.</p>
@@ -677,7 +763,37 @@ that accepts OpenDX format.</p>
 <dl class="py function">
 <dt class="sig sig-object py" id="arbdmodel.grid.write_confine_dx">
 <span class="sig-name descname"><span class="pre">write_confine_dx</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">100</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/grid.html#write_confine_dx"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.grid.write_confine_dx" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Create and write a spherical confinement potential to a DX file.</p>
+<p>This function generates a spherical confinement potential with a harmonic potential
+outside the specified radius and a linear potential beyond radius + 25Ã…. The potential
+is written to a DX file named ‘confine-{radius}.dx’.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>radius</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><em>float</em></a><em>, </em><em>default=100</em>)</p></li>
+<li><p><strong>within</strong> (<em>Radius</em><em> of </em><em>the spherical confinement in Angstroms. The potential is zero</em>)</p></li>
+<li><p><strong>it.</strong> (<em>this radius and increases harmonically outside</em>)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p><ul class="simple">
+<li><p><em>None</em></p></li>
+<li><p><em>The function returns nothing but writes the potential to a DX file.</em></p></li>
+<li><p><em>If the file already exists, the function returns without doing anything.</em></p></li>
+</ul>
+</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<ul class="simple">
+<li><p>The grid extends from -radius-50 to +radius+50 in all dimensions</p></li>
+<li><p>Grid spacing is 2Ã… in all dimensions</p></li>
+<li><p>The spring constant k is set to 1 kcal/mol/Ų</p></li>
+<li><p>The potential transitions from harmonic to linear at radius + 25Ã…</p></li>
+</ul>
+</div>
+</dd></dl>
 
 </section>
 
diff --git a/_build/html/api/utilities/logger.html b/_build/html/api/utilities/logger.html
index b2019818b85ebaa370635bf6ed2d0b831a843568..d6fd14042c00e8fa3bbc5d90664139f9ed432d75 100644
--- a/_build/html/api/utilities/logger.html
+++ b/_build/html/api/utilities/logger.html
@@ -364,7 +364,26 @@ document.write(`
 <dl class="py function" id="module-arbdmodel.logger">
 <dt class="sig sig-object py" id="arbdmodel.logger.get_resource_path">
 <span class="sig-name descname"><span class="pre">get_resource_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">relative_path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/arbdmodel/logger.html#get_resource_path"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#arbdmodel.logger.get_resource_path" title="Link to this definition">#</a></dt>
-<dd></dd></dl>
+<dd><p>Get the absolute path from a relative path by joining it with the resource directory.</p>
+<p>This function computes the absolute path by combining the base resource directory
+with the provided relative path.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>relative_path</strong> (<a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em> or </em><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path" title="(in Python v3.13)"><em>pathlib.Path</em></a>) – The relative path to be combined with the resource directory.</p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The absolute path to the resource.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p><a class="hxr-hoverxref hxr-tooltip reference external" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path" title="(in Python v3.13)">pathlib.Path</a></p>
+</dd>
+</dl>
+<p class="rubric">Examples</p>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">get_resource_path</span><span class="p">(</span><span class="s1">&#39;data/config.json&#39;</span><span class="p">)</span>
+<span class="go">PosixPath(&#39;/path/to/resources/data/config.json&#39;)</span>
+</pre></div>
+</div>
+</dd></dl>
 
 </section>
 
diff --git a/_build/html/genindex.html b/_build/html/genindex.html
index 27ad7dc64b3a6a401bfe57f4f0dc9671a0a96bbc..c735476f255624a05fea601c6533820c719e9eb3 100644
--- a/_build/html/genindex.html
+++ b/_build/html/genindex.html
@@ -303,7 +303,8 @@ document.write(`
 <h1 id="index">Index</h1>
 
 <div class="genindex-jumpbox">
- <a href="#A"><strong>A</strong></a>
+ <a href="#_"><strong>_</strong></a>
+ | <a href="#A"><strong>A</strong></a>
  | <a href="#B"><strong>B</strong></a>
  | <a href="#C"><strong>C</strong></a>
  | <a href="#D"><strong>D</strong></a>
@@ -328,6 +329,14 @@ document.write(`
  | <a href="#Z"><strong>Z</strong></a>
  
 </div>
+<h2 id="_">_</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine._written_bond_files">_written_bond_files (ArbdEngine attribute)</a>
+</li>
+  </ul></td>
+</tr></table>
+
 <h2 id="A">A</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
@@ -377,7 +386,7 @@ document.write(`
 </li>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGModel.add_proteins">add_proteins() (ShapeCGModel method)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.add_restraint">add_restraint() (GroupSite method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.add_restraint">add_restraint() (GroupSite method)</a>, <a href="api/core/core_objects.html#id2">[1]</a>
 
       <ul>
         <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.add_restraint">(PointParticle method)</a>
@@ -394,12 +403,14 @@ document.write(`
       <li><a href="api/rigidbody_models/structure_from_pdb.html#arbdmodel.structure_from_pdb.StructureProcessor.align_structure">align_structure() (StructureProcessor method)</a>
 </li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.AngleDof">AngleDof (class in arbdmodel.ibi)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.angles">angles (Parent attribute)</a>
 </li>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.APBSRunner">APBSRunner (class in arbdmodel.engine)</a>
 </li>
       <li><a href="api/rigidbody_models/structure_from_pdb.html#arbdmodel.structure_from_pdb.StructureProcessor.apply_gaussian_smoothing">apply_gaussian_smoothing() (StructureProcessor method)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.applyOrientation">applyOrientation() (Transformable method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.applyOrientation">applyOrientation() (Transformable method)</a>, <a href="api/core/core_objects.html#id6">[1]</a>
 </li>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine">ArbdEngine (class in arbdmodel.engine)</a>
 </li>
@@ -447,8 +458,6 @@ document.write(`
         <li><a href="api/utilities/grid.html#module-arbdmodel.grid">module</a>
 </li>
       </ul></li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     arbdmodel.hps_polymer_model
 
@@ -456,6 +465,8 @@ document.write(`
         <li><a href="api/polymer_modeling/hps_polymer_model.html#module-arbdmodel.hps_polymer_model">module</a>
 </li>
       </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     arbdmodel.ibi
 
@@ -604,6 +615,12 @@ document.write(`
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.attach_particle">attach_particle() (RigidBodyType method)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.attached_particles">attached_particles (RigidBody attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.attached_particles">(RigidBodyType attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.average_grids">average_grids() (in module arbdmodel.grid)</a>
 </li>
   </ul></td>
@@ -613,14 +630,20 @@ document.write(`
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/ssdna_two_bead.html#arbdmodel.ssdna_two_bead.DnaStrandBeads.b">b (DnaStrandBeads attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.barostat">barostat (SimConf attribute)</a>
 </li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.AbstractIBIpotential.bins">bins (AbstractIBIpotential attribute)</a>
 </li>
-      <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.BondAngleDof">BondAngleDof (class in arbdmodel.ibi)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.bond_angles">bond_angles (Parent attribute)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.BondAngleDof">BondAngleDof (class in arbdmodel.ibi)</a>
+</li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.BondDof">BondDof (class in arbdmodel.ibi)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.bonds">bonds (Parent attribute)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.Bound_grid">Bound_grid() (in module arbdmodel.grid)</a>
 </li>
@@ -632,6 +655,8 @@ document.write(`
 <h2 id="C">C</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.cacheUpToDate">cacheUpToDate (ArbdEngine attribute)</a>
+</li>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGFactory.calc_atom_sasa">calc_atom_sasa() (ShapeCGFactory method)</a>
 </li>
       <li><a href="api/rigidbody_models/mesh_process_volume.html#arbdmodel.mesh_process_volume.MeshProcessor.calculate_damping">calculate_damping() (MeshProcessor method)</a>
@@ -647,11 +672,21 @@ document.write(`
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGModel.calculate_total_mass">calculate_total_mass() (ShapeCGModel method)</a>
 </li>
       <li><a href="api/utilities/version.html#arbdmodel.version.call_git_describe">call_git_describe() (in module arbdmodel.version)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.charge">charge (ParticleType attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.charge_grids">charge_grids (RigidBodyType attribute)</a>
 </li>
       <li><a href="api/utilities/version.html#arbdmodel.version.check_git_repository">check_git_repository() (in module arbdmodel.version)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Child">Child (class in arbdmodel.core_objects)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.children">children (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.children">(Parent attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/utilities/version.html#arbdmodel.version.Citation">Citation (class in arbdmodel.version)</a>
 </li>
       <li><a href="api/core/model.html#arbdmodel.model.ArbdModel.clear_all">clear_all() (ArbdModel method)</a>
@@ -662,7 +697,7 @@ document.write(`
       </ul></li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Clone">Clone (class in arbdmodel.core_objects)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.clone">clone() (Group method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.clone">clone() (Group method)</a>, <a href="api/core/core_objects.html#id0">[1]</a>
 </li>
       <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.combine">combine() (SimConf method)</a>
 </li>
@@ -681,10 +716,16 @@ document.write(`
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGModel.concentration_to_debye_length">concentration_to_debye_length() (ShapeCGModel method)</a>
+</li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.configuration">configuration (ArbdEngine attribute)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement">ConnectableElement (class in arbdmodel.polymer)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Connection">Connection (class in arbdmodel.polymer)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.connection_locations">connection_locations (ConnectableElement attribute)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.connections">connections (ConnectableElement attribute)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.constant_force">constant_force() (in module arbdmodel.grid)</a>
 </li>
@@ -700,6 +741,12 @@ document.write(`
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.convolve_kernel_truncate">convolve_kernel_truncate() (in module arbdmodel.grid)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.counter">counter (PointParticle attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.counter">(RigidBody attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.create_bounding_grid">create_bounding_grid() (in module arbdmodel.grid)</a>
 </li>
       <li><a href="api/simulation_engines/parmed_bd.html#arbdmodel.parmed_bd.ParmedArbd.create_dual_topology">create_dual_topology() (ParmedArbd static method)</a>
@@ -711,6 +758,8 @@ document.write(`
       <li><a href="api/rigidbody_models/simplearbd.html#arbdmodel.simplearbd.SimpleArbdConfig.create_model">create_model() (SimpleArbdConfig method)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.Create_null">Create_null() (in module arbdmodel.grid)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.cutoff">cutoff (SimConf attribute)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -718,12 +767,16 @@ document.write(`
 <h2 id="D">D</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.damping_coefficient">damping_coefficient (ParticleType attribute)</a>
+</li>
       <li><a href="api/polymer_modeling/kh_polymer_model.html#arbdmodel.kh_polymer_model.KhNonbonded.debye_length">debye_length (KhNonbonded attribute)</a>
 
       <ul>
         <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckNonbonded.debye_length">(OnckNonbonded attribute)</a>
 </li>
       </ul></li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.decomp_period">decomp_period (SimConf attribute)</a>
+</li>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.default_binary">default_binary (ArbdEngine property)</a>
 
       <ul>
@@ -742,7 +795,11 @@ document.write(`
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.diffusivity">diffusivity (ParticleType attribute)</a>
+</li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.DihedralDof">DihedralDof (class in arbdmodel.ibi)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.dihedrals">dihedrals (Parent attribute)</a>
 </li>
       <li><a href="api/core/model.html#arbdmodel.model.ArbdModel.dimensions_from_structure">dimensions_from_structure() (ArbdModel method)</a>
 
@@ -756,7 +813,7 @@ document.write(`
 </li>
       <li><a href="api/polymer_modeling/ssdna_two_bead.html#arbdmodel.ssdna_two_bead.DnaStrandBeads">DnaStrandBeads (class in arbdmodel.ssdna_two_bead)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.duplicate">duplicate() (Group method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.duplicate">duplicate() (Group method)</a>, <a href="api/core/core_objects.html#id1">[1]</a>
 
       <ul>
         <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.duplicate">(PointParticle method)</a>
@@ -770,7 +827,11 @@ document.write(`
 <h2 id="E">E</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.excludedAttributes">excludedAttributes (ParticleType attribute)</a>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.end_position">end_position (PolymerSection attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.excludedAttributes">excludedAttributes (ParticleType attribute)</a>, <a href="api/core/core_objects.html#id5">[1]</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.exclusions">exclusions (Parent attribute)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
@@ -780,6 +841,8 @@ document.write(`
         <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerGroup.extend">(PolymerGroup method)</a>
 </li>
       </ul></li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.extra_bd_file_lines">extra_bd_file_lines (ArbdEngine attribute)</a>
+</li>
   </ul></td>
 </tr></table>
 
@@ -860,7 +923,7 @@ document.write(`
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.get_bonds">get_bonds() (Parent method)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.get_center">get_center() (GroupSite method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.get_center">get_center() (GroupSite method)</a>, <a href="api/core/core_objects.html#id3">[1]</a>
 
       <ul>
         <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.get_center">(Parent method)</a>
@@ -876,18 +939,18 @@ document.write(`
 </li>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGFactory.get_coarse_types">get_coarse_types() (ShapeCGFactory method)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.get_collapsed_position">get_collapsed_position() (Transformable method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.get_collapsed_position">get_collapsed_position() (Transformable method)</a>, <a href="api/core/core_objects.html#id7">[1]</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Location.get_connected_location">get_connected_location() (Location method)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerGroup.get_connections">get_connections() (PolymerGroup method)</a>
 </li>
-      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_connections_and_locations">get_connections_and_locations() (ConnectableElement method)</a>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_connections_and_locations">get_connections_and_locations() (ConnectableElement method)</a>, <a href="api/polymer_modeling/polymer.html#id0">[1]</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.get_contour_sorted_connections_and_locations">get_contour_sorted_connections_and_locations() (PolymerSection method)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.get_default_conf">get_default_conf() (ArbdEngine method)</a>
 
       <ul>
@@ -904,9 +967,9 @@ document.write(`
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.get_impropers">get_impropers() (Parent method)</a>
 </li>
-      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_location_at">get_location_at() (ConnectableElement method)</a>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_location_at">get_location_at() (ConnectableElement method)</a>, <a href="api/polymer_modeling/polymer.html#id1">[1]</a>
 </li>
-      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_locations">get_locations() (ConnectableElement method)</a>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.get_locations">get_locations() (ConnectableElement method)</a>, <a href="api/polymer_modeling/polymer.html#id2">[1]</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Location.get_monomer_index">get_monomer_index() (Location method)</a>
 </li>
@@ -920,7 +983,7 @@ document.write(`
 </li>
       <li><a href="api/utilities/logger.html#arbdmodel.logger.get_resource_path">get_resource_path() (in module arbdmodel.logger)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.get_restraints">get_restraints() (GroupSite method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.get_restraints">get_restraints() (GroupSite method)</a>, <a href="api/core/core_objects.html#id4">[1]</a>
 
       <ul>
         <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.get_restraints">(Parent method)</a>
@@ -945,8 +1008,12 @@ document.write(`
       <li><a href="api/utilities/version.html#arbdmodel.version.get_version">get_version() (in module arbdmodel.version)</a>
 </li>
       <li><a href="api/core/model.html#arbdmodel.model.ArbdModel.getParticleTypesAndCounts">getParticleTypesAndCounts() (ArbdModel method)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.gpu">gpu (SimConf attribute)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group">Group (class in arbdmodel.core_objects)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.group_sites">group_sites (Parent attribute)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite">GroupSite (class in arbdmodel.core_objects)</a>
 </li>
@@ -992,19 +1059,33 @@ document.write(`
 </li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.IBINonbonded">IBINonbonded (class in arbdmodel.ibi)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.index">index() (Parent method)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.idx">idx (GroupSite attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.idx">(PointParticle attribute)</a>
 </li>
-      <li><a href="api/utilities/binary_manager.html#arbdmodel.binary_manager.initialize_binary_paths">initialize_binary_paths() (in module arbdmodel.binary_manager)</a>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.idx">(RigidBody attribute)</a>
+</li>
+      </ul></li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.impropers">impropers (Parent attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.index">index() (Parent method)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/utilities/binary_manager.html#arbdmodel.binary_manager.initialize_binary_paths">initialize_binary_paths() (in module arbdmodel.binary_manager)</a>
+</li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.insert">insert() (Parent method)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.insert_monomers">insert_monomers() (PolymerSection method)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.integrator">integrator (SimConf attribute)</a>
 </li>
       <li><a href="api/utilities/version.html#arbdmodel.version.is_dirty">is_dirty() (in module arbdmodel.version)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.is_same_type">is_same_type() (ParticleType method)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.isClone">isClone (Group attribute)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.isotropic_kernel">isotropic_kernel() (in module arbdmodel.grid)</a>
 </li>
@@ -1055,6 +1136,8 @@ document.write(`
       <li><a href="api/utilities/grid.html#arbdmodel.grid.loadGrid">loadGrid() (in module arbdmodel.grid)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Location">Location (class in arbdmodel.polymer)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.ConnectableElement.locations">locations (ConnectableElement attribute)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -1063,6 +1146,8 @@ document.write(`
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/rigidbody_models/simplearbd.html#arbdmodel.simplearbd.main">main() (in module arbdmodel.simplearbd)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.mass">mass (ParticleType attribute)</a>
 </li>
       <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.AbstractPotential.max_force">max_force (AbstractPotential attribute)</a>
 
@@ -1147,7 +1232,11 @@ document.write(`
       </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.moment_of_inertia">moment_of_inertia (RigidBodyType attribute)</a>
+</li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.monomer_index_to_contour">monomer_index_to_contour() (PolymerSection method)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.monomer_length">monomer_length (PolymerSection attribute)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerBeads.monomers_per_bead_group">monomers_per_bead_group (PolymerBeads property)</a>
 </li>
@@ -1165,16 +1254,44 @@ document.write(`
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.NamdEngine">NamdEngine (class in arbdmodel.engine)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.name">name (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.name">(ParticleType attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.name">(PointParticle attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.name">(RigidBody attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.name">(RigidBodyType attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.neighborhood_average">neighborhood_average() (in module arbdmodel.grid)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/ssdna_two_bead.html#arbdmodel.ssdna_two_bead.DnaStrandBeads.nt">nt (DnaStrandBeads attribute)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.NullPotential">NullPotential (class in arbdmodel.interactions)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerBeads.num_bead_groups">num_bead_groups (PolymerBeads property)</a>
 </li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster">num_heavy_cluster (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.num_heavy_cluster">(SimConf attribute)</a>
+</li>
+      </ul></li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.num_monomers">num_monomers (PolymerSection attribute)</a>
+</li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.num_particles">num_particles (ArbdEngine attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.num_steps">num_steps (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.num_steps">(SimConf attribute)</a>
+</li>
+      </ul></li>
   </ul></td>
 </tr></table>
 
@@ -1185,12 +1302,24 @@ document.write(`
 </li>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckModel">OnckModel (class in arbdmodel.onck_polymer_model)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckNonbonded">OnckNonbonded (class in arbdmodel.onck_polymer_model)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.orientation">orientation (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.orientation">(Transformable attribute)</a>
+</li>
+      </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Connection.other">other() (Connection method)</a>
 </li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.output_period">output_period (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.output_period">(SimConf attribute)</a>
+</li>
+      </ul></li>
   </ul></td>
 </tr></table>
 
@@ -1200,15 +1329,33 @@ document.write(`
       <li><a href="api/polymer_modeling/ssdna_two_bead.html#arbdmodel.ssdna_two_bead.DnaStrandBeads.p">p (DnaStrandBeads attribute)</a>
 </li>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.PairDistributionDof">PairDistributionDof (class in arbdmodel.ibi)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.pairlist_distance">pairlist_distance (SimConf attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Child.parent">parent (Child attribute)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent">Parent (class in arbdmodel.core_objects)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.parent">parent (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType.parent">(ParticleType attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.parent">(RigidBodyType attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/simulation_engines/parmed_bd.html#arbdmodel.parmed_bd.ParmedArbd.parmed_structure">parmed_structure (ParmedArbd attribute)</a>
 </li>
       <li><a href="api/simulation_engines/parmed_bd.html#arbdmodel.parmed_bd.ParmedArbd">ParmedArbd (class in arbdmodel.parmed_bd)</a>
 </li>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.HydroProRunner.parse_output">parse_output() (HydroProRunner method)</a>
 </li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.particles">particles (ArbdEngine attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.particles">(GroupSite attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.ParticleType">ParticleType (class in arbdmodel.core_objects)</a>
 </li>
       <li><a href="api/core/model.html#arbdmodel.model.PdbModel">PdbModel (class in arbdmodel.model)</a>
@@ -1225,6 +1372,8 @@ document.write(`
         <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.IBIDihedral.periodic">(IBIDihedral property)</a>
 </li>
       </ul></li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.pmf_grids">pmf_grids (RigidBodyType attribute)</a>
+</li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle">PointParticle (class in arbdmodel.core_objects)</a>
 </li>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckBeads.polymer">polymer (OnckBeads attribute)</a>
@@ -1237,6 +1386,16 @@ document.write(`
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection">PolymerSection (class in arbdmodel.polymer)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.position">position (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.position">(Transformable attribute)</a>
+</li>
+      </ul></li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.position_spline_params">position_spline_params (PolymerSection attribute)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/interaction_potentials/ibi.html#arbdmodel.ibi.AbstractIBIpotential.potential">potential (AbstractIBIpotential attribute)</a>
 </li>
       <li><a href="api/interaction_potentials/ibi.html#id0">potential() (AbstractIBIpotential method)</a>, <a href="api/interaction_potentials/ibi.html#id4">[1]</a>
@@ -1277,10 +1436,18 @@ document.write(`
         <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.WLCSKBond.potential">(WLCSKBond method)</a>
 </li>
       </ul></li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.potential_directory">potential_directory (ArbdEngine attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.potential_grids">potential_grids (RigidBodyType attribute)</a>
+</li>
       <li><a href="api/core/model.html#arbdmodel.model.ArbdModel.prepare_for_simulation">prepare_for_simulation() (ArbdModel method)</a>
 </li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.pressure">pressure (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.pressure">(SimConf attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/rigidbody_models/structure_rigidbody.html#arbdmodel.structure_rigidbody.StaticObject.process">process() (StaticObject method)</a>
 </li>
       <li><a href="api/rigidbody_models/mesh_process_volume.html#arbdmodel.mesh_process_volume.process_mesh_file">process_mesh_file() (in module arbdmodel.mesh_process_volume)</a>
@@ -1288,6 +1455,10 @@ document.write(`
       <li><a href="api/rigidbody_models/structure_from_pdb.html#arbdmodel.structure_from_pdb.StructureProcessor.process_structure">process_structure() (StructureProcessor method)</a>
 </li>
       <li><a href="api/rigidbody_models/mesh_process_surface.html#arbdmodel.mesh_process_surface.process_surface_mesh">process_surface_mesh() (in module arbdmodel.mesh_process_surface)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.product_potentials">product_potentials (Parent attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.Properties">Properties (DefaultSimConf attribute)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -1306,6 +1477,8 @@ document.write(`
       <li><a href="api/utilities/coords.html#arbdmodel.coords.quaternion_product">quaternion_product() (in module arbdmodel.coords)</a>
 </li>
       <li><a href="api/utilities/coords.html#arbdmodel.coords.quaternion_slerp">quaternion_slerp() (in module arbdmodel.coords)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.quaternion_spline_params">quaternion_spline_params (PolymerSection attribute)</a>
 </li>
       <li><a href="api/utilities/coords.html#arbdmodel.coords.quaternion_to_matrix">quaternion_to_matrix() (in module arbdmodel.coords)</a>
 </li>
@@ -1323,6 +1496,8 @@ document.write(`
         <li><a href="api/interaction_potentials/interactions.html#id3">(AbstractPotential property)</a>
 </li>
       </ul></li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.rb_type_dirs">rb_type_dirs (ArbdEngine attribute)</a>
+</li>
       <li><a href="api/utilities/coords.html#arbdmodel.coords.read_arbd_coordinates">read_arbd_coordinates() (in module arbdmodel.coords)</a>
 </li>
       <li><a href="api/utilities/coords.html#arbdmodel.coords.read_average_arbd_coordinates">read_average_arbd_coordinates() (in module arbdmodel.coords)</a>
@@ -1341,13 +1516,39 @@ document.write(`
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.remove">remove() (Parent method)</a>
 </li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Group.remove_duplicate_bonded_terms">remove_duplicate_bonded_terms (Group attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms">(Parent attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.remove_monomers">remove_monomers() (PolymerSection method)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.replace_false_with_distance">replace_false_with_distance() (in module arbdmodel.grid)</a>
 </li>
+      <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.AbstractPotential.resolution">resolution (AbstractPotential attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.restart_file">restart_file (SimConf attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.GroupSite.restraints">restraints (GroupSite attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.restraints">(PointParticle attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.restraints">(RigidBody attribute)</a>
+</li>
+      </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.AbstractPotential.resolution">resolution (AbstractPotential attribute)</a>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.rigid">rigid (PointParticle attribute)</a>
+
+      <ul>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.rigid">(RigidBody attribute)</a>
+</li>
+      </ul></li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period">rigid_body_grid_grid_period (SimConf attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.rigid_body_integrator">rigid_body_integrator (SimConf attribute)</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody">RigidBody (class in arbdmodel.core_objects)</a>
 </li>
@@ -1358,10 +1559,14 @@ document.write(`
       <ul>
         <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.rotate">(PolymerSection method)</a>
 </li>
-        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.rotate">(Transformable method)</a>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.rotate">(Transformable method)</a>, <a href="api/core/core_objects.html#id8">[1]</a>
 </li>
       </ul></li>
       <li><a href="api/utilities/coords.html#arbdmodel.coords.rotationAboutAxis">rotationAboutAxis() (in module arbdmodel.coords)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient">rotational_damping_coefficient (RigidBodyType attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBodyType.rotational_diffusivity">rotational_diffusivity (RigidBodyType attribute)</a>
 </li>
       <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.APBSRunner.run_calculation">run_calculation() (APBSRunner method)</a>
 
@@ -1407,8 +1612,16 @@ document.write(`
         <li><a href="api/rigidbody_models/mesh_process_surface.html#arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_as_pdb">(SurfaceMeshProcessor method)</a>
 </li>
       </ul></li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.seed">seed (SimConf attribute)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.segname">segname (PolymerSection attribute)</a>
+</li>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckBeads.sequence">sequence (OnckBeads attribute)</a>
+
+      <ul>
+        <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.sequence">(PolymerSection attribute)</a>
 </li>
+      </ul></li>
       <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.set_binary">set_binary() (SimConf method)</a>
 </li>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.Location.set_connection">set_connection() (Location method)</a>
@@ -1433,10 +1646,10 @@ document.write(`
 </li>
       <li><a href="api/rigidbody_models/simplearbd.html#arbdmodel.simplearbd.SimpleArbdConfig.setup_diffusible_objects">setup_diffusible_objects() (SimpleArbdConfig method)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/rigidbody_models/simplearbd.html#arbdmodel.simplearbd.SimpleArbdConfig.setup_static_objects">setup_static_objects() (SimpleArbdConfig method)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGFactory">ShapeCGFactory (class in arbdmodel.shape_cg)</a>
 </li>
       <li><a href="api/shape-based_models/shape_cg.html#arbdmodel.shape_cg.ShapeCGModel">ShapeCGModel (class in arbdmodel.shape_cg)</a>
@@ -1461,6 +1674,12 @@ document.write(`
       </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.slab_potential_z">slab_potential_z() (in module arbdmodel.grid)</a>
 </li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.solvent_density">solvent_density (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.solvent_density">(SimConf attribute)</a>
+</li>
+      </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.spherical_confinement">spherical_confinement() (in module arbdmodel.grid)</a>
 </li>
       <li><a href="api/polymer_modeling/hps_polymer_model.html#arbdmodel.hps_polymer_model.HpsModel.spring_constant">spring_constant (HpsModel attribute)</a>
@@ -1473,6 +1692,10 @@ document.write(`
         <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckBeads.spring_constant">(OnckBeads attribute)</a>
 </li>
       </ul></li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.start_orientation">start_orientation (PolymerSection attribute)</a>
+</li>
+      <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.start_position">start_position (PolymerSection attribute)</a>
+</li>
       <li><a href="api/rigidbody_models/structure_rigidbody.html#arbdmodel.structure_rigidbody.StaticObject">StaticObject (class in arbdmodel.structure_rigidbody)</a>
 </li>
       <li><a href="api/rigidbody_models/structure_from_pdb.html#arbdmodel.structure_from_pdb.StructureProcessor">StructureProcessor (class in arbdmodel.structure_from_pdb)</a>
@@ -1489,17 +1712,25 @@ document.write(`
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.TabulatedNonbonded">TabulatedNonbonded (class in arbdmodel.interactions)</a>
 </li>
-      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.temperature">temperature (DefaultSimConf property)</a>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.temperature">temperature (DefaultSimConf attribute)</a>
 
       <ul>
-        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.temperature">(SimConf property)</a>
+        <li><a href="api/core/sim_config.html#id0">(DefaultSimConf property)</a>
+</li>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.temperature">(SimConf attribute)</a>
+</li>
+        <li><a href="api/core/sim_config.html#id1">(SimConf property)</a>
 </li>
       </ul></li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.TestAverageGrids.test_average_grids">test_average_grids() (TestAverageGrids method)</a>
 </li>
       <li><a href="api/utilities/grid.html#arbdmodel.grid.TestAverageGrids">TestAverageGrids (class in arbdmodel.grid)</a>
 </li>
-      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.transform">transform() (Transformable method)</a>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.thermostat">thermostat (SimConf attribute)</a>
+</li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.timestep">timestep (SimConf attribute)</a>
+</li>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.transform">transform() (Transformable method)</a>, <a href="api/core/core_objects.html#id9">[1]</a>
 </li>
       <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable">Transformable (class in arbdmodel.core_objects)</a>
 </li>
@@ -1508,7 +1739,7 @@ document.write(`
       <ul>
         <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerSection.translate">(PolymerSection method)</a>
 </li>
-        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.translate">(Transformable method)</a>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Transformable.translate">(Transformable method)</a>, <a href="api/core/core_objects.html#id10">[1]</a>
 </li>
       </ul></li>
   </ul></td>
@@ -1523,12 +1754,18 @@ document.write(`
         <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.HarmonicDihedral.type_">(HarmonicDihedral property)</a>
 </li>
         <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.HarmonicVectorAngle.type_">(HarmonicVectorAngle property)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.PointParticle.type_">(PointParticle attribute)</a>
+</li>
+        <li><a href="api/core/core_objects.html#arbdmodel.core_objects.RigidBody.type_">(RigidBody attribute)</a>
 </li>
         <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.WLCSKAngle.type_">(WLCSKAngle property)</a>
 </li>
         <li><a href="api/interaction_potentials/interactions.html#arbdmodel.interactions.WLCSKBond.type_">(WLCSKBond property)</a>
 </li>
       </ul></li>
+      <li><a href="api/simulation_engines/engine.html#arbdmodel.engine.ArbdEngine.type_counts">type_counts (ArbdEngine attribute)</a>
+</li>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckBeads.types_dict">types_dict (OnckBeads attribute)</a>
 </li>
   </ul></td>
@@ -1561,8 +1798,16 @@ document.write(`
 <h2 id="V">V</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="api/core/core_objects.html#arbdmodel.core_objects.Parent.vector_angles">vector_angles (Parent attribute)</a>
+</li>
       <li><a href="api/polymer_modeling/onck_polymer_model.html#arbdmodel.onck_polymer_model.OnckBeads.version">version (OnckBeads attribute)</a>
 </li>
+      <li><a href="api/core/sim_config.html#arbdmodel.sim_config.DefaultSimConf.viscosity">viscosity (DefaultSimConf attribute)</a>
+
+      <ul>
+        <li><a href="api/core/sim_config.html#arbdmodel.sim_config.SimConf.viscosity">(SimConf attribute)</a>
+</li>
+      </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="api/polymer_modeling/polymer.html#arbdmodel.polymer.PolymerGroup.vmd_cylinder_tcl">vmd_cylinder_tcl() (PolymerGroup method)</a>
diff --git a/_build/html/objects.inv b/_build/html/objects.inv
index a1dfc9269e7fcad8244e23bad55f63f00cdd41ba..f77aaca57db6af9241c94aa90a81d73848de7efe 100644
Binary files a/_build/html/objects.inv and b/_build/html/objects.inv differ
diff --git a/_build/html/reports/tutorials/1-basics/1-basics.err.log b/_build/html/reports/tutorials/1-basics/1-basics.err.log
index 0573077fb16df59b415b82c18a892b02a4b1301b..1a2e1723b8e4114b822d7bdc1a961a082d5c6192 100644
--- a/_build/html/reports/tutorials/1-basics/1-basics.err.log
+++ b/_build/html/reports/tutorials/1-basics/1-basics.err.log
@@ -1,46 +1,57 @@
 Traceback (most recent call last):
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
     executenb(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
     return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
     return loop.run_until_complete(inner)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
     return future.result()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
     await self.async_execute_cell(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
     await self._check_raise_for_error(cell, cell_index, exec_reply)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
     raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
 nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
 ------------------
-import ipdb # in case we need to debug, after a crash, run `ipdb.pm()`
-import numpy as np
-from arbdmodel import ParticleType, PointParticle, ArbdModel
-
-system_size = 620
-num_particles = 6400
-
-## diffusion of liquid argon: https://www.sciencedirect.com/science/article/pii/0375960171901290         
-## units "60 * 3.41 AA * sqrt(119.5 k K / 40 dalton)" "AA**2/ns"  
-argon = ParticleType(name="Ar",
-                     mass=39.95, # dalton
-                     damping_coefficient=5000, # per ns                                                  
-                     custom_property="my_value",
-                     epsilon=0.177,  # kcal_mol                                                          
-                     radius=3.345/2) # Angstroms
-
-print(argon)
+## Generate Nx3 array of random cartesian coordinates
+positions = system_size*(np.random.random([num_particles,3])-0.5)
+
+## Create a list of point particles located at those positions
+points = [PointParticle(type_=argon, name="Ar", position=positions[i])
+                        for i in range(num_particles)]
+
+model = ArbdModel(points, 
+                  dimensions=[system_size for i in range(3)], # Ã…ngstroms
+                  timestep = 20e-6, # ns; can be specified below with engine instead
+                  )
+
+print(model)
+print(model.children[:2])
 ------------------
 
 
 ---------------------------------------------------------------------------
-ModuleNotFoundError                       Traceback (most recent call last)
-Cell In[1], line 1
-----> 1 import ipdb # in case we need to debug, after a crash, run `ipdb.pm()`
-      2 import numpy as np
-      3 from arbdmodel import ParticleType, PointParticle, ArbdModel
+TypeError                                 Traceback (most recent call last)
+Cell In[2], line 8
+      4 ## Create a list of point particles located at those positions
+      5 points = [PointParticle(type_=argon, name="Ar", position=positions[i])
+      6                         for i in range(num_particles)]
+----> 8 model = ArbdModel(points, 
+      9                   dimensions=[system_size for i in range(3)], # Ã…ngstroms
+     10                   timestep = 20e-6, # ns; can be specified below with engine instead
+     11                   )
+     13 print(model)
+     14 print(model.children[:2])
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231, in ArbdModel.__init__(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)
+    228     cell_origin = [0, 0, 0]
+    230 # Initialize parent class
+--> 231 PdbModel.__init__(self, children, dimensions, remove_duplicate_bonded_terms,
+    232                  cell_vectors, cell_origin)
+    235 # Store origin which might be different from cell_origin
+    236 self.origin = cell_origin
 
-ModuleNotFoundError: No module named 'ipdb'
+TypeError: __init__() takes from 1 to 4 positional arguments but 6 were given
 
diff --git a/_build/html/reports/tutorials/2-polymer-objects/2-polymer-objects.err.log b/_build/html/reports/tutorials/2-polymer-objects/2-polymer-objects.err.log
index ae83ae474334877a5cda54c26c2d10d9ea5cd23b..fd2ffd9fbb7d0b5996927412ea166515a371ed1c 100644
--- a/_build/html/reports/tutorials/2-polymer-objects/2-polymer-objects.err.log
+++ b/_build/html/reports/tutorials/2-polymer-objects/2-polymer-objects.err.log
@@ -1,54 +1,65 @@
 Traceback (most recent call last):
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
     executenb(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
     return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
     return loop.run_until_complete(inner)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
     return future.result()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
     await self.async_execute_cell(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
     await self._check_raise_for_error(cell, cell_index, exec_reply)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
     raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
 nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
 ------------------
-import ipdb # in case we want to debug something
-"""
-If you want to enter function `fn` with the debugger, run:
-`ipdb.runcall(fn,*args,**kwargs)` instead of the usual `fn(*args,**kwargs)`
-
-If a cell crashes, you can (immediately after) create a new notebook
-cell, and add to it: `ipdb.pm()` to start the post-mortem debugger. 
- """
-
-import numpy as np
-from arbdmodel.polymer import PolymerSection, PolymerGroup
-
-polymer = PolymerSection("PROT", num_monomers=70, monomer_length=3.8,
-                           start_position = np.array((20,0,-3*70/2)) )
-print(polymer)
-
-## Let's inspect the polymer object from within Python by printing it's dictionary of attributes
-for k,v in polymer.__dict__.items():
-    print(f'{k}: {v}')
-    
+from arbdmodel import ArbdEngine
+from arbdmodel.fjc_polymer_model import FjcModel
+
+model = FjcModel([polymer], monomers_per_bead_group=10)
+
+engine = ArbdEngine(output_period = 1e2, num_steps = 1e5)
+engine.simulate(model, output_name="1-linear-fjc", directory='sims/2-polymer',
+                num_steps=1e4, gpu=1
+)
+
 ------------------
 
 
 ---------------------------------------------------------------------------
-ModuleNotFoundError                       Traceback (most recent call last)
-Cell In[2], line 1
-----> 1 import ipdb # in case we want to debug something
-      2 """
-      3 If you want to enter function `fn` with the debugger, run:
-      4 `ipdb.runcall(fn,*args,**kwargs)` instead of the usual `fn(*args,**kwargs)`
-   (...)
-      7 cell, and add to it: `ipdb.pm()` to start the post-mortem debugger. 
-      8  """
-     10 import numpy as np
-
-ModuleNotFoundError: No module named 'ipdb'
+TypeError                                 Traceback (most recent call last)
+Cell In[3], line 4
+      1 from arbdmodel import ArbdEngine
+      2 from arbdmodel.fjc_polymer_model import FjcModel
+----> 4 model = FjcModel([polymer], monomers_per_bead_group=10)
+      6 engine = ArbdEngine(output_period = 1e2, num_steps = 1e5)
+      7 engine.simulate(model, output_name="1-linear-fjc", directory='sims/2-polymer',
+      8                 num_steps=1e4, gpu=1
+      9 )
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/fjc_polymer_model.py:68, in FjcModel.__init__(self, polymers, sequences, rest_length, monomers_per_bead_group, spring_constant, damping_coefficient, DEBUG, **kwargs)
+     66 self.rest_length = rest_length
+     67 self.spring_constant = spring_constant
+---> 68 PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group, **kwargs)
+     70 """ Update type diffusion coefficients """
+     71 logger.warning("Diffusion coefficient arbitrarily set to 100 AA**2/ns in FjcModel")
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731, in PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group, **kwargs)
+    729 self.sequences = sequences
+    730 self.monomers_per_bead_group = monomers_per_bead_group
+--> 731 ArbdModel.__init__(self, [], **kwargs)
+    733 """ Generate beads """
+    734 self.generate_beads()
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231, in ArbdModel.__init__(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)
+    228     cell_origin = [0, 0, 0]
+    230 # Initialize parent class
+--> 231 PdbModel.__init__(self, children, dimensions, remove_duplicate_bonded_terms,
+    232                  cell_vectors, cell_origin)
+    235 # Store origin which might be different from cell_origin
+    236 self.origin = cell_origin
+
+TypeError: __init__() takes from 1 to 4 positional arguments but 6 were given
 
diff --git a/_build/html/reports/tutorials/3-iterative-boltzmann-inversion/3-ibi.err.log b/_build/html/reports/tutorials/3-iterative-boltzmann-inversion/3-ibi.err.log
index 8b7dba58946c81a8415fcb03865b4c9513644081..ab9f1290d1c11e6a4a214673278294298e630966 100644
--- a/_build/html/reports/tutorials/3-iterative-boltzmann-inversion/3-ibi.err.log
+++ b/_build/html/reports/tutorials/3-iterative-boltzmann-inversion/3-ibi.err.log
@@ -1,104 +1,113 @@
 Traceback (most recent call last):
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
     executenb(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
     return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
     return loop.run_until_complete(inner)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
     return future.result()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
     await self.async_execute_cell(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
     await self._check_raise_for_error(cell, cell_index, exec_reply)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
     raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
 nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
 ------------------
-## Usually this script would be put in it's own python file so it can be imported into multiple other scripts
-import numpy as np
-from pathlib import Path
-from arbdmodel import ArbdEngine
-from arbdmodel.coords import readArbdCoords
-from arbdmodel.polymer import PolymerSection
-from arbdmodel.hps_polymer_model import _types
-from arbdmodel.hps_polymer_model import HpsModel as NupModel
-
-_seq = 'GLFG' * 8              # 10 repeats per polymer
-## We're going to tile polymers along x and y in a square lattice
-Nx = 5
-Ny = 5
-N_polymers = Nx*Ny
-
-density = 55                    # mg / mL
-
-""" Calculated parameters """
-polymer_mass = sum( [_types[aa].mass for aa in _seq] ) # in daltons
-## units "mg/ml" "dalton/AA**3"
-_conversion = 0.0006022142
-
-dimensions = (Nx*Ny*polymer_mass/(density*_conversion))**(1/3) # in Angstroms, the unit of length in ARBD
-dimensions = [dimensions]*3                                 # along x,y,z
-
-xs = np.linspace( -dimensions[0]*0.5, dimensions[0]*0.5, Nx+1 ) # row edges (one extra value)
-ys = np.linspace( -dimensions[1]*0.5, dimensions[1]*0.5, Ny+1 ) # column edges
-xs = (xs[1:] + xs[:-1])*0.5                                     # row centers
-ys = (ys[1:] + ys[:-1])*0.5                                     # column centers
-
-z = np.arange(len(_seq))*3.8*0.5         # times coordinate for every amino acid in a polymer, compressed a bit
-
-""" Build peptide list consisting of sequence, coordinates"""
-peptides = []
-
-for x in xs:
-    for y in ys:
-        r = np.empty( (len(_seq),3) ) # allocate array for coordinates of each amino acid in polymer
-        r[:,0] = x
-        r[:,1] = y
-        r[:,2] = z
-
-        peptides.append( (_seq, r ) )
-
-def create_arbd_polymer_objects():
-    polymers = []
-    sequences = []
-    segid = 0
-    chainid = 0
-    sequence_to_chain = dict()
-
-    ## Loop over peptides to be added to system
-    for seq,coords in peptides:
-        ## Get chain and segid for PDB
-        if seq not in sequence_to_chain:
-            sequence_to_chain[seq] = chainid
-            chainid = chainid+1
-        chain = sequence_to_chain[seq]
-        segid = segid+1
-
-
-        p = PolymerSection(name=seq[:4], # use first part of sequence to name the polymer
-                           num_monomers=len(seq),
-                           monomer_length = 3.8,
-                           segname = '{}{:03d}'.format( chr(65+chain), segid ),
-                           chain = chr(65+chain),
-
-        )
-        p.set_splines(np.linspace(0,1,len(coords)), coords)
-        polymers.append(p)
-        sequences.append(seq)
-    return polymers, sequences
+
+temperature = 298.15
+ion_concentration = 250         # in mM
+gpu = 0
+
+decomp_period = 50
+skin_depth = 8
+## 3.2
+
+model_name = 'HPS'
+step = 1
+
+## units "sqrt(80 epsilon0 k K /(2 * (mM/particle) * e**2))" AA
+debye_length = 10
+
+polymers, sequences = create_arbd_polymer_objects()
+
+model = NupModel( polymers, sequences,
+                  debye_length = debye_length,
+                  temperature=temperature,
+                  damping_coefficient = 50000, # units of 1/ns
+                  decomp_period = decomp_period,
+                  pairlist_distance = 50+skin_depth,
+                  dimensions = dimensions
+                  )
+engine = ArbdEngine( integrator = 'Langevin',
+                     num_steps=1e7,
+                     output_period=1e4,
+                     gpu = 0
+                    )
+directory = f'1-one_bead_per_res-{model_name}'
+outname = 'run'
+
+if not Path(f'{directory}/output/{outname}.dcd').exists():
+    # """ "Minimization" """
+    # add_restraints(model,restraints)
+    # model.simulate(output_name='{}-min-{}'.format(model_name,step),
+    #                num_steps=1e3, output_period=500,
+    #                gpu=gpu,
+    # )
+    # coords = readArbdCoords('output/{}-min-{}.restart'.format(model_name,step))
+    # model.update_splines(coords)
+
+    """ Production """
+    model.set_damping_coefficient( 100 )
+    engine.simulate(model, output_name=outname,
+                    directory = directory
+                    )
 
 ------------------
 
 
 ---------------------------------------------------------------------------
-ModuleNotFoundError                       Traceback (most recent call last)
-Cell In[1], line 4
-      2 import numpy as np
-      3 from pathlib import Path
-----> 4 from arbdmodel import ArbdEngine
-      5 from arbdmodel.coords import readArbdCoords
-      6 from arbdmodel.polymer import PolymerSection
-
-ModuleNotFoundError: No module named 'arbdmodel'
+TypeError                                 Traceback (most recent call last)
+Cell In[2], line 17
+     13 debye_length = 10
+     15 polymers, sequences = create_arbd_polymer_objects()
+---> 17 model = NupModel( polymers, sequences,
+     18                   debye_length = debye_length,
+     19                   temperature=temperature,
+     20                   damping_coefficient = 50000, # units of 1/ns
+     21                   decomp_period = decomp_period,
+     22                   pairlist_distance = 50+skin_depth,
+     23                   dimensions = dimensions
+     24                   )
+     25 engine = ArbdEngine( integrator = 'Langevin',
+     26                      num_steps=1e7,
+     27                      output_period=1e4,
+     28                      gpu = 0
+     29                     )
+     30 directory = f'1-one_bead_per_res-{model_name}'
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/hps_polymer_model.py:239, in HpsModel.__init__(self, polymers, sequences, rest_length, spring_constant, debye_length, damping_coefficient, DEBUG, **kwargs)
+    236 if sequences is None:
+    237     raise NotImplementedError("HpsModel must be provided a sequences argument")
+--> 239 PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group=1, **kwargs)
+    241 """ Update type diffusion coefficients """
+    242 self.types = all_types = [t for key,t in _types.items()]
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731, in PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group, **kwargs)
+    729 self.sequences = sequences
+    730 self.monomers_per_bead_group = monomers_per_bead_group
+--> 731 ArbdModel.__init__(self, [], **kwargs)
+    733 """ Generate beads """
+    734 self.generate_beads()
+
+File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231, in ArbdModel.__init__(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)
+    228     cell_origin = [0, 0, 0]
+    230 # Initialize parent class
+--> 231 PdbModel.__init__(self, children, dimensions, remove_duplicate_bonded_terms,
+    232                  cell_vectors, cell_origin)
+    235 # Store origin which might be different from cell_origin
+    236 self.origin = cell_origin
+
+TypeError: __init__() takes from 1 to 4 positional arguments but 6 were given
 
diff --git a/_build/html/reports/tutorials/4-rigid-bodies/4-rigid-bodies.err.log b/_build/html/reports/tutorials/4-rigid-bodies/4-rigid-bodies.err.log
index 8930c6d0dc89df322b03afa1483d9266bb56e0bc..b4bfae4353287bdfbbd8ebf08db79e8897e2bb73 100644
--- a/_build/html/reports/tutorials/4-rigid-bodies/4-rigid-bodies.err.log
+++ b/_build/html/reports/tutorials/4-rigid-bodies/4-rigid-bodies.err.log
@@ -1,65 +1,69 @@
 Traceback (most recent call last):
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
     executenb(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1319, in execute
     return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
     return loop.run_until_complete(inner)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
     return future.result()
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 709, in async_execute
     await self.async_execute_cell(
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 1062, in async_execute_cell
     await self._check_raise_for_error(cell, cell_index, exec_reply)
-  File "/data/server10/pinyili2/miniconda3/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
+  File "/usr/local/Caskroom/miniconda/base/envs/pybd/lib/python3.9/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
     raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
 nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
 ------------------
-## Create a function to construct the DNA model (we'll repeat this a few times)
-from arbdmodel.polymer import PolymerSection
-from arbdmodel.ssdna_two_bead import DnaModel, _P, _B 
-
-def make_dna_model():
-    ## Create spline-based polymer
-    a = PolymerSection(name='loop', num_monomers=500, # 500 nt fragment
-                       monomer_length = 5,
-                       start_position = restraint1,
-                       end_position = restraint2,
-    )
-    coords = dna_coordinates
-    a.set_splines( np.linspace(0,1,len(coords)), coords )
-    
-
-    ## Our DNA model is conveniently already implemented. Here we add the
-    ##   steric replisome potential (based on cryo-EM density) to both
-    ##   bead types. Note this model represents poly(dT), and is not ideal
-    ##   for study of the replisome
-    _P.grid = (replisome_grid, 500)       # scale it up by a big factor
-    _B.grid = (replisome_grid, 500)
+## Optionally simulate the DNA-only model to see how it performs and behaves
+model = make_dna_model()
+model.simulate(output_name='run',
+               directory='trombone-no_ssb',
+               num_steps=1e5, output_period=1e3,
+)
+------------------
 
-    model = DnaModel([a], dimensions=(3000,3000,3000),
-                     timestep = 20e-6
-                     )
 
-    ## Restrain DNA ends
-    end1 = model.strands[0].children[0].children[0]
-    end2 = model.strands[0].children[-1].children[0]
+---------------------------------------------------------------------------
+TypeError                                 Traceback (most recent call last)
+Cell In[4], line 2
+      1 ## Optionally simulate the DNA-only model to see how it performs and behaves
+----> 2 model = make_dna_model()
+      3 model.simulate(output_name='run',
+      4                directory='trombone-no_ssb',
+      5                num_steps=1e5, output_period=1e3,
+      6 )
 
-    end1.add_restraint( (10, restraint1) )
-    end2.add_restraint( (10, restraint2) )
+Cell In[3], line 23, in make_dna_model()
+     20 _P.grid = (replisome_grid, 500)       # scale it up by a big factor
+     21 _B.grid = (replisome_grid, 500)
+---> 23 model = DnaModel([a], dimensions=(3000,3000,3000),
+     24                  timestep = 20e-6
+     25                  )
+     27 ## Restrain DNA ends
+     28 end1 = model.strands[0].children[0].children[0]
 
-    return model
-------------------
+File ~/Documents/research/arbdmodel-simple/arbdmodel/ssdna_two_bead.py:164, in DnaModel.__init__(self, polymers, sequences, DEBUG, **kwargs)
+    161 if 'timestep' not in kwargs: kwargs['timestep'] = 20e-6
+    162 if 'cutoff' not in kwargs: kwargs['cutoff'] = 35
+--> 164 PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group=1, **kwargs)
+    165 self.strands = self.children # make a nice alias
+    167 self.add_nonbonded_interaction( TabulatedNonbonded(get_resource_path('two_bead_model/NBBB.dat')), typeA=_B, typeB=_B )
 
+File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731, in PolymerModel.__init__(self, polymers, sequences, monomers_per_bead_group, **kwargs)
+    729 self.sequences = sequences
+    730 self.monomers_per_bead_group = monomers_per_bead_group
+--> 731 ArbdModel.__init__(self, [], **kwargs)
+    733 """ Generate beads """
+    734 self.generate_beads()
 
----------------------------------------------------------------------------
-ModuleNotFoundError                       Traceback (most recent call last)
-Cell In[3], line 2
-      1 ## Create a function to construct the DNA model (we'll repeat this a few times)
-----> 2 from arbdmodel.polymer import PolymerSection
-      3 from arbdmodel.ssdna_two_bead import DnaModel, _P, _B 
-      5 def make_dna_model():
-      6     ## Create spline-based polymer
+File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231, in ArbdModel.__init__(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)
+    228     cell_origin = [0, 0, 0]
+    230 # Initialize parent class
+--> 231 PdbModel.__init__(self, children, dimensions, remove_duplicate_bonded_terms,
+    232                  cell_vectors, cell_origin)
+    235 # Store origin which might be different from cell_origin
+    236 self.origin = cell_origin
 
-ModuleNotFoundError: No module named 'arbdmodel'
+TypeError: __init__() takes from 1 to 4 positional arguments but 6 were given
 
diff --git a/_build/html/searchindex.js b/_build/html/searchindex.js
index e2c16e70db36dc4b82ff5b741dad51879757de54..c4a75e71a1d6377cfbf2706763dbabc9c1fe3f3d 100644
--- a/_build/html/searchindex.js
+++ b/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"1-basics": [[41, "basics"]], "2-polymer-objects": [[41, "polymer-objects"]], "3-iterative-boltzmann-inversion": [[41, "iterative-boltzmann-inversion"]], "4-rigid-bodies": [[41, "rigid-bodies"]], "API Reference": [[5, null]], "ARBD Model Documentation": [[36, null]], "ARBD is configured through plain text files": [[37, "arbd-is-configured-through-plain-text-files"]], "Add a constant-force to the ends of the polymers to determine their elastic properties": [[38, "add-a-constant-force-to-the-ends-of-the-polymers-to-determine-their-elastic-properties"]], "Add your files": [[0, "add-your-files"]], "Adding single-stranded DNA binding protein": [[40, "adding-single-stranded-dna-binding-protein"]], "Attaching point particles": [[40, "attaching-point-particles"]], "Authors and acknowledgment": [[0, "authors-and-acknowledgment"]], "Available Tutorials": [[41, "available-tutorials"]], "Badges": [[0, "badges"]], "Basic usage of the arbdmodel package": [[37, null]], "Collaborate with your team": [[0, "collaborate-with-your-team"]], "Contributing": [[0, "contributing"]], "Core": [[2, null]], "Description": [[0, "description"]], "Editing this README": [[0, "editing-this-readme"]], "Features": [[36, "features"]], "Getting Started": [[36, "getting-started"]], "Getting started": [[0, "getting-started"]], "Implementing customized coarse-grained polymer models": [[39, null]], "Installation": [[0, "installation"]], "Integrate with your tools": [[0, "integrate-with-your-tools"]], "Interaction Potentials": [[7, null]], "License": [[0, "license"]], "Modeling rigid-body objects": [[40, null]], "Module Categories": [[5, "module-categories"]], "Modules": [[2, "modules"], [7, "modules"], [11, "modules"], [18, "modules"], [25, "modules"], [28, "modules"], [33, "modules"]], "Name": [[0, "name"]], "Overview": [[36, "overview"]], "Polymer Modeling": [[11, null]], "Project status": [[0, "project-status"]], "Python API Reference": [[36, "python-api-reference"]], "RigidBody Models": [[18, null]], "Roadmap": [[0, "roadmap"]], "Shape-Based Models": [[25, null]], "Simulation Engines": [[28, null]], "Some polymer models may have multiple beads per monomer": [[38, null]], "Step 1: Create particle types": [[37, "step-1-create-particle-types"]], "Step 1: Model Construction": [[39, "step-1-model-construction"]], "Step 2: Build a system": [[37, "step-2-build-a-system"]], "Step 2: Setting up a coarser model": [[39, "step-2-setting-up-a-coarser-model"]], "Step 3: Describe the interactions between the particles": [[37, "step-3-describe-the-interactions-between-the-particles"]], "Step 3: Mapping the fine grained trajectory to a coarser representation": [[39, "step-3-mapping-the-fine-grained-trajectory-to-a-coarser-representation"]], "Step 4: Run the coarser IBI simulations": [[39, "step-4-run-the-coarser-ibi-simulations"]], "Step 4: Run the simulation": [[37, "step-4-run-the-simulation"]], "Step 5: Visualization": [[39, "step-5-visualization"]], "Step 5: Visualize the results": [[37, "step-5-visualize-the-results"]], "Step 6: Customize the interactions": [[37, "step-6-customize-the-interactions"]], "Step 7: Add bonds": [[37, "step-7-add-bonds"]], "Suggestions for a good README": [[0, "suggestions-for-a-good-readme"]], "Support": [[0, "support"]], "Test and Deploy": [[0, "test-and-deploy"]], "Tutorials": [[41, null]], "Usage": [[0, "usage"]], "Utilities": [[33, null]], "Visuals": [[0, "visuals"]], "arbdmodel-docs": [[0, null]], "binary_manager": [[30, null]], "coords": [[31, null]], "core_objects": [[1, null]], "engine": [[27, null]], "fjc_polymer_model": [[9, null]], "grid": [[32, null]], "hps_polymer_model": [[10, null]], "ibi": [[6, null]], "interactions": [[8, null]], "kh_polymer_model": [[12, null]], "logger": [[34, null]], "mesh_process_surface": [[19, null]], "mesh_process_volume": [[20, null]], "mesh_rigidbody": [[21, null]], "model": [[3, null]], "mpipi_polymer": [[13, null]], "onck_polymer_model": [[14, null]], "parmed_bd": [[29, null]], "polymer": [[15, null]], "sali_polymer_model": [[16, null]], "shape_cg": [[26, null]], "sim_config": [[4, null]], "simplearbd": [[22, null]], "ssdna_two_bead": [[17, null]], "structure_from_pdb": [[23, null]], "structure_rigidbody": [[24, null]], "version": [[35, null]]}, "docnames": ["README", "api/core/core_objects", "api/core/index", "api/core/model", "api/core/sim_config", "api/index", "api/interaction_potentials/ibi", "api/interaction_potentials/index", "api/interaction_potentials/interactions", "api/polymer_modeling/fjc_polymer_model", "api/polymer_modeling/hps_polymer_model", "api/polymer_modeling/index", "api/polymer_modeling/kh_polymer_model", "api/polymer_modeling/mpipi_polymer", "api/polymer_modeling/onck_polymer_model", "api/polymer_modeling/polymer", "api/polymer_modeling/sali_polymer_model", "api/polymer_modeling/ssdna_two_bead", "api/rigidbody_models/index", "api/rigidbody_models/mesh_process_surface", "api/rigidbody_models/mesh_process_volume", "api/rigidbody_models/mesh_rigidbody", "api/rigidbody_models/simplearbd", "api/rigidbody_models/structure_from_pdb", "api/rigidbody_models/structure_rigidbody", "api/shape-based_models/index", "api/shape-based_models/shape_cg", "api/simulation_engines/engine", "api/simulation_engines/index", "api/simulation_engines/parmed_bd", "api/utilities/binary_manager", "api/utilities/coords", "api/utilities/grid", "api/utilities/index", "api/utilities/logger", "api/utilities/version", "intro", "tutorials/1-basics/1-basics", "tutorials/2-polymer-objects/2-polymer-objects", "tutorials/3-iterative-boltzmann-inversion/3-ibi", "tutorials/4-rigid-bodies/4-rigid-bodies", "tutorials/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["README.md", "api/core/core_objects.md", "api/core/index.md", "api/core/model.md", "api/core/sim_config.md", "api/index.md", "api/interaction_potentials/ibi.md", "api/interaction_potentials/index.md", "api/interaction_potentials/interactions.md", "api/polymer_modeling/fjc_polymer_model.md", "api/polymer_modeling/hps_polymer_model.md", "api/polymer_modeling/index.md", "api/polymer_modeling/kh_polymer_model.md", "api/polymer_modeling/mpipi_polymer.md", "api/polymer_modeling/onck_polymer_model.md", "api/polymer_modeling/polymer.md", "api/polymer_modeling/sali_polymer_model.md", "api/polymer_modeling/ssdna_two_bead.md", "api/rigidbody_models/index.md", "api/rigidbody_models/mesh_process_surface.md", "api/rigidbody_models/mesh_process_volume.md", "api/rigidbody_models/mesh_rigidbody.md", "api/rigidbody_models/simplearbd.md", "api/rigidbody_models/structure_from_pdb.md", "api/rigidbody_models/structure_rigidbody.md", "api/shape-based_models/index.md", "api/shape-based_models/shape_cg.md", "api/simulation_engines/engine.md", "api/simulation_engines/index.md", "api/simulation_engines/parmed_bd.md", "api/utilities/binary_manager.md", "api/utilities/coords.md", "api/utilities/grid.md", "api/utilities/index.md", "api/utilities/logger.md", "api/utilities/version.md", "intro.md", "tutorials/1-basics/1-basics.ipynb", "tutorials/2-polymer-objects/2-polymer-objects.ipynb", "tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb", "tutorials/4-rigid-bodies/4-rigid-bodies.ipynb", "tutorials/index.md"], "indexentries": {"abstractibipotential (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.AbstractIBIpotential", false]], "abstractpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.AbstractPotential", false]], "add() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add", false]], "add() (parent method)": [[1, "arbdmodel.core_objects.Parent.add", false]], "add_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_angle", false]], "add_bond() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_bond", false]], "add_bond_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_bond_angle", false]], "add_confinement() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_confinement", false]], "add_diffusible_object() (structurerigidbodymodel method)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel.add_diffusible_object", false]], "add_dihedral() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_dihedral", false]], "add_exclusion() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_exclusion", false]], "add_grid_potential() (particletype method)": [[1, "arbdmodel.core_objects.ParticleType.add_grid_potential", false]], "add_grid_potential() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.add_grid_potential", false]], "add_grid_potential() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.add_grid_potential", false]], "add_group_site() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add_group_site", false]], "add_improper() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_improper", false]], "add_location() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.add_location", false]], "add_nonbonded_interaction() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add_nonbonded_interaction", false]], "add_product_potential() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_product_potential", false]], "add_protein_nb_interactions() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_protein_nb_interactions", false]], "add_proteins() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_proteins", false]], "add_restraint() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.add_restraint", false]], "add_restraint() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.add_restraint", false]], "add_restraint() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.add_restraint", false]], "add_smaller_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.add_smaller_grid", false]], "add_static_object() (structurerigidbodymodel method)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel.add_static_object", false]], "add_vector_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_vector_angle", false]], "align_structure() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.align_structure", false]], "angledof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.AngleDof", false]], "apbsrunner (class in arbdmodel.engine)": [[27, "arbdmodel.engine.APBSRunner", false]], "apply_gaussian_smoothing() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.apply_gaussian_smoothing", false]], "applyorientation() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.applyOrientation", false]], "arbdengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.ArbdEngine", false]], "arbdmodel (class in arbdmodel.model)": [[3, "arbdmodel.model.ArbdModel", false]], "arbdmodel.binary_manager": [[30, "module-arbdmodel.binary_manager", false]], "arbdmodel.coords": [[31, "module-arbdmodel.coords", false]], "arbdmodel.core_objects": [[1, "module-arbdmodel.core_objects", false]], "arbdmodel.engine": [[27, "module-arbdmodel.engine", false]], "arbdmodel.fjc_polymer_model": [[9, "module-arbdmodel.fjc_polymer_model", false]], "arbdmodel.grid": [[32, "module-arbdmodel.grid", false]], "arbdmodel.hps_polymer_model": [[10, "module-arbdmodel.hps_polymer_model", false]], "arbdmodel.ibi": [[6, "module-arbdmodel.ibi", false]], "arbdmodel.interactions": [[8, "module-arbdmodel.interactions", false]], "arbdmodel.kh_polymer_model": [[12, "module-arbdmodel.kh_polymer_model", false]], "arbdmodel.logger": [[34, "module-arbdmodel.logger", false]], "arbdmodel.mesh_process_surface": [[19, "module-arbdmodel.mesh_process_surface", false]], "arbdmodel.mesh_process_volume": [[20, "module-arbdmodel.mesh_process_volume", false]], "arbdmodel.mesh_rigidbody": [[21, "module-arbdmodel.mesh_rigidbody", false]], "arbdmodel.model": [[3, "module-arbdmodel.model", false]], "arbdmodel.mpipi_polymer": [[13, "module-arbdmodel.mpipi_polymer", false]], "arbdmodel.onck_polymer_model": [[14, "module-arbdmodel.onck_polymer_model", false]], "arbdmodel.parmed_bd": [[29, "module-arbdmodel.parmed_bd", false]], "arbdmodel.polymer": [[15, "module-arbdmodel.polymer", false]], "arbdmodel.sali_polymer_model": [[16, "module-arbdmodel.sali_polymer_model", false]], "arbdmodel.shape_cg": [[26, "module-arbdmodel.shape_cg", false]], "arbdmodel.sim_config": [[4, "module-arbdmodel.sim_config", false]], "arbdmodel.simplearbd": [[22, "module-arbdmodel.simplearbd", false]], "arbdmodel.ssdna_two_bead": [[17, "module-arbdmodel.ssdna_two_bead", false]], "arbdmodel.structure_from_pdb": [[23, "module-arbdmodel.structure_from_pdb", false]], "arbdmodel.structure_rigidbody": [[24, "module-arbdmodel.structure_rigidbody", false]], "arbdmodel.version": [[35, "module-arbdmodel.version", false]], "assign_ibi_degrees_of_freedom() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.assign_IBI_degrees_of_freedom", false]], "atom_types (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.atom_types", false]], "atoms_map (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.atoms_map", false]], "attach_particle() (rigidbodytype method)": [[1, "arbdmodel.core_objects.RigidBodyType.attach_particle", false]], "average_grids() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.average_grids", false]], "b (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.b", false]], "bins (abstractibipotential attribute)": [[6, "arbdmodel.ibi.AbstractIBIpotential.bins", false]], "bondangledof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.BondAngleDof", false]], "bonddof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.BondDof", false]], "bound_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.Bound_grid", false]], "boundarypotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.BoundaryPotential", false]], "calc_atom_sasa() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.calc_atom_sasa", false]], "calculate_damping() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.calculate_damping", false]], "calculate_damping() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.calculate_damping", false]], "calculate_dimensions_from_cell_vectors() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.calculate_dimensions_from_cell_vectors", false]], "calculate_hydrodynamic_properties() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.calculate_hydrodynamic_properties", false]], "calculate_total_mass() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.calculate_total_mass", false]], "call_git_describe() (in module arbdmodel.version)": [[35, "arbdmodel.version.call_git_describe", false]], "check_git_repository() (in module arbdmodel.version)": [[35, "arbdmodel.version.check_git_repository", false]], "child (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Child", false]], "citation (class in arbdmodel.version)": [[35, "arbdmodel.version.Citation", false]], "clear_all() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.clear_all", false]], "clear_all() (parent method)": [[1, "arbdmodel.core_objects.Parent.clear_all", false]], "clone (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Clone", false]], "clone() (group method)": [[1, "arbdmodel.core_objects.Group.clone", false]], "combine() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.combine", false]], "compute_volume() (angledof method)": [[6, "arbdmodel.ibi.AngleDof.compute_volume", false]], "compute_volume() (bonddof method)": [[6, "arbdmodel.ibi.BondDof.compute_volume", false]], "compute_volume() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.compute_volume", false]], "compute_volume() (pairdistributiondof method)": [[6, "arbdmodel.ibi.PairDistributionDof.compute_volume", false]], "compute_volume() (radiusdof method)": [[6, "arbdmodel.ibi.RadiusDof.compute_volume", false]], "concentration_to_debye_length() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.concentration_to_debye_length", false]], "connectableelement (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.ConnectableElement", false]], "connection (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.Connection", false]], "constant_force() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.constant_force", false]], "contour_to_monomer_index() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_monomer_index", false]], "contour_to_orientation() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_orientation", false]], "contour_to_position() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_position", false]], "contour_to_tangent() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_tangent", false]], "convert_sod_to_mg() (parmedarbd static method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.convert_sod_to_mg", false]], "convolve_kernel_truncate() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.convolve_kernel_truncate", false]], "create_bounding_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.create_bounding_grid", false]], "create_dual_topology() (parmedarbd static method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.create_dual_topology", false]], "create_dual_topology_model() (parmedarbd class method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.create_dual_topology_model", false]], "create_engine() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.create_engine", false]], "create_model() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.create_model", false]], "create_null() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.Create_null", false]], "debye_length (khnonbonded attribute)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.debye_length", false]], "debye_length (oncknonbonded attribute)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.debye_length", false]], "default_binary (arbdengine property)": [[27, "arbdmodel.engine.ArbdEngine.default_binary", false]], "default_binary (namdengine property)": [[27, "arbdmodel.engine.NamdEngine.default_binary", false]], "default_binary (simengine property)": [[27, "arbdmodel.engine.SimEngine.default_binary", false]], "defaultsimconf (class in arbdmodel.sim_config)": [[4, "arbdmodel.sim_config.DefaultSimConf", false]], "degreeoffreedom (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.DegreeOfFreedom", false]], "delete() (connection method)": [[15, "arbdmodel.polymer.Connection.delete", false]], "diffusiverigidbodytype (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.DiffusiveRigidBodyType", false]], "dihedraldof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.DihedralDof", false]], "dimensions_from_structure() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.dimensions_from_structure", false]], "dimensions_from_structure() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.dimensions_from_structure", false]], "display() (citation method)": [[35, "arbdmodel.version.Citation.display", false]], "dnamodel (class in arbdmodel.ssdna_two_bead)": [[17, "arbdmodel.ssdna_two_bead.DnaModel", false]], "dnastrandbeads (class in arbdmodel.ssdna_two_bead)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads", false]], "duplicate() (group method)": [[1, "arbdmodel.core_objects.Group.duplicate", false]], "duplicate() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.duplicate", false]], "duplicate() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.duplicate", false]], "excludedattributes (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.excludedAttributes", false]], "extend() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.extend", false]], "extend() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.extend", false]], "filename() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.filename", false], [6, "id1", false]], "filename() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.filename", false], [8, "id0", false]], "filename() (harmonicbondedpotential method)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.filename", false]], "filename() (nullpotential method)": [[8, "arbdmodel.interactions.NullPotential.filename", false]], "filename() (shapecgnonbonded method)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded.filename", false]], "filename() (wlcskpotential method)": [[8, "arbdmodel.interactions.WLCSKPotential.filename", false]], "fill_nans() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.fill_nans", false]], "find_shape_based_sites() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.find_shape_based_sites", false]], "fjcbeadsfrompolymer (class in arbdmodel.fjc_polymer_model)": [[9, "arbdmodel.fjc_polymer_model.FjcBeadsFromPolymer", false]], "fjcmodel (class in arbdmodel.fjc_polymer_model)": [[9, "arbdmodel.fjc_polymer_model.FjcModel", false]], "from_protein_list() (shapecgmodel class method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.from_protein_list", false]], "gaussian_kernel() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.gaussian_kernel", false]], "generate_beads() (polymermodel method)": [[15, "arbdmodel.polymer.PolymerModel.generate_beads", false]], "generate_beads() (salimodel method)": [[16, "arbdmodel.sali_polymer_model.SaliModel.generate_beads", false]], "generate_charge_distribution() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_charge_distribution", false]], "generate_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.Generate_coordinates", false]], "generate_electrostatic_map() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_electrostatic_map", false]], "generate_potential_grid() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.generate_potential_grid", false]], "generate_potential_grid() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.generate_potential_grid", false]], "generate_protein() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.generate_protein", false]], "generate_random_protein_positions() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.generate_random_protein_positions", false]], "generate_spanning_vectors() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.Generate_spanning_vectors", false]], "generate_vdw_maps() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_vdw_maps", false]], "get_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_angles", false]], "get_attached_particles() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.get_attached_particles", false]], "get_attached_particles() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.get_attached_particles", false]], "get_binary() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.get_binary", false]], "get_bond_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_bond_angles", false]], "get_bonds() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_bonds", false]], "get_center() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.get_center", false]], "get_center() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_center", false]], "get_center() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.get_center", false]], "get_center() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.get_center", false]], "get_cg_distribution() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.get_cg_distribution", false], [6, "id2", false]], "get_coarse_protein() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.get_coarse_protein", false]], "get_coarse_types() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.get_coarse_types", false]], "get_collapsed_position() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.get_collapsed_position", false]], "get_connected_location() (location method)": [[15, "arbdmodel.polymer.Location.get_connected_location", false]], "get_connections() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.get_connections", false]], "get_connections_and_locations() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_connections_and_locations", false]], "get_contour_sorted_connections_and_locations() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.get_contour_sorted_connections_and_locations", false]], "get_default_conf() (arbdengine method)": [[27, "arbdmodel.engine.ArbdEngine.get_default_conf", false]], "get_default_conf() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.get_default_conf", false]], "get_default_conf() (simengine method)": [[27, "arbdmodel.engine.SimEngine.get_default_conf", false]], "get_dihedrals() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_dihedrals", false]], "get_exclusions() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_exclusions", false]], "get_grid_files() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.get_grid_files", false]], "get_impropers() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_impropers", false]], "get_location_at() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_location_at", false]], "get_locations() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_locations", false]], "get_monomer_index() (location method)": [[15, "arbdmodel.polymer.Location.get_monomer_index", false]], "get_original_recursively() (clone method)": [[1, "arbdmodel.core_objects.Clone.get_original_recursively", false]], "get_particle_assignments() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.get_particle_assignments", false]], "get_product_potentials() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_product_potentials", false]], "get_protein_types() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.get_protein_types", false]], "get_resource_path() (in module arbdmodel.logger)": [[34, "arbdmodel.logger.get_resource_path", false]], "get_restraints() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.get_restraints", false]], "get_restraints() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_restraints", false]], "get_restraints() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.get_restraints", false]], "get_restraints() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.get_restraints", false]], "get_slice_enclosing_smaller_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.get_slice_enclosing_smaller_grid", false]], "get_target_distribution() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.get_target_distribution", false], [6, "id3", false]], "get_values() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.get_values", false]], "get_values() (pairdistributiondof method)": [[6, "arbdmodel.ibi.PairDistributionDof.get_values", false]], "get_vector_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_vector_angles", false]], "get_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.get_version", false]], "getparticletypesandcounts() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.getParticleTypesAndCounts", false]], "group (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Group", false]], "groupsite (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.GroupSite", false]], "halfharmonic (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HalfHarmonic", false]], "harmonicangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicAngle", false]], "harmonicbond (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicBond", false]], "harmonicbondedpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicBondedPotential", false]], "harmonicdihedral (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicDihedral", false]], "harmonicvectorangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicVectorAngle", false]], "hpsbeads (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsBeads", false]], "hpsmodel (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsModel", false]], "hpsnonbonded (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsNonbonded", false]], "hydroprorunner (class in arbdmodel.engine)": [[27, "arbdmodel.engine.HydroProRunner", false]], "ibiangle (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIAngle", false]], "ibibond (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIBond", false]], "ibidihedral (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIDihedral", false]], "ibinonbonded (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBINonbonded", false]], "index() (parent method)": [[1, "arbdmodel.core_objects.Parent.index", false]], "initialize_binary_paths() (in module arbdmodel.binary_manager)": [[30, "arbdmodel.binary_manager.initialize_binary_paths", false]], "insert() (parent method)": [[1, "arbdmodel.core_objects.Parent.insert", false]], "insert_monomers() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.insert_monomers", false]], "is_dirty() (in module arbdmodel.version)": [[35, "arbdmodel.version.is_dirty", false]], "is_same_type() (particletype method)": [[1, "arbdmodel.core_objects.ParticleType.is_same_type", false]], "isotropic_kernel() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.isotropic_kernel", false]], "items() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.items", false]], "iterate_connections_and_locations() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.iterate_connections_and_locations", false]], "khbeads (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhBeads", false]], "khmodel (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhModel", false]], "khnonbonded (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded", false]], "kscale (harmonicangle property)": [[8, "arbdmodel.interactions.HarmonicAngle.kscale", false]], "kscale (harmonicbond property)": [[8, "arbdmodel.interactions.HarmonicBond.kscale", false]], "kscale (harmonicbondedpotential property)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.kscale", false]], "kscale (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.kscale", false]], "kscale (harmonicvectorangle property)": [[8, "arbdmodel.interactions.HarmonicVectorAngle.kscale", false]], "lennardjones (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.LennardJones", false]], "linearbond (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.LinearBond", false]], "load_structure() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.load_structure", false]], "load_target_ibi_distributions() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.load_target_IBI_distributions", false]], "loadgrid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.loadGrid", false]], "location (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.Location", false]], "main() (in module arbdmodel.simplearbd)": [[22, "arbdmodel.simplearbd.main", false]], "max_force (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.max_force", false]], "max_force (khnonbonded attribute)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.max_force", false]], "max_force (oncknonbonded attribute)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.max_force", false]], "max_potential (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.max_potential", false]], "meshprocessor (class in arbdmodel.mesh_process_volume)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor", false]], "meshrigidbodytype (class in arbdmodel.mesh_rigidbody)": [[21, "arbdmodel.mesh_rigidbody.MeshRigidBodyType", false]], "micron_to_angstrom (meshprocessor attribute)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.MICRON_TO_ANGSTROM", false]], "micron_to_angstrom (surfacemeshprocessor attribute)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.MICRON_TO_ANGSTROM", false]], "minimizermsd() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.minimizeRmsd", false]], "module": [[1, "module-arbdmodel.core_objects", false], [3, "module-arbdmodel.model", false], [4, "module-arbdmodel.sim_config", false], [6, "module-arbdmodel.ibi", false], [8, "module-arbdmodel.interactions", false], [9, "module-arbdmodel.fjc_polymer_model", false], [10, "module-arbdmodel.hps_polymer_model", false], [12, "module-arbdmodel.kh_polymer_model", false], [13, "module-arbdmodel.mpipi_polymer", false], [14, "module-arbdmodel.onck_polymer_model", false], [15, "module-arbdmodel.polymer", false], [16, "module-arbdmodel.sali_polymer_model", false], [17, "module-arbdmodel.ssdna_two_bead", false], [19, "module-arbdmodel.mesh_process_surface", false], [20, "module-arbdmodel.mesh_process_volume", false], [21, "module-arbdmodel.mesh_rigidbody", false], [22, "module-arbdmodel.simplearbd", false], [23, "module-arbdmodel.structure_from_pdb", false], [24, "module-arbdmodel.structure_rigidbody", false], [26, "module-arbdmodel.shape_cg", false], [27, "module-arbdmodel.engine", false], [29, "module-arbdmodel.parmed_bd", false], [30, "module-arbdmodel.binary_manager", false], [31, "module-arbdmodel.coords", false], [32, "module-arbdmodel.grid", false], [34, "module-arbdmodel.logger", false], [35, "module-arbdmodel.version", false]], "monomer_index_to_contour() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.monomer_index_to_contour", false]], "monomers_per_bead_group (polymerbeads property)": [[15, "arbdmodel.polymer.PolymerBeads.monomers_per_bead_group", false]], "mpipibeads (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiBeads", false]], "mpipimodel (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiModel", false]], "mpipinonbonded (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiNonbonded", false]], "namdengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.NamdEngine", false]], "neighborhood_average() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.neighborhood_average", false]], "nt (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.nt", false]], "nullpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.NullPotential", false]], "num_bead_groups (polymerbeads property)": [[15, "arbdmodel.polymer.PolymerBeads.num_bead_groups", false]], "onckbeads (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckBeads", false]], "onckmodel (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckModel", false]], "oncknonbonded (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded", false]], "other() (connection method)": [[15, "arbdmodel.polymer.Connection.other", false]], "p (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.p", false]], "pairdistributiondof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.PairDistributionDof", false]], "parent (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Parent", false]], "parmed_structure (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.parmed_structure", false]], "parmedarbd (class in arbdmodel.parmed_bd)": [[29, "arbdmodel.parmed_bd.ParmedArbd", false]], "parse_output() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.parse_output", false]], "particletype (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.ParticleType", false]], "pdbmodel (class in arbdmodel.model)": [[3, "arbdmodel.model.PdbModel", false]], "peptide_bond (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.peptide_bond", false]], "periodic (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.periodic", false]], "periodic (abstractpotential property)": [[8, "id1", false]], "periodic (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.periodic", false]], "periodic (ibidihedral property)": [[6, "arbdmodel.ibi.IBIDihedral.periodic", false]], "pointparticle (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.PointParticle", false]], "polymer (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.polymer", false]], "polymerbeads (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerBeads", false]], "polymergroup (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerGroup", false]], "polymermodel (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerModel", false]], "polymersection (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerSection", false]], "potential (abstractibipotential attribute)": [[6, "arbdmodel.ibi.AbstractIBIpotential.potential", false]], "potential() (abstractibipotential method)": [[6, "id0", false], [6, "id4", false]], "potential() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.potential", false], [8, "id2", false]], "potential() (boundarypotential method)": [[8, "arbdmodel.interactions.BoundaryPotential.potential", false]], "potential() (halfharmonic method)": [[8, "arbdmodel.interactions.HalfHarmonic.potential", false]], "potential() (harmonicbond method)": [[8, "arbdmodel.interactions.HarmonicBond.potential", false]], "potential() (harmonicbondedpotential method)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.potential", false]], "potential() (hpsnonbonded method)": [[10, "arbdmodel.hps_polymer_model.HpsNonbonded.potential", false]], "potential() (khnonbonded method)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.potential", false], [12, "id0", false]], "potential() (lennardjones method)": [[8, "arbdmodel.interactions.LennardJones.potential", false]], "potential() (linearbond method)": [[16, "arbdmodel.sali_polymer_model.LinearBond.potential", false]], "potential() (mpipinonbonded method)": [[13, "arbdmodel.mpipi_polymer.MpipiNonbonded.potential", false]], "potential() (nullpotential method)": [[8, "arbdmodel.interactions.NullPotential.potential", false]], "potential() (oncknonbonded method)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.potential", false], [14, "id0", false]], "potential() (salinonbonded method)": [[16, "arbdmodel.sali_polymer_model.SaliNonbonded.potential", false]], "potential() (shapecgnonbonded method)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded.potential", false]], "potential() (tabulatednonbonded method)": [[8, "arbdmodel.interactions.TabulatedNonbonded.potential", false]], "potential() (wlcskangle method)": [[8, "arbdmodel.interactions.WLCSKAngle.potential", false]], "potential() (wlcskbond method)": [[8, "arbdmodel.interactions.WLCSKBond.potential", false]], "prepare_for_simulation() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.prepare_for_simulation", false]], "process() (staticobject method)": [[24, "arbdmodel.structure_rigidbody.StaticObject.process", false]], "process_mesh_file() (in module arbdmodel.mesh_process_volume)": [[20, "arbdmodel.mesh_process_volume.process_mesh_file", false]], "process_structure() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.process_structure", false]], "process_surface_mesh() (in module arbdmodel.mesh_process_surface)": [[19, "arbdmodel.mesh_process_surface.process_surface_mesh", false]], "quaternion_exp() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_exp", false]], "quaternion_from_matrix() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_from_matrix", false]], "quaternion_inverse() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_inverse", false]], "quaternion_product() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_product", false]], "quaternion_slerp() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_slerp", false]], "quaternion_to_matrix() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_to_matrix", false]], "radiusdof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.RadiusDof", false]], "range_ (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.range_", false]], "range_ (abstractpotential property)": [[8, "id3", false]], "read_arbd_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.read_arbd_coordinates", false]], "read_average_arbd_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.read_average_arbd_coordinates", false]], "read_cg_potential() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.read_cg_potential", false], [6, "id5", false]], "read_files() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.read_files", false]], "read_release_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.read_release_version", false]], "read_version_file() (in module arbdmodel.version)": [[35, "arbdmodel.version.read_version_file", false]], "readarbdcoords() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.readArbdCoords", false]], "readavgarbdcoords() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.readAvgArbdCoords", false]], "remove() (parent method)": [[1, "arbdmodel.core_objects.Parent.remove", false]], "remove_monomers() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.remove_monomers", false]], "replace_false_with_distance() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.replace_false_with_distance", false]], "resolution (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.resolution", false]], "rigidbody (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.RigidBody", false]], "rigidbodytype (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.RigidBodyType", false]], "rotate() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.rotate", false]], "rotate() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.rotate", false]], "rotate() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.rotate", false]], "rotationaboutaxis() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.rotationAboutAxis", false]], "run_calculation() (apbsrunner method)": [[27, "arbdmodel.engine.APBSRunner.run_calculation", false]], "run_calculation() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.run_calculation", false]], "run_from_minimized() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.run_from_minimized", false]], "run_ibi() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.run_IBI", false]], "run_minimization() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.run_minimization", false]], "run_simulation() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.run_simulation", false]], "run_simulation() (simplearbdengine method)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine.run_simulation", false]], "salibeadsfrompolymer (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliBeadsFromPolymer", false]], "salimodel (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliModel", false]], "salinonbonded (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliNonbonded", false]], "save_aligned_mesh() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.save_aligned_mesh", false]], "save_aligned_mesh() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_aligned_mesh", false]], "save_aligned_mesh_both_formats() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_aligned_mesh_both_formats", false]], "save_as_pdb() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.save_as_pdb", false]], "save_as_pdb() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_as_pdb", false]], "sequence (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.sequence", false]], "set_binary() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.set_binary", false]], "set_connection() (location method)": [[15, "arbdmodel.polymer.Location.set_connection", false]], "set_damping_coefficient() (fjcmodel method)": [[9, "arbdmodel.fjc_polymer_model.FjcModel.set_damping_coefficient", false]], "set_damping_coefficient() (hpsmodel method)": [[10, "arbdmodel.hps_polymer_model.HpsModel.set_damping_coefficient", false]], "set_damping_coefficient() (khmodel method)": [[12, "arbdmodel.kh_polymer_model.KhModel.set_damping_coefficient", false]], "set_damping_coefficient() (mpipimodel method)": [[13, "arbdmodel.mpipi_polymer.MpipiModel.set_damping_coefficient", false]], "set_damping_coefficient() (onckmodel method)": [[14, "arbdmodel.onck_polymer_model.OnckModel.set_damping_coefficient", false]], "set_orientation_splines() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.set_orientation_splines", false]], "set_splines() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.set_splines", false]], "setup_and_run() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.setup_and_run", false]], "setup_diffusible_objects() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.setup_diffusible_objects", false]], "setup_static_objects() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.setup_static_objects", false]], "shapecgfactory (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGFactory", false]], "shapecgmodel (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGModel", false]], "shapecgnonbonded (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded", false]], "simconf (class in arbdmodel.sim_config)": [[4, "arbdmodel.sim_config.SimConf", false]], "simengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.SimEngine", false]], "simplearbdconfig (class in arbdmodel.simplearbd)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig", false]], "simplearbdengine (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine", false]], "simulate() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.simulate", false]], "simulate() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.simulate", false]], "simulate() (simengine method)": [[27, "arbdmodel.engine.SimEngine.simulate", false]], "slab_potential_z() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.slab_potential_z", false]], "spherical_confinement() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.spherical_confinement", false]], "spring_constant (hpsmodel attribute)": [[10, "arbdmodel.hps_polymer_model.HpsModel.spring_constant", false]], "spring_constant (khmodel attribute)": [[12, "arbdmodel.kh_polymer_model.KhModel.spring_constant", false]], "spring_constant (mpipimodel attribute)": [[13, "arbdmodel.mpipi_polymer.MpipiModel.spring_constant", false]], "spring_constant (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.spring_constant", false]], "staticobject (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.StaticObject", false]], "structureprocessor (class in arbdmodel.structure_from_pdb)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor", false]], "structurerigidbodymodel (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel", false]], "surfacemeshprocessor (class in arbdmodel.mesh_process_surface)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor", false]], "tabulatednonbonded (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.TabulatedNonbonded", false]], "temperature (defaultsimconf property)": [[4, "arbdmodel.sim_config.DefaultSimConf.temperature", false]], "temperature (simconf property)": [[4, "arbdmodel.sim_config.SimConf.temperature", false]], "test_average_grids() (testaveragegrids method)": [[32, "arbdmodel.grid.TestAverageGrids.test_average_grids", false]], "testaveragegrids (class in arbdmodel.grid)": [[32, "arbdmodel.grid.TestAverageGrids", false]], "transform() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.transform", false]], "transformable (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Transformable", false]], "translate() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.translate", false]], "translate() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.translate", false]], "translate() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.translate", false]], "type_ (harmonicangle property)": [[8, "arbdmodel.interactions.HarmonicAngle.type_", false]], "type_ (harmonicbond property)": [[8, "arbdmodel.interactions.HarmonicBond.type_", false]], "type_ (harmonicbondedpotential property)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.type_", false]], "type_ (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.type_", false]], "type_ (harmonicvectorangle property)": [[8, "arbdmodel.interactions.HarmonicVectorAngle.type_", false]], "type_ (wlcskangle property)": [[8, "arbdmodel.interactions.WLCSKAngle.type_", false]], "type_ (wlcskbond property)": [[8, "arbdmodel.interactions.WLCSKBond.type_", false]], "types_dict (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.types_dict", false]], "unit_quat_conversions() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.unit_quat_conversions", false]], "update() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.update", false]], "update() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.update", false]], "update_splines() (polymermodel method)": [[15, "arbdmodel.polymer.PolymerModel.update_splines", false]], "update_splines() (salimodel method)": [[16, "arbdmodel.sali_polymer_model.SaliModel.update_splines", false]], "usenonbondedscheme() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.useNonbondedScheme", false]], "version (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.version", false]], "vmd_cylinder_tcl() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.vmd_cylinder_tcl", false]], "vmd_tube_tcl() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.vmd_tube_tcl", false]], "wlcskangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKAngle", false]], "wlcskbond (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKBond", false]], "wlcskpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKPotential", false]], "wrap_vector() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.wrap_vector", false]], "write_cg_potential() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.write_cg_potential", false], [6, "id6", false]], "write_conf() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.write_conf", false]], "write_config() (apbsrunner method)": [[27, "arbdmodel.engine.APBSRunner.write_config", false]], "write_config() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.write_config", false]], "write_confine_dx() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.write_confine_dx", false]], "write_file() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.write_file", false], [6, "id7", false]], "write_file() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.write_file", false], [8, "id4", false]], "write_file() (boundarypotential method)": [[8, "arbdmodel.interactions.BoundaryPotential.write_file", false]], "write_file() (ibinonbonded method)": [[6, "arbdmodel.ibi.IBINonbonded.write_file", false]], "write_file() (tabulatednonbonded method)": [[8, "arbdmodel.interactions.TabulatedNonbonded.write_file", false]], "write_no_enter_potential() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.write_no_enter_potential", false]], "write_no_enter_potential_dx() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.write_no_enter_potential_dx", false]], "write_pdb() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_pdb", false]], "write_pqr() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_pqr", false]], "write_psf() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_psf", false]], "write_release_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.write_release_version", false]], "write_restraint_files() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.write_restraint_files", false]], "write_simulation_files() (arbdengine method)": [[27, "arbdmodel.engine.ArbdEngine.write_simulation_files", false]], "write_simulation_files() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.write_simulation_files", false]], "write_simulation_files() (simengine method)": [[27, "arbdmodel.engine.SimEngine.write_simulation_files", false]], "write_simulation_files() (simplearbdengine method)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine.write_simulation_files", false]], "writedx() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.writeDx", false]], "zero (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.zero", false]]}, "objects": {"arbdmodel": [[30, 0, 0, "-", "binary_manager"], [31, 0, 0, "-", "coords"], [1, 0, 0, "-", "core_objects"], [27, 0, 0, "-", "engine"], [9, 0, 0, "-", "fjc_polymer_model"], [32, 0, 0, "-", "grid"], [10, 0, 0, "-", "hps_polymer_model"], [6, 0, 0, "-", "ibi"], [8, 0, 0, "-", "interactions"], [12, 0, 0, "-", "kh_polymer_model"], [34, 0, 0, "-", "logger"], [19, 0, 0, "-", "mesh_process_surface"], [20, 0, 0, "-", "mesh_process_volume"], [21, 0, 0, "-", "mesh_rigidbody"], [3, 0, 0, "-", "model"], [13, 0, 0, "-", "mpipi_polymer"], [14, 0, 0, "-", "onck_polymer_model"], [29, 0, 0, "-", "parmed_bd"], [15, 0, 0, "-", "polymer"], [16, 0, 0, "-", "sali_polymer_model"], [26, 0, 0, "-", "shape_cg"], [4, 0, 0, "-", "sim_config"], [22, 0, 0, "-", "simplearbd"], [17, 0, 0, "-", "ssdna_two_bead"], [23, 0, 0, "-", "structure_from_pdb"], [24, 0, 0, "-", "structure_rigidbody"], [35, 0, 0, "-", "version"]], "arbdmodel.binary_manager": [[30, 1, 1, "", "initialize_binary_paths"]], "arbdmodel.coords": [[31, 1, 1, "", "Generate_coordinates"], [31, 1, 1, "", "Generate_spanning_vectors"], [31, 1, 1, "", "calculate_dimensions_from_cell_vectors"], [31, 1, 1, "", "minimizeRmsd"], [31, 1, 1, "", "quaternion_exp"], [31, 1, 1, "", "quaternion_from_matrix"], [31, 1, 1, "", "quaternion_inverse"], [31, 1, 1, "", "quaternion_product"], [31, 1, 1, "", "quaternion_slerp"], [31, 1, 1, "", "quaternion_to_matrix"], [31, 1, 1, "", "readArbdCoords"], [31, 1, 1, "", "readAvgArbdCoords"], [31, 1, 1, "", "read_arbd_coordinates"], [31, 1, 1, "", "read_average_arbd_coordinates"], [31, 1, 1, "", "rotationAboutAxis"], [31, 1, 1, "", "unit_quat_conversions"]], "arbdmodel.core_objects": [[1, 2, 1, "", "Child"], [1, 2, 1, "", "Clone"], [1, 2, 1, "", "Group"], [1, 2, 1, "", "GroupSite"], [1, 2, 1, "", "Parent"], [1, 2, 1, "", "ParticleType"], [1, 2, 1, "", "PointParticle"], [1, 2, 1, "", "RigidBody"], [1, 2, 1, "", "RigidBodyType"], [1, 2, 1, "", "Transformable"]], "arbdmodel.core_objects.Clone": [[1, 3, 1, "", "get_original_recursively"]], "arbdmodel.core_objects.Group": [[1, 3, 1, "", "clone"], [1, 3, 1, "", "duplicate"]], "arbdmodel.core_objects.GroupSite": [[1, 3, 1, "", "add_restraint"], [1, 3, 1, "", "get_center"], [1, 3, 1, "", "get_restraints"]], "arbdmodel.core_objects.Parent": [[1, 3, 1, "", "add"], [1, 3, 1, "", "add_angle"], [1, 3, 1, "", "add_bond"], [1, 3, 1, "", "add_bond_angle"], [1, 3, 1, "", "add_dihedral"], [1, 3, 1, "", "add_exclusion"], [1, 3, 1, "", "add_improper"], [1, 3, 1, "", "add_product_potential"], [1, 3, 1, "", "add_vector_angle"], [1, 3, 1, "", "clear_all"], [1, 3, 1, "", "get_angles"], [1, 3, 1, "", "get_bond_angles"], [1, 3, 1, "", "get_bonds"], [1, 3, 1, "", "get_center"], [1, 3, 1, "", "get_dihedrals"], [1, 3, 1, "", "get_exclusions"], [1, 3, 1, "", "get_impropers"], [1, 3, 1, "", "get_product_potentials"], [1, 3, 1, "", "get_restraints"], [1, 3, 1, "", "get_vector_angles"], [1, 3, 1, "", "index"], [1, 3, 1, "", "insert"], [1, 3, 1, "", "remove"]], "arbdmodel.core_objects.ParticleType": [[1, 3, 1, "", "add_grid_potential"], [1, 4, 1, "", "excludedAttributes"], [1, 3, 1, "", "is_same_type"]], "arbdmodel.core_objects.PointParticle": [[1, 3, 1, "", "add_grid_potential"], [1, 3, 1, "", "add_restraint"], [1, 3, 1, "", "duplicate"], [1, 3, 1, "", "get_restraints"]], "arbdmodel.core_objects.RigidBody": [[1, 3, 1, "", "add_restraint"], [1, 3, 1, "", "duplicate"], [1, 3, 1, "", "get_restraints"]], "arbdmodel.core_objects.RigidBodyType": [[1, 3, 1, "", "attach_particle"]], "arbdmodel.core_objects.Transformable": [[1, 3, 1, "", "applyOrientation"], [1, 3, 1, "", "get_collapsed_position"], [1, 3, 1, "", "rotate"], [1, 3, 1, "", "transform"], [1, 3, 1, "", "translate"]], "arbdmodel.engine": [[27, 2, 1, "", "APBSRunner"], [27, 2, 1, "", "ArbdEngine"], [27, 2, 1, "", "HydroProRunner"], [27, 2, 1, "", "NamdEngine"], [27, 2, 1, "", "SimEngine"]], "arbdmodel.engine.APBSRunner": [[27, 3, 1, "", "run_calculation"], [27, 3, 1, "", "write_config"]], "arbdmodel.engine.ArbdEngine": [[27, 5, 1, "", "default_binary"], [27, 3, 1, "", "get_default_conf"], [27, 3, 1, "", "write_simulation_files"]], "arbdmodel.engine.HydroProRunner": [[27, 3, 1, "", "parse_output"], [27, 3, 1, "", "run_calculation"], [27, 3, 1, "", "write_config"]], "arbdmodel.engine.NamdEngine": [[27, 5, 1, "", "default_binary"], [27, 3, 1, "", "get_default_conf"], [27, 3, 1, "", "write_conf"], [27, 3, 1, "", "write_simulation_files"]], "arbdmodel.engine.SimEngine": [[27, 5, 1, "", "default_binary"], [27, 3, 1, "", "get_default_conf"], [27, 3, 1, "", "simulate"], [27, 3, 1, "", "write_simulation_files"]], "arbdmodel.fjc_polymer_model": [[9, 2, 1, "", "FjcBeadsFromPolymer"], [9, 2, 1, "", "FjcModel"]], "arbdmodel.fjc_polymer_model.FjcModel": [[9, 3, 1, "", "set_damping_coefficient"]], "arbdmodel.grid": [[32, 1, 1, "", "Bound_grid"], [32, 1, 1, "", "Create_null"], [32, 2, 1, "", "TestAverageGrids"], [32, 1, 1, "", "add_smaller_grid"], [32, 1, 1, "", "average_grids"], [32, 1, 1, "", "constant_force"], [32, 1, 1, "", "convolve_kernel_truncate"], [32, 1, 1, "", "create_bounding_grid"], [32, 1, 1, "", "fill_nans"], [32, 1, 1, "", "gaussian_kernel"], [32, 1, 1, "", "get_slice_enclosing_smaller_grid"], [32, 1, 1, "", "isotropic_kernel"], [32, 1, 1, "", "loadGrid"], [32, 1, 1, "", "neighborhood_average"], [32, 1, 1, "", "replace_false_with_distance"], [32, 1, 1, "", "slab_potential_z"], [32, 1, 1, "", "spherical_confinement"], [32, 1, 1, "", "writeDx"], [32, 1, 1, "", "write_confine_dx"]], "arbdmodel.grid.TestAverageGrids": [[32, 3, 1, "", "test_average_grids"]], "arbdmodel.hps_polymer_model": [[10, 2, 1, "", "HpsBeads"], [10, 2, 1, "", "HpsModel"], [10, 2, 1, "", "HpsNonbonded"]], "arbdmodel.hps_polymer_model.HpsModel": [[10, 3, 1, "", "set_damping_coefficient"], [10, 4, 1, "", "spring_constant"]], "arbdmodel.hps_polymer_model.HpsNonbonded": [[10, 3, 1, "", "potential"]], "arbdmodel.ibi": [[6, 2, 1, "", "AbstractIBIpotential"], [6, 2, 1, "", "AngleDof"], [6, 2, 1, "", "BondAngleDof"], [6, 2, 1, "", "BondDof"], [6, 2, 1, "", "DegreeOfFreedom"], [6, 2, 1, "", "DihedralDof"], [6, 2, 1, "", "IBIAngle"], [6, 2, 1, "", "IBIBond"], [6, 2, 1, "", "IBIDihedral"], [6, 2, 1, "", "IBINonbonded"], [6, 2, 1, "", "PairDistributionDof"], [6, 2, 1, "", "RadiusDof"]], "arbdmodel.ibi.AbstractIBIpotential": [[6, 4, 1, "", "bins"], [6, 3, 1, "id1", "filename"], [6, 3, 1, "id2", "get_cg_distribution"], [6, 3, 1, "id3", "get_target_distribution"], [6, 3, 1, "id4", "potential"], [6, 3, 1, "id5", "read_cg_potential"], [6, 3, 1, "id6", "write_cg_potential"], [6, 3, 1, "id7", "write_file"]], "arbdmodel.ibi.AngleDof": [[6, 3, 1, "", "compute_volume"]], "arbdmodel.ibi.BondDof": [[6, 3, 1, "", "compute_volume"]], "arbdmodel.ibi.DegreeOfFreedom": [[6, 3, 1, "", "compute_volume"], [6, 3, 1, "", "get_values"], [6, 3, 1, "", "wrap_vector"]], "arbdmodel.ibi.IBIDihedral": [[6, 5, 1, "", "periodic"]], "arbdmodel.ibi.IBINonbonded": [[6, 3, 1, "", "write_file"]], "arbdmodel.ibi.PairDistributionDof": [[6, 3, 1, "", "compute_volume"], [6, 3, 1, "", "get_values"]], "arbdmodel.ibi.RadiusDof": [[6, 3, 1, "", "compute_volume"]], "arbdmodel.interactions": [[8, 2, 1, "", "AbstractPotential"], [8, 2, 1, "", "BoundaryPotential"], [8, 2, 1, "", "HalfHarmonic"], [8, 2, 1, "", "HarmonicAngle"], [8, 2, 1, "", "HarmonicBond"], [8, 2, 1, "", "HarmonicBondedPotential"], [8, 2, 1, "", "HarmonicDihedral"], [8, 2, 1, "", "HarmonicVectorAngle"], [8, 2, 1, "", "LennardJones"], [8, 2, 1, "", "NullPotential"], [8, 2, 1, "", "TabulatedNonbonded"], [8, 2, 1, "", "WLCSKAngle"], [8, 2, 1, "", "WLCSKBond"], [8, 2, 1, "", "WLCSKPotential"]], "arbdmodel.interactions.AbstractPotential": [[8, 3, 1, "id0", "filename"], [8, 4, 1, "", "max_force"], [8, 4, 1, "", "max_potential"], [8, 5, 1, "id1", "periodic"], [8, 3, 1, "id2", "potential"], [8, 5, 1, "id3", "range_"], [8, 4, 1, "", "resolution"], [8, 3, 1, "id4", "write_file"], [8, 4, 1, "", "zero"]], "arbdmodel.interactions.BoundaryPotential": [[8, 3, 1, "", "potential"], [8, 3, 1, "", "write_file"]], "arbdmodel.interactions.HalfHarmonic": [[8, 3, 1, "", "potential"]], "arbdmodel.interactions.HarmonicAngle": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicBond": [[8, 5, 1, "", "kscale"], [8, 3, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicBondedPotential": [[8, 3, 1, "", "filename"], [8, 5, 1, "", "kscale"], [8, 3, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicDihedral": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "periodic"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicVectorAngle": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.LennardJones": [[8, 3, 1, "", "potential"]], "arbdmodel.interactions.NullPotential": [[8, 3, 1, "", "filename"], [8, 3, 1, "", "potential"]], "arbdmodel.interactions.TabulatedNonbonded": [[8, 3, 1, "", "potential"], [8, 3, 1, "", "write_file"]], "arbdmodel.interactions.WLCSKAngle": [[8, 3, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.WLCSKBond": [[8, 3, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.WLCSKPotential": [[8, 3, 1, "", "filename"]], "arbdmodel.kh_polymer_model": [[12, 2, 1, "", "KhBeads"], [12, 2, 1, "", "KhModel"], [12, 2, 1, "", "KhNonbonded"]], "arbdmodel.kh_polymer_model.KhModel": [[12, 3, 1, "", "set_damping_coefficient"], [12, 4, 1, "", "spring_constant"]], "arbdmodel.kh_polymer_model.KhNonbonded": [[12, 4, 1, "", "debye_length"], [12, 4, 1, "", "max_force"], [12, 3, 1, "id0", "potential"]], "arbdmodel.logger": [[34, 1, 1, "", "get_resource_path"]], "arbdmodel.mesh_process_surface": [[19, 2, 1, "", "SurfaceMeshProcessor"], [19, 1, 1, "", "process_surface_mesh"]], "arbdmodel.mesh_process_surface.SurfaceMeshProcessor": [[19, 4, 1, "", "MICRON_TO_ANGSTROM"], [19, 3, 1, "", "calculate_damping"], [19, 3, 1, "", "generate_potential_grid"], [19, 3, 1, "", "get_attached_particles"], [19, 3, 1, "", "save_aligned_mesh"], [19, 3, 1, "", "save_aligned_mesh_both_formats"], [19, 3, 1, "", "save_as_pdb"], [19, 3, 1, "", "write_no_enter_potential_dx"]], "arbdmodel.mesh_process_volume": [[20, 2, 1, "", "MeshProcessor"], [20, 1, 1, "", "process_mesh_file"]], "arbdmodel.mesh_process_volume.MeshProcessor": [[20, 4, 1, "", "MICRON_TO_ANGSTROM"], [20, 3, 1, "", "calculate_damping"], [20, 3, 1, "", "generate_potential_grid"], [20, 3, 1, "", "get_attached_particles"], [20, 3, 1, "", "save_aligned_mesh"], [20, 3, 1, "", "save_as_pdb"], [20, 3, 1, "", "write_no_enter_potential"]], "arbdmodel.mesh_rigidbody": [[21, 2, 1, "", "MeshRigidBodyType"]], "arbdmodel.model": [[3, 2, 1, "", "ArbdModel"], [3, 2, 1, "", "PdbModel"]], "arbdmodel.model.ArbdModel": [[3, 3, 1, "", "add"], [3, 3, 1, "", "add_group_site"], [3, 3, 1, "", "add_nonbonded_interaction"], [3, 3, 1, "", "assign_IBI_degrees_of_freedom"], [3, 3, 1, "", "clear_all"], [3, 3, 1, "", "dimensions_from_structure"], [3, 3, 1, "", "extend"], [3, 3, 1, "", "getParticleTypesAndCounts"], [3, 3, 1, "", "load_target_IBI_distributions"], [3, 3, 1, "", "prepare_for_simulation"], [3, 3, 1, "", "run_IBI"], [3, 3, 1, "", "simulate"], [3, 3, 1, "", "update"], [3, 3, 1, "", "useNonbondedScheme"]], "arbdmodel.model.PdbModel": [[3, 3, 1, "", "write_pdb"], [3, 3, 1, "", "write_pqr"], [3, 3, 1, "", "write_psf"]], "arbdmodel.mpipi_polymer": [[13, 2, 1, "", "MpipiBeads"], [13, 2, 1, "", "MpipiModel"], [13, 2, 1, "", "MpipiNonbonded"]], "arbdmodel.mpipi_polymer.MpipiModel": [[13, 3, 1, "", "set_damping_coefficient"], [13, 4, 1, "", "spring_constant"]], "arbdmodel.mpipi_polymer.MpipiNonbonded": [[13, 3, 1, "", "potential"]], "arbdmodel.onck_polymer_model": [[14, 2, 1, "", "OnckBeads"], [14, 2, 1, "", "OnckModel"], [14, 2, 1, "", "OnckNonbonded"]], "arbdmodel.onck_polymer_model.OnckBeads": [[14, 4, 1, "", "peptide_bond"], [14, 4, 1, "", "polymer"], [14, 4, 1, "", "sequence"], [14, 4, 1, "", "spring_constant"], [14, 4, 1, "", "types_dict"], [14, 4, 1, "", "version"]], "arbdmodel.onck_polymer_model.OnckModel": [[14, 3, 1, "", "set_damping_coefficient"]], "arbdmodel.onck_polymer_model.OnckNonbonded": [[14, 4, 1, "", "debye_length"], [14, 4, 1, "", "max_force"], [14, 3, 1, "id0", "potential"]], "arbdmodel.parmed_bd": [[29, 2, 1, "", "ParmedArbd"]], "arbdmodel.parmed_bd.ParmedArbd": [[29, 4, 1, "", "atom_types"], [29, 4, 1, "", "atoms_map"], [29, 3, 1, "", "convert_sod_to_mg"], [29, 3, 1, "", "create_dual_topology"], [29, 3, 1, "", "create_dual_topology_model"], [29, 3, 1, "", "load_structure"], [29, 4, 1, "", "parmed_structure"], [29, 3, 1, "", "simulate"], [29, 3, 1, "", "write_restraint_files"]], "arbdmodel.polymer": [[15, 2, 1, "", "ConnectableElement"], [15, 2, 1, "", "Connection"], [15, 2, 1, "", "Location"], [15, 2, 1, "", "PolymerBeads"], [15, 2, 1, "", "PolymerGroup"], [15, 2, 1, "", "PolymerModel"], [15, 2, 1, "", "PolymerSection"]], "arbdmodel.polymer.ConnectableElement": [[15, 3, 1, "", "get_connections_and_locations"], [15, 3, 1, "", "get_location_at"], [15, 3, 1, "", "get_locations"]], "arbdmodel.polymer.Connection": [[15, 3, 1, "", "delete"], [15, 3, 1, "", "other"]], "arbdmodel.polymer.Location": [[15, 3, 1, "", "get_connected_location"], [15, 3, 1, "", "get_monomer_index"], [15, 3, 1, "", "set_connection"]], "arbdmodel.polymer.PolymerBeads": [[15, 5, 1, "", "monomers_per_bead_group"], [15, 5, 1, "", "num_bead_groups"]], "arbdmodel.polymer.PolymerGroup": [[15, 3, 1, "", "add_grid_potential"], [15, 3, 1, "", "dimensions_from_structure"], [15, 3, 1, "", "extend"], [15, 3, 1, "", "get_center"], [15, 3, 1, "", "get_connections"], [15, 3, 1, "", "rotate"], [15, 3, 1, "", "translate"], [15, 3, 1, "", "update"], [15, 3, 1, "", "vmd_cylinder_tcl"], [15, 3, 1, "", "vmd_tube_tcl"]], "arbdmodel.polymer.PolymerModel": [[15, 3, 1, "", "generate_beads"], [15, 3, 1, "", "update_splines"]], "arbdmodel.polymer.PolymerSection": [[15, 3, 1, "", "add_location"], [15, 3, 1, "", "contour_to_monomer_index"], [15, 3, 1, "", "contour_to_orientation"], [15, 3, 1, "", "contour_to_position"], [15, 3, 1, "", "contour_to_tangent"], [15, 3, 1, "", "get_center"], [15, 3, 1, "", "get_contour_sorted_connections_and_locations"], [15, 3, 1, "", "insert_monomers"], [15, 3, 1, "", "iterate_connections_and_locations"], [15, 3, 1, "", "monomer_index_to_contour"], [15, 3, 1, "", "remove_monomers"], [15, 3, 1, "", "rotate"], [15, 3, 1, "", "set_orientation_splines"], [15, 3, 1, "", "set_splines"], [15, 3, 1, "", "translate"]], "arbdmodel.sali_polymer_model": [[16, 2, 1, "", "LinearBond"], [16, 2, 1, "", "SaliBeadsFromPolymer"], [16, 2, 1, "", "SaliModel"], [16, 2, 1, "", "SaliNonbonded"]], "arbdmodel.sali_polymer_model.LinearBond": [[16, 3, 1, "", "potential"]], "arbdmodel.sali_polymer_model.SaliModel": [[16, 3, 1, "", "generate_beads"], [16, 3, 1, "", "update_splines"]], "arbdmodel.sali_polymer_model.SaliNonbonded": [[16, 3, 1, "", "potential"]], "arbdmodel.shape_cg": [[26, 2, 1, "", "ShapeCGFactory"], [26, 2, 1, "", "ShapeCGModel"], [26, 2, 1, "", "ShapeCGNonbonded"], [26, 1, 1, "", "find_shape_based_sites"], [26, 1, 1, "", "get_particle_assignments"], [26, 1, 1, "", "read_files"]], "arbdmodel.shape_cg.ShapeCGFactory": [[26, 3, 1, "", "calc_atom_sasa"], [26, 3, 1, "", "generate_protein"], [26, 3, 1, "", "get_coarse_protein"], [26, 3, 1, "", "get_coarse_types"]], "arbdmodel.shape_cg.ShapeCGModel": [[26, 3, 1, "", "add_confinement"], [26, 3, 1, "", "add_protein_nb_interactions"], [26, 3, 1, "", "add_proteins"], [26, 3, 1, "", "calculate_total_mass"], [26, 3, 1, "", "concentration_to_debye_length"], [26, 3, 1, "", "from_protein_list"], [26, 3, 1, "", "generate_random_protein_positions"], [26, 3, 1, "", "get_protein_types"], [26, 3, 1, "", "run_from_minimized"], [26, 3, 1, "", "run_minimization"], [26, 3, 1, "", "setup_and_run"]], "arbdmodel.shape_cg.ShapeCGNonbonded": [[26, 3, 1, "", "filename"], [26, 3, 1, "", "potential"]], "arbdmodel.sim_config": [[4, 2, 1, "", "DefaultSimConf"], [4, 2, 1, "", "SimConf"]], "arbdmodel.sim_config.DefaultSimConf": [[4, 5, 1, "", "temperature"]], "arbdmodel.sim_config.SimConf": [[4, 3, 1, "", "combine"], [4, 3, 1, "", "get_binary"], [4, 3, 1, "", "items"], [4, 3, 1, "", "set_binary"], [4, 5, 1, "", "temperature"]], "arbdmodel.simplearbd": [[22, 2, 1, "", "SimpleArbdConfig"], [22, 1, 1, "", "main"]], "arbdmodel.simplearbd.SimpleArbdConfig": [[22, 3, 1, "", "create_engine"], [22, 3, 1, "", "create_model"], [22, 3, 1, "", "run_simulation"], [22, 3, 1, "", "setup_diffusible_objects"], [22, 3, 1, "", "setup_static_objects"]], "arbdmodel.ssdna_two_bead": [[17, 2, 1, "", "DnaModel"], [17, 2, 1, "", "DnaStrandBeads"]], "arbdmodel.ssdna_two_bead.DnaStrandBeads": [[17, 4, 1, "", "b"], [17, 4, 1, "", "nt"], [17, 4, 1, "", "p"]], "arbdmodel.structure_from_pdb": [[23, 2, 1, "", "StructureProcessor"]], "arbdmodel.structure_from_pdb.StructureProcessor": [[23, 3, 1, "", "align_structure"], [23, 3, 1, "", "apply_gaussian_smoothing"], [23, 3, 1, "", "calculate_hydrodynamic_properties"], [23, 3, 1, "", "generate_charge_distribution"], [23, 3, 1, "", "generate_electrostatic_map"], [23, 3, 1, "", "generate_vdw_maps"], [23, 3, 1, "", "get_grid_files"], [23, 3, 1, "", "process_structure"]], "arbdmodel.structure_rigidbody": [[24, 2, 1, "", "DiffusiveRigidBodyType"], [24, 2, 1, "", "SimpleArbdEngine"], [24, 2, 1, "", "StaticObject"], [24, 2, 1, "", "StructureRigidBodyModel"]], "arbdmodel.structure_rigidbody.SimpleArbdEngine": [[24, 3, 1, "", "run_simulation"], [24, 3, 1, "", "write_simulation_files"]], "arbdmodel.structure_rigidbody.StaticObject": [[24, 3, 1, "", "process"]], "arbdmodel.structure_rigidbody.StructureRigidBodyModel": [[24, 3, 1, "", "add_diffusible_object"], [24, 3, 1, "", "add_static_object"]], "arbdmodel.version": [[35, 2, 1, "", "Citation"], [35, 1, 1, "", "call_git_describe"], [35, 1, 1, "", "check_git_repository"], [35, 1, 1, "", "get_version"], [35, 1, 1, "", "is_dirty"], [35, 1, 1, "", "read_release_version"], [35, 1, 1, "", "read_version_file"], [35, 1, 1, "", "write_release_version"]], "arbdmodel.version.Citation": [[35, 3, 1, "", "display"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:attribute", "5": "py:property"}, "terms": {"": [0, 3, 15, 32, 37, 38, 39, 40], "0": [1, 4, 6, 8, 10, 12, 13, 14, 16, 19, 20, 21, 23, 24, 26, 27, 31, 32, 37, 38, 39, 40], "0002": 26, "0006022142": 39, "01": [4, 19, 39], "012": 39, "014393265": 38, "0173": 37, "02": [6, 39], "0215724": 40, "025": 39, "0375960171901290": 37, "03d": 39, "05": 4, "075531386": 40, "0cp": 14, "1": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 19, 20, 23, 24, 27, 31, 32, 38, 40], "10": [8, 10, 12, 13, 14, 16, 19, 20, 26, 32, 37, 38, 39, 40], "100": [14, 32, 37, 39], "1000": [4, 19, 20, 39], "10000": [19, 20, 21, 26], "100000": [4, 26], "1000000": 27, "100000000": 26, "1005941": 39, "1016": 40, "1021": 38, "102e": 37, "104264": 40, "10491996": 40, "1063": 8, "1098": 37, "10e": 39, "10pn": 38, "10\u00e5": 12, "119": 37, "12": [14, 29, 32], "1234": 26, "12f": 32, "13": [], "13511100": 40, "1371": 39, "14": 32, "1416": 12, "1433": 12, "143932": 37, "15": [27, 39], "150": 26, "153": 40, "16": 32, "161": 40, "162": [], "164": [], "165": [], "167": [], "17": [], "177": 37, "18": 32, "180": [6, 39], "189": 40, "18923208": 40, "19": [13, 19, 20, 21], "19375322": 40, "1938": 37, "196": 40, "199": 40, "1bpa": 14, "1d": 38, "1e": 39, "1e2": [37, 38], "1e3": [37, 38, 39, 40], "1e4": [3, 38, 39], "1e5": [37, 38, 40], "1e6": 39, "1e7": 39, "1eyg": 40, "1nm": 39, "1\u00e5": 12, "2": [3, 6, 8, 10, 12, 14, 19, 20, 23, 24, 27, 31, 32, 38, 40], "20": [6, 19, 20, 26, 37, 38, 39, 40], "200": 26, "2008": 12, "2022": 40, "209": 40, "20e": [37, 40], "20th": 39, "21": [], "22": [], "228": [], "23": [], "230": [], "231": [], "232": [], "235": [], "236": [], "237": [], "239": [], "24": [], "241": [], "242": [], "25": 9, "250": 39, "26": [], "261090254": 40, "27": [], "273": 37, "28": [], "29": [], "295": [4, 6, 8, 26], "298": 39, "2e": 4, "3": [4, 6, 10, 12, 13, 14, 19, 20, 21, 23, 26, 31, 32, 38, 40], "30": 6, "300": [24, 27], "3000": 40, "3027": 40, "303": 19, "3096": 40, "345": 37, "35": 6, "3547": 40, "375": 12, "38": 14, "39": 37, "3900574": [10, 12], "3d": [26, 31, 32, 38, 40], "4": [6, 32, 38], "40": [4, 9, 37], "400": 26, "41": 37, "41410648823": 40, "422562": 14, "4800": 27, "48856": 40, "4968020": 8, "4\u03b5": [], "5": [3, 6, 8, 12, 14, 15, 23, 26, 31, 32, 38, 40], "50": [4, 6, 12, 16, 23, 26, 27, 38, 39], "500": [39, 40], "5000": 37, "50000": 39, "55": 39, "578277": 40, "5e6": 3, "6": [14, 27, 32, 38, 39, 40], "60": 37, "620": 37, "6241949": 39, "6400": 37, "65": [37, 38, 39], "68320292": 40, "69": 37, "7": [13, 14, 32, 35, 38], "70": 38, "701": [], "702": 27, "703": [], "705": [], "706": [], "72621629": 40, "735": 40, "75": 39, "757": 40, "779": 40, "8": [10, 12, 13, 14, 32, 38, 39, 40], "80": 39, "8038": 14, "831447": 39, "9": [6, 9, 27, 32, 40], "90": 39, "95": [13, 37], "A": [0, 1, 6, 12, 14, 15, 32, 38, 40], "And": 38, "As": [38, 39, 40], "But": 40, "For": [0, 3, 36, 37, 38, 39, 40], "If": [0, 3, 8, 14, 26, 29, 32, 38], "In": [1, 37, 38, 39, 40], "It": [0, 29, 32, 36, 38, 39], "No": [37, 38, 39, 40], "On": [0, 27], "One": [38, 40], "Or": 39, "That": 38, "The": [0, 1, 3, 4, 6, 8, 12, 14, 26, 29, 32, 37, 38, 39, 40], "Their": 40, "These": [0, 38, 39, 40], "To": [0, 36], "_": 39, "__dict__": 38, "__init__": 39, "_add_nonbonded_interact": 39, "_b": 40, "_beads_per_polym": 39, "_convers": 39, "_fine_to_coars": 39, "_g": 38, "_generalized_charg": 40, "_generate_ith_bead_group": 39, "_generate_polymer_bead": 39, "_join_adjacent_bead_group": 39, "_learn_fn": 39, "_p": 40, "_pmf_grid": 40, "_potenti": 40, "_pre": 39, "_seq": 39, "_type": 39, "_updateparticleord": 40, "aa": [14, 37, 38, 39], "abbrev": 35, "abil": 36, "abl": 38, "about": [1, 15, 38], "abov": 38, "absolut": 39, "abstract": [6, 8, 15, 27], "abstractibipotenti": 6, "abstractli": 38, "abstractpotenti": [6, 8, 10, 12, 13, 14, 16, 26, 37, 38], "ac": 38, "acceler": [], "accept": [0, 32], "access": [26, 40], "accord": [14, 40], "account": 12, "accur": 36, "acid": [14, 26, 38, 39], "act": 40, "actual": [0, 26, 29, 40], "ad": [0, 26, 38, 39], "adapt": 40, "add": [1, 3, 22, 24, 26, 39, 40], "add_angl": [1, 39], "add_ball_and_stick": [37, 38], "add_bond": [1, 37, 39], "add_bond_angl": 1, "add_confin": 26, "add_diffusible_object": 24, "add_dihedr": 1, "add_exclus": [1, 39], "add_grid_potenti": [1, 15, 38], "add_group_sit": [3, 38], "add_improp": 1, "add_loc": 15, "add_nonbonded_interact": [3, 37, 38, 39], "add_product_potenti": 1, "add_protein": 26, "add_protein_nb_interact": 26, "add_restraint": [1, 38, 39, 40], "add_smaller_grid": 32, "add_static_object": 24, "add_vector_angl": 1, "addit": [14, 19, 20, 24, 26, 29, 31, 40], "address": 0, "adjac": [14, 39], "adjust": [38, 39], "adna": 38, "advanc": 3, "advantag": 40, "aer": 27, "affin": 40, "after": [37, 38], "ag": 39, "agg": 39, "agnost": 38, "aip": 8, "al": [38, 39], "alanin": 38, "algorithm": [26, 37, 39], "alia": [], "align": [19, 20, 23], "align_structur": 23, "aligned_surfac": 19, "all": [0, 14, 15, 19, 20, 23, 24, 26, 32, 37, 38, 39, 40], "all_lin": 39, "all_target": 39, "all_typ": 39, "alloc": 39, "allow": [0, 4, 6, 8, 12, 14, 39, 40], "along": [32, 38, 39, 40], "alpha": 39, "alreadi": [0, 40], "alreadli": 38, "also": [0, 29, 37, 38, 39, 40], "altern": 0, "amazon": 0, "ambigu": 0, "amino": [14, 38, 39], "amino_acids_per_bead_group": 39, "amu": [19, 20, 27], "an": [0, 3, 6, 15, 24, 32, 37, 39, 40], "analysi": 39, "analysisfromfunct": 39, "analyz": [0, 40], "angl": [1, 6, 14, 31, 38, 39], "angledof": 6, "angstrom": [12, 14, 26, 27, 37, 38, 39], "ani": [0, 3, 32, 38, 39, 40], "anim": 39, "anoth": [0, 40], "anyth": 39, "apb": [23, 27], "apbs_path": 4, "apbsrunn": 27, "appar": 40, "appear": [], "append": [39, 40], "appli": [0, 6, 23, 32, 37, 38, 39, 40], "applic": [0, 12], "apply_gaussian_smooth": 23, "applyorient": 1, "appreci": 0, "approach": 12, "approv": 0, "approxim": 40, "apro": 38, "ar": [0, 4, 6, 8, 14, 15, 32, 37, 38, 39, 40], "arang": [38, 39], "arbd": [3, 4, 5, 8, 19, 20, 23, 24, 27, 29, 38, 39, 40], "arbd_path": 4, "arbdengin": [3, 24, 27, 37, 38, 39], "arbdmodel": [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 38, 39, 40, 41], "arbmodel": 39, "area": 26, "arg": [8, 31, 38], "argon": 37, "argument": [1, 14, 19, 20, 24, 26, 29, 32, 39], "aromat": 14, "around": 40, "arrai": [1, 26, 32, 37, 38, 39, 40], "articl": 37, "asciinema": 0, "aspect": [19, 20], "assert": [38, 39], "assertionerror": 32, "assign": [3, 10, 12, 13, 26, 39], "assign_ibi_degrees_of_freedom": [3, 39], "associ": [38, 39], "assum": [32, 37], "at_monom": 15, "atom": [12, 26, 27, 29, 37, 38, 39, 40], "atom_group": 39, "atom_slic": 26, "atom_typ": 29, "atomindex": 38, "atomist": 40, "atoms_map": 29, "attach": [1, 3, 38], "attach_particl": [1, 40], "attached_particl": [1, 40], "attribut": [1, 38, 40], "author": 35, "auto": 0, "autom": 40, "automat": [0, 6, 39], "autoreload": 38, "avail": 37, "averag": 32, "average_grid": 32, "averaged_grid": 32, "avoid": 39, "awar": 38, "awkard": 39, "ax": [23, 38, 39], "ax1": 39, "ax2": 39, "axi": [31, 38, 39], "b": [15, 17, 31, 38, 40], "b1": 39, "b2": 39, "b3": 39, "background": 0, "barostat": 4, "base": [0, 1, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 32, 35, 36, 37, 38, 39, 40], "base_filenam": 19, "basi": 31, "basic": [8, 38, 39], "bbead": 40, "bd": 37, "bead": [14, 15, 27, 39, 40], "bead_mass": 39, "becaus": [39, 40], "been": [37, 40], "befor": [3, 37, 38], "beforehand": 40, "behav": 40, "being": [14, 38], "belong": [14, 26, 40], "below": [0, 37, 39, 40], "bent": 40, "besid": 40, "best": 39, "beta_from_fix": 3, "better": [0, 38, 39], "between": [6, 8, 12, 14, 15, 26, 32, 38, 39, 40], "big": 40, "bigger": 32, "bin": 6, "bin_aa": 39, "bin_cg": 39, "binari": [4, 27, 29, 30, 33], "binary_manag": 33, "binary_path": [19, 20, 27], "bind": 12, "biolog": 40, "biologi": 12, "biomolecular": 36, "bit": [38, 39, 40], "blit": 39, "blur": 8, "bodi": [3, 21, 24, 36], "boltzmann": [3, 6, 36, 39, 40], "bond": [1, 6, 14, 29, 38, 39, 40], "bond_angl": 1, "bond_ub": 39, "bondangledof": 6, "bonddof": 6, "bonded_ibi_potenti": [3, 39], "bool": [3, 8, 32], "boolean": 32, "boolean_grid": 32, "both": [19, 26, 39, 40], "bottom": 0, "bound": [32, 40], "bound_grid": 32, "boundari": [8, 32], "boundary_condit": 1, "boundary_param": 24, "boundarypotenti": 8, "box": [6, 31], "box_siz": 26, "bp": 29, "bp_file": 29, "bpro": 38, "bradlei": 39, "branch": [0, 38], "break": 0, "brief": 3, "brownian": 37, "browser": [0, 37], "buck": 37, "buckinghampotenti": 37, "buff": 31, "buffer": [19, 20, 23, 27, 31], "buffer_factor": [3, 24, 31], "build": [38, 39], "built": [0, 15, 38], "bv1": 31, "bv2": 31, "bv3": 31, "c": [12, 26, 38, 39, 40], "cach": 40, "cal_typ": 27, "calc_atom_sasa": 26, "calcul": [6, 8, 12, 14, 19, 20, 23, 26, 27, 29, 31, 32, 39], "calculate_damp": [19, 20], "calculate_dimensions_from_cell_vector": 31, "calculate_hydrodynamic_properti": 23, "calculate_total_mass": 26, "calibr": [19, 20], "call": [3, 30, 37, 38, 39, 40], "call_git_describ": 35, "callabl": [6, 32], "can": [0, 1, 8, 32, 37, 38, 39, 40], "cannot": 40, "cap": [8, 14], "cartesian": [37, 38], "case": [37, 38], "cation": 14, "caus": 38, "caution": 37, "caveat": 40, "cd": 0, "cell": [3, 31, 37, 38, 39, 40], "cell_origin": [3, 8, 24, 31], "cell_vector": [3, 8, 24, 31], "center": [1, 32, 38, 39, 40], "center_z": 32, "certain": [14, 37], "cg": [3, 26, 39], "cg_coordin": 39, "cg_model": 39, "cg_u": 39, "chain": [29, 36, 38, 39], "chainid": 39, "chang": [0, 37, 38, 40], "charg": [1, 23, 40], "charge_grid": [1, 40], "charmm": [26, 29], "charmm36": 27, "chat": 0, "check": [0, 36, 38, 39, 40], "check_git_repositori": 35, "child": 1, "children": [1, 3, 37, 38, 39, 40], "choos": 0, "chr": 39, "ci": 0, "citat": 35, "class": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 32, 35, 37, 38, 39], "classif": 14, "classmethod": [26, 29], "clean": 22, "clean_edg": 6, "clear": [37, 38], "clear_al": [1, 3], "clear_represent": [37, 38], "clone": 1, "close": [0, 40], "closest": 26, "cluster": 40, "cm": [], "cmaffeo2": 40, "cm\u00b3": [19, 20, 27], "coars": [3, 6, 12, 14, 25, 26, 36], "coarse_model": 39, "coarse_sit": 26, "coarsen": 39, "coat": 40, "code": [0, 14, 40], "coeffici": [38, 39, 40], "col": 39, "collect": 1, "collis": 39, "color": 39, "color_schem": 38, "column": 39, "com": [0, 37, 39], "combin": [0, 4, 12, 29, 38, 39], "combined_model": 38, "come": 37, "command": [0, 37, 38, 40], "common": [0, 1], "compar": 6, "compat": 32, "competit": 26, "complet": 0, "complex": [12, 40], "complic": [38, 39], "compon": [2, 7, 11, 18, 25, 26, 28, 33], "composit": 39, "comprehens": 36, "compress": 39, "comput": [12, 32, 38, 39, 40], "compute_volum": 6, "concentr": [26, 27], "concentration_to_debye_length": 26, "concret": 6, "condit": 32, "conf_param": [3, 24, 27, 29], "config": 27, "config_path": 22, "configur": [2, 3, 4, 22, 24, 26, 27, 29], "confin": [8, 26, 40], "connect": [15, 38, 39, 40], "connectableel": 15, "connection_loc": 15, "connection_typ": 15, "consecut": 39, "consid": [0, 6, 26, 32, 39, 40], "consider_par": 1, "consist": [8, 39, 40], "const_force_1pn_z": 38, "constant": [14, 16, 40], "constant_forc": [32, 38], "constantli": 40, "constrained_layout": 39, "construct": [32, 38, 40], "constructor": [14, 26, 37], "contain": [3, 19, 26, 27, 32, 38, 39, 40, 41], "context": [0, 40], "continu": [0, 3], "continuum": 38, "contour": 15, "contour_filt": 15, "contour_po": 15, "contour_posit": 15, "contour_to_monomer_index": 15, "contour_to_orient": 15, "contour_to_posit": 15, "contour_to_tang": 15, "convei": 0, "conveni": [3, 37, 40], "converg": [6, 39], "convers": 29, "convert": [26, 29], "convert_sod_to_mg": 29, "convolut": 32, "convolv": 32, "convolve_kernel_trunc": 32, "cooper": 39, "coord": [15, 16, 33, 38, 39, 40], "coordin": [6, 19, 20, 31, 32, 37, 38, 39, 40], "coordsa": 31, "coordsb": 31, "copi": [3, 15, 24, 40], "copy_ff_from": 27, "core": 5, "core_object": [2, 17], "corner": 38, "correct_geometri": 8, "correctli": 38, "correspond": [3, 32, 40], "could": [0, 37, 38, 39], "count": [15, 26], "cours": 37, "cover": 38, "cpro": 38, "crash": [37, 38, 40], "creat": [0, 3, 4, 6, 8, 22, 24, 26, 29, 32, 36, 38, 39, 40], "create_arbd_polymer_object": 39, "create_bounding_grid": 32, "create_dual_topologi": 29, "create_dual_topology_model": 29, "create_engin": 22, "create_model": 22, "create_nul": 32, "crossov": 15, "crucial": 37, "cryo": [38, 40], "ct500193u": 38, "current": [3, 6, 32], "custom": [26, 36, 38], "custom_properti": 37, "customiz": 26, "cut": 0, "cutoff": [4, 19, 20, 29, 32, 39], "cylindr": 38, "d": [8, 14, 38], "dai": 40, "dalton": [26, 27, 37, 39], "damp": [38, 40], "damping_coeffici": [1, 9, 10, 12, 13, 14, 16, 37, 39, 40], "dat": [27, 39, 40], "data": [27, 32, 38, 39], "dcd": [31, 37, 38, 39, 40], "debug": [9, 10, 12, 13, 14, 16, 17, 37, 38], "debugg": 38, "deby": [12, 14, 26], "debye_length": [10, 12, 13, 14, 16, 26, 39], "decomp_period": [4, 39], "decomposit": 37, "decor": 40, "decreas": 14, "def": [32, 37, 38, 39, 40], "default": [3, 4, 6, 8, 12, 14, 26, 31, 32, 39], "default_binari": 27, "defaultsimconf": [2, 4], "defin": [3, 6, 8, 24, 26, 39, 40], "deg": 39, "degre": [3, 6, 39], "degreeoffreedom": 6, "degrees_of_freedom": [6, 39], "delet": 15, "delta": [32, 38], "demonstr": [0, 37], "denresolut": 23, "densiti": [6, 19, 20, 21, 24, 39, 40], "depend": [0, 4, 14, 32, 38], "deploy": 0, "deprec": [3, 37], "depth": [], "deriv": 6, "describ": [4, 15, 38], "design": [], "detail": [0, 5, 36, 38, 40], "determin": [26, 32, 39, 40], "develop": [0, 27, 36, 37], "devic": [], "dict": [14, 24, 39], "dictionari": [23, 26, 27, 29, 38], "dielectr": 14, "differ": [0, 6, 36, 38], "differenti": 0, "difficult": 40, "diffus": [1, 22, 24, 37, 39], "diffusiverigidbodytyp": 24, "dignon": [38, 39], "dihedr": [1, 6, 14, 39], "dihedraldof": 6, "dimens": [3, 24, 27, 31, 32, 37, 38, 39, 40], "dimensions_from_structur": [3, 15], "direct": [32, 39], "directli": [8, 32], "directori": [3, 24, 26, 27, 29, 37, 38, 39, 40], "dirichlet": 1, "discret": 8, "disk": 38, "disord": [12, 38, 40], "disordered_residu": 26, "displai": 35, "distanc": [6, 8, 12, 14, 26, 32, 37, 39], "distinct": 38, "distinguish": 14, "distribut": [3, 6, 23, 39, 40], "dive": 39, "divid": 32, "dna": [36, 38], "dna_coordin": 40, "dna_model": 38, "dnamodel": [17, 38, 40], "dnastrandbead": 17, "do": [0, 20, 32, 38, 39], "doc": 32, "document": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 35, 37], "doe": [3, 4, 37, 38, 40], "doesn": [8, 14, 39], "dof": 6, "doi": [8, 35, 37, 38, 39, 40], "domain": [], "don": [26, 29, 40], "done": 40, "doubl": [15, 38], "down": 0, "dr": 16, "drawcylind": 15, "drawtub": 15, "drift": 38, "dry_run": [26, 27, 29], "dsitribut": 40, "dt": [38, 40], "dt_5": 40, "dt_70": 40, "dtype": 39, "dual": 29, "due": 40, "dummy_typ": 3, "duplic": 1, "dure": [30, 40], "dx": [8, 19, 20, 27, 32, 38, 40], "dy": 27, "dynam": [26, 37, 40], "dz": 27, "e": [4, 37, 38, 39, 40], "each": [3, 14, 15, 24, 26, 32, 38, 39, 40], "easi": 0, "ec": 0, "ec2": 0, "ecosystem": 0, "edg": [6, 39], "editor": 37, "edu": [0, 32, 40], "effect": [6, 12, 14, 39], "effici": [26, 38], "elec": 40, "electrostat": [10, 12, 13, 14, 23, 26, 27, 40], "element": [15, 27, 32, 38], "elif": 39, "els": 39, "em": [38, 40], "email": 0, "empti": [38, 39], "enabl": [0, 37], "end": 40, "end1": 40, "end2": 40, "end_posit": [15, 40], "energi": [0, 8, 12, 14, 26, 29, 32, 37, 40], "enforc": [], "engin": [3, 5, 22, 24, 30, 33, 36, 37, 38, 39], "engr": 0, "enhanc": 24, "enjoi": 40, "enough": 38, "ensur": [0, 8, 32], "enter": 38, "entri": [15, 40], "enumer": [38, 39, 40], "environ": [0, 30], "epsilon": 37, "epsilon0": 39, "equilibr": 40, "equilibrium": 14, "error": 4, "especi": 0, "essenti": [], "et": [38, 39], "etc": [0, 29, 38], "even": [0, 32, 39], "everi": [0, 37, 38, 39], "everyth": 39, "evolv": 37, "exactli": 32, "examin": 37, "exampl": [0, 6, 32, 36, 38, 39, 40, 41], "exb": 29, "exce": 8, "exceed": 8, "except": [4, 38, 39], "exclud": [1, 15, 16, 39], "excludedattribut": 1, "exclus": [6, 39], "execut": [19, 20], "exercis": 40, "exist": [0, 24, 29, 39], "existing_repo": 0, "exp": [32, 37], "expect": [0, 19, 20], "expected_aspect_ratio": [19, 20], "expected_mass": [19, 20], "experi": 38, "experiment": [38, 40], "explain": 0, "explicit": [0, 27], "expon": 32, "expos": 40, "extend": [3, 8, 15, 38], "extens": [37, 38], "extern": [0, 30, 32], "extra": 39, "extra_bd_file_lin": [24, 27], "extrabond": 27, "extract": [3, 39, 40], "f": [38, 39, 40], "facilit": 29, "factor": [0, 31, 40], "factori": 26, "fall": 20, "fals": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 21, 24, 27, 29, 32, 38, 39], "familiar": [37, 40], "faster": 39, "favorit": 37, "featur": [0, 37, 40], "feel": [0, 38, 40], "fep": 29, "fep_fil": 29, "few": [38, 40], "field": [19, 20, 32], "fig": 39, "figsiz": 39, "file": [3, 6, 8, 14, 19, 20, 22, 23, 24, 26, 27, 29, 32, 38, 39, 40], "file_nam": 15, "filenam": [3, 6, 8, 26, 35], "filename_prefix": [6, 8, 39], "fill": 32, "fill_nan": 32, "fill_valu": 32, "filled_grid": 32, "filter": 6, "final": [26, 38, 40], "find": [15, 26, 40], "find_boundari": 32, "find_shape_based_sit": 26, "fine": 26, "fine_posit": 26, "fine_sit": 26, "first": [3, 8, 29, 38, 39, 40], "first_fram": 31, "first_iter": 3, "first_monom": 15, "fix": [38, 40], "fjc": 38, "fjc_polymer_model": [11, 38], "fjcbeadsfrompolym": 9, "fjcmodel": [9, 38], "flexibl": [36, 38], "float": [6, 8, 12, 14, 32], "flux": 40, "fmt": 32, "fn": 38, "fname": 31, "fold": 12, "follow": [0, 32, 37, 39], "forc": [6, 8, 12, 14, 16, 32, 37, 39, 40], "force_const": 32, "fork": [0, 40], "form": [0, 1, 15, 37, 40], "format": [19, 32, 38, 39, 40], "formula": 14, "found": [4, 40], "foundat": 6, "four": 39, "fragment": 40, "frame": [1, 38, 39, 40], "free": [0, 29], "freedom": [3, 6, 39], "freeli": 38, "frequenc": [], "frequent": [0, 40], "friction": 40, "from": [0, 3, 4, 6, 12, 14, 15, 22, 26, 29, 30, 31, 32, 37, 38, 39, 40], "from_protein_list": 26, "full": [8, 26], "fun": 38, "funcanim": 39, "function": [6, 8, 22, 24, 26, 30, 32, 38, 39, 40], "further": 39, "futur": [0, 40], "g": [4, 12, 14, 19, 20, 27, 37, 38, 39], "ga": 37, "gaussian": [23, 32], "gaussian_kernel": 32, "gaussianwidth": 23, "gencharg": 40, "gener": [4, 6, 14, 19, 20, 23, 24, 26, 32, 36, 37, 39, 40], "generate_bead": [15, 16, 38], "generate_charge_distribut": 23, "generate_coordin": 31, "generate_electrostatic_map": 23, "generate_potential_grid": [19, 20], "generate_protein": 26, "generate_random_protein_posit": 26, "generate_spanning_vector": 31, "generate_vdw_map": 23, "geometr": [], "geometri": 26, "get": [4, 6, 23, 26, 38, 39], "get_angl": 1, "get_attached_particl": [19, 20], "get_binari": 4, "get_bond": 1, "get_bond_angl": 1, "get_cent": [1, 15, 38], "get_cg_distribut": 6, "get_coarse_protein": 26, "get_coarse_typ": 26, "get_collapsed_posit": 1, "get_color": 39, "get_connect": 15, "get_connected_loc": 15, "get_connections_and_loc": 15, "get_contour_sorted_connections_and_loc": 15, "get_data": 39, "get_default_conf": 27, "get_dihedr": 1, "get_exclus": 1, "get_extens": 38, "get_grid_fil": 23, "get_improp": 1, "get_loc": 15, "get_location_at": 15, "get_monomer_index": 15, "get_original_recurs": 1, "get_particle_assign": 26, "get_product_potenti": 1, "get_protein_typ": 26, "get_resource_path": 34, "get_restraint": 1, "get_slice_enclosing_smaller_grid": 32, "get_target_distribut": [6, 39], "get_valu": 6, "get_vector_angl": 1, "get_vers": 35, "getparticletypesandcount": 3, "gif": 0, "git": 0, "gitlab": 0, "give": 40, "given": [26, 39], "glfg": 39, "glob": 39, "glycin": 14, "gmsh": 20, "gmsh_path": 4, "go": [0, 37, 39], "goe": 40, "golai": 6, "good": [37, 38], "gpu": [4, 24, 26, 37, 38, 39, 40], "grab": 39, "grace": 4, "gradient": 40, "grain": [3, 6, 12, 14, 25, 26, 36], "grid": [8, 19, 20, 23, 24, 27, 33, 38, 40], "grid1": 32, "grid2": 32, "grid_fil": 15, "grid_filenam": 38, "grid_path": 32, "grid_potenti": 38, "griddataformat": 32, "gridfil": 1, "group": [1, 3, 15, 16, 17, 26, 38, 39, 40], "groupsit": 1, "guess": 6, "guid": 38, "guidanc": 0, "ha": [0, 32, 38, 40], "halfharmon": 8, "handi": 0, "handl": [3, 4, 26], "harmon": [32, 38], "harmonicangl": 8, "harmonicbond": [8, 14, 16, 37], "harmonicbondedpotenti": 8, "harmonicdihedr": 8, "harmonicvectorangl": 8, "have": [0, 3, 32, 37, 39, 40], "hdredf": 32, "heavi": [], "help": [0, 39, 40], "henc": 37, "here": [0, 37, 39, 40], "heurist": 39, "high": [0, 40], "hold": 1, "homebrew": 0, "how": [0, 37, 38, 39, 40], "howev": [0, 37], "hp": [38, 39], "hps_model": 38, "hps_polymer_model": [11, 38, 39], "hpsbead": 10, "hpsmodel": [10, 38, 39], "hpsnonbond": 10, "hre": 38, "htm": 32, "html": 32, "http": [0, 8, 32, 37, 38, 39, 40], "hummer": 12, "hydroc": 27, "hydrodynam": [19, 20, 23, 27, 36], "hydrophob": [12, 36, 38, 39], "hydropro": [4, 19, 20, 23, 27], "hydropro_path": 4, "hydroproo": 40, "hydroprorunn": 27, "hyropro": 40, "h\u00fcckel": 14, "i": [0, 1, 3, 6, 8, 12, 14, 29, 32, 36, 38, 39, 40], "i0": 39, "i1": 39, "ibi": [3, 7, 36, 40, 41], "ibiangl": [6, 39], "ibibond": [6, 39], "ibidihedr": [6, 39], "ibinonbond": [6, 39], "ibipotenti": [6, 39], "id": [26, 39], "idea": [0, 37, 38], "ideal": 40, "idp": 12, "idp_arrai": 12, "idx": 1, "ignor": [39, 40], "ij": 38, "illinoi": [0, 40], "illustr": 40, "imag": 0, "immedi": 38, "immobil": 24, "implement": [6, 8, 12, 14, 32, 38, 40], "import": [32, 37, 38, 39, 40], "importlib": 38, "improv": [0, 3, 4], "inadvert": 0, "includ": [0, 3, 6, 14, 26, 36, 37, 38], "include_ssdna": 15, "include_strand": 15, "inclus": 15, "index": [1, 24, 26, 37, 38, 39, 40], "indic": [26, 32], "inertia": [19, 20, 40], "inf": 32, "infil": 32, "infin": [8, 32], "influenc": 38, "inform": [0, 37, 38], "init": 39, "init_func": 39, "initi": [4, 6, 24, 30, 39, 40], "initial_region": 24, "initialize_binary_path": 30, "inlin": [0, 38], "input": 32, "insert": 1, "insert_monom": 15, "insid": [20, 37], "inspect": [38, 40], "instabl": 39, "instanc": [22, 24, 26, 39], "instead": [37, 38, 39], "instruct": 0, "int": [3, 6, 15, 32, 39], "integ": 32, "integr": [4, 29, 39], "interact": [5, 6, 12, 14, 26, 29, 36, 38, 39, 40], "interfac": [8, 22, 27, 37], "intern": 0, "interpol": 38, "interprett": 37, "intrins": 12, "invers": [3, 6, 36, 39], "invit": 0, "involv": [6, 40], "ion": 29, "ion_concentr": 39, "ipdb": [37, 38], "is_dirti": 35, "is_gigant": 24, "is_same_typ": 1, "isci": 40, "iscienc": 40, "isn": 8, "isotrop": [3, 15, 32], "isotropic_kernel": 32, "issu": 0, "item": [4, 38, 39], "iter": [3, 6, 32, 36, 39], "iterate_connections_and_loc": 15, "ith": 39, "its": [26, 37, 40], "j": [1, 37, 39, 40], "join": 39, "joint": 38, "jone": [12, 14, 26, 40], "journal": [12, 35, 39], "jupyt": 37, "just": [0, 39, 40], "k": [1, 8, 16, 19, 20, 26, 27, 37, 38, 39], "k_off": 40, "kcal": [37, 38, 39, 40], "kcal_mol": [14, 37, 38], "kd": 26, "keep": 0, "keep_children": [1, 3], "kei": [37, 39, 40], "kelvin": [19, 20], "kernel": 32, "keyword": [14, 37, 40], "kh": [12, 38], "kh_model": 38, "kh_polymer_model": [11, 38], "khbead": 12, "khmodel": [12, 38], "khnonbond": 12, "kim": 12, "kj": 14, "know": 0, "knowledg": 37, "known": 0, "kscale": 8, "kt": [8, 40], "kubernet": 0, "kwarg": [1, 3, 4, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 24, 26, 29, 31, 32, 38, 39], "l": [1, 32, 38], "l1": 39, "l2": 39, "label": [38, 39], "lag": 40, "langevin": [4, 39], "languag": 0, "larg": [27, 37, 40], "large_system": 27, "larger": 39, "last": [6, 8, 37, 38, 39, 40], "last_fram": 31, "last_index": 39, "last_monom": 15, "later": 40, "lattic": 39, "law": 40, "learn": [6, 26, 37, 39], "learning_r": [6, 39], "learning_schedul": 26, "left": 38, "legend": [38, 39], "len": [37, 38, 39, 40], "length": [12, 14, 26, 32, 39], "lennard": [12, 14, 26, 40], "lennardjon": [8, 37], "less": [37, 40], "let": [0, 38, 40], "liber": 0, "like": [0, 26, 32, 37, 38, 39, 40], "likelihood": 0, "limit": [12, 39], "line": [0, 37, 38, 39, 40], "linear": [15, 38], "linearbond": 16, "lines2": 39, "link": 0, "linspac": [37, 39, 40], "lint": 0, "linux": 37, "liquid": 37, "list": [0, 1, 3, 6, 14, 15, 24, 26, 29, 31, 32, 37, 39, 40], "littl": [38, 39, 40], "lj": [14, 37], "ll": [0, 37, 38, 39, 40], "ln": 39, "load": [14, 29, 32, 39, 40], "load_ext": 38, "load_new": 39, "load_structur": 29, "load_target_ibi_distribut": 3, "loadgrid": 32, "loadtxt": [39, 40], "loc": 39, "local_lin": 39, "locat": [15, 37, 40], "location_in_oth": 15, "location_in_self": 15, "log": [29, 39], "log_fil": [27, 29], "logger": 33, "long": [0, 37, 38, 40], "longer": 38, "look": 39, "lookup": 26, "loop": [39, 40], "lot": 40, "lower": 38, "lowerbound": 32, "lp": 8, "lw": 39, "lx": 39, "m": [0, 27, 38, 39], "machineri": 40, "made": 38, "magnesium": 29, "magnitud": 8, "mai": [0, 32, 37, 39, 40], "main": [0, 22, 40], "maintain": 0, "make": [0, 38, 40], "make_dna_model": 40, "makeareadm": 0, "manag": [0, 8, 22, 30, 33, 39], "mani": [0, 37], "manual": 0, "manuscript": 40, "map": [14, 23, 26, 29], "mask": 32, "mass": [1, 19, 20, 26, 27, 37, 39, 40], "match": [3, 6, 14, 32, 38, 40], "materi": [19, 20], "math": 37, "matplotlib": [38, 39], "matrix": 26, "max": [6, 8, 12, 39], "max_dist": 26, "max_forc": [6, 8, 12, 14, 39], "max_iter": 32, "max_potenti": [6, 8, 16, 19, 20], "maxforc": 16, "maximum": [6, 8, 12, 14, 26, 27, 32], "md": [0, 4, 29, 37, 38], "mda": [37, 38, 39], "mdanalysi": [3, 29, 37, 38, 39], "mean": [12, 38, 39], "meant": 40, "measur": [38, 40], "mechan": 38, "member": [0, 39], "memori": 39, "memoryread": 39, "merg": [0, 38], "mesh": [19, 20, 27], "mesh_fil": [19, 20, 21], "mesh_process_surfac": 18, "mesh_process_volum": 18, "mesh_rigidbodi": 18, "meshgrid": 38, "meshprocessor": 20, "meshrigidbodytyp": 21, "mess": 40, "messag": 32, "metadata": 0, "method": [0, 3, 4, 6, 8, 24, 29, 40], "methodnam": 32, "mg": 39, "micron_to_angstrom": [19, 20], "might": [0, 38, 39], "min": [6, 8, 12, 29, 39], "min_fep_fil": 29, "mind": 0, "minim": [3, 26, 29, 39], "minimization_fil": 26, "minimization_step": 27, "minimizermsd": 31, "minimum": [8, 27, 39], "mirror": 32, "miss": 4, "mistak": 38, "ml": 39, "mm": [26, 39], "mobil": 24, "mode": 27, "model": [2, 5, 12, 14, 15, 22, 24, 26, 27, 29, 37], "model_nam": 39, "modern": 22, "modifi": [8, 12, 14, 29, 38, 39], "modul": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 38, 39, 40], "modulenotfounderror": [37, 38, 39, 40], "mol": [37, 38, 39, 40], "molecul": [27, 40], "molecular": [6, 12, 23, 26, 27, 29, 36], "moment": 40, "moment_of_inertia": [1, 40], "monom": 39, "monomer_index_to_contour": 15, "monomer_length": [15, 38, 39, 40], "monomer_po": 15, "monomers_per_bead_group": [9, 15, 38, 39], "more": [0, 38, 39], "mortem": 38, "most": [0, 37, 38, 39, 40], "move": [39, 40], "mp4": 39, "mpipi_polym": 11, "mpipibead": 13, "mpipimodel": 13, "mpipinonbond": 13, "mpl": 39, "mrdna": [27, 38], "msh": [19, 20], "much": 40, "multipl": [26, 32, 36, 39, 40], "multiplebond": 38, "multiprotein": 12, "must": [1, 8, 14, 32, 37, 39], "my_valu": 37, "myibi": 39, "myibibead": 39, "myibimodel": 39, "n": [37, 38, 39], "n1": 31, "n2": 31, "n3": 31, "n_a": 14, "n_atom": 26, "n_cg": 26, "n_polym": 39, "namd": [4, 27], "namd_path": 4, "namdengin": 27, "name": [1, 4, 6, 15, 21, 24, 26, 27, 29, 37, 38, 39, 40], "nan": 32, "nativ": 40, "natsort": 39, "natur": 40, "nb": 39, "nbbb": [], "nbextens": 37, "nbfix": 27, "nbscheme": 3, "ndarrai": [6, 32], "ndim": 32, "nearbi": 6, "nearest": 32, "nearest_monom": 15, "necessari": [], "necessarili": 40, "need": [0, 36, 37, 38, 39, 40], "neglect": 39, "neighbor": 32, "neighborhood": 32, "neighborhood_averag": 32, "nevertheless": 37, "new": [0, 4, 19, 26, 38, 40], "new_typ": 15, "next": [0, 3], "nglview": [37, 38], "ngrid": 38, "nice": [], "nm": 14, "no_ssb": 40, "nobl": 37, "non": [29, 32, 38, 40], "nonbond": [12, 14, 26, 37, 39], "nonbonded_ibi_potenti": [3, 39], "nonbonded_interact": 37, "nonbonded_learning_r": 39, "nonbonded_learning_rate0": 39, "nonbonded_learning_rate1": 39, "nonbonded_potenti": 3, "none": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 27, 29, 31, 32, 35, 38, 39], "normal": [26, 32], "normalizeaxi": 31, "note": [0, 3, 6, 8, 14, 32, 37, 38, 39, 40], "notebook": [37, 38, 39], "notic": [38, 40], "notimplementederror": [3, 14, 32, 39], "novic": 0, "now": [38, 39, 40], "np": [32, 37, 38, 39, 40], "nsig": 27, "nt": [15, 17, 38, 40], "nt_sigma": 26, "nucleic": 26, "nucleotid": [15, 38], "nuget": 0, "null": 32, "nullpotenti": 8, "num_bead_group": 15, "num_cg_sit": 26, "num_copi": 31, "num_heavy_clust": [4, 23], "num_monom": [15, 38, 39, 40], "num_particl": 37, "num_proc": [27, 29], "num_step": [4, 26, 27, 37, 38, 39, 40], "num_voxel": 38, "number": [3, 6, 24, 26, 27, 29, 32, 35, 38, 39, 40], "numbond": 37, "numer": 39, "numpi": [6, 32, 37, 38, 39, 40], "nupmodel": 39, "nv": [37, 38], "nx": 39, "nx3": 37, "ny": 39, "o": 38, "obj": [1, 3], "object": [1, 3, 4, 6, 8, 14, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 32, 35, 37, 38, 39], "observ": 38, "obtain": [39, 40], "obvious": 38, "odd": [32, 40], "off": 27, "offer": 38, "offset": 1, "often": 39, "on_fwd_strand": 15, "onc": 40, "onck": 14, "onck_model": 38, "onck_polymer_model": [11, 38], "onckbead": 14, "onckmodel": [14, 38], "oncknonbond": 14, "one": [37, 38, 39, 40], "one_bead_per_r": 39, "ones": 38, "onli": [0, 1, 32, 37, 39, 40], "open": 0, "opendx": 32, "oper": [0, 37, 40], "optim": [3, 26, 38], "option": [3, 4, 6, 8, 12, 14, 19, 20, 24, 26, 29, 32, 36, 37, 39, 40], "order": 38, "org": [8, 37, 38, 39, 40], "orient": [1, 24, 26, 37, 38, 39, 40], "origami": [], "origin": [0, 1, 29, 31, 32, 38, 39, 40], "orthonorm": 32, "orthorhomb": 3, "other": [1, 4, 14, 15, 37, 38, 39], "other_model": 3, "otherwis": 4, "our": [38, 39, 40], "out": [0, 36, 40], "out_of_bounds_forc": 6, "outfil": 32, "outnam": 39, "output": [0, 3, 19, 20, 24, 26, 27, 29, 32, 37, 38, 39, 40], "output_directori": [27, 29], "output_dx": [19, 20], "output_fil": [19, 20, 27], "output_mesh": [19, 20], "output_nam": [3, 24, 27, 29, 37, 38, 39, 40], "output_path": 27, "output_period": [4, 26, 37, 38, 39, 40], "outsid": [6, 37, 39], "over": [12, 39], "overlap": 32, "overrid": [4, 37], "overridden": 4, "own": [0, 39, 40], "owner": 0, "p": [14, 17, 38, 39, 40], "p1": 29, "p2": 29, "p_p": 39, "p_type": 39, "packag": [2, 7, 11, 18, 25, 27, 28, 30, 32, 33, 36, 38, 39, 41], "pad": 32, "padding_factor": [3, 15], "page": [32, 35], "pair": [6, 29, 37, 40], "pairdistributiondof": 6, "pairlist": 37, "pairlist_dist": [4, 39], "pairwis": [], "param": [8, 32], "paramet": [3, 4, 6, 8, 12, 14, 15, 19, 20, 22, 23, 24, 26, 27, 29, 31, 32, 37, 39, 40], "parameter_fil": [26, 29], "parameters_fold": 23, "parent": [1, 3, 14, 15, 38], "parm": 29, "parmed_bd": 28, "parmed_structur": 29, "parmedarbd": 29, "pars": 22, "parse_output": 27, "parser": 37, "part": 39, "partial": 27, "particl": [1, 3, 6, 20, 26, 38, 39], "particle_group": 39, "particle_i": 1, "particle_j": 1, "particles_a": 6, "particles_b": 6, "particletyp": [1, 17, 26, 29, 37, 38, 39], "particular": [0, 39], "particularli": 12, "pass": [0, 14, 38, 39], "path": [4, 6, 19, 20, 24, 26, 27, 29, 30, 32, 33, 38, 39, 40], "pathlib": 39, "pbead": 40, "pcbi": 39, "pdb": [19, 20, 24, 26, 29, 31, 37, 38, 39, 40], "pdb_list": 26, "pdb_path": 26, "pdbmodel": 3, "peak": 40, "peopl": 0, "peptid": [14, 38, 39], "peptide_bond": 14, "per": [3, 26, 32, 37, 39], "per_monom": 15, "perform": [3, 32, 39, 40], "perhap": 0, "period": [3, 6, 8, 32, 37], "physic": 37, "pii": 37, "pinyili": [], "pinyili2": 27, "place": 0, "placement": 26, "plain": 40, "plan": 39, "pleas": [37, 40], "plot": [38, 39], "plt": [38, 39], "pm": [37, 38], "pmf": 40, "pmf_grid": [1, 40], "pn": 38, "point": [0, 1, 6, 8, 32, 37, 38, 39], "pointparticl": [1, 17, 37, 39], "pois": [19, 20], "poisson": 40, "poli": [38, 40], "polici": 4, "polym": [5, 9, 10, 12, 13, 14, 16, 17, 36, 40], "polymer": 38, "polymer_index": 39, "polymer_mass": 39, "polymerbead": [9, 10, 12, 13, 14, 15, 17, 39], "polymergroup": [15, 38], "polymermodel": [9, 10, 12, 13, 14, 15, 17, 39], "polymersect": [15, 38, 39, 40], "poorli": 37, "posit": [1, 8, 24, 26, 37, 38, 39, 40], "position_filt": 15, "position_spline_param": 38, "posixpath": 27, "possibl": [0, 38], "possibli": [], "post": 38, "postpon": 39, "pot": [37, 39, 40], "potenti": [1, 3, 5, 6, 8, 10, 12, 13, 14, 16, 19, 20, 23, 24, 26, 27, 32, 36, 37, 38, 39, 40], "potential_grid": [1, 40], "potential_list": 1, "potresolut": 23, "pre": [26, 39, 40], "predetermin": 40, "prefix": [6, 16, 37, 39], "prefixes_and_limit": 39, "prepar": 40, "prepare_for_simul": 3, "prescrib": [37, 38], "preserv": 29, "pressur": 4, "prevent": [37, 40], "previou": 3, "previous": 40, "primarili": 38, "princip": 23, "print": [32, 37, 38, 39], "prior": 40, "pro": [0, 38], "procedur": 39, "process": [6, 19, 20, 22, 23, 24, 39], "process_mesh_fil": 20, "process_structur": 23, "process_surface_mesh": 19, "processor": [29, 30, 33], "produc": 40, "product": [37, 39], "program": 0, "prolin": 14, "properti": [4, 6, 8, 15, 19, 20, 23, 26, 27, 36], "proport": 40, "prot": 38, "prot_typ": 26, "protect": 0, "protein": [12, 14, 25, 26, 36, 39], "protein_count": 26, "protein_factori": 26, "protein_group": 26, "protein_posit": 26, "provid": [0, 2, 3, 4, 5, 6, 8, 22, 24, 26, 29, 30, 32, 36, 37, 38, 39, 40], "psf": [24, 26, 29, 31, 37, 38, 39, 40], "psize_script": 27, "pub": 38, "pull": [0, 37], "push": 0, "put": [0, 39], "py": [37, 39], "pyplot": [38, 39], "python": [5, 37, 38, 39], "q": 31, "q1": 31, "q2": 31, "qualiti": 0, "quaternion": 15, "quaternion_exp": 31, "quaternion_from_matrix": 31, "quaternion_invers": 31, "quaternion_product": 31, "quaternion_slerp": 31, "quaternion_spline_param": 38, "quaternion_to_matrix": 31, "quickli": 0, "r": [1, 6, 8, 10, 12, 13, 14, 16, 26, 31, 37, 38, 39], "r0": [8, 16, 37], "radial": 6, "radii": 26, "radiu": [15, 26, 27, 32, 37, 38, 39], "radiusdof": 6, "rais": [3, 4, 14, 32, 39], "random": [14, 24, 26, 37], "random_se": 24, "rang": [6, 8, 12, 14, 36, 37, 39, 40], "range_": [6, 8, 10, 12, 13, 14, 26, 37, 39], "rate": [6, 39], "rather": [0, 39], "ratio": [19, 20, 39], "raw": 39, "rb": 40, "rb_type": 24, "re": [0, 39], "reach": 40, "read": [0, 6, 22, 29], "read_arbd_coordin": [31, 38], "read_average_arbd_coordin": 31, "read_cg_potenti": 6, "read_fil": 26, "read_release_vers": 35, "read_version_fil": 35, "readarbdcoord": [31, 39], "readavgarbdcoord": 31, "readi": 0, "realli": 38, "reason": [0, 37, 40], "recalcul": 6, "recent": [37, 38, 39, 40], "recommend": [0, 37, 40], "recomput": 40, "record": 39, "reduc": [0, 26, 39], "refer": [0, 12, 14], "refin": 6, "region": [6, 24], "regular": 38, "reimport": 38, "rel": 39, "relative_path": 34, "relax": 38, "releas": [0, 40], "remot": 0, "remov": [0, 1, 15], "remove_duplicate_bonded_term": [1, 3], "remove_monom": 15, "repeat": [6, 39, 40], "replac": 39, "replace_false_with_dist": 32, "replic": 40, "replica": [3, 24, 27, 39], "replica_index": 31, "replisom": 40, "replisome_grid": 40, "repositori": 0, "repres": [1, 6, 14, 24, 26, 32, 37, 38, 39, 40], "reproduc": 26, "request": 0, "requir": [0, 3, 32, 37, 40], "research": [], "reshap": 40, "resid": 39, "residu": [14, 39], "resolut": [6, 8, 10, 12, 13, 14, 16, 23, 26, 32, 37, 38, 39], "resourc": 27, "rest_length": [9, 10, 12, 13, 14, 15], "restart": [26, 38, 39], "restart_fil": [4, 26], "restrain": [38, 40], "restraint": [1, 29, 38, 39, 40], "restraint1": 40, "restraint2": 40, "result": [3, 6, 29, 32, 39, 40], "return": [4, 8, 15, 22, 24, 26, 27, 29, 31, 32, 37, 38, 39, 40], "reus": [38, 39], "revers": 15, "rework": 39, "rgyr": 38, "rho_aa": 39, "rho_cg": 39, "rho_ylimit": 39, "right": 39, "rigid": [3, 21, 24, 36], "rigid_bodi": 40, "rigid_body_grid_grid_period": [4, 40], "rigid_body_integr": 4, "rigid_body_potenti": [1, 40], "rigid_body_typ": 40, "rigidbodi": [1, 5, 20, 24, 40], "rigidbodytyp": [1, 21, 23, 24, 40], "rmin": 26, "rmsd_threshold": 31, "room": 0, "rotat": [1, 15, 40], "rotation_damp": 27, "rotation_matrix": 15, "rotationaboutaxi": 31, "rotational_damping_coeffici": [1, 40], "rotational_diffus": 1, "routin": [3, 39], "row": 39, "royalsocietypublish": 37, "rrang": 16, "rspa": 37, "run": [0, 3, 6, 22, 24, 26, 27, 29, 38, 40], "run_1": 26, "run_calcul": 27, "run_from_minim": 26, "run_ibi": [3, 39], "run_minim": [3, 26], "run_simul": [22, 24], "runcal": 38, "runtest": 32, "runtim": 37, "rx": 27, "ry": 27, "rz": 27, "sai": 0, "sali_polymer_model": 11, "salibeadsfrompolym": 16, "salimodel": 16, "salinonbond": 16, "salt": [26, 27], "salt_conc": 27, "salt_concentr": 26, "same": [32, 38, 39], "sampl": [32, 39], "sasa": 26, "sast": 0, "save": [6, 19, 20, 39], "save_aligned_mesh": [19, 20], "save_aligned_mesh_both_format": 19, "save_as_pdb": [19, 20], "savitzki": 6, "saw": 39, "sax": 38, "scalar": 32, "scale": [1, 12, 15, 31, 38, 39, 40], "scaling_factor": 6, "schedul": 26, "scienc": 37, "sciencedirect": 37, "scitat": 8, "screen": [12, 14], "screenshot": 0, "script": [0, 39], "sdsc": 32, "search": [], "second": 29, "secondari": 40, "section": [0, 2, 5, 7, 11, 15, 18, 25, 28, 33, 36, 39, 41], "secur": 0, "see": [0, 36, 37, 38, 40], "seed": [4, 24, 26], "seg": 38, "segid": [38, 39], "segment": [32, 38], "segment_index": 38, "segnam": [38, 39], "select": 37, "selectign": 38, "selenium": 0, "self": [0, 4, 29, 37, 39], "separ": 32, "seq": [15, 38, 39], "sequenc": [9, 10, 12, 13, 14, 15, 16, 17, 38, 39], "sequence_to_chain": 39, "server": 0, "server10": 27, "servic": 0, "set": [0, 4, 6, 8, 12, 22, 26, 37, 40], "set_binari": 4, "set_connect": 15, "set_damping_coeffici": [9, 10, 12, 13, 14, 39], "set_data": 39, "set_orientation_splin": 15, "set_splin": [15, 39, 40], "set_titl": 39, "set_xlabel": 39, "set_xlim": 39, "set_ylabel": 39, "set_ylim": 39, "setup": 0, "setup_and_run": 26, "setup_diffusible_object": 22, "setup_static_object": 22, "shape": [5, 21, 26, 27, 32, 36, 38, 40], "shape_cg": 25, "shapecgfactori": 26, "shapecgmodel": 26, "shapecgnonbond": 26, "share": 39, "sharex": 39, "shcg": 26, "shell": 27, "shield": 0, "shift": 32, "short": 0, "should": [0, 6, 8, 30, 32, 39, 40], "show": [0, 38, 39], "show_mdanalysi": [37, 38], "side": 32, "sig": 32, "sig_max": 27, "sig_min": 27, "sigma": [26, 32], "sign": 38, "signal": 40, "sim": [37, 38], "sim_config": 2, "simconf": [2, 4, 19, 20, 21, 23, 24, 27], "simengin": 27, "similar": [], "simpl": [27, 37, 38, 40], "simplearbd": 18, "simplearbdconfig": 22, "simplearbdengin": [22, 24], "simplest": 38, "simpli": 37, "simul": [2, 3, 4, 5, 6, 8, 12, 22, 24, 25, 26, 27, 29, 30, 31, 33, 36, 38, 40], "sinc": [39, 40], "singl": [14, 32, 39], "singleton": 30, "site": [6, 15, 26, 38, 40], "size": [6, 27, 32, 38], "skimag": 32, "skin_depth": 39, "skip": [38, 40], "slab": 32, "slab_potential_z": [32, 38], "slice": 26, "slow": [0, 40], "slower": 40, "small": [0, 37], "smaller": 32, "smaller_grid": 32, "smallest": 0, "smooth": [6, 23], "so": [0, 20, 37, 38, 39, 40], "sodium": 29, "softwar": 32, "solvent": [19, 20, 26], "solvent_dens": [4, 19, 20], "solver": 40, "some": [0, 37], "someon": 0, "someth": [0, 38], "sophist": 0, "sort": [], "sourc": [0, 1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 38, 40], "space": [8, 19, 20, 31, 32, 38, 40], "spatial": [12, 14], "special": [14, 36], "specif": [0, 4, 14, 27, 32], "specifi": [14, 26, 32, 37, 38, 40], "specific_volum": 27, "spefici": 38, "sphere": 26, "spheric": [26, 38], "spherical_confin": [32, 38], "spline": [38, 40], "split": 39, "spring": [14, 38], "spring_const": [9, 10, 12, 13, 14], "sqrt": [37, 38, 39], "squar": 39, "squeez": 39, "ssb": 40, "ssb_coord": 40, "ssb_type": 40, "ssdna": [38, 40], "ssdna_two_bead": [11, 38, 40], "stabil": 14, "standard": [], "start": [3, 6, 26, 38, 39, 40], "start_orient": [], "start_posit": [15, 38, 40], "state": [0, 26], "static": [0, 22, 24, 29], "staticobject": 24, "stderr": 32, "stem": 39, "step": [0, 3, 26, 40], "steric": 40, "stop": 0, "store": [3, 39], "str": [3, 6, 8, 32], "strand": 38, "strength": 32, "stretch": 38, "strictli": 38, "stride": [31, 38], "string": [26, 32, 37], "strongli": 37, "structur": [0, 3, 8, 23, 24, 26, 27, 29, 36, 38, 40], "structure_from_pdb": 18, "structure_nam": 27, "structure_path": [23, 24], "structure_rigidbodi": 18, "structureprocessor": 23, "structurerigidbodymodel": [22, 24], "structurerigidbodytyp": 24, "studi": 40, "style": 39, "subclass": [8, 21, 24], "subject": [37, 40], "subplot": 39, "subsect": 0, "sum": [32, 39], "support": [14, 29, 40], "suppress": 38, "surfac": [19, 26], "surface_potenti": 19, "surfacemeshprocessor": 19, "swell": 38, "switch": 38, "sy": 37, "syntax": [37, 40], "system": [0, 3, 6, 14, 26, 27, 29, 36, 39, 40], "system_s": 37, "system_typ": [26, 29], "t": [8, 14, 26, 29, 31, 38, 39, 40], "t0": 38, "t1": 39, "t2": 39, "tabl": 26, "tablefil": 8, "tabul": 38, "tabulatednonbond": 8, "tabulatedpotenti": 1, "tail": 40, "take": [39, 40], "tangent": [], "target": [3, 6, 39, 40], "target_trajectori": 3, "target_univers": 3, "tbgl": 0, "tcl": [15, 40], "techniqu": 38, "tediou": 38, "tell": 0, "temperatur": [4, 6, 8, 19, 20, 26, 27, 39], "templat": 0, "terin": 40, "term": 39, "termin": [39, 40], "test_average_grid": 32, "testaveragegrid": 32, "testcas": 32, "text": 40, "than": [0, 32, 38, 39, 40], "thank": 0, "thei": [0, 4, 39, 40], "them": [0, 38], "themselv": [], "thermostat": [4, 38], "thi": [2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 18, 22, 24, 25, 26, 28, 29, 30, 32, 33, 37, 38, 39, 40, 41], "thick": 27, "thing": [0, 38], "think": 0, "third": 40, "those": [0, 37, 40], "three": [38, 39], "threshold": 24, "through": [38, 39, 40], "tile": 39, "time": [0, 37, 38, 39, 40], "timescal": 38, "timeseri": 39, "timestep": [4, 26, 37, 39, 40], "titl": 35, "tkconsol": 40, "tmp": 39, "togeth": [39, 40], "tol": [6, 39], "too": [0, 37], "tool": [36, 40], "top": 0, "topologi": 29, "torqu": 40, "total": 26, "trace": [38, 40], "traceback": [37, 38, 39, 40], "tracker": 0, "tractabl": 40, "traj": 40, "trajectori": [3, 6, 37, 38, 40], "transform": [1, 3], "translat": [1, 15, 38, 40], "translation_damp": 27, "translation_vector": 15, "trash": 39, "tree": 26, "triangl": 19, "trick": 39, "trombon": 40, "trombond": 40, "true": [1, 3, 6, 15, 24, 26, 27, 29, 31, 32, 38, 39], "truncat": [32, 40], "try": [38, 39], "ttygif": 0, "tupl": [1, 6, 8, 12, 14, 26, 29, 31, 32, 40], "turn": 39, "tutori": [0, 36, 37, 38], "two": [12, 14, 15, 29, 38, 39, 40], "two_bead_model": [], "type": [6, 8, 10, 12, 13, 14, 22, 24, 26, 27, 29, 31, 32, 38, 39, 40], "type_": [1, 8, 15, 37, 38, 39], "typea": [3, 26, 37, 38, 39], "typeb": [3, 26, 37, 38, 39], "typeerror": [], "types_dict": 14, "typic": [], "u": [32, 37, 38, 39, 40], "u1": 29, "u2": 29, "u_pkg": 38, "u_ylimit": 39, "ubiquitin": 12, "uf": 0, "unabl": [39, 40], "under": 37, "underli": 38, "understand": 37, "unfamiliar": 0, "unfortun": 40, "uniform": 26, "uniqu": [26, 40], "unit": [3, 14, 32, 37, 38, 39, 40], "unit_quat_convers": 31, "unit_scal": [19, 20, 21], "univers": [3, 6, 29, 37, 38, 39], "unreason": 37, "until": [6, 38], "up": [0, 22, 26, 37, 40], "updat": [3, 6, 15, 38, 39, 40], "update_dimens": 27, "update_splin": [15, 16, 38, 39], "upload": 0, "upon": 40, "upper": [12, 39], "upperbound": 32, "urei": 39, "us": [0, 1, 3, 6, 8, 12, 14, 19, 20, 22, 23, 24, 26, 29, 32, 36, 37, 38, 39, 40], "usag": 39, "use_boundari": 24, "use_surfac": 21, "usecol": 40, "usenonbondedschem": 3, "user": 37, "usrgu068": 32, "usual": [6, 38, 39, 40], "util": [0, 5], "v": [6, 38], "valid": [], "valu": [6, 8, 27, 32, 37, 38, 39, 40], "valueerror": [3, 14, 32], "variabl": [0, 30], "varieti": 36, "variou": [36, 38], "vdw": [23, 40], "vdw0": 40, "vdw1": 40, "vdw2": 40, "ve": [38, 39, 40], "vector": [3, 24, 31], "veri": 40, "verifi": 38, "versatil": 38, "version": [0, 14, 33], "video": 0, "viral": 40, "viscos": [4, 19, 20], "visitor": 0, "visual": [32, 38, 40], "vmd": [23, 37, 38, 40], "vmd_cylinder_tcl": 15, "vmd_path": 4, "vmd_tube_tcl": 15, "volum": [16, 26, 27, 35], "volumetr": 32, "volunt": 0, "voxel": [32, 38, 40], "vulner": 0, "w": [37, 38], "wa": 40, "wai": [0, 32, 39], "wait": 40, "walk": 39, "walkthrough": 36, "want": [0, 37, 38, 39, 40], "warn": [4, 32], "we": [37, 38, 39, 40], "weight": [1, 3, 26, 27, 31], "welcom": 36, "well": [6, 38], "well_depth": 8, "were": [], "what": [0, 40], "whatev": 39, "when": [0, 4, 38, 39, 40], "where": [0, 12, 14, 32, 40], "whether": [0, 3, 8, 32], "which": [0, 12, 14, 26, 32, 37, 38, 40], "while": [0, 38], "who": 0, "whoever": 0, "whose": 4, "why": [37, 38, 40], "wide": 36, "widgetsnbextens": 37, "window": 6, "within": [0, 15, 26, 38, 40], "without": 15, "wlcskangl": 8, "wlcskbond": 8, "wlcskpotenti": 8, "word": 37, "work": [24, 27, 29, 37, 38, 39, 40, 41], "work_dir": [19, 20, 23, 24, 27], "workaround": 40, "would": [0, 38, 39], "wrap_vector": 6, "write": [3, 6, 8, 20, 24, 27, 29, 32, 37, 38, 39], "write_cg_potenti": 6, "write_conf": 27, "write_config": 27, "write_confine_dx": 32, "write_fil": [6, 8], "write_no_enter_potenti": 20, "write_no_enter_potential_dx": 19, "write_pdb": 3, "write_pqr": [3, 27], "write_psf": 3, "write_release_vers": 35, "write_restraint_fil": 29, "write_simulation_fil": [24, 27], "writedx": [32, 38], "written": [8, 32, 39, 40], "www": 37, "x": [1, 14, 27, 31, 32, 38, 39], "x1": [31, 39], "x2": [31, 39], "x3": 31, "x_dim": 31, "xlabel": [38, 39], "xlimit": 39, "xyz_dim": 27, "y": [12, 27, 31, 32, 38, 39], "y1": [31, 39], "y2": [31, 39], "y3": 31, "y_dim": 31, "yarn": 0, "year": 35, "yet": 40, "ylabel": 38, "you": [0, 37, 38, 40], "your": 37, "yourself": 37, "z": [27, 31, 32, 38, 39], "z1": 31, "z2": 31, "z3": 31, "z_dim": 31, "zero": [6, 8, 37], "zip": [38, 39], "\u00e5": [14, 19, 20, 27], "\u00e5ngstrom": 37, "\u03b5": [], "\u03c3": []}, "titles": ["arbdmodel-docs", "core_objects", "Core", "model", "sim_config", "API Reference", "ibi", "Interaction Potentials", "interactions", "fjc_polymer_model", "hps_polymer_model", "Polymer Modeling", "kh_polymer_model", "mpipi_polymer", "onck_polymer_model", "polymer", "sali_polymer_model", "ssdna_two_bead", "RigidBody Models", "mesh_process_surface", "mesh_process_volume", "mesh_rigidbody", "simplearbd", "structure_from_pdb", "structure_rigidbody", "Shape-Based Models", "shape_cg", "engine", "Simulation Engines", "parmed_bd", "binary_manager", "coords", "grid", "Utilities", "logger", "version", "ARBD Model Documentation", "Basic usage of the <code class=\"docutils literal notranslate\"><span class=\"pre\">arbdmodel</span></code> package", "Some polymer models may have multiple beads per monomer", "Implementing customized coarse-grained polymer models", "Modeling rigid-body objects", "Tutorials"], "titleterms": {"1": [37, 39, 41], "2": [37, 39, 41], "3": [37, 39, 41], "4": [37, 39, 41], "5": [37, 39], "6": 37, "7": 37, "acknowledg": 0, "ad": 40, "add": [0, 37, 38], "api": [5, 36], "arbd": [36, 37], "arbdmodel": [0, 37], "attach": 40, "author": 0, "avail": 41, "badg": 0, "base": 25, "basic": [37, 41], "bead": 38, "between": 37, "binary_manag": 30, "bind": 40, "bodi": [40, 41], "boltzmann": 41, "bond": 37, "build": 37, "categori": 5, "coars": 39, "coarser": 39, "collabor": 0, "configur": 37, "constant": 38, "construct": 39, "contribut": 0, "coord": 31, "core": 2, "core_object": 1, "creat": 37, "custom": [37, 39], "deploi": 0, "describ": 37, "descript": 0, "determin": 38, "dna": 40, "doc": 0, "document": 36, "edit": 0, "elast": 38, "end": 38, "engin": [27, 28], "featur": 36, "file": [0, 37], "fine": 39, "fjc_polymer_model": 9, "forc": 38, "get": [0, 36], "good": 0, "grain": 39, "grid": 32, "have": 38, "hps_polymer_model": 10, "i": 37, "ibi": [6, 39], "implement": 39, "instal": 0, "integr": 0, "interact": [7, 8, 37], "invers": 41, "iter": 41, "kh_polymer_model": 12, "licens": 0, "logger": 34, "mai": 38, "map": 39, "mesh_process_surfac": 19, "mesh_process_volum": 20, "mesh_rigidbodi": 21, "model": [3, 11, 18, 25, 36, 38, 39, 40], "modul": [2, 5, 7, 11, 18, 25, 28, 33], "monom": 38, "mpipi_polym": 13, "multipl": 38, "name": 0, "object": [40, 41], "onck_polymer_model": 14, "overview": 36, "packag": 37, "parmed_bd": 29, "particl": [37, 40], "per": 38, "plain": 37, "point": 40, "polym": [11, 15, 38, 39, 41], "potenti": 7, "project": 0, "properti": 38, "protein": 40, "python": 36, "readm": 0, "refer": [5, 36], "represent": 39, "result": 37, "rigid": [40, 41], "rigidbodi": 18, "roadmap": 0, "run": [37, 39], "sali_polymer_model": 16, "set": 39, "shape": 25, "shape_cg": 26, "sim_config": 4, "simplearbd": 22, "simul": [28, 37, 39], "singl": 40, "some": 38, "ssdna_two_bead": 17, "start": [0, 36], "statu": 0, "step": [37, 39], "strand": 40, "structure_from_pdb": 23, "structure_rigidbodi": 24, "suggest": 0, "support": 0, "system": 37, "team": 0, "test": 0, "text": 37, "thi": 0, "through": 37, "tool": 0, "trajectori": 39, "tutori": 41, "type": 37, "up": 39, "usag": [0, 37], "util": 33, "version": 35, "visual": [0, 37, 39], "your": 0}})
\ No newline at end of file
+Search.setIndex({"alltitles": {"1-basics": [[41, "basics"]], "2-polymer-objects": [[41, "polymer-objects"]], "3-iterative-boltzmann-inversion": [[41, "iterative-boltzmann-inversion"]], "4-rigid-bodies": [[41, "rigid-bodies"]], "API Reference": [[5, null]], "ARBD Model Documentation": [[36, null]], "ARBD is configured through plain text files": [[37, "arbd-is-configured-through-plain-text-files"]], "Add a constant-force to the ends of the polymers to determine their elastic properties": [[38, "add-a-constant-force-to-the-ends-of-the-polymers-to-determine-their-elastic-properties"]], "Add your files": [[0, "add-your-files"]], "Adding single-stranded DNA binding protein": [[40, "adding-single-stranded-dna-binding-protein"]], "Attaching point particles": [[40, "attaching-point-particles"]], "Authors and acknowledgment": [[0, "authors-and-acknowledgment"]], "Available Tutorials": [[41, "available-tutorials"]], "Badges": [[0, "badges"]], "Basic usage of the arbdmodel package": [[37, null]], "Collaborate with your team": [[0, "collaborate-with-your-team"]], "Contributing": [[0, "contributing"]], "Core": [[2, null]], "Description": [[0, "description"]], "Editing this README": [[0, "editing-this-readme"]], "Features": [[36, "features"]], "Getting Started": [[36, "getting-started"]], "Getting started": [[0, "getting-started"]], "Implementing customized coarse-grained polymer models": [[39, null]], "Installation": [[0, "installation"]], "Integrate with your tools": [[0, "integrate-with-your-tools"]], "Interaction Potentials": [[7, null]], "License": [[0, "license"]], "Modeling rigid-body objects": [[40, null]], "Module Categories": [[5, "module-categories"]], "Modules": [[2, "modules"], [7, "modules"], [11, "modules"], [18, "modules"], [25, "modules"], [28, "modules"], [33, "modules"]], "Name": [[0, "name"]], "Overview": [[36, "overview"]], "Polymer Modeling": [[11, null]], "Project status": [[0, "project-status"]], "Python API Reference": [[36, "python-api-reference"]], "RigidBody Models": [[18, null]], "Roadmap": [[0, "roadmap"]], "Shape-Based Models": [[25, null]], "Simulation Engines": [[28, null]], "Some polymer models may have multiple beads per monomer": [[38, null]], "Step 1: Create particle types": [[37, "step-1-create-particle-types"]], "Step 1: Model Construction": [[39, "step-1-model-construction"]], "Step 2: Build a system": [[37, "step-2-build-a-system"]], "Step 2: Setting up a coarser model": [[39, "step-2-setting-up-a-coarser-model"]], "Step 3: Describe the interactions between the particles": [[37, "step-3-describe-the-interactions-between-the-particles"]], "Step 3: Mapping the fine grained trajectory to a coarser representation": [[39, "step-3-mapping-the-fine-grained-trajectory-to-a-coarser-representation"]], "Step 4: Run the coarser IBI simulations": [[39, "step-4-run-the-coarser-ibi-simulations"]], "Step 4: Run the simulation": [[37, "step-4-run-the-simulation"]], "Step 5: Visualization": [[39, "step-5-visualization"]], "Step 5: Visualize the results": [[37, "step-5-visualize-the-results"]], "Step 6: Customize the interactions": [[37, "step-6-customize-the-interactions"]], "Step 7: Add bonds": [[37, "step-7-add-bonds"]], "Suggestions for a good README": [[0, "suggestions-for-a-good-readme"]], "Support": [[0, "support"]], "Test and Deploy": [[0, "test-and-deploy"]], "Tutorials": [[41, null]], "Usage": [[0, "usage"]], "Utilities": [[33, null]], "Visuals": [[0, "visuals"]], "arbdmodel-docs": [[0, null]], "binary_manager": [[30, null]], "coords": [[31, null]], "core_objects": [[1, null]], "engine": [[27, null]], "fjc_polymer_model": [[9, null]], "grid": [[32, null]], "hps_polymer_model": [[10, null]], "ibi": [[6, null]], "interactions": [[8, null]], "kh_polymer_model": [[12, null]], "logger": [[34, null]], "mesh_process_surface": [[19, null]], "mesh_process_volume": [[20, null]], "mesh_rigidbody": [[21, null]], "model": [[3, null]], "mpipi_polymer": [[13, null]], "onck_polymer_model": [[14, null]], "parmed_bd": [[29, null]], "polymer": [[15, null]], "sali_polymer_model": [[16, null]], "shape_cg": [[26, null]], "sim_config": [[4, null]], "simplearbd": [[22, null]], "ssdna_two_bead": [[17, null]], "structure_from_pdb": [[23, null]], "structure_rigidbody": [[24, null]], "version": [[35, null]]}, "docnames": ["README", "api/core/core_objects", "api/core/index", "api/core/model", "api/core/sim_config", "api/index", "api/interaction_potentials/ibi", "api/interaction_potentials/index", "api/interaction_potentials/interactions", "api/polymer_modeling/fjc_polymer_model", "api/polymer_modeling/hps_polymer_model", "api/polymer_modeling/index", "api/polymer_modeling/kh_polymer_model", "api/polymer_modeling/mpipi_polymer", "api/polymer_modeling/onck_polymer_model", "api/polymer_modeling/polymer", "api/polymer_modeling/sali_polymer_model", "api/polymer_modeling/ssdna_two_bead", "api/rigidbody_models/index", "api/rigidbody_models/mesh_process_surface", "api/rigidbody_models/mesh_process_volume", "api/rigidbody_models/mesh_rigidbody", "api/rigidbody_models/simplearbd", "api/rigidbody_models/structure_from_pdb", "api/rigidbody_models/structure_rigidbody", "api/shape-based_models/index", "api/shape-based_models/shape_cg", "api/simulation_engines/engine", "api/simulation_engines/index", "api/simulation_engines/parmed_bd", "api/utilities/binary_manager", "api/utilities/coords", "api/utilities/grid", "api/utilities/index", "api/utilities/logger", "api/utilities/version", "intro", "tutorials/1-basics/1-basics", "tutorials/2-polymer-objects/2-polymer-objects", "tutorials/3-iterative-boltzmann-inversion/3-ibi", "tutorials/4-rigid-bodies/4-rigid-bodies", "tutorials/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["README.md", "api/core/core_objects.md", "api/core/index.md", "api/core/model.md", "api/core/sim_config.md", "api/index.md", "api/interaction_potentials/ibi.md", "api/interaction_potentials/index.md", "api/interaction_potentials/interactions.md", "api/polymer_modeling/fjc_polymer_model.md", "api/polymer_modeling/hps_polymer_model.md", "api/polymer_modeling/index.md", "api/polymer_modeling/kh_polymer_model.md", "api/polymer_modeling/mpipi_polymer.md", "api/polymer_modeling/onck_polymer_model.md", "api/polymer_modeling/polymer.md", "api/polymer_modeling/sali_polymer_model.md", "api/polymer_modeling/ssdna_two_bead.md", "api/rigidbody_models/index.md", "api/rigidbody_models/mesh_process_surface.md", "api/rigidbody_models/mesh_process_volume.md", "api/rigidbody_models/mesh_rigidbody.md", "api/rigidbody_models/simplearbd.md", "api/rigidbody_models/structure_from_pdb.md", "api/rigidbody_models/structure_rigidbody.md", "api/shape-based_models/index.md", "api/shape-based_models/shape_cg.md", "api/simulation_engines/engine.md", "api/simulation_engines/index.md", "api/simulation_engines/parmed_bd.md", "api/utilities/binary_manager.md", "api/utilities/coords.md", "api/utilities/grid.md", "api/utilities/index.md", "api/utilities/logger.md", "api/utilities/version.md", "intro.md", "tutorials/1-basics/1-basics.ipynb", "tutorials/2-polymer-objects/2-polymer-objects.ipynb", "tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb", "tutorials/4-rigid-bodies/4-rigid-bodies.ipynb", "tutorials/index.md"], "indexentries": {"_written_bond_files (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine._written_bond_files", false]], "abstractibipotential (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.AbstractIBIpotential", false]], "abstractpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.AbstractPotential", false]], "add() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add", false]], "add() (parent method)": [[1, "arbdmodel.core_objects.Parent.add", false]], "add_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_angle", false]], "add_bond() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_bond", false]], "add_bond_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_bond_angle", false]], "add_confinement() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_confinement", false]], "add_diffusible_object() (structurerigidbodymodel method)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel.add_diffusible_object", false]], "add_dihedral() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_dihedral", false]], "add_exclusion() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_exclusion", false]], "add_grid_potential() (particletype method)": [[1, "arbdmodel.core_objects.ParticleType.add_grid_potential", false]], "add_grid_potential() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.add_grid_potential", false]], "add_grid_potential() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.add_grid_potential", false]], "add_group_site() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add_group_site", false]], "add_improper() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_improper", false]], "add_location() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.add_location", false]], "add_nonbonded_interaction() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.add_nonbonded_interaction", false]], "add_product_potential() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_product_potential", false]], "add_protein_nb_interactions() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_protein_nb_interactions", false]], "add_proteins() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.add_proteins", false]], "add_restraint() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.add_restraint", false], [1, "id2", false]], "add_restraint() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.add_restraint", false]], "add_restraint() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.add_restraint", false]], "add_smaller_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.add_smaller_grid", false]], "add_static_object() (structurerigidbodymodel method)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel.add_static_object", false]], "add_vector_angle() (parent method)": [[1, "arbdmodel.core_objects.Parent.add_vector_angle", false]], "align_structure() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.align_structure", false]], "angledof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.AngleDof", false]], "angles (parent attribute)": [[1, "arbdmodel.core_objects.Parent.angles", false]], "apbsrunner (class in arbdmodel.engine)": [[27, "arbdmodel.engine.APBSRunner", false]], "apply_gaussian_smoothing() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.apply_gaussian_smoothing", false]], "applyorientation() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.applyOrientation", false], [1, "id6", false]], "arbdengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.ArbdEngine", false]], "arbdmodel (class in arbdmodel.model)": [[3, "arbdmodel.model.ArbdModel", false]], "arbdmodel.binary_manager": [[30, "module-arbdmodel.binary_manager", false]], "arbdmodel.coords": [[31, "module-arbdmodel.coords", false]], "arbdmodel.core_objects": [[1, "module-arbdmodel.core_objects", false]], "arbdmodel.engine": [[27, "module-arbdmodel.engine", false]], "arbdmodel.fjc_polymer_model": [[9, "module-arbdmodel.fjc_polymer_model", false]], "arbdmodel.grid": [[32, "module-arbdmodel.grid", false]], "arbdmodel.hps_polymer_model": [[10, "module-arbdmodel.hps_polymer_model", false]], "arbdmodel.ibi": [[6, "module-arbdmodel.ibi", false]], "arbdmodel.interactions": [[8, "module-arbdmodel.interactions", false]], "arbdmodel.kh_polymer_model": [[12, "module-arbdmodel.kh_polymer_model", false]], "arbdmodel.logger": [[34, "module-arbdmodel.logger", false]], "arbdmodel.mesh_process_surface": [[19, "module-arbdmodel.mesh_process_surface", false]], "arbdmodel.mesh_process_volume": [[20, "module-arbdmodel.mesh_process_volume", false]], "arbdmodel.mesh_rigidbody": [[21, "module-arbdmodel.mesh_rigidbody", false]], "arbdmodel.model": [[3, "module-arbdmodel.model", false]], "arbdmodel.mpipi_polymer": [[13, "module-arbdmodel.mpipi_polymer", false]], "arbdmodel.onck_polymer_model": [[14, "module-arbdmodel.onck_polymer_model", false]], "arbdmodel.parmed_bd": [[29, "module-arbdmodel.parmed_bd", false]], "arbdmodel.polymer": [[15, "module-arbdmodel.polymer", false]], "arbdmodel.sali_polymer_model": [[16, "module-arbdmodel.sali_polymer_model", false]], "arbdmodel.shape_cg": [[26, "module-arbdmodel.shape_cg", false]], "arbdmodel.sim_config": [[4, "module-arbdmodel.sim_config", false]], "arbdmodel.simplearbd": [[22, "module-arbdmodel.simplearbd", false]], "arbdmodel.ssdna_two_bead": [[17, "module-arbdmodel.ssdna_two_bead", false]], "arbdmodel.structure_from_pdb": [[23, "module-arbdmodel.structure_from_pdb", false]], "arbdmodel.structure_rigidbody": [[24, "module-arbdmodel.structure_rigidbody", false]], "arbdmodel.version": [[35, "module-arbdmodel.version", false]], "assign_ibi_degrees_of_freedom() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.assign_IBI_degrees_of_freedom", false]], "atom_types (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.atom_types", false]], "atoms_map (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.atoms_map", false]], "attach_particle() (rigidbodytype method)": [[1, "arbdmodel.core_objects.RigidBodyType.attach_particle", false]], "attached_particles (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.attached_particles", false]], "attached_particles (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.attached_particles", false]], "average_grids() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.average_grids", false]], "b (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.b", false]], "barostat (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.barostat", false]], "bins (abstractibipotential attribute)": [[6, "arbdmodel.ibi.AbstractIBIpotential.bins", false]], "bond_angles (parent attribute)": [[1, "arbdmodel.core_objects.Parent.bond_angles", false]], "bondangledof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.BondAngleDof", false]], "bonddof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.BondDof", false]], "bonds (parent attribute)": [[1, "arbdmodel.core_objects.Parent.bonds", false]], "bound_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.Bound_grid", false]], "boundarypotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.BoundaryPotential", false]], "cacheuptodate (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.cacheUpToDate", false]], "calc_atom_sasa() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.calc_atom_sasa", false]], "calculate_damping() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.calculate_damping", false]], "calculate_damping() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.calculate_damping", false]], "calculate_dimensions_from_cell_vectors() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.calculate_dimensions_from_cell_vectors", false]], "calculate_hydrodynamic_properties() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.calculate_hydrodynamic_properties", false]], "calculate_total_mass() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.calculate_total_mass", false]], "call_git_describe() (in module arbdmodel.version)": [[35, "arbdmodel.version.call_git_describe", false]], "charge (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.charge", false]], "charge_grids (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.charge_grids", false]], "check_git_repository() (in module arbdmodel.version)": [[35, "arbdmodel.version.check_git_repository", false]], "child (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Child", false]], "children (group attribute)": [[1, "arbdmodel.core_objects.Group.children", false]], "children (parent attribute)": [[1, "arbdmodel.core_objects.Parent.children", false]], "citation (class in arbdmodel.version)": [[35, "arbdmodel.version.Citation", false]], "clear_all() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.clear_all", false]], "clear_all() (parent method)": [[1, "arbdmodel.core_objects.Parent.clear_all", false]], "clone (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Clone", false]], "clone() (group method)": [[1, "arbdmodel.core_objects.Group.clone", false], [1, "id0", false]], "combine() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.combine", false]], "compute_volume() (angledof method)": [[6, "arbdmodel.ibi.AngleDof.compute_volume", false]], "compute_volume() (bonddof method)": [[6, "arbdmodel.ibi.BondDof.compute_volume", false]], "compute_volume() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.compute_volume", false]], "compute_volume() (pairdistributiondof method)": [[6, "arbdmodel.ibi.PairDistributionDof.compute_volume", false]], "compute_volume() (radiusdof method)": [[6, "arbdmodel.ibi.RadiusDof.compute_volume", false]], "concentration_to_debye_length() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.concentration_to_debye_length", false]], "configuration (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.configuration", false]], "connectableelement (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.ConnectableElement", false]], "connection (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.Connection", false]], "connection_locations (connectableelement attribute)": [[15, "arbdmodel.polymer.ConnectableElement.connection_locations", false]], "connections (connectableelement attribute)": [[15, "arbdmodel.polymer.ConnectableElement.connections", false]], "constant_force() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.constant_force", false]], "contour_to_monomer_index() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_monomer_index", false]], "contour_to_orientation() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_orientation", false]], "contour_to_position() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_position", false]], "contour_to_tangent() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.contour_to_tangent", false]], "convert_sod_to_mg() (parmedarbd static method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.convert_sod_to_mg", false]], "convolve_kernel_truncate() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.convolve_kernel_truncate", false]], "counter (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.counter", false]], "counter (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.counter", false]], "create_bounding_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.create_bounding_grid", false]], "create_dual_topology() (parmedarbd static method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.create_dual_topology", false]], "create_dual_topology_model() (parmedarbd class method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.create_dual_topology_model", false]], "create_engine() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.create_engine", false]], "create_model() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.create_model", false]], "create_null() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.Create_null", false]], "cutoff (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.cutoff", false]], "damping_coefficient (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.damping_coefficient", false]], "debye_length (khnonbonded attribute)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.debye_length", false]], "debye_length (oncknonbonded attribute)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.debye_length", false]], "decomp_period (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.decomp_period", false]], "default_binary (arbdengine property)": [[27, "arbdmodel.engine.ArbdEngine.default_binary", false]], "default_binary (namdengine property)": [[27, "arbdmodel.engine.NamdEngine.default_binary", false]], "default_binary (simengine property)": [[27, "arbdmodel.engine.SimEngine.default_binary", false]], "defaultsimconf (class in arbdmodel.sim_config)": [[4, "arbdmodel.sim_config.DefaultSimConf", false]], "degreeoffreedom (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.DegreeOfFreedom", false]], "delete() (connection method)": [[15, "arbdmodel.polymer.Connection.delete", false]], "diffusiverigidbodytype (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.DiffusiveRigidBodyType", false]], "diffusivity (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.diffusivity", false]], "dihedraldof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.DihedralDof", false]], "dihedrals (parent attribute)": [[1, "arbdmodel.core_objects.Parent.dihedrals", false]], "dimensions_from_structure() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.dimensions_from_structure", false]], "dimensions_from_structure() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.dimensions_from_structure", false]], "display() (citation method)": [[35, "arbdmodel.version.Citation.display", false]], "dnamodel (class in arbdmodel.ssdna_two_bead)": [[17, "arbdmodel.ssdna_two_bead.DnaModel", false]], "dnastrandbeads (class in arbdmodel.ssdna_two_bead)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads", false]], "duplicate() (group method)": [[1, "arbdmodel.core_objects.Group.duplicate", false], [1, "id1", false]], "duplicate() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.duplicate", false]], "duplicate() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.duplicate", false]], "end_position (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.end_position", false]], "excludedattributes (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.excludedAttributes", false], [1, "id5", false]], "exclusions (parent attribute)": [[1, "arbdmodel.core_objects.Parent.exclusions", false]], "extend() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.extend", false]], "extend() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.extend", false]], "extra_bd_file_lines (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.extra_bd_file_lines", false]], "filename() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.filename", false], [6, "id1", false]], "filename() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.filename", false], [8, "id0", false]], "filename() (harmonicbondedpotential method)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.filename", false]], "filename() (nullpotential method)": [[8, "arbdmodel.interactions.NullPotential.filename", false]], "filename() (shapecgnonbonded method)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded.filename", false]], "filename() (wlcskpotential method)": [[8, "arbdmodel.interactions.WLCSKPotential.filename", false]], "fill_nans() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.fill_nans", false]], "find_shape_based_sites() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.find_shape_based_sites", false]], "fjcbeadsfrompolymer (class in arbdmodel.fjc_polymer_model)": [[9, "arbdmodel.fjc_polymer_model.FjcBeadsFromPolymer", false]], "fjcmodel (class in arbdmodel.fjc_polymer_model)": [[9, "arbdmodel.fjc_polymer_model.FjcModel", false]], "from_protein_list() (shapecgmodel class method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.from_protein_list", false]], "gaussian_kernel() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.gaussian_kernel", false]], "generate_beads() (polymermodel method)": [[15, "arbdmodel.polymer.PolymerModel.generate_beads", false]], "generate_beads() (salimodel method)": [[16, "arbdmodel.sali_polymer_model.SaliModel.generate_beads", false]], "generate_charge_distribution() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_charge_distribution", false]], "generate_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.Generate_coordinates", false]], "generate_electrostatic_map() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_electrostatic_map", false]], "generate_potential_grid() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.generate_potential_grid", false]], "generate_potential_grid() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.generate_potential_grid", false]], "generate_protein() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.generate_protein", false]], "generate_random_protein_positions() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.generate_random_protein_positions", false]], "generate_spanning_vectors() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.Generate_spanning_vectors", false]], "generate_vdw_maps() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.generate_vdw_maps", false]], "get_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_angles", false]], "get_attached_particles() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.get_attached_particles", false]], "get_attached_particles() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.get_attached_particles", false]], "get_binary() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.get_binary", false]], "get_bond_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_bond_angles", false]], "get_bonds() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_bonds", false]], "get_center() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.get_center", false], [1, "id3", false]], "get_center() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_center", false]], "get_center() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.get_center", false]], "get_center() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.get_center", false]], "get_cg_distribution() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.get_cg_distribution", false], [6, "id2", false]], "get_coarse_protein() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.get_coarse_protein", false]], "get_coarse_types() (shapecgfactory method)": [[26, "arbdmodel.shape_cg.ShapeCGFactory.get_coarse_types", false]], "get_collapsed_position() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.get_collapsed_position", false], [1, "id7", false]], "get_connected_location() (location method)": [[15, "arbdmodel.polymer.Location.get_connected_location", false]], "get_connections() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.get_connections", false]], "get_connections_and_locations() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_connections_and_locations", false], [15, "id0", false]], "get_contour_sorted_connections_and_locations() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.get_contour_sorted_connections_and_locations", false]], "get_default_conf() (arbdengine method)": [[27, "arbdmodel.engine.ArbdEngine.get_default_conf", false]], "get_default_conf() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.get_default_conf", false]], "get_default_conf() (simengine method)": [[27, "arbdmodel.engine.SimEngine.get_default_conf", false]], "get_dihedrals() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_dihedrals", false]], "get_exclusions() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_exclusions", false]], "get_grid_files() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.get_grid_files", false]], "get_impropers() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_impropers", false]], "get_location_at() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_location_at", false], [15, "id1", false]], "get_locations() (connectableelement method)": [[15, "arbdmodel.polymer.ConnectableElement.get_locations", false], [15, "id2", false]], "get_monomer_index() (location method)": [[15, "arbdmodel.polymer.Location.get_monomer_index", false]], "get_original_recursively() (clone method)": [[1, "arbdmodel.core_objects.Clone.get_original_recursively", false]], "get_particle_assignments() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.get_particle_assignments", false]], "get_product_potentials() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_product_potentials", false]], "get_protein_types() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.get_protein_types", false]], "get_resource_path() (in module arbdmodel.logger)": [[34, "arbdmodel.logger.get_resource_path", false]], "get_restraints() (groupsite method)": [[1, "arbdmodel.core_objects.GroupSite.get_restraints", false], [1, "id4", false]], "get_restraints() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_restraints", false]], "get_restraints() (pointparticle method)": [[1, "arbdmodel.core_objects.PointParticle.get_restraints", false]], "get_restraints() (rigidbody method)": [[1, "arbdmodel.core_objects.RigidBody.get_restraints", false]], "get_slice_enclosing_smaller_grid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.get_slice_enclosing_smaller_grid", false]], "get_target_distribution() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.get_target_distribution", false], [6, "id3", false]], "get_values() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.get_values", false]], "get_values() (pairdistributiondof method)": [[6, "arbdmodel.ibi.PairDistributionDof.get_values", false]], "get_vector_angles() (parent method)": [[1, "arbdmodel.core_objects.Parent.get_vector_angles", false]], "get_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.get_version", false]], "getparticletypesandcounts() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.getParticleTypesAndCounts", false]], "gpu (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.gpu", false]], "group (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Group", false]], "group_sites (parent attribute)": [[1, "arbdmodel.core_objects.Parent.group_sites", false]], "groupsite (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.GroupSite", false]], "halfharmonic (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HalfHarmonic", false]], "harmonicangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicAngle", false]], "harmonicbond (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicBond", false]], "harmonicbondedpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicBondedPotential", false]], "harmonicdihedral (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicDihedral", false]], "harmonicvectorangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.HarmonicVectorAngle", false]], "hpsbeads (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsBeads", false]], "hpsmodel (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsModel", false]], "hpsnonbonded (class in arbdmodel.hps_polymer_model)": [[10, "arbdmodel.hps_polymer_model.HpsNonbonded", false]], "hydroprorunner (class in arbdmodel.engine)": [[27, "arbdmodel.engine.HydroProRunner", false]], "ibiangle (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIAngle", false]], "ibibond (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIBond", false]], "ibidihedral (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBIDihedral", false]], "ibinonbonded (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.IBINonbonded", false]], "idx (groupsite attribute)": [[1, "arbdmodel.core_objects.GroupSite.idx", false]], "idx (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.idx", false]], "idx (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.idx", false]], "impropers (parent attribute)": [[1, "arbdmodel.core_objects.Parent.impropers", false]], "index() (parent method)": [[1, "arbdmodel.core_objects.Parent.index", false]], "initialize_binary_paths() (in module arbdmodel.binary_manager)": [[30, "arbdmodel.binary_manager.initialize_binary_paths", false]], "insert() (parent method)": [[1, "arbdmodel.core_objects.Parent.insert", false]], "insert_monomers() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.insert_monomers", false]], "integrator (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.integrator", false]], "is_dirty() (in module arbdmodel.version)": [[35, "arbdmodel.version.is_dirty", false]], "is_same_type() (particletype method)": [[1, "arbdmodel.core_objects.ParticleType.is_same_type", false]], "isclone (group attribute)": [[1, "arbdmodel.core_objects.Group.isClone", false]], "isotropic_kernel() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.isotropic_kernel", false]], "items() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.items", false]], "iterate_connections_and_locations() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.iterate_connections_and_locations", false]], "khbeads (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhBeads", false]], "khmodel (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhModel", false]], "khnonbonded (class in arbdmodel.kh_polymer_model)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded", false]], "kscale (harmonicangle property)": [[8, "arbdmodel.interactions.HarmonicAngle.kscale", false]], "kscale (harmonicbond property)": [[8, "arbdmodel.interactions.HarmonicBond.kscale", false]], "kscale (harmonicbondedpotential property)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.kscale", false]], "kscale (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.kscale", false]], "kscale (harmonicvectorangle property)": [[8, "arbdmodel.interactions.HarmonicVectorAngle.kscale", false]], "lennardjones (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.LennardJones", false]], "linearbond (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.LinearBond", false]], "load_structure() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.load_structure", false]], "load_target_ibi_distributions() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.load_target_IBI_distributions", false]], "loadgrid() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.loadGrid", false]], "location (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.Location", false]], "locations (connectableelement attribute)": [[15, "arbdmodel.polymer.ConnectableElement.locations", false]], "main() (in module arbdmodel.simplearbd)": [[22, "arbdmodel.simplearbd.main", false]], "mass (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.mass", false]], "max_force (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.max_force", false]], "max_force (khnonbonded attribute)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.max_force", false]], "max_force (oncknonbonded attribute)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.max_force", false]], "max_potential (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.max_potential", false]], "meshprocessor (class in arbdmodel.mesh_process_volume)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor", false]], "meshrigidbodytype (class in arbdmodel.mesh_rigidbody)": [[21, "arbdmodel.mesh_rigidbody.MeshRigidBodyType", false]], "micron_to_angstrom (meshprocessor attribute)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.MICRON_TO_ANGSTROM", false]], "micron_to_angstrom (surfacemeshprocessor attribute)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.MICRON_TO_ANGSTROM", false]], "minimizermsd() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.minimizeRmsd", false]], "module": [[1, "module-arbdmodel.core_objects", false], [3, "module-arbdmodel.model", false], [4, "module-arbdmodel.sim_config", false], [6, "module-arbdmodel.ibi", false], [8, "module-arbdmodel.interactions", false], [9, "module-arbdmodel.fjc_polymer_model", false], [10, "module-arbdmodel.hps_polymer_model", false], [12, "module-arbdmodel.kh_polymer_model", false], [13, "module-arbdmodel.mpipi_polymer", false], [14, "module-arbdmodel.onck_polymer_model", false], [15, "module-arbdmodel.polymer", false], [16, "module-arbdmodel.sali_polymer_model", false], [17, "module-arbdmodel.ssdna_two_bead", false], [19, "module-arbdmodel.mesh_process_surface", false], [20, "module-arbdmodel.mesh_process_volume", false], [21, "module-arbdmodel.mesh_rigidbody", false], [22, "module-arbdmodel.simplearbd", false], [23, "module-arbdmodel.structure_from_pdb", false], [24, "module-arbdmodel.structure_rigidbody", false], [26, "module-arbdmodel.shape_cg", false], [27, "module-arbdmodel.engine", false], [29, "module-arbdmodel.parmed_bd", false], [30, "module-arbdmodel.binary_manager", false], [31, "module-arbdmodel.coords", false], [32, "module-arbdmodel.grid", false], [34, "module-arbdmodel.logger", false], [35, "module-arbdmodel.version", false]], "moment_of_inertia (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.moment_of_inertia", false]], "monomer_index_to_contour() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.monomer_index_to_contour", false]], "monomer_length (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.monomer_length", false]], "monomers_per_bead_group (polymerbeads property)": [[15, "arbdmodel.polymer.PolymerBeads.monomers_per_bead_group", false]], "mpipibeads (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiBeads", false]], "mpipimodel (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiModel", false]], "mpipinonbonded (class in arbdmodel.mpipi_polymer)": [[13, "arbdmodel.mpipi_polymer.MpipiNonbonded", false]], "namdengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.NamdEngine", false]], "name (group attribute)": [[1, "arbdmodel.core_objects.Group.name", false]], "name (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.name", false]], "name (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.name", false]], "name (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.name", false]], "name (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.name", false]], "neighborhood_average() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.neighborhood_average", false]], "nt (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.nt", false]], "nullpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.NullPotential", false]], "num_bead_groups (polymerbeads property)": [[15, "arbdmodel.polymer.PolymerBeads.num_bead_groups", false]], "num_heavy_cluster (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.num_heavy_cluster", false]], "num_heavy_cluster (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.num_heavy_cluster", false]], "num_monomers (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.num_monomers", false]], "num_particles (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.num_particles", false]], "num_steps (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.num_steps", false]], "num_steps (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.num_steps", false]], "onckbeads (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckBeads", false]], "onckmodel (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckModel", false]], "oncknonbonded (class in arbdmodel.onck_polymer_model)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded", false]], "orientation (group attribute)": [[1, "arbdmodel.core_objects.Group.orientation", false]], "orientation (transformable attribute)": [[1, "arbdmodel.core_objects.Transformable.orientation", false]], "other() (connection method)": [[15, "arbdmodel.polymer.Connection.other", false]], "output_period (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.output_period", false]], "output_period (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.output_period", false]], "p (dnastrandbeads attribute)": [[17, "arbdmodel.ssdna_two_bead.DnaStrandBeads.p", false]], "pairdistributiondof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.PairDistributionDof", false]], "pairlist_distance (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.pairlist_distance", false]], "parent (child attribute)": [[1, "arbdmodel.core_objects.Child.parent", false]], "parent (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Parent", false]], "parent (group attribute)": [[1, "arbdmodel.core_objects.Group.parent", false]], "parent (particletype attribute)": [[1, "arbdmodel.core_objects.ParticleType.parent", false]], "parent (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.parent", false]], "parmed_structure (parmedarbd attribute)": [[29, "arbdmodel.parmed_bd.ParmedArbd.parmed_structure", false]], "parmedarbd (class in arbdmodel.parmed_bd)": [[29, "arbdmodel.parmed_bd.ParmedArbd", false]], "parse_output() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.parse_output", false]], "particles (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.particles", false]], "particles (groupsite attribute)": [[1, "arbdmodel.core_objects.GroupSite.particles", false]], "particletype (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.ParticleType", false]], "pdbmodel (class in arbdmodel.model)": [[3, "arbdmodel.model.PdbModel", false]], "peptide_bond (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.peptide_bond", false]], "periodic (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.periodic", false]], "periodic (abstractpotential property)": [[8, "id1", false]], "periodic (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.periodic", false]], "periodic (ibidihedral property)": [[6, "arbdmodel.ibi.IBIDihedral.periodic", false]], "pmf_grids (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.pmf_grids", false]], "pointparticle (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.PointParticle", false]], "polymer (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.polymer", false]], "polymerbeads (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerBeads", false]], "polymergroup (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerGroup", false]], "polymermodel (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerModel", false]], "polymersection (class in arbdmodel.polymer)": [[15, "arbdmodel.polymer.PolymerSection", false]], "position (group attribute)": [[1, "arbdmodel.core_objects.Group.position", false]], "position (transformable attribute)": [[1, "arbdmodel.core_objects.Transformable.position", false]], "position_spline_params (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.position_spline_params", false]], "potential (abstractibipotential attribute)": [[6, "arbdmodel.ibi.AbstractIBIpotential.potential", false]], "potential() (abstractibipotential method)": [[6, "id0", false], [6, "id4", false]], "potential() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.potential", false], [8, "id2", false]], "potential() (boundarypotential method)": [[8, "arbdmodel.interactions.BoundaryPotential.potential", false]], "potential() (halfharmonic method)": [[8, "arbdmodel.interactions.HalfHarmonic.potential", false]], "potential() (harmonicbond method)": [[8, "arbdmodel.interactions.HarmonicBond.potential", false]], "potential() (harmonicbondedpotential method)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.potential", false]], "potential() (hpsnonbonded method)": [[10, "arbdmodel.hps_polymer_model.HpsNonbonded.potential", false]], "potential() (khnonbonded method)": [[12, "arbdmodel.kh_polymer_model.KhNonbonded.potential", false], [12, "id0", false]], "potential() (lennardjones method)": [[8, "arbdmodel.interactions.LennardJones.potential", false]], "potential() (linearbond method)": [[16, "arbdmodel.sali_polymer_model.LinearBond.potential", false]], "potential() (mpipinonbonded method)": [[13, "arbdmodel.mpipi_polymer.MpipiNonbonded.potential", false]], "potential() (nullpotential method)": [[8, "arbdmodel.interactions.NullPotential.potential", false]], "potential() (oncknonbonded method)": [[14, "arbdmodel.onck_polymer_model.OnckNonbonded.potential", false], [14, "id0", false]], "potential() (salinonbonded method)": [[16, "arbdmodel.sali_polymer_model.SaliNonbonded.potential", false]], "potential() (shapecgnonbonded method)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded.potential", false]], "potential() (tabulatednonbonded method)": [[8, "arbdmodel.interactions.TabulatedNonbonded.potential", false]], "potential() (wlcskangle method)": [[8, "arbdmodel.interactions.WLCSKAngle.potential", false]], "potential() (wlcskbond method)": [[8, "arbdmodel.interactions.WLCSKBond.potential", false]], "potential_directory (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.potential_directory", false]], "potential_grids (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.potential_grids", false]], "prepare_for_simulation() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.prepare_for_simulation", false]], "pressure (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.pressure", false]], "pressure (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.pressure", false]], "process() (staticobject method)": [[24, "arbdmodel.structure_rigidbody.StaticObject.process", false]], "process_mesh_file() (in module arbdmodel.mesh_process_volume)": [[20, "arbdmodel.mesh_process_volume.process_mesh_file", false]], "process_structure() (structureprocessor method)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor.process_structure", false]], "process_surface_mesh() (in module arbdmodel.mesh_process_surface)": [[19, "arbdmodel.mesh_process_surface.process_surface_mesh", false]], "product_potentials (parent attribute)": [[1, "arbdmodel.core_objects.Parent.product_potentials", false]], "properties (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.Properties", false]], "quaternion_exp() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_exp", false]], "quaternion_from_matrix() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_from_matrix", false]], "quaternion_inverse() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_inverse", false]], "quaternion_product() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_product", false]], "quaternion_slerp() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_slerp", false]], "quaternion_spline_params (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.quaternion_spline_params", false]], "quaternion_to_matrix() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.quaternion_to_matrix", false]], "radiusdof (class in arbdmodel.ibi)": [[6, "arbdmodel.ibi.RadiusDof", false]], "range_ (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.range_", false]], "range_ (abstractpotential property)": [[8, "id3", false]], "rb_type_dirs (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.rb_type_dirs", false]], "read_arbd_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.read_arbd_coordinates", false]], "read_average_arbd_coordinates() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.read_average_arbd_coordinates", false]], "read_cg_potential() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.read_cg_potential", false], [6, "id5", false]], "read_files() (in module arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.read_files", false]], "read_release_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.read_release_version", false]], "read_version_file() (in module arbdmodel.version)": [[35, "arbdmodel.version.read_version_file", false]], "readarbdcoords() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.readArbdCoords", false]], "readavgarbdcoords() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.readAvgArbdCoords", false]], "remove() (parent method)": [[1, "arbdmodel.core_objects.Parent.remove", false]], "remove_duplicate_bonded_terms (group attribute)": [[1, "arbdmodel.core_objects.Group.remove_duplicate_bonded_terms", false]], "remove_duplicate_bonded_terms (parent attribute)": [[1, "arbdmodel.core_objects.Parent.remove_duplicate_bonded_terms", false]], "remove_monomers() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.remove_monomers", false]], "replace_false_with_distance() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.replace_false_with_distance", false]], "resolution (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.resolution", false]], "restart_file (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.restart_file", false]], "restraints (groupsite attribute)": [[1, "arbdmodel.core_objects.GroupSite.restraints", false]], "restraints (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.restraints", false]], "restraints (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.restraints", false]], "rigid (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.rigid", false]], "rigid (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.rigid", false]], "rigid_body_grid_grid_period (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.rigid_body_grid_grid_period", false]], "rigid_body_integrator (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.rigid_body_integrator", false]], "rigidbody (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.RigidBody", false]], "rigidbodytype (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.RigidBodyType", false]], "rotate() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.rotate", false]], "rotate() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.rotate", false]], "rotate() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.rotate", false], [1, "id8", false]], "rotationaboutaxis() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.rotationAboutAxis", false]], "rotational_damping_coefficient (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.rotational_damping_coefficient", false]], "rotational_diffusivity (rigidbodytype attribute)": [[1, "arbdmodel.core_objects.RigidBodyType.rotational_diffusivity", false]], "run_calculation() (apbsrunner method)": [[27, "arbdmodel.engine.APBSRunner.run_calculation", false]], "run_calculation() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.run_calculation", false]], "run_from_minimized() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.run_from_minimized", false]], "run_ibi() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.run_IBI", false]], "run_minimization() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.run_minimization", false]], "run_simulation() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.run_simulation", false]], "run_simulation() (simplearbdengine method)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine.run_simulation", false]], "salibeadsfrompolymer (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliBeadsFromPolymer", false]], "salimodel (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliModel", false]], "salinonbonded (class in arbdmodel.sali_polymer_model)": [[16, "arbdmodel.sali_polymer_model.SaliNonbonded", false]], "save_aligned_mesh() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.save_aligned_mesh", false]], "save_aligned_mesh() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_aligned_mesh", false]], "save_aligned_mesh_both_formats() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_aligned_mesh_both_formats", false]], "save_as_pdb() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.save_as_pdb", false]], "save_as_pdb() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.save_as_pdb", false]], "seed (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.seed", false]], "segname (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.segname", false]], "sequence (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.sequence", false]], "sequence (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.sequence", false]], "set_binary() (simconf method)": [[4, "arbdmodel.sim_config.SimConf.set_binary", false]], "set_connection() (location method)": [[15, "arbdmodel.polymer.Location.set_connection", false]], "set_damping_coefficient() (fjcmodel method)": [[9, "arbdmodel.fjc_polymer_model.FjcModel.set_damping_coefficient", false]], "set_damping_coefficient() (hpsmodel method)": [[10, "arbdmodel.hps_polymer_model.HpsModel.set_damping_coefficient", false]], "set_damping_coefficient() (khmodel method)": [[12, "arbdmodel.kh_polymer_model.KhModel.set_damping_coefficient", false]], "set_damping_coefficient() (mpipimodel method)": [[13, "arbdmodel.mpipi_polymer.MpipiModel.set_damping_coefficient", false]], "set_damping_coefficient() (onckmodel method)": [[14, "arbdmodel.onck_polymer_model.OnckModel.set_damping_coefficient", false]], "set_orientation_splines() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.set_orientation_splines", false]], "set_splines() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.set_splines", false]], "setup_and_run() (shapecgmodel method)": [[26, "arbdmodel.shape_cg.ShapeCGModel.setup_and_run", false]], "setup_diffusible_objects() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.setup_diffusible_objects", false]], "setup_static_objects() (simplearbdconfig method)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig.setup_static_objects", false]], "shapecgfactory (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGFactory", false]], "shapecgmodel (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGModel", false]], "shapecgnonbonded (class in arbdmodel.shape_cg)": [[26, "arbdmodel.shape_cg.ShapeCGNonbonded", false]], "simconf (class in arbdmodel.sim_config)": [[4, "arbdmodel.sim_config.SimConf", false]], "simengine (class in arbdmodel.engine)": [[27, "arbdmodel.engine.SimEngine", false]], "simplearbdconfig (class in arbdmodel.simplearbd)": [[22, "arbdmodel.simplearbd.SimpleArbdConfig", false]], "simplearbdengine (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine", false]], "simulate() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.simulate", false]], "simulate() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.simulate", false]], "simulate() (simengine method)": [[27, "arbdmodel.engine.SimEngine.simulate", false]], "slab_potential_z() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.slab_potential_z", false]], "solvent_density (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.solvent_density", false]], "solvent_density (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.solvent_density", false]], "spherical_confinement() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.spherical_confinement", false]], "spring_constant (hpsmodel attribute)": [[10, "arbdmodel.hps_polymer_model.HpsModel.spring_constant", false]], "spring_constant (khmodel attribute)": [[12, "arbdmodel.kh_polymer_model.KhModel.spring_constant", false]], "spring_constant (mpipimodel attribute)": [[13, "arbdmodel.mpipi_polymer.MpipiModel.spring_constant", false]], "spring_constant (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.spring_constant", false]], "start_orientation (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.start_orientation", false]], "start_position (polymersection attribute)": [[15, "arbdmodel.polymer.PolymerSection.start_position", false]], "staticobject (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.StaticObject", false]], "structureprocessor (class in arbdmodel.structure_from_pdb)": [[23, "arbdmodel.structure_from_pdb.StructureProcessor", false]], "structurerigidbodymodel (class in arbdmodel.structure_rigidbody)": [[24, "arbdmodel.structure_rigidbody.StructureRigidBodyModel", false]], "surfacemeshprocessor (class in arbdmodel.mesh_process_surface)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor", false]], "tabulatednonbonded (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.TabulatedNonbonded", false]], "temperature (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.temperature", false]], "temperature (defaultsimconf property)": [[4, "id0", false]], "temperature (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.temperature", false]], "temperature (simconf property)": [[4, "id1", false]], "test_average_grids() (testaveragegrids method)": [[32, "arbdmodel.grid.TestAverageGrids.test_average_grids", false]], "testaveragegrids (class in arbdmodel.grid)": [[32, "arbdmodel.grid.TestAverageGrids", false]], "thermostat (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.thermostat", false]], "timestep (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.timestep", false]], "transform() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.transform", false], [1, "id9", false]], "transformable (class in arbdmodel.core_objects)": [[1, "arbdmodel.core_objects.Transformable", false]], "translate() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.translate", false]], "translate() (polymersection method)": [[15, "arbdmodel.polymer.PolymerSection.translate", false]], "translate() (transformable method)": [[1, "arbdmodel.core_objects.Transformable.translate", false], [1, "id10", false]], "type_ (harmonicangle property)": [[8, "arbdmodel.interactions.HarmonicAngle.type_", false]], "type_ (harmonicbond property)": [[8, "arbdmodel.interactions.HarmonicBond.type_", false]], "type_ (harmonicbondedpotential property)": [[8, "arbdmodel.interactions.HarmonicBondedPotential.type_", false]], "type_ (harmonicdihedral property)": [[8, "arbdmodel.interactions.HarmonicDihedral.type_", false]], "type_ (harmonicvectorangle property)": [[8, "arbdmodel.interactions.HarmonicVectorAngle.type_", false]], "type_ (pointparticle attribute)": [[1, "arbdmodel.core_objects.PointParticle.type_", false]], "type_ (rigidbody attribute)": [[1, "arbdmodel.core_objects.RigidBody.type_", false]], "type_ (wlcskangle property)": [[8, "arbdmodel.interactions.WLCSKAngle.type_", false]], "type_ (wlcskbond property)": [[8, "arbdmodel.interactions.WLCSKBond.type_", false]], "type_counts (arbdengine attribute)": [[27, "arbdmodel.engine.ArbdEngine.type_counts", false]], "types_dict (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.types_dict", false]], "unit_quat_conversions() (in module arbdmodel.coords)": [[31, "arbdmodel.coords.unit_quat_conversions", false]], "update() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.update", false]], "update() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.update", false]], "update_splines() (polymermodel method)": [[15, "arbdmodel.polymer.PolymerModel.update_splines", false]], "update_splines() (salimodel method)": [[16, "arbdmodel.sali_polymer_model.SaliModel.update_splines", false]], "usenonbondedscheme() (arbdmodel method)": [[3, "arbdmodel.model.ArbdModel.useNonbondedScheme", false]], "vector_angles (parent attribute)": [[1, "arbdmodel.core_objects.Parent.vector_angles", false]], "version (onckbeads attribute)": [[14, "arbdmodel.onck_polymer_model.OnckBeads.version", false]], "viscosity (defaultsimconf attribute)": [[4, "arbdmodel.sim_config.DefaultSimConf.viscosity", false]], "viscosity (simconf attribute)": [[4, "arbdmodel.sim_config.SimConf.viscosity", false]], "vmd_cylinder_tcl() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.vmd_cylinder_tcl", false]], "vmd_tube_tcl() (polymergroup method)": [[15, "arbdmodel.polymer.PolymerGroup.vmd_tube_tcl", false]], "wlcskangle (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKAngle", false]], "wlcskbond (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKBond", false]], "wlcskpotential (class in arbdmodel.interactions)": [[8, "arbdmodel.interactions.WLCSKPotential", false]], "wrap_vector() (degreeoffreedom method)": [[6, "arbdmodel.ibi.DegreeOfFreedom.wrap_vector", false]], "write_cg_potential() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.write_cg_potential", false], [6, "id6", false]], "write_conf() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.write_conf", false]], "write_config() (apbsrunner method)": [[27, "arbdmodel.engine.APBSRunner.write_config", false]], "write_config() (hydroprorunner method)": [[27, "arbdmodel.engine.HydroProRunner.write_config", false]], "write_confine_dx() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.write_confine_dx", false]], "write_file() (abstractibipotential method)": [[6, "arbdmodel.ibi.AbstractIBIpotential.write_file", false], [6, "id7", false]], "write_file() (abstractpotential method)": [[8, "arbdmodel.interactions.AbstractPotential.write_file", false], [8, "id4", false]], "write_file() (boundarypotential method)": [[8, "arbdmodel.interactions.BoundaryPotential.write_file", false]], "write_file() (ibinonbonded method)": [[6, "arbdmodel.ibi.IBINonbonded.write_file", false]], "write_file() (tabulatednonbonded method)": [[8, "arbdmodel.interactions.TabulatedNonbonded.write_file", false]], "write_no_enter_potential() (meshprocessor method)": [[20, "arbdmodel.mesh_process_volume.MeshProcessor.write_no_enter_potential", false]], "write_no_enter_potential_dx() (surfacemeshprocessor method)": [[19, "arbdmodel.mesh_process_surface.SurfaceMeshProcessor.write_no_enter_potential_dx", false]], "write_pdb() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_pdb", false]], "write_pqr() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_pqr", false]], "write_psf() (pdbmodel method)": [[3, "arbdmodel.model.PdbModel.write_psf", false]], "write_release_version() (in module arbdmodel.version)": [[35, "arbdmodel.version.write_release_version", false]], "write_restraint_files() (parmedarbd method)": [[29, "arbdmodel.parmed_bd.ParmedArbd.write_restraint_files", false]], "write_simulation_files() (arbdengine method)": [[27, "arbdmodel.engine.ArbdEngine.write_simulation_files", false]], "write_simulation_files() (namdengine method)": [[27, "arbdmodel.engine.NamdEngine.write_simulation_files", false]], "write_simulation_files() (simengine method)": [[27, "arbdmodel.engine.SimEngine.write_simulation_files", false]], "write_simulation_files() (simplearbdengine method)": [[24, "arbdmodel.structure_rigidbody.SimpleArbdEngine.write_simulation_files", false]], "writedx() (in module arbdmodel.grid)": [[32, "arbdmodel.grid.writeDx", false]], "zero (abstractpotential attribute)": [[8, "arbdmodel.interactions.AbstractPotential.zero", false]]}, "objects": {"arbdmodel": [[30, 0, 0, "-", "binary_manager"], [31, 0, 0, "-", "coords"], [1, 0, 0, "-", "core_objects"], [27, 0, 0, "-", "engine"], [9, 0, 0, "-", "fjc_polymer_model"], [32, 0, 0, "-", "grid"], [10, 0, 0, "-", "hps_polymer_model"], [6, 0, 0, "-", "ibi"], [8, 0, 0, "-", "interactions"], [12, 0, 0, "-", "kh_polymer_model"], [34, 0, 0, "-", "logger"], [19, 0, 0, "-", "mesh_process_surface"], [20, 0, 0, "-", "mesh_process_volume"], [21, 0, 0, "-", "mesh_rigidbody"], [3, 0, 0, "-", "model"], [13, 0, 0, "-", "mpipi_polymer"], [14, 0, 0, "-", "onck_polymer_model"], [29, 0, 0, "-", "parmed_bd"], [15, 0, 0, "-", "polymer"], [16, 0, 0, "-", "sali_polymer_model"], [26, 0, 0, "-", "shape_cg"], [4, 0, 0, "-", "sim_config"], [22, 0, 0, "-", "simplearbd"], [17, 0, 0, "-", "ssdna_two_bead"], [23, 0, 0, "-", "structure_from_pdb"], [24, 0, 0, "-", "structure_rigidbody"], [35, 0, 0, "-", "version"]], "arbdmodel.binary_manager": [[30, 1, 1, "", "initialize_binary_paths"]], "arbdmodel.coords": [[31, 1, 1, "", "Generate_coordinates"], [31, 1, 1, "", "Generate_spanning_vectors"], [31, 1, 1, "", "calculate_dimensions_from_cell_vectors"], [31, 1, 1, "", "minimizeRmsd"], [31, 1, 1, "", "quaternion_exp"], [31, 1, 1, "", "quaternion_from_matrix"], [31, 1, 1, "", "quaternion_inverse"], [31, 1, 1, "", "quaternion_product"], [31, 1, 1, "", "quaternion_slerp"], [31, 1, 1, "", "quaternion_to_matrix"], [31, 1, 1, "", "readArbdCoords"], [31, 1, 1, "", "readAvgArbdCoords"], [31, 1, 1, "", "read_arbd_coordinates"], [31, 1, 1, "", "read_average_arbd_coordinates"], [31, 1, 1, "", "rotationAboutAxis"], [31, 1, 1, "", "unit_quat_conversions"]], "arbdmodel.core_objects": [[1, 2, 1, "", "Child"], [1, 2, 1, "", "Clone"], [1, 2, 1, "", "Group"], [1, 2, 1, "", "GroupSite"], [1, 2, 1, "", "Parent"], [1, 2, 1, "", "ParticleType"], [1, 2, 1, "", "PointParticle"], [1, 2, 1, "", "RigidBody"], [1, 2, 1, "", "RigidBodyType"], [1, 2, 1, "", "Transformable"]], "arbdmodel.core_objects.Child": [[1, 3, 1, "", "parent"]], "arbdmodel.core_objects.Clone": [[1, 4, 1, "", "get_original_recursively"]], "arbdmodel.core_objects.Group": [[1, 3, 1, "", "children"], [1, 4, 1, "id0", "clone"], [1, 4, 1, "id1", "duplicate"], [1, 3, 1, "", "isClone"], [1, 3, 1, "", "name"], [1, 3, 1, "", "orientation"], [1, 3, 1, "", "parent"], [1, 3, 1, "", "position"], [1, 3, 1, "", "remove_duplicate_bonded_terms"]], "arbdmodel.core_objects.GroupSite": [[1, 4, 1, "id2", "add_restraint"], [1, 4, 1, "id3", "get_center"], [1, 4, 1, "id4", "get_restraints"], [1, 3, 1, "", "idx"], [1, 3, 1, "", "particles"], [1, 3, 1, "", "restraints"]], "arbdmodel.core_objects.Parent": [[1, 4, 1, "", "add"], [1, 4, 1, "", "add_angle"], [1, 4, 1, "", "add_bond"], [1, 4, 1, "", "add_bond_angle"], [1, 4, 1, "", "add_dihedral"], [1, 4, 1, "", "add_exclusion"], [1, 4, 1, "", "add_improper"], [1, 4, 1, "", "add_product_potential"], [1, 4, 1, "", "add_vector_angle"], [1, 3, 1, "", "angles"], [1, 3, 1, "", "bond_angles"], [1, 3, 1, "", "bonds"], [1, 3, 1, "", "children"], [1, 4, 1, "", "clear_all"], [1, 3, 1, "", "dihedrals"], [1, 3, 1, "", "exclusions"], [1, 4, 1, "", "get_angles"], [1, 4, 1, "", "get_bond_angles"], [1, 4, 1, "", "get_bonds"], [1, 4, 1, "", "get_center"], [1, 4, 1, "", "get_dihedrals"], [1, 4, 1, "", "get_exclusions"], [1, 4, 1, "", "get_impropers"], [1, 4, 1, "", "get_product_potentials"], [1, 4, 1, "", "get_restraints"], [1, 4, 1, "", "get_vector_angles"], [1, 3, 1, "", "group_sites"], [1, 3, 1, "", "impropers"], [1, 4, 1, "", "index"], [1, 4, 1, "", "insert"], [1, 3, 1, "", "product_potentials"], [1, 4, 1, "", "remove"], [1, 3, 1, "", "remove_duplicate_bonded_terms"], [1, 3, 1, "", "vector_angles"]], "arbdmodel.core_objects.ParticleType": [[1, 4, 1, "", "add_grid_potential"], [1, 3, 1, "", "charge"], [1, 3, 1, "", "damping_coefficient"], [1, 3, 1, "", "diffusivity"], [1, 3, 1, "id5", "excludedAttributes"], [1, 4, 1, "", "is_same_type"], [1, 3, 1, "", "mass"], [1, 3, 1, "", "name"], [1, 3, 1, "", "parent"]], "arbdmodel.core_objects.PointParticle": [[1, 4, 1, "", "add_grid_potential"], [1, 4, 1, "", "add_restraint"], [1, 3, 1, "", "counter"], [1, 4, 1, "", "duplicate"], [1, 4, 1, "", "get_restraints"], [1, 3, 1, "", "idx"], [1, 3, 1, "", "name"], [1, 3, 1, "", "restraints"], [1, 3, 1, "", "rigid"], [1, 3, 1, "", "type_"]], "arbdmodel.core_objects.RigidBody": [[1, 4, 1, "", "add_restraint"], [1, 3, 1, "", "attached_particles"], [1, 3, 1, "", "counter"], [1, 4, 1, "", "duplicate"], [1, 4, 1, "", "get_restraints"], [1, 3, 1, "", "idx"], [1, 3, 1, "", "name"], [1, 3, 1, "", "restraints"], [1, 3, 1, "", "rigid"], [1, 3, 1, "", "type_"]], "arbdmodel.core_objects.RigidBodyType": [[1, 4, 1, "", "attach_particle"], [1, 3, 1, "", "attached_particles"], [1, 3, 1, "", "charge_grids"], [1, 3, 1, "", "moment_of_inertia"], [1, 3, 1, "", "name"], [1, 3, 1, "", "parent"], [1, 3, 1, "", "pmf_grids"], [1, 3, 1, "", "potential_grids"], [1, 3, 1, "", "rotational_damping_coefficient"], [1, 3, 1, "", "rotational_diffusivity"]], "arbdmodel.core_objects.Transformable": [[1, 4, 1, "id6", "applyOrientation"], [1, 4, 1, "id7", "get_collapsed_position"], [1, 3, 1, "", "orientation"], [1, 3, 1, "", "position"], [1, 4, 1, "id8", "rotate"], [1, 4, 1, "id9", "transform"], [1, 4, 1, "id10", "translate"]], "arbdmodel.engine": [[27, 2, 1, "", "APBSRunner"], [27, 2, 1, "", "ArbdEngine"], [27, 2, 1, "", "HydroProRunner"], [27, 2, 1, "", "NamdEngine"], [27, 2, 1, "", "SimEngine"]], "arbdmodel.engine.APBSRunner": [[27, 4, 1, "", "run_calculation"], [27, 4, 1, "", "write_config"]], "arbdmodel.engine.ArbdEngine": [[27, 3, 1, "", "_written_bond_files"], [27, 3, 1, "", "cacheUpToDate"], [27, 3, 1, "", "configuration"], [27, 5, 1, "", "default_binary"], [27, 3, 1, "", "extra_bd_file_lines"], [27, 4, 1, "", "get_default_conf"], [27, 3, 1, "", "num_particles"], [27, 3, 1, "", "particles"], [27, 3, 1, "", "potential_directory"], [27, 3, 1, "", "rb_type_dirs"], [27, 3, 1, "", "type_counts"], [27, 4, 1, "", "write_simulation_files"]], "arbdmodel.engine.HydroProRunner": [[27, 4, 1, "", "parse_output"], [27, 4, 1, "", "run_calculation"], [27, 4, 1, "", "write_config"]], "arbdmodel.engine.NamdEngine": [[27, 5, 1, "", "default_binary"], [27, 4, 1, "", "get_default_conf"], [27, 4, 1, "", "write_conf"], [27, 4, 1, "", "write_simulation_files"]], "arbdmodel.engine.SimEngine": [[27, 5, 1, "", "default_binary"], [27, 4, 1, "", "get_default_conf"], [27, 4, 1, "", "simulate"], [27, 4, 1, "", "write_simulation_files"]], "arbdmodel.fjc_polymer_model": [[9, 2, 1, "", "FjcBeadsFromPolymer"], [9, 2, 1, "", "FjcModel"]], "arbdmodel.fjc_polymer_model.FjcModel": [[9, 4, 1, "", "set_damping_coefficient"]], "arbdmodel.grid": [[32, 1, 1, "", "Bound_grid"], [32, 1, 1, "", "Create_null"], [32, 2, 1, "", "TestAverageGrids"], [32, 1, 1, "", "add_smaller_grid"], [32, 1, 1, "", "average_grids"], [32, 1, 1, "", "constant_force"], [32, 1, 1, "", "convolve_kernel_truncate"], [32, 1, 1, "", "create_bounding_grid"], [32, 1, 1, "", "fill_nans"], [32, 1, 1, "", "gaussian_kernel"], [32, 1, 1, "", "get_slice_enclosing_smaller_grid"], [32, 1, 1, "", "isotropic_kernel"], [32, 1, 1, "", "loadGrid"], [32, 1, 1, "", "neighborhood_average"], [32, 1, 1, "", "replace_false_with_distance"], [32, 1, 1, "", "slab_potential_z"], [32, 1, 1, "", "spherical_confinement"], [32, 1, 1, "", "writeDx"], [32, 1, 1, "", "write_confine_dx"]], "arbdmodel.grid.TestAverageGrids": [[32, 4, 1, "", "test_average_grids"]], "arbdmodel.hps_polymer_model": [[10, 2, 1, "", "HpsBeads"], [10, 2, 1, "", "HpsModel"], [10, 2, 1, "", "HpsNonbonded"]], "arbdmodel.hps_polymer_model.HpsModel": [[10, 4, 1, "", "set_damping_coefficient"], [10, 3, 1, "", "spring_constant"]], "arbdmodel.hps_polymer_model.HpsNonbonded": [[10, 4, 1, "", "potential"]], "arbdmodel.ibi": [[6, 2, 1, "", "AbstractIBIpotential"], [6, 2, 1, "", "AngleDof"], [6, 2, 1, "", "BondAngleDof"], [6, 2, 1, "", "BondDof"], [6, 2, 1, "", "DegreeOfFreedom"], [6, 2, 1, "", "DihedralDof"], [6, 2, 1, "", "IBIAngle"], [6, 2, 1, "", "IBIBond"], [6, 2, 1, "", "IBIDihedral"], [6, 2, 1, "", "IBINonbonded"], [6, 2, 1, "", "PairDistributionDof"], [6, 2, 1, "", "RadiusDof"]], "arbdmodel.ibi.AbstractIBIpotential": [[6, 3, 1, "", "bins"], [6, 4, 1, "id1", "filename"], [6, 4, 1, "id2", "get_cg_distribution"], [6, 4, 1, "id3", "get_target_distribution"], [6, 4, 1, "id4", "potential"], [6, 4, 1, "id5", "read_cg_potential"], [6, 4, 1, "id6", "write_cg_potential"], [6, 4, 1, "id7", "write_file"]], "arbdmodel.ibi.AngleDof": [[6, 4, 1, "", "compute_volume"]], "arbdmodel.ibi.BondDof": [[6, 4, 1, "", "compute_volume"]], "arbdmodel.ibi.DegreeOfFreedom": [[6, 4, 1, "", "compute_volume"], [6, 4, 1, "", "get_values"], [6, 4, 1, "", "wrap_vector"]], "arbdmodel.ibi.IBIDihedral": [[6, 5, 1, "", "periodic"]], "arbdmodel.ibi.IBINonbonded": [[6, 4, 1, "", "write_file"]], "arbdmodel.ibi.PairDistributionDof": [[6, 4, 1, "", "compute_volume"], [6, 4, 1, "", "get_values"]], "arbdmodel.ibi.RadiusDof": [[6, 4, 1, "", "compute_volume"]], "arbdmodel.interactions": [[8, 2, 1, "", "AbstractPotential"], [8, 2, 1, "", "BoundaryPotential"], [8, 2, 1, "", "HalfHarmonic"], [8, 2, 1, "", "HarmonicAngle"], [8, 2, 1, "", "HarmonicBond"], [8, 2, 1, "", "HarmonicBondedPotential"], [8, 2, 1, "", "HarmonicDihedral"], [8, 2, 1, "", "HarmonicVectorAngle"], [8, 2, 1, "", "LennardJones"], [8, 2, 1, "", "NullPotential"], [8, 2, 1, "", "TabulatedNonbonded"], [8, 2, 1, "", "WLCSKAngle"], [8, 2, 1, "", "WLCSKBond"], [8, 2, 1, "", "WLCSKPotential"]], "arbdmodel.interactions.AbstractPotential": [[8, 4, 1, "id0", "filename"], [8, 3, 1, "", "max_force"], [8, 3, 1, "", "max_potential"], [8, 5, 1, "id1", "periodic"], [8, 4, 1, "id2", "potential"], [8, 5, 1, "id3", "range_"], [8, 3, 1, "", "resolution"], [8, 4, 1, "id4", "write_file"], [8, 3, 1, "", "zero"]], "arbdmodel.interactions.BoundaryPotential": [[8, 4, 1, "", "potential"], [8, 4, 1, "", "write_file"]], "arbdmodel.interactions.HalfHarmonic": [[8, 4, 1, "", "potential"]], "arbdmodel.interactions.HarmonicAngle": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicBond": [[8, 5, 1, "", "kscale"], [8, 4, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicBondedPotential": [[8, 4, 1, "", "filename"], [8, 5, 1, "", "kscale"], [8, 4, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicDihedral": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "periodic"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.HarmonicVectorAngle": [[8, 5, 1, "", "kscale"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.LennardJones": [[8, 4, 1, "", "potential"]], "arbdmodel.interactions.NullPotential": [[8, 4, 1, "", "filename"], [8, 4, 1, "", "potential"]], "arbdmodel.interactions.TabulatedNonbonded": [[8, 4, 1, "", "potential"], [8, 4, 1, "", "write_file"]], "arbdmodel.interactions.WLCSKAngle": [[8, 4, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.WLCSKBond": [[8, 4, 1, "", "potential"], [8, 5, 1, "", "type_"]], "arbdmodel.interactions.WLCSKPotential": [[8, 4, 1, "", "filename"]], "arbdmodel.kh_polymer_model": [[12, 2, 1, "", "KhBeads"], [12, 2, 1, "", "KhModel"], [12, 2, 1, "", "KhNonbonded"]], "arbdmodel.kh_polymer_model.KhModel": [[12, 4, 1, "", "set_damping_coefficient"], [12, 3, 1, "", "spring_constant"]], "arbdmodel.kh_polymer_model.KhNonbonded": [[12, 3, 1, "", "debye_length"], [12, 3, 1, "", "max_force"], [12, 4, 1, "id0", "potential"]], "arbdmodel.logger": [[34, 1, 1, "", "get_resource_path"]], "arbdmodel.mesh_process_surface": [[19, 2, 1, "", "SurfaceMeshProcessor"], [19, 1, 1, "", "process_surface_mesh"]], "arbdmodel.mesh_process_surface.SurfaceMeshProcessor": [[19, 3, 1, "", "MICRON_TO_ANGSTROM"], [19, 4, 1, "", "calculate_damping"], [19, 4, 1, "", "generate_potential_grid"], [19, 4, 1, "", "get_attached_particles"], [19, 4, 1, "", "save_aligned_mesh"], [19, 4, 1, "", "save_aligned_mesh_both_formats"], [19, 4, 1, "", "save_as_pdb"], [19, 4, 1, "", "write_no_enter_potential_dx"]], "arbdmodel.mesh_process_volume": [[20, 2, 1, "", "MeshProcessor"], [20, 1, 1, "", "process_mesh_file"]], "arbdmodel.mesh_process_volume.MeshProcessor": [[20, 3, 1, "", "MICRON_TO_ANGSTROM"], [20, 4, 1, "", "calculate_damping"], [20, 4, 1, "", "generate_potential_grid"], [20, 4, 1, "", "get_attached_particles"], [20, 4, 1, "", "save_aligned_mesh"], [20, 4, 1, "", "save_as_pdb"], [20, 4, 1, "", "write_no_enter_potential"]], "arbdmodel.mesh_rigidbody": [[21, 2, 1, "", "MeshRigidBodyType"]], "arbdmodel.model": [[3, 2, 1, "", "ArbdModel"], [3, 2, 1, "", "PdbModel"]], "arbdmodel.model.ArbdModel": [[3, 4, 1, "", "add"], [3, 4, 1, "", "add_group_site"], [3, 4, 1, "", "add_nonbonded_interaction"], [3, 4, 1, "", "assign_IBI_degrees_of_freedom"], [3, 4, 1, "", "clear_all"], [3, 4, 1, "", "dimensions_from_structure"], [3, 4, 1, "", "extend"], [3, 4, 1, "", "getParticleTypesAndCounts"], [3, 4, 1, "", "load_target_IBI_distributions"], [3, 4, 1, "", "prepare_for_simulation"], [3, 4, 1, "", "run_IBI"], [3, 4, 1, "", "simulate"], [3, 4, 1, "", "update"], [3, 4, 1, "", "useNonbondedScheme"]], "arbdmodel.model.PdbModel": [[3, 4, 1, "", "write_pdb"], [3, 4, 1, "", "write_pqr"], [3, 4, 1, "", "write_psf"]], "arbdmodel.mpipi_polymer": [[13, 2, 1, "", "MpipiBeads"], [13, 2, 1, "", "MpipiModel"], [13, 2, 1, "", "MpipiNonbonded"]], "arbdmodel.mpipi_polymer.MpipiModel": [[13, 4, 1, "", "set_damping_coefficient"], [13, 3, 1, "", "spring_constant"]], "arbdmodel.mpipi_polymer.MpipiNonbonded": [[13, 4, 1, "", "potential"]], "arbdmodel.onck_polymer_model": [[14, 2, 1, "", "OnckBeads"], [14, 2, 1, "", "OnckModel"], [14, 2, 1, "", "OnckNonbonded"]], "arbdmodel.onck_polymer_model.OnckBeads": [[14, 3, 1, "", "peptide_bond"], [14, 3, 1, "", "polymer"], [14, 3, 1, "", "sequence"], [14, 3, 1, "", "spring_constant"], [14, 3, 1, "", "types_dict"], [14, 3, 1, "", "version"]], "arbdmodel.onck_polymer_model.OnckModel": [[14, 4, 1, "", "set_damping_coefficient"]], "arbdmodel.onck_polymer_model.OnckNonbonded": [[14, 3, 1, "", "debye_length"], [14, 3, 1, "", "max_force"], [14, 4, 1, "id0", "potential"]], "arbdmodel.parmed_bd": [[29, 2, 1, "", "ParmedArbd"]], "arbdmodel.parmed_bd.ParmedArbd": [[29, 3, 1, "", "atom_types"], [29, 3, 1, "", "atoms_map"], [29, 4, 1, "", "convert_sod_to_mg"], [29, 4, 1, "", "create_dual_topology"], [29, 4, 1, "", "create_dual_topology_model"], [29, 4, 1, "", "load_structure"], [29, 3, 1, "", "parmed_structure"], [29, 4, 1, "", "simulate"], [29, 4, 1, "", "write_restraint_files"]], "arbdmodel.polymer": [[15, 2, 1, "", "ConnectableElement"], [15, 2, 1, "", "Connection"], [15, 2, 1, "", "Location"], [15, 2, 1, "", "PolymerBeads"], [15, 2, 1, "", "PolymerGroup"], [15, 2, 1, "", "PolymerModel"], [15, 2, 1, "", "PolymerSection"]], "arbdmodel.polymer.ConnectableElement": [[15, 3, 1, "", "connection_locations"], [15, 3, 1, "", "connections"], [15, 4, 1, "id0", "get_connections_and_locations"], [15, 4, 1, "id1", "get_location_at"], [15, 4, 1, "id2", "get_locations"], [15, 3, 1, "", "locations"]], "arbdmodel.polymer.Connection": [[15, 4, 1, "", "delete"], [15, 4, 1, "", "other"]], "arbdmodel.polymer.Location": [[15, 4, 1, "", "get_connected_location"], [15, 4, 1, "", "get_monomer_index"], [15, 4, 1, "", "set_connection"]], "arbdmodel.polymer.PolymerBeads": [[15, 5, 1, "", "monomers_per_bead_group"], [15, 5, 1, "", "num_bead_groups"]], "arbdmodel.polymer.PolymerGroup": [[15, 4, 1, "", "add_grid_potential"], [15, 4, 1, "", "dimensions_from_structure"], [15, 4, 1, "", "extend"], [15, 4, 1, "", "get_center"], [15, 4, 1, "", "get_connections"], [15, 4, 1, "", "rotate"], [15, 4, 1, "", "translate"], [15, 4, 1, "", "update"], [15, 4, 1, "", "vmd_cylinder_tcl"], [15, 4, 1, "", "vmd_tube_tcl"]], "arbdmodel.polymer.PolymerModel": [[15, 4, 1, "", "generate_beads"], [15, 4, 1, "", "update_splines"]], "arbdmodel.polymer.PolymerSection": [[15, 4, 1, "", "add_location"], [15, 4, 1, "", "contour_to_monomer_index"], [15, 4, 1, "", "contour_to_orientation"], [15, 4, 1, "", "contour_to_position"], [15, 4, 1, "", "contour_to_tangent"], [15, 3, 1, "", "end_position"], [15, 4, 1, "", "get_center"], [15, 4, 1, "", "get_contour_sorted_connections_and_locations"], [15, 4, 1, "", "insert_monomers"], [15, 4, 1, "", "iterate_connections_and_locations"], [15, 4, 1, "", "monomer_index_to_contour"], [15, 3, 1, "", "monomer_length"], [15, 3, 1, "", "num_monomers"], [15, 3, 1, "", "position_spline_params"], [15, 3, 1, "", "quaternion_spline_params"], [15, 4, 1, "", "remove_monomers"], [15, 4, 1, "", "rotate"], [15, 3, 1, "", "segname"], [15, 3, 1, "", "sequence"], [15, 4, 1, "", "set_orientation_splines"], [15, 4, 1, "", "set_splines"], [15, 3, 1, "", "start_orientation"], [15, 3, 1, "", "start_position"], [15, 4, 1, "", "translate"]], "arbdmodel.sali_polymer_model": [[16, 2, 1, "", "LinearBond"], [16, 2, 1, "", "SaliBeadsFromPolymer"], [16, 2, 1, "", "SaliModel"], [16, 2, 1, "", "SaliNonbonded"]], "arbdmodel.sali_polymer_model.LinearBond": [[16, 4, 1, "", "potential"]], "arbdmodel.sali_polymer_model.SaliModel": [[16, 4, 1, "", "generate_beads"], [16, 4, 1, "", "update_splines"]], "arbdmodel.sali_polymer_model.SaliNonbonded": [[16, 4, 1, "", "potential"]], "arbdmodel.shape_cg": [[26, 2, 1, "", "ShapeCGFactory"], [26, 2, 1, "", "ShapeCGModel"], [26, 2, 1, "", "ShapeCGNonbonded"], [26, 1, 1, "", "find_shape_based_sites"], [26, 1, 1, "", "get_particle_assignments"], [26, 1, 1, "", "read_files"]], "arbdmodel.shape_cg.ShapeCGFactory": [[26, 4, 1, "", "calc_atom_sasa"], [26, 4, 1, "", "generate_protein"], [26, 4, 1, "", "get_coarse_protein"], [26, 4, 1, "", "get_coarse_types"]], "arbdmodel.shape_cg.ShapeCGModel": [[26, 4, 1, "", "add_confinement"], [26, 4, 1, "", "add_protein_nb_interactions"], [26, 4, 1, "", "add_proteins"], [26, 4, 1, "", "calculate_total_mass"], [26, 4, 1, "", "concentration_to_debye_length"], [26, 4, 1, "", "from_protein_list"], [26, 4, 1, "", "generate_random_protein_positions"], [26, 4, 1, "", "get_protein_types"], [26, 4, 1, "", "run_from_minimized"], [26, 4, 1, "", "run_minimization"], [26, 4, 1, "", "setup_and_run"]], "arbdmodel.shape_cg.ShapeCGNonbonded": [[26, 4, 1, "", "filename"], [26, 4, 1, "", "potential"]], "arbdmodel.sim_config": [[4, 2, 1, "", "DefaultSimConf"], [4, 2, 1, "", "SimConf"]], "arbdmodel.sim_config.DefaultSimConf": [[4, 3, 1, "", "Properties"], [4, 3, 1, "", "num_heavy_cluster"], [4, 3, 1, "", "num_steps"], [4, 3, 1, "", "output_period"], [4, 3, 1, "", "pressure"], [4, 3, 1, "", "solvent_density"], [4, 5, 1, "id0", "temperature"], [4, 3, 1, "", "viscosity"]], "arbdmodel.sim_config.SimConf": [[4, 3, 1, "", "barostat"], [4, 4, 1, "", "combine"], [4, 3, 1, "", "cutoff"], [4, 3, 1, "", "decomp_period"], [4, 4, 1, "", "get_binary"], [4, 3, 1, "", "gpu"], [4, 3, 1, "", "integrator"], [4, 4, 1, "", "items"], [4, 3, 1, "", "num_heavy_cluster"], [4, 3, 1, "", "num_steps"], [4, 3, 1, "", "output_period"], [4, 3, 1, "", "pairlist_distance"], [4, 3, 1, "", "pressure"], [4, 3, 1, "", "restart_file"], [4, 3, 1, "", "rigid_body_grid_grid_period"], [4, 3, 1, "", "rigid_body_integrator"], [4, 3, 1, "", "seed"], [4, 4, 1, "", "set_binary"], [4, 3, 1, "", "solvent_density"], [4, 5, 1, "id1", "temperature"], [4, 3, 1, "", "thermostat"], [4, 3, 1, "", "timestep"], [4, 3, 1, "", "viscosity"]], "arbdmodel.simplearbd": [[22, 2, 1, "", "SimpleArbdConfig"], [22, 1, 1, "", "main"]], "arbdmodel.simplearbd.SimpleArbdConfig": [[22, 4, 1, "", "create_engine"], [22, 4, 1, "", "create_model"], [22, 4, 1, "", "run_simulation"], [22, 4, 1, "", "setup_diffusible_objects"], [22, 4, 1, "", "setup_static_objects"]], "arbdmodel.ssdna_two_bead": [[17, 2, 1, "", "DnaModel"], [17, 2, 1, "", "DnaStrandBeads"]], "arbdmodel.ssdna_two_bead.DnaStrandBeads": [[17, 3, 1, "", "b"], [17, 3, 1, "", "nt"], [17, 3, 1, "", "p"]], "arbdmodel.structure_from_pdb": [[23, 2, 1, "", "StructureProcessor"]], "arbdmodel.structure_from_pdb.StructureProcessor": [[23, 4, 1, "", "align_structure"], [23, 4, 1, "", "apply_gaussian_smoothing"], [23, 4, 1, "", "calculate_hydrodynamic_properties"], [23, 4, 1, "", "generate_charge_distribution"], [23, 4, 1, "", "generate_electrostatic_map"], [23, 4, 1, "", "generate_vdw_maps"], [23, 4, 1, "", "get_grid_files"], [23, 4, 1, "", "process_structure"]], "arbdmodel.structure_rigidbody": [[24, 2, 1, "", "DiffusiveRigidBodyType"], [24, 2, 1, "", "SimpleArbdEngine"], [24, 2, 1, "", "StaticObject"], [24, 2, 1, "", "StructureRigidBodyModel"]], "arbdmodel.structure_rigidbody.SimpleArbdEngine": [[24, 4, 1, "", "run_simulation"], [24, 4, 1, "", "write_simulation_files"]], "arbdmodel.structure_rigidbody.StaticObject": [[24, 4, 1, "", "process"]], "arbdmodel.structure_rigidbody.StructureRigidBodyModel": [[24, 4, 1, "", "add_diffusible_object"], [24, 4, 1, "", "add_static_object"]], "arbdmodel.version": [[35, 2, 1, "", "Citation"], [35, 1, 1, "", "call_git_describe"], [35, 1, 1, "", "check_git_repository"], [35, 1, 1, "", "get_version"], [35, 1, 1, "", "is_dirty"], [35, 1, 1, "", "read_release_version"], [35, 1, 1, "", "read_version_file"], [35, 1, 1, "", "write_release_version"]], "arbdmodel.version.Citation": [[35, 4, 1, "", "display"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "terms": {"": [0, 1, 3, 4, 15, 32, 37, 38, 39, 40], "0": [1, 4, 6, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 23, 24, 26, 27, 31, 32, 37, 38, 39, 40], "0002": 26, "0006022142": 39, "01": [4, 19, 39], "012": 39, "014393265": 38, "0173": 37, "02": [6, 39], "0215724": 40, "025": 39, "0375960171901290": 37, "03d": 39, "05": 4, "0625": 38, "075531386": 40, "0cp": 14, "1": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 19, 20, 23, 24, 27, 31, 32, 38, 40], "10": [8, 10, 12, 13, 14, 16, 19, 20, 26, 32, 37, 38, 39, 40], "100": [14, 32, 37, 38, 39], "1000": [4, 19, 20, 39], "10000": [19, 20, 21, 26], "100000": [4, 26], "1000000": 27, "100000000": 26, "1005941": 39, "1016": 40, "1021": 38, "102e": 37, "104264": 40, "10491996": 40, "105": 38, "1063": 8, "1098": 37, "10e": 39, "10pn": 38, "10\u00e5": 12, "11": [37, 38], "111": 38, "119": 37, "12": [14, 29, 32], "1234": 26, "125": 38, "127": 38, "12f": 32, "13": [37, 39], "13511100": 40, "1371": 39, "14": [32, 37], "1416": 12, "1433": 12, "143932": 37, "144": 38, "15": [27, 39], "150": 26, "153": 40, "16": 32, "161": [38, 40], "162": 40, "164": 40, "165": 40, "167": 40, "17": 39, "177": 37, "18": [32, 39], "180": [6, 39], "1875": 38, "189": 40, "18923208": 40, "19": [13, 19, 20, 21, 39], "19375322": 40, "1938": 37, "196": 40, "199": 40, "1bpa": 14, "1d": 38, "1e": 39, "1e2": [37, 38], "1e3": [4, 37, 38, 39, 40], "1e4": [3, 38, 39], "1e5": [4, 37, 38, 40], "1e6": 39, "1e7": 39, "1eyg": 40, "1nm": 39, "1\u00e5": 12, "2": [1, 3, 6, 8, 10, 12, 14, 19, 20, 23, 24, 27, 31, 32, 38, 40], "20": [6, 19, 20, 26, 37, 38, 39, 40], "200": 26, "2008": 12, "2022": 40, "209": 40, "20e": [4, 37, 40], "20th": 39, "21": [38, 39, 40], "22": 39, "228": [37, 38, 39, 40], "23": [39, 40], "230": [37, 38, 39, 40], "231": [37, 38, 39, 40], "232": [37, 38, 39, 40], "235": [37, 38, 39, 40], "236": [37, 38, 39, 40], "237": 39, "239": 39, "24": [39, 40], "241": 39, "242": 39, "25": [9, 38, 39, 40], "250": 39, "25\u00e5": 32, "26": 39, "261090254": 40, "27": [39, 40], "273": 37, "28": [38, 39, 40], "29": 39, "295": [4, 6, 8, 26], "298": 39, "2e": 4, "2\u00e5": 32, "3": [1, 4, 6, 10, 12, 13, 14, 19, 20, 21, 23, 26, 31, 32, 38, 40], "30": [6, 39], "300": [24, 27], "3000": 40, "3027": 40, "303": 19, "3096": 40, "3125": 38, "345": 37, "35": [6, 40], "3547": 40, "375": [12, 38], "38": [14, 38], "39": 37, "3900574": [10, 12], "3d": [1, 15, 26, 31, 32, 38, 40], "3x3": 1, "4": [6, 15, 32, 38, 40], "40": [4, 9, 37], "400": 26, "41": 37, "41410648823": 40, "422562": 14, "4375": 38, "44": 38, "4800": 27, "48856": 40, "4968020": 8, "4\u03b5": [], "5": [3, 6, 8, 12, 14, 15, 23, 26, 31, 32, 38, 40], "50": [4, 6, 12, 16, 23, 26, 27, 32, 38, 39], "500": [39, 40], "5000": 37, "50000": 39, "55": [38, 39], "5625": 38, "578277": 40, "5e6": 3, "6": [4, 14, 27, 32, 38, 39, 40], "60": 37, "61": 38, "620": 37, "6241949": 39, "625": 38, "6400": 37, "65": [37, 38, 39], "66": 38, "67": 38, "68": 38, "68320292": 40, "6875": 38, "69": 37, "7": [13, 14, 32, 35, 38], "70": 38, "701": [], "702": 27, "703": [], "705": [], "706": [], "71": 38, "72621629": 40, "729": [38, 39, 40], "730": [38, 39, 40], "731": [38, 39, 40], "733": [38, 39, 40], "734": [38, 39, 40], "735": 40, "75": [38, 39], "757": 40, "77": 38, "779": 40, "8": [10, 12, 13, 14, 32, 37, 38, 39, 40], "80": 39, "8038": 14, "8125": 38, "831447": 39, "875": 38, "88": 38, "9": [6, 9, 27, 32, 37, 38, 40], "90": 39, "9375": 38, "94": 38, "95": [13, 37], "A": [0, 1, 4, 6, 12, 14, 15, 32, 38, 40], "And": 38, "As": [38, 39, 40], "But": 40, "For": [0, 3, 4, 36, 37, 38, 39, 40], "If": [0, 1, 3, 4, 8, 14, 26, 27, 29, 30, 32, 38], "In": [37, 38, 39, 40], "It": [0, 1, 3, 4, 15, 27, 29, 32, 36, 38, 39], "No": 39, "On": [0, 27], "One": [38, 40], "Or": 39, "That": 38, "The": [0, 1, 3, 4, 6, 8, 12, 14, 15, 26, 27, 29, 32, 34, 37, 38, 39, 40], "Their": 40, "These": [0, 15, 38, 39, 40], "To": [0, 36], "_": 39, "__dict__": 38, "__init__": [1, 37, 38, 39, 40], "_add_nonbonded_interact": 39, "_b": 40, "_beads_per_polym": 39, "_convers": 39, "_fine_to_coars": 39, "_g": 38, "_generalized_charg": 40, "_generate_ith_bead_group": 39, "_generate_polymer_bead": 39, "_get_combined_conf": 27, "_join_adjacent_bead_group": 39, "_learn_fn": 39, "_p": 40, "_pmf_grid": 40, "_potenti": 40, "_pre": 39, "_seq": 39, "_type": 39, "_updateparticleord": 40, "_written_bond_fil": 27, "aa": [14, 37, 38, 39], "abbrev": 35, "abil": 36, "abl": 38, "about": [1, 15, 27, 38], "abov": 38, "absolut": [1, 34, 39], "abstract": [6, 8, 15, 27], "abstractibipotenti": 6, "abstractli": 38, "abstractpotenti": [6, 8, 10, 12, 13, 14, 16, 26, 37, 38], "ac": 38, "acceler": 4, "accept": [0, 32], "access": [1, 26, 40], "accord": [4, 14, 40], "account": [1, 12], "accur": 36, "acid": [14, 26, 38, 39], "across": 1, "act": 40, "actual": [0, 26, 29, 40], "ad": [0, 1, 26, 27, 38, 39], "adapt": 40, "add": [1, 3, 4, 22, 24, 26, 39, 40], "add_angl": [1, 39], "add_ball_and_stick": [37, 38], "add_bond": [1, 37, 39], "add_bond_angl": 1, "add_confin": 26, "add_diffusible_object": 24, "add_dihedr": 1, "add_exclus": [1, 39], "add_grid_potenti": [1, 15, 38], "add_group_sit": [3, 38], "add_improp": 1, "add_loc": 15, "add_nonbonded_interact": [3, 37, 38, 39, 40], "add_product_potenti": 1, "add_protein": 26, "add_protein_nb_interact": 26, "add_restraint": [1, 38, 39, 40], "add_smaller_grid": 32, "add_static_object": 24, "add_vector_angl": 1, "addit": [1, 4, 14, 19, 20, 24, 26, 27, 29, 31, 40], "address": 0, "adjac": [14, 39], "adjust": [38, 39], "adna": 38, "advanc": 3, "advantag": 40, "aer": 27, "affect": 1, "affin": 40, "after": [1, 37, 38], "ag": 39, "agg": 39, "agnost": 38, "aip": 8, "al": [38, 39], "alanin": 38, "algorithm": [26, 37, 39], "alia": [15, 40], "align": [19, 20, 23, 32], "align_structur": 23, "aligned_surfac": 19, "all": [0, 1, 14, 15, 19, 20, 23, 24, 26, 27, 32, 37, 38, 39, 40], "all_lin": 39, "all_target": 39, "all_typ": 39, "alloc": 39, "allow": [0, 1, 4, 6, 8, 12, 14, 39, 40], "along": [15, 32, 38, 39, 40], "alpha": 39, "alreadi": [0, 1, 3, 32, 40], "alreadli": 38, "also": [0, 29, 37, 38, 39, 40], "altern": 0, "alwai": [1, 4], "amazon": 0, "ambigu": 0, "amino": [14, 38, 39], "amino_acids_per_bead_group": 39, "among": 1, "amu": [19, 20, 27], "an": [0, 1, 3, 4, 6, 15, 24, 27, 32, 37, 39, 40], "analysi": 39, "analysisfromfunct": 39, "analyz": [0, 40], "angl": [1, 6, 14, 27, 31, 38, 39], "angledof": 6, "angstrom": [12, 14, 26, 27, 32, 37, 38, 39], "ani": [0, 1, 3, 4, 32, 38, 39, 40], "anim": 39, "anoth": [0, 1, 3, 40], "anyth": [32, 39], "apb": [4, 23, 27], "apbs_path": 4, "apbsrunn": 27, "appar": 40, "appear": 15, "append": [1, 39, 40], "appli": [0, 1, 6, 23, 32, 37, 38, 39, 40], "applic": [0, 12, 15], "apply_gaussian_smooth": 23, "applyorient": 1, "appreci": 0, "approach": 12, "appropri": 4, "approv": 0, "approxim": 40, "apro": 38, "ar": [0, 1, 4, 6, 8, 14, 15, 32, 37, 38, 39, 40], "arang": [38, 39], "arbd": [3, 4, 5, 8, 19, 20, 23, 24, 27, 29, 30, 38, 39, 40], "arbd_path": [4, 30], "arbdengin": [3, 24, 27, 37, 38, 39], "arbdmodel": [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 38, 39, 40, 41], "arbitrarili": 38, "arbmodel": 39, "area": 26, "arg": [8, 31, 38], "argon": 37, "argument": [1, 4, 14, 19, 20, 24, 26, 29, 32, 37, 38, 39, 40], "aromat": 14, "around": 40, "arrai": [1, 15, 26, 32, 37, 38, 39, 40], "array_lik": 15, "articl": 37, "asciinema": 0, "aspect": [19, 20], "assert": [38, 39], "assertionerror": 32, "assign": [1, 3, 10, 12, 13, 26, 39], "assign_ibi_degrees_of_freedom": [3, 39], "associ": [1, 4, 15, 38, 39], "assum": [1, 32, 37], "at_monom": 15, "atom": [4, 12, 26, 27, 29, 37, 38, 39, 40], "atom_group": 39, "atom_slic": 26, "atom_typ": 29, "atomindex": 38, "atomist": 40, "atoms_map": 29, "attach": [1, 3, 38], "attach_particl": [1, 40], "attached_particl": [1, 40], "attribut": [1, 4, 15, 27, 32, 38, 40], "author": 35, "auto": 0, "autom": 40, "automat": [0, 4, 6, 39], "autoreload": 38, "avail": 37, "averag": [1, 32], "average_grid": 32, "averaged_grid": 32, "avoid": 39, "awar": 38, "awkard": 39, "ax": [23, 38, 39], "ax1": 39, "ax2": 39, "axi": [31, 38, 39], "b": [15, 17, 31, 38, 40], "b1": 39, "b2": 39, "b3": 39, "back": 1, "background": 0, "barostat": 4, "base": [0, 1, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 32, 34, 35, 36, 37, 38, 39, 40], "base_filenam": 19, "basi": 31, "basic": [1, 8, 38, 39], "bbead": 40, "bd": [4, 27, 37], "bead": [14, 15, 27, 39, 40], "bead_mass": 39, "becaus": [39, 40], "been": [37, 40], "befor": [3, 37, 38], "beforehand": 40, "behav": 40, "behavior": 1, "being": [14, 38], "belong": [1, 3, 14, 26, 40], "below": [0, 37, 39, 40], "bent": 40, "besid": 40, "best": [4, 39], "beta_from_fix": 3, "better": [0, 38, 39], "between": [1, 3, 6, 8, 12, 14, 15, 26, 32, 38, 39, 40], "beyond": 32, "big": 40, "bigger": 32, "bin": [4, 6], "bin_aa": 39, "bin_cg": 39, "binari": [4, 27, 29, 30, 33], "binary_manag": 33, "binary_path": [19, 20, 27], "binarymanag": [4, 30], "bind": 12, "biolog": 40, "biologi": 12, "biomolecular": 36, "bit": [38, 39, 40], "blit": 39, "blur": 8, "bodi": [1, 3, 4, 21, 24, 27, 36], "boltzmann": [3, 6, 36, 39, 40], "bond": [1, 6, 14, 27, 29, 38, 39, 40], "bond_angl": 1, "bond_ub": 39, "bondangledof": 6, "bonddof": 6, "bonded_ibi_potenti": [3, 39], "bool": [1, 3, 4, 8, 27, 32], "boolean": [1, 32], "boolean_grid": 32, "both": [1, 19, 26, 32, 39, 40], "bottom": 0, "bound": [32, 40], "bound_grid": 32, "boundari": [1, 8, 32], "boundary_condit": 1, "boundary_param": 24, "boundarypotenti": 8, "box": [6, 31], "box_siz": 26, "bp": 29, "bp_file": 29, "bpro": 38, "bradlei": 39, "branch": [0, 38], "break": 0, "brief": 3, "brownian": [27, 37], "browser": [0, 37], "buck": 37, "buckinghampotenti": 37, "buff": 31, "buffer": [4, 19, 20, 23, 27, 31], "buffer_factor": [3, 24, 31, 37, 38, 39, 40], "build": [38, 39], "built": [0, 15, 38], "bv1": 31, "bv2": 31, "bv3": 31, "c": [12, 26, 38, 39, 40], "cach": [27, 40], "cacheuptod": 27, "cal_typ": 27, "calc_atom_sasa": 26, "calcul": [1, 6, 8, 12, 14, 19, 20, 23, 26, 27, 29, 31, 32, 39], "calculate_damp": [19, 20], "calculate_dimensions_from_cell_vector": 31, "calculate_hydrodynamic_properti": 23, "calculate_total_mass": 26, "calibr": [19, 20], "call": [3, 30, 37, 38, 39, 40], "call_git_describ": 35, "callabl": [6, 32], "can": [0, 1, 8, 15, 30, 32, 37, 38, 39, 40], "cannot": [15, 40], "cap": [8, 14], "capabl": 1, "cartesian": [37, 38], "case": [37, 38], "cation": 14, "caus": 38, "caution": 37, "caveat": 40, "cd": 0, "cell": [3, 31, 37, 38, 39, 40], "cell_origin": [3, 8, 24, 31, 37, 38, 39, 40], "cell_vector": [3, 8, 24, 31, 37, 38, 39, 40], "center": [1, 32, 38, 39, 40], "center_z": 32, "certain": [1, 14, 15, 37], "cg": [3, 26, 39], "cg_coordin": 39, "cg_model": 39, "cg_u": 39, "chain": [1, 15, 29, 36, 38, 39], "chainid": 39, "chang": [0, 37, 38, 40], "charg": [1, 23, 40], "charge_grid": [1, 40], "charmm": [26, 29], "charmm36": 27, "chat": 0, "check": [0, 1, 3, 36, 38, 39, 40], "check_git_repositori": 35, "child": [1, 3], "children": [1, 3, 37, 38, 39, 40], "choos": 0, "chr": 39, "ci": 0, "citat": 35, "class": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 32, 35, 37, 38, 39, 40], "classif": 14, "classmethod": [26, 29], "clean": 22, "clean_edg": 6, "clear": [37, 38], "clear_al": [1, 3], "clear_represent": [37, 38], "clone": 1, "close": [0, 40], "closest": 26, "cluster": [4, 40], "cm": 4, "cmaffeo2": 40, "cm\u00b3": [19, 20, 27], "coars": [3, 6, 12, 14, 25, 26, 36], "coarse_model": 39, "coarse_sit": 26, "coarsen": 39, "coat": 40, "code": [0, 14, 32, 40], "coeffici": [1, 15, 38, 39, 40], "col": 39, "collect": 1, "collis": 39, "color": 39, "color_schem": 38, "column": 39, "com": [0, 37, 39], "combin": [0, 1, 4, 12, 29, 34, 38, 39], "combined_model": 38, "come": 37, "command": [0, 37, 38, 40], "common": [0, 1], "compar": [1, 6], "compat": 32, "competit": 26, "complet": [0, 1], "complex": [12, 40], "complic": [38, 39], "compon": [2, 7, 11, 18, 25, 26, 28, 33], "composit": 39, "comprehens": 36, "compress": 39, "comput": [12, 32, 34, 38, 39, 40], "compute_volum": 6, "concentr": [26, 27], "concentration_to_debye_length": 26, "concret": 6, "condit": [1, 32], "conf_param": [3, 24, 27, 29, 37, 38, 39, 40], "config": [4, 27, 34], "config_path": 22, "configur": [2, 3, 4, 22, 24, 26, 27, 29, 38, 39, 40], "confin": [8, 26, 32, 40], "connect": [15, 38, 39, 40], "connectableel": 15, "connection_loc": [15, 38], "connection_typ": 15, "consecut": 39, "consid": [0, 1, 6, 26, 32, 39, 40], "consider_par": 1, "consist": [8, 39, 40], "const_force_1pn_z": 38, "constant": [14, 16, 32, 40], "constant_forc": [32, 38], "constantli": 40, "constrained_layout": 39, "construct": [32, 38, 40], "constructor": [14, 26, 37], "contain": [1, 3, 15, 19, 26, 27, 32, 38, 39, 40, 41], "context": [0, 1, 40], "continu": [0, 3, 4, 15], "continuum": 38, "contour": 15, "contour_filt": 15, "contour_po": 15, "contour_posit": 15, "contour_to_monomer_index": 15, "contour_to_orient": 15, "contour_to_posit": 15, "contour_to_tang": 15, "convei": 0, "conveni": [3, 37, 40], "converg": [6, 39], "convers": 29, "convert": [26, 29], "convert_sod_to_mg": 29, "convolut": 32, "convolv": 32, "convolve_kernel_trunc": 32, "cooper": 39, "coord": [15, 16, 33, 38, 39, 40], "coordin": [6, 15, 19, 20, 27, 31, 32, 37, 38, 39, 40], "coordsa": 31, "coordsb": 31, "copi": [1, 3, 15, 24, 40], "copy_ff_from": 27, "core": 5, "core_object": [2, 17, 37], "corner": 38, "correct_geometri": 8, "correctli": 38, "correspond": [3, 15, 32, 40], "could": [0, 37, 38, 39], "count": [15, 26, 27], "counter": 1, "cours": 37, "cover": [32, 38], "cpro": 38, "crash": [37, 38, 40], "creat": [0, 1, 3, 4, 6, 8, 15, 22, 24, 26, 27, 29, 32, 36, 38, 39, 40], "create_arbd_polymer_object": 39, "create_bounding_grid": 32, "create_dual_topologi": 29, "create_dual_topology_model": 29, "create_engin": 22, "create_model": 22, "create_nul": 32, "crossov": 15, "crucial": 37, "cryo": [38, 40], "ct500193u": 38, "cubic": 15, "current": [1, 3, 4, 6, 27, 32], "custom": [1, 26, 36, 38], "custom_properti": 37, "customiz": 26, "cut": 0, "cutoff": [4, 19, 20, 29, 32, 39, 40], "cylindr": 38, "d": [8, 14, 38], "dai": 40, "dalton": [26, 27, 37, 39], "damp": [1, 38, 40], "damping_coeffici": [1, 9, 10, 12, 13, 14, 16, 37, 38, 39, 40], "dat": [27, 39, 40], "data": [1, 32, 34, 38, 39], "dcd": [31, 37, 38, 39, 40], "debug": [9, 10, 12, 13, 14, 16, 17, 37, 38, 39, 40], "debugg": 38, "deby": [12, 14, 26], "debye_length": [10, 12, 13, 14, 16, 26, 39], "decomp_period": [4, 39], "decomposit": [4, 37], "decor": 40, "decreas": 14, "deep": 1, "deepcopi": 1, "def": [32, 37, 38, 39, 40], "default": [1, 3, 4, 6, 8, 12, 14, 26, 31, 32, 39], "default_binari": 27, "defaultsimconf": [2, 4], "defin": [1, 3, 6, 8, 15, 24, 26, 39, 40], "definit": 1, "deg": 39, "degre": [3, 6, 15, 39], "degreeoffreedom": 6, "degrees_of_freedom": [6, 39], "deleg": 1, "delet": 15, "delta": [32, 38], "demonstr": [0, 37], "denresolut": 23, "densiti": [4, 6, 19, 20, 21, 24, 39, 40], "depend": [0, 4, 14, 32, 38], "deploy": 0, "deprec": [3, 37], "depth": 1, "deriv": [1, 6], "describ": [4, 15, 38], "design": [1, 15], "detail": [0, 5, 36, 38, 40], "determin": [1, 26, 32, 39, 40], "develop": [0, 27, 36, 37], "devic": 4, "dict": [14, 24, 27, 39], "dictionari": [23, 26, 27, 29, 38], "dielectr": 14, "differ": [0, 4, 6, 36, 37, 38, 39, 40], "differenti": 0, "difficult": 40, "diffus": [1, 22, 24, 37, 38, 39], "diffusiverigidbodytyp": 24, "dignon": [38, 39], "dihedr": [1, 6, 14, 27, 39], "dihedraldof": 6, "dimens": [3, 24, 27, 31, 32, 37, 38, 39, 40], "dimensions_from_structur": [3, 15], "direct": [32, 39], "directli": [8, 15, 32], "directori": [3, 24, 26, 27, 29, 34, 37, 38, 39, 40], "dirichlet": 1, "discret": [8, 15], "disk": [27, 38], "disord": [12, 38, 40], "disordered_residu": 26, "displai": 35, "distanc": [4, 6, 8, 12, 14, 26, 32, 37, 39], "distinct": 38, "distinguish": 14, "distribut": [3, 6, 23, 39, 40], "dive": 39, "divid": 32, "dna": [15, 36, 38], "dna_coordin": 40, "dna_model": 38, "dnamodel": [17, 38, 40], "dnastrandbead": 17, "do": [0, 20, 32, 38, 39], "doc": 32, "document": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 35, 37, 38, 39, 40], "doe": [1, 3, 4, 37, 38, 40], "doesn": [1, 3, 8, 14, 39], "dof": 6, "doi": [8, 35, 37, 38, 39, 40], "domain": 4, "don": [26, 27, 29, 30, 40], "done": 40, "doubl": [15, 38], "down": 0, "dr": 16, "drawcylind": 15, "drawtub": 15, "drift": 38, "dry_run": [26, 27, 29], "dsitribut": 40, "dt": [38, 40], "dt_5": 40, "dt_70": 40, "dtype": 39, "dual": 29, "due": 40, "dummy_typ": [3, 37, 38, 39, 40], "duplic": 1, "dure": [30, 40], "dx": [1, 8, 19, 20, 27, 32, 38, 40], "dy": [27, 32], "dynam": [1, 4, 26, 27, 37, 40], "dz": [27, 32], "e": [4, 37, 38, 39, 40], "each": [1, 3, 14, 15, 24, 26, 27, 32, 38, 39, 40], "easi": 0, "ec": 0, "ec2": 0, "ecosystem": 0, "edg": [6, 39], "editor": 37, "edu": [0, 32, 40], "effect": [6, 12, 14, 39], "effici": [26, 38], "elec": 40, "electr": 1, "electrostat": [10, 12, 13, 14, 23, 26, 27, 40], "element": [1, 15, 27, 32, 38], "elif": 39, "els": 39, "em": [38, 40], "email": 0, "empti": [1, 38, 39], "enabl": [0, 37], "enclos": 32, "end": [15, 40], "end1": 40, "end2": 40, "end_posit": [15, 38, 40], "energi": [0, 8, 12, 14, 26, 29, 32, 37, 40], "enforc": 15, "engin": [3, 5, 22, 24, 30, 33, 36, 37, 38, 39], "engr": 0, "enhanc": 24, "enjoi": 40, "enough": 38, "ensur": [0, 1, 8, 32], "enter": 38, "entri": [15, 40], "enumer": [38, 39, 40], "environ": [0, 30], "epsilon": 37, "epsilon0": 39, "equal": 1, "equilibr": 40, "equilibrium": 14, "error": 4, "especi": 0, "essenti": 4, "establish": [1, 3], "et": [38, 39], "etc": [0, 1, 27, 29, 38], "even": [0, 32, 39], "everi": [0, 37, 38, 39], "everyth": 39, "evolv": 37, "exact": 15, "exactli": 32, "examin": 37, "exampl": [0, 4, 6, 30, 32, 34, 36, 38, 39, 40, 41], "exb": 29, "exce": 8, "exceed": 8, "except": [1, 3, 4, 38, 39], "exclud": [1, 15, 16, 39], "excludedattribut": 1, "exclus": [1, 6, 39], "execut": [19, 20], "exercis": 40, "exist": [0, 1, 24, 27, 29, 32, 39], "existing_repo": 0, "exp": [32, 37], "expect": [0, 19, 20], "expected_aspect_ratio": [19, 20], "expected_mass": [19, 20], "experi": 38, "experiment": [38, 40], "explain": 0, "explicit": [0, 27], "explicitli": 1, "expon": 32, "expos": 40, "extend": [1, 3, 4, 8, 15, 32, 38], "extens": [37, 38], "extern": [0, 30, 32], "extra": 39, "extra_bd_file_lin": [24, 27], "extrabond": 27, "extract": [3, 32, 39, 40], "f": [30, 38, 39, 40], "facilit": 29, "factor": [0, 1, 15, 31, 40], "factori": 26, "fall": [1, 20, 32], "fals": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 21, 24, 27, 29, 32, 38, 39], "familiar": [37, 40], "faster": 39, "favorit": 37, "featur": [0, 37, 40], "feel": [0, 38, 40], "fep": 29, "fep_fil": 29, "few": [38, 40], "ffmpeg": 4, "field": [19, 20, 32], "fig": 39, "figsiz": 39, "file": [1, 3, 4, 6, 8, 14, 19, 20, 22, 23, 24, 26, 27, 29, 32, 38, 39, 40], "file_nam": 15, "filenam": [3, 6, 8, 26, 35], "filename_prefix": [6, 8, 39], "fill": 32, "fill_nan": 32, "fill_valu": 32, "filled_grid": 32, "filter": 6, "final": [26, 38, 40], "find": [15, 26, 40], "find_boundari": 32, "find_shape_based_sit": 26, "fine": 26, "fine_posit": 26, "fine_sit": 26, "first": [1, 3, 8, 29, 38, 39, 40], "first_fram": 31, "first_iter": 3, "first_monom": 15, "fix": [1, 38, 40], "fjc": 38, "fjc_polymer_model": [11, 38], "fjcbeadsfrompolym": 9, "fjcmodel": [9, 38], "flag": [1, 27], "flexibl": [36, 38], "float": [1, 4, 6, 8, 12, 14, 15, 32], "flux": 40, "fmt": 32, "fn": 38, "fname": 31, "fold": 12, "follow": [0, 27, 32, 37, 39], "forc": [6, 8, 12, 14, 16, 32, 37, 39, 40], "force_const": 32, "fork": [0, 40], "form": [0, 1, 15, 37, 40], "format": [1, 19, 32, 38, 39, 40], "formula": 14, "forward": 1, "found": [1, 4, 40], "foundat": 6, "four": 39, "fragment": 40, "frame": [1, 38, 39, 40], "free": [0, 29], "freedom": [3, 6, 39], "freeli": 38, "frequenc": 4, "frequent": [0, 40], "friction": 40, "from": [0, 1, 3, 4, 6, 12, 14, 15, 22, 26, 29, 30, 31, 32, 34, 37, 38, 39, 40], "from_protein_list": 26, "full": [8, 26], "fulli": 32, "fun": 38, "funcanim": 39, "function": [1, 6, 8, 15, 22, 24, 26, 30, 32, 34, 38, 39, 40], "further": 39, "futur": [0, 40], "fx": 32, "fy": 32, "fz": 32, "g": [4, 12, 14, 19, 20, 27, 37, 38, 39], "ga": 37, "gaussian": [23, 32], "gaussian_kernel": 32, "gaussianwidth": 23, "gencharg": 40, "gener": [1, 4, 6, 14, 19, 20, 23, 24, 26, 27, 32, 36, 37, 38, 39, 40], "generate_bead": [15, 16, 38, 39, 40], "generate_charge_distribut": 23, "generate_coordin": 31, "generate_electrostatic_map": 23, "generate_potential_grid": [19, 20], "generate_protein": 26, "generate_random_protein_posit": 26, "generate_spanning_vector": 31, "generate_vdw_map": 23, "geometr": [], "geometri": 26, "get": [1, 4, 6, 23, 26, 34, 38, 39], "get_angl": 1, "get_attached_particl": [19, 20], "get_binari": 4, "get_binary_path": 30, "get_bond": 1, "get_bond_angl": 1, "get_cent": [1, 15, 38], "get_cg_distribut": 6, "get_coarse_protein": 26, "get_coarse_typ": 26, "get_collapsed_posit": 1, "get_color": 39, "get_connect": 15, "get_connected_loc": 15, "get_connections_and_loc": 15, "get_contour_sorted_connections_and_loc": 15, "get_data": 39, "get_default_conf": 27, "get_dihedr": 1, "get_exclus": 1, "get_extens": 38, "get_grid_fil": 23, "get_improp": 1, "get_loc": 15, "get_location_at": 15, "get_monomer_index": 15, "get_original_recurs": 1, "get_particle_assign": 26, "get_product_potenti": 1, "get_protein_typ": 26, "get_resource_path": [34, 40], "get_restraint": 1, "get_slice_enclosing_smaller_grid": 32, "get_target_distribut": [6, 39], "get_valu": 6, "get_vector_angl": 1, "get_vers": 35, "getparticletypesandcount": 3, "gif": 0, "git": 0, "gitlab": 0, "give": 40, "given": [1, 4, 26, 37, 38, 39, 40], "glfg": 39, "glob": 39, "glycin": 14, "gmsh": 20, "gmsh_path": 4, "go": [0, 37, 39], "goe": 40, "golai": 6, "good": [37, 38], "gpu": [4, 24, 26, 37, 38, 39, 40], "grab": 39, "grace": 4, "gradient": 40, "grain": [3, 6, 12, 14, 25, 26, 36], "grid": [1, 4, 8, 19, 20, 23, 24, 27, 33, 38, 40], "grid1": 32, "grid2": 32, "grid_fil": 15, "grid_filenam": 38, "grid_path": 32, "grid_potenti": 38, "griddataformat": 32, "gridfil": 1, "group": [1, 3, 15, 16, 17, 26, 38, 39, 40], "group_sit": 1, "groupsit": 1, "guess": 6, "guid": 38, "guidanc": 0, "ha": [0, 1, 32, 38, 40], "halfharmon": 8, "handi": 0, "handl": [1, 3, 4, 15, 26, 27], "harmon": [32, 38], "harmonicangl": 8, "harmonicbond": [8, 14, 16, 37], "harmonicbondedpotenti": 8, "harmonicdihedr": 8, "harmonicvectorangl": 8, "have": [0, 1, 3, 32, 37, 39, 40], "hdredf": 32, "heavi": 4, "help": [0, 39, 40], "henc": 37, "here": [0, 1, 37, 39, 40], "heurist": 39, "hierarch": 1, "hierarchi": 1, "high": [0, 40], "hold": 1, "homebrew": 0, "how": [0, 1, 37, 38, 39, 40], "howev": [0, 37], "hp": [38, 39], "hps_model": 38, "hps_polymer_model": [11, 38, 39], "hpsbead": 10, "hpsmodel": [10, 38, 39], "hpsnonbond": 10, "hre": 38, "htm": 32, "html": 32, "http": [0, 8, 32, 37, 38, 39, 40], "hummer": 12, "hydroc": 27, "hydrodynam": [19, 20, 23, 27, 36], "hydrophob": [12, 36, 38, 39], "hydropro": [4, 19, 20, 23, 27, 30], "hydropro_path": 4, "hydroproo": 40, "hydroprorunn": 27, "hyropro": 40, "h\u00fcckel": 14, "i": [0, 1, 3, 4, 6, 8, 12, 14, 15, 27, 29, 32, 36, 38, 39, 40], "i0": 39, "i1": 39, "ibi": [3, 7, 36, 40, 41], "ibiangl": [6, 39], "ibibond": [6, 39], "ibidihedr": [6, 39], "ibinonbond": [6, 39], "ibipotenti": [6, 39], "id": [26, 39], "idea": [0, 37, 38], "ideal": 40, "ident": [1, 32], "identifi": 1, "idp": 12, "idp_arrai": 12, "idx": 1, "ignor": [39, 40], "ij": 38, "illinoi": [0, 40], "illustr": 40, "imag": 0, "immedi": 38, "immobil": 24, "implement": [1, 6, 8, 12, 14, 32, 38, 40], "import": [32, 37, 38, 39, 40], "importlib": 38, "improp": 1, "improv": [0, 3, 4], "inadvert": 0, "includ": [0, 1, 3, 6, 14, 26, 27, 36, 37, 38], "include_ssdna": 15, "include_strand": 15, "inclus": 15, "incomplet": 32, "increas": 32, "independ": 1, "index": [1, 4, 24, 26, 37, 38, 39, 40], "indic": [1, 26, 27, 32], "inertia": [1, 19, 20, 40], "inf": 32, "infil": 32, "infin": [8, 32], "influenc": 38, "inform": [0, 27, 37, 38], "inherit": 1, "init": 39, "init_func": 39, "initi": [1, 4, 6, 15, 24, 30, 37, 38, 39, 40], "initial_region": 24, "initialize_binary_path": 30, "inlin": [0, 38], "input": 32, "insert": 1, "insert_monom": 15, "insid": [20, 32, 37], "inspect": [38, 40], "instabl": 39, "instanc": [1, 3, 22, 24, 26, 39], "instead": [37, 38, 39], "instruct": 0, "int": [1, 3, 4, 6, 15, 27, 32, 39], "integ": 32, "integr": [1, 4, 29, 39], "interact": [1, 4, 5, 6, 12, 14, 26, 29, 36, 38, 39, 40], "interfac": [8, 22, 27, 37], "intern": 0, "interpol": [15, 38], "interpret": 32, "interprett": 37, "intrins": 12, "invers": [3, 6, 36, 39], "invit": 0, "involv": [6, 40], "ion": 29, "ion_concentr": 39, "ipdb": [37, 38], "is_dirti": 35, "is_gigant": 24, "is_same_typ": 1, "isci": 40, "iscienc": 40, "isclon": 1, "isn": 8, "isotrop": [3, 15, 32], "isotropic_kernel": 32, "issu": 0, "item": [4, 38, 39], "iter": [1, 3, 6, 32, 36, 39], "iterate_connections_and_loc": 15, "ith": 39, "its": [15, 26, 37, 40], "itself": 1, "j": [1, 37, 39, 40], "join": [34, 39], "joint": 38, "jone": [12, 14, 26, 40], "journal": [12, 35, 39], "json": 34, "jupyt": 37, "just": [0, 39, 40], "k": [1, 4, 8, 15, 16, 19, 20, 26, 27, 32, 37, 38, 39], "k_off": 40, "kcal": [32, 37, 38, 39, 40], "kcal_mol": [14, 37, 38], "kd": 26, "keep": 0, "keep_children": [1, 3], "kei": [37, 39, 40], "kelvin": [19, 20], "kernel": 32, "keyword": [1, 4, 14, 37, 40], "kh": [12, 38], "kh_model": 38, "kh_polymer_model": [11, 38], "khbead": 12, "khmodel": [12, 38], "khnonbond": 12, "kim": 12, "kj": 14, "knot": 15, "know": 0, "knowledg": 37, "known": 0, "kscale": 8, "kt": [8, 40], "kubernet": 0, "kwarg": [1, 3, 4, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 24, 26, 29, 31, 32, 38, 39, 40], "l": [1, 32, 38], "l1": 39, "l2": 39, "label": [38, 39], "lag": 40, "langevin": [4, 39], "languag": 0, "larg": [27, 37, 40], "large_system": 27, "larger": [32, 39], "last": [6, 8, 37, 38, 39, 40], "last_fram": 31, "last_index": 39, "last_monom": 15, "later": 40, "lattic": 39, "law": [32, 40], "learn": [6, 26, 37, 39], "learning_r": [6, 39], "learning_schedul": 26, "left": 38, "legend": [38, 39], "len": [37, 38, 39, 40], "length": [1, 12, 14, 15, 26, 32, 39], "lennard": [12, 14, 26, 40], "lennardjon": [8, 37], "less": [37, 40], "let": [0, 38, 40], "liber": 0, "like": [0, 1, 4, 26, 32, 37, 38, 39, 40], "likelihood": 0, "limit": [12, 39], "line": [0, 27, 37, 38, 39, 40], "linear": [15, 32, 38], "linearbond": 16, "lines2": 39, "link": 0, "linspac": [37, 39, 40], "lint": 0, "linux": 37, "liquid": 37, "list": [0, 1, 3, 4, 6, 14, 15, 24, 26, 27, 29, 31, 32, 37, 39, 40], "littl": [38, 39, 40], "lj": [14, 37], "ll": [0, 37, 38, 39, 40], "ln": 39, "load": [1, 14, 29, 32, 39, 40], "load_ext": 38, "load_new": 39, "load_structur": 29, "load_target_ibi_distribut": 3, "loadgrid": 32, "loadtxt": [39, 40], "loc": 39, "local": 4, "local_lin": 39, "locat": [15, 37, 38, 40], "location_in_oth": 15, "location_in_self": 15, "log": [4, 29, 39], "log_fil": [27, 29], "logger": [33, 38], "long": [0, 37, 38, 40], "longer": 38, "look": [1, 39], "lookup": [1, 26], "loop": [39, 40], "lot": 40, "lower": 38, "lowerbound": 32, "lp": 8, "lw": 39, "lx": 39, "m": [0, 27, 38, 39], "machineri": 40, "made": [15, 38], "magnesium": 29, "magnitud": 8, "mai": [0, 4, 32, 37, 39, 40], "main": [0, 22, 40], "maintain": [0, 1], "make": [0, 38, 40], "make_dna_model": 40, "makeareadm": 0, "manag": [0, 1, 4, 8, 15, 22, 30, 33, 39], "mani": [0, 37], "manual": [0, 30], "manuscript": 40, "map": [14, 15, 23, 26, 29], "mask": 32, "mass": [1, 19, 20, 26, 27, 37, 39, 40], "match": [3, 6, 14, 32, 38, 40], "materi": [19, 20], "math": 37, "matplotlib": [38, 39], "matrix": [1, 15, 26], "max": [6, 8, 12, 39], "max_dist": 26, "max_forc": [6, 8, 12, 14, 39], "max_iter": 32, "max_potenti": [6, 8, 16, 19, 20], "maxforc": 16, "maximum": [4, 6, 8, 12, 14, 26, 27, 32], "md": [0, 4, 29, 37, 38], "mda": [37, 38, 39], "mdanalysi": [3, 29, 37, 38, 39], "mean": [12, 38, 39], "meant": 40, "measur": [38, 40], "mechan": [1, 38], "member": [0, 39], "memori": 39, "memoryread": 39, "merg": [0, 38], "mesh": [19, 20, 27], "mesh_fil": [19, 20, 21], "mesh_process_surfac": 18, "mesh_process_volum": 18, "mesh_rigidbodi": 18, "meshgrid": 38, "meshprocessor": 20, "meshrigidbodytyp": 21, "mess": 40, "messag": 32, "metadata": [0, 32], "method": [0, 1, 3, 4, 6, 8, 15, 24, 27, 29, 40], "methodnam": 32, "mg": 39, "micron_to_angstrom": [19, 20], "might": [0, 32, 37, 38, 39, 40], "min": [6, 8, 12, 29, 39], "min_fep_fil": 29, "mind": 0, "minim": [3, 26, 29, 39], "minimization_fil": 26, "minimization_step": 27, "minimizermsd": 31, "minimum": [4, 8, 27, 39], "mirror": 32, "miss": 4, "mistak": 38, "ml": 39, "mm": [26, 39], "mobil": 24, "mode": 27, "model": [1, 2, 5, 12, 14, 15, 22, 24, 26, 27, 29, 37], "model_nam": 39, "modern": 22, "modif": 1, "modifi": [1, 8, 12, 14, 29, 38, 39], "modul": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 40], "modulenotfounderror": [], "mol": [32, 37, 38, 39, 40], "molecul": [27, 40], "molecular": [1, 4, 6, 12, 23, 26, 27, 29, 36], "moment": [1, 40], "moment_of_inertia": [1, 40], "monom": [15, 39], "monomer_index_to_contour": 15, "monomer_length": [15, 38, 39, 40], "monomer_po": 15, "monomers_per_bead_group": [9, 15, 38, 39, 40], "more": [0, 4, 38, 39], "mortem": 38, "most": [0, 37, 38, 39, 40], "move": [1, 39, 40], "mp4": 39, "mpipi_polym": 11, "mpipibead": 13, "mpipimodel": 13, "mpipinonbond": 13, "mpl": 39, "mrdna": [27, 38], "msh": [19, 20], "much": 40, "multipl": [1, 26, 27, 32, 36, 39, 40], "multiplebond": 38, "multiprotein": 12, "must": [1, 4, 8, 14, 32, 37, 39], "my_valu": 37, "myibi": 39, "myibibead": 39, "myibimodel": 39, "n": [4, 15, 37, 38, 39], "n1": 31, "n2": 31, "n3": 31, "n_a": 14, "n_atom": 26, "n_cg": 26, "n_dimens": 15, "n_point": 15, "n_polym": 39, "namd": [4, 27], "namd_path": 4, "namdengin": 27, "name": [1, 4, 6, 15, 21, 24, 26, 27, 29, 32, 37, 39, 40], "nan": 32, "nativ": 40, "natsort": 39, "natur": 40, "nb": 39, "nbbb": 40, "nbextens": 37, "nbfix": 27, "nbscheme": 3, "ndarrai": [1, 6, 15, 32], "ndim": 32, "nearbi": 6, "nearest": 32, "nearest_monom": 15, "necessari": [15, 27, 32], "necessarili": 40, "need": [0, 32, 36, 37, 38, 39, 40], "neglect": 39, "neighbor": 32, "neighborhood": 32, "neighborhood_averag": 32, "neumann": 1, "nevertheless": 37, "new": [0, 1, 4, 19, 26, 38, 40], "new_typ": 15, "next": [0, 3], "nglview": [37, 38], "ngrid": 38, "nice": 40, "nm": 14, "no_ssb": 40, "nobl": 37, "non": [1, 29, 32, 38, 40], "nonbond": [1, 12, 14, 26, 37, 39], "nonbonded_ibi_potenti": [3, 39], "nonbonded_interact": 37, "nonbonded_learning_r": 39, "nonbonded_learning_rate0": 39, "nonbonded_learning_rate1": 39, "nonbonded_potenti": 3, "none": [1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 27, 29, 31, 32, 35, 38, 39], "normal": [26, 32], "normalizeaxi": 31, "note": [0, 3, 4, 6, 8, 14, 32, 37, 38, 39, 40], "notebook": [37, 38, 39], "noth": 32, "notic": [38, 40], "notimplementederror": [3, 14, 32, 39], "novic": 0, "now": [38, 39, 40], "np": [32, 37, 38, 39, 40], "nsig": 27, "nt": [15, 17, 38, 40], "nt_sigma": 26, "nucleic": 26, "nucleotid": [15, 38], "nuget": 0, "null": 32, "nullpotenti": 8, "num_bead_group": 15, "num_cg_sit": 26, "num_copi": 31, "num_heavy_clust": [4, 23], "num_monom": [15, 38, 39, 40], "num_particl": [27, 37], "num_proc": [27, 29], "num_step": [4, 26, 27, 37, 38, 39, 40], "num_voxel": 38, "number": [3, 4, 6, 15, 24, 26, 27, 29, 32, 35, 38, 39, 40], "numbond": 37, "numer": 39, "numpi": [1, 6, 32, 37, 38, 39, 40], "nupmodel": 39, "nv": [37, 38], "nx": 39, "nx3": 37, "ny": 39, "o": 38, "obj": [1, 3], "object": [1, 3, 4, 6, 8, 14, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 32, 35, 37, 38, 39], "observ": 38, "obtain": [39, 40], "obvious": 38, "odd": [32, 40], "off": 27, "offer": 38, "offset": 1, "often": 39, "oi": 32, "on_fwd_strand": 15, "onc": 40, "onck": 14, "onck_model": 38, "onck_polymer_model": [11, 38], "onckbead": 14, "onckmodel": [14, 38], "oncknonbond": 14, "one": [1, 4, 15, 32, 37, 38, 39, 40], "one_bead_per_r": 39, "ones": 38, "onli": [0, 4, 32, 37, 39, 40], "open": 0, "opendx": 32, "oper": [0, 1, 37, 40], "optim": [3, 26, 38], "option": [1, 3, 4, 6, 8, 12, 14, 15, 19, 20, 24, 26, 27, 29, 32, 36, 37, 39, 40], "order": 38, "org": [8, 37, 38, 39, 40], "organ": 1, "orient": [1, 15, 24, 26, 37, 38, 39, 40], "origami": 15, "origin": [0, 1, 29, 31, 32, 37, 38, 39, 40], "orthonorm": 32, "orthorhomb": 3, "other": [1, 4, 14, 15, 37, 38, 39], "other_model": 3, "otherwis": [1, 4, 32], "our": [38, 39, 40], "out": [0, 36, 40], "out_of_bounds_forc": 6, "outfil": 32, "outnam": 39, "output": [0, 3, 4, 19, 20, 24, 26, 27, 29, 32, 37, 38, 39, 40], "output_directori": [27, 29], "output_dx": [19, 20], "output_fil": [19, 20, 27], "output_mesh": [19, 20], "output_nam": [3, 24, 27, 29, 37, 38, 39, 40], "output_path": 27, "output_period": [4, 26, 37, 38, 39, 40], "outsid": [6, 32, 37, 39], "over": [4, 12, 32, 39], "overlap": 32, "overrid": [4, 37], "overridden": 4, "own": [0, 39, 40], "owner": 0, "ox": 32, "oz": 32, "p": [14, 17, 38, 39, 40], "p1": 29, "p2": 29, "p_p": 39, "p_type": 39, "packag": [2, 7, 11, 18, 25, 27, 28, 30, 32, 33, 36, 38, 39, 41], "pad": 32, "padding_factor": [3, 15], "page": [32, 35], "pair": [4, 6, 29, 37, 40], "pairdistributiondof": 6, "pairlist": [4, 37], "pairlist_dist": [4, 39], "pairwis": 1, "param": 8, "paramet": [1, 3, 4, 6, 8, 12, 14, 15, 19, 20, 22, 23, 24, 26, 27, 29, 31, 32, 34, 37, 39, 40], "parameter_fil": [26, 29], "parameters_fold": 23, "parametr": 15, "parent": [1, 3, 14, 15, 37, 38, 39, 40], "parm": 29, "parmed_bd": 28, "parmed_structur": 29, "parmedarbd": 29, "pars": 22, "parse_output": 27, "parser": 37, "part": [15, 32, 39], "partial": 27, "particl": [1, 3, 6, 20, 26, 27, 38, 39], "particle_group": 39, "particle_i": 1, "particle_j": 1, "particles_a": 6, "particles_b": 6, "particletyp": [1, 17, 26, 29, 37, 38, 39], "particular": [0, 39], "particularli": 12, "pass": [0, 4, 14, 27, 38, 39], "path": [1, 4, 6, 19, 20, 24, 26, 27, 29, 30, 32, 33, 34, 38, 39, 40], "pathlib": [34, 39], "pbead": 40, "pcbi": 39, "pdb": [19, 20, 24, 26, 27, 29, 31, 37, 38, 39, 40], "pdb_list": 26, "pdb_path": 26, "pdbmodel": [3, 37, 38, 39, 40], "peak": 40, "peopl": 0, "peptid": [14, 38, 39], "peptide_bond": 14, "per": [3, 4, 26, 32, 37, 39], "per_monom": 15, "perform": [1, 3, 32, 39, 40], "perhap": 0, "period": [1, 3, 4, 6, 8, 32, 37], "physic": [1, 32, 37], "pii": 37, "pinyili": 27, "pinyili2": [], "place": [0, 1], "placement": 26, "plain": 40, "plan": 39, "pleas": [37, 40], "plot": [38, 39], "plt": [38, 39], "pm": [37, 38], "pmf": [1, 40], "pmf_grid": [1, 40], "pn": 38, "point": [0, 1, 6, 8, 15, 32, 37, 38, 39], "pointparticl": [1, 17, 37, 39], "pois": [19, 20], "poisson": 40, "poli": [38, 40], "polici": 4, "polym": [5, 9, 10, 12, 13, 14, 16, 17, 36, 40], "polymer": 38, "polymer_index": 39, "polymer_mass": 39, "polymerbead": [9, 10, 12, 13, 14, 15, 17, 39], "polymergroup": [15, 38], "polymermodel": [9, 10, 12, 13, 14, 15, 17, 38, 39, 40], "polymersect": [15, 38, 39, 40], "poorli": 37, "portion": 32, "posit": [1, 4, 8, 15, 24, 26, 37, 38, 39, 40], "position_filt": 15, "position_spline_param": [15, 38], "posixpath": [27, 34], "possibl": [0, 1, 38], "possibli": 15, "post": 38, "postpon": 39, "pot": [37, 39, 40], "potenti": [1, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16, 19, 20, 23, 24, 26, 27, 32, 36, 37, 38, 39, 40], "potential_directori": 27, "potential_grid": [1, 40], "potential_list": 1, "potresolut": 23, "power": 32, "pre": [26, 39, 40], "predetermin": 40, "prefer": 4, "prefix": [6, 16, 37, 39], "prefixes_and_limit": 39, "prepar": 40, "prepare_for_simul": 3, "prescrib": [37, 38], "preserv": [1, 29], "pressur": 4, "prevent": [1, 37, 40], "previou": 3, "previous": 40, "primarili": 38, "princip": 23, "print": [30, 32, 37, 38, 39], "prior": 40, "pro": [0, 38], "procedur": 39, "process": [6, 19, 20, 22, 23, 24, 39], "process_mesh_fil": 20, "process_structur": 23, "process_surface_mesh": 19, "processor": [29, 30, 33], "produc": 40, "product": [1, 37, 39], "product_potenti": 1, "program": 0, "prolin": 14, "properti": [1, 4, 6, 8, 15, 19, 20, 23, 26, 27, 36], "proport": 40, "prot": 38, "prot_typ": 26, "protect": 0, "protein": [12, 14, 25, 26, 36, 39], "protein_count": 26, "protein_factori": 26, "protein_group": 26, "protein_posit": 26, "provid": [0, 1, 2, 3, 4, 5, 6, 8, 15, 22, 24, 26, 27, 29, 30, 32, 34, 36, 37, 38, 39, 40], "psf": [24, 26, 27, 29, 31, 37, 38, 39, 40], "psize_script": 27, "pub": 38, "pull": [0, 37], "push": 0, "put": [0, 39], "py": [37, 38, 39, 40], "pyplot": [38, 39], "python": [1, 5, 37, 38, 39], "q": 31, "q1": 31, "q2": 31, "qualiti": 0, "quartet": 1, "quaternion": [1, 15], "quaternion_exp": 31, "quaternion_from_matrix": 31, "quaternion_invers": 31, "quaternion_product": 31, "quaternion_slerp": 31, "quaternion_spline_param": [15, 38], "quaternion_to_matrix": 31, "quickli": 0, "r": [1, 6, 8, 10, 12, 13, 14, 16, 26, 31, 32, 37, 38, 39], "r0": [8, 16, 37], "radial": 6, "radii": 26, "radiu": [15, 26, 27, 32, 37, 38, 39], "radiusdof": 6, "rais": [1, 3, 4, 14, 32, 39], "random": [4, 14, 24, 26, 37], "random_se": 24, "rang": [6, 8, 12, 14, 36, 37, 39, 40], "range_": [6, 8, 10, 12, 13, 14, 26, 37, 39], "rate": [6, 39], "rather": [0, 39], "ratio": [19, 20, 39], "raw": 39, "rb": [1, 40], "rb_type": 24, "rb_type_dir": 27, "re": [0, 39], "reach": 40, "read": [0, 6, 22, 29], "read_arbd_coordin": [31, 38], "read_average_arbd_coordin": 31, "read_cg_potenti": 6, "read_fil": 26, "read_release_vers": 35, "read_version_fil": 35, "readarbdcoord": [31, 39], "readavgarbdcoord": 31, "readi": 0, "realli": 38, "reason": [0, 37, 40], "recalcul": 6, "recent": [37, 38, 39, 40], "reciev": 1, "recommend": [0, 37, 40], "recomput": 40, "record": 39, "reduc": [0, 26, 39], "refer": [0, 12, 14], "refin": 6, "region": [6, 24, 32], "regist": 1, "regular": 38, "reimport": 38, "rel": [1, 34, 39], "relationship": [1, 3], "relative_path": 34, "relax": 38, "releas": [0, 40], "remot": 0, "remov": [0, 1, 15], "remove_duplicate_bonded_term": [1, 3, 37, 38, 39, 40], "remove_monom": 15, "repeat": [6, 39, 40], "replac": 39, "replace_false_with_dist": 32, "replic": 40, "replica": [3, 24, 27, 39], "replica_index": 31, "replisom": 40, "replisome_grid": 40, "repositori": 0, "repres": [1, 6, 14, 15, 24, 26, 32, 37, 38, 39, 40], "reproduc": [4, 26], "request": 0, "requir": [0, 3, 27, 32, 37, 40], "research": [27, 37, 38, 39, 40], "reshap": 40, "resid": 39, "residu": [14, 39], "resolut": [6, 8, 10, 12, 13, 14, 16, 23, 26, 32, 37, 38, 39], "resolv": 27, "resourc": [27, 34], "rest_length": [9, 10, 12, 13, 14, 15, 38, 39], "restart": [4, 26, 38, 39], "restart_fil": [4, 26], "restrain": [38, 40], "restraint": [1, 27, 29, 38, 39, 40], "restraint1": 40, "restraint2": 40, "result": [3, 6, 15, 29, 32, 39, 40], "return": [1, 4, 8, 15, 22, 24, 26, 27, 29, 31, 32, 34, 37, 38, 39, 40], "reus": [38, 39], "revers": 15, "rework": 39, "rgyr": 38, "rho_aa": 39, "rho_cg": 39, "rho_ylimit": 39, "right": 39, "rigid": [1, 3, 4, 21, 24, 27, 36], "rigid_bodi": 40, "rigid_body_grid_grid_period": [4, 40], "rigid_body_integr": 4, "rigid_body_potenti": [1, 40], "rigid_body_typ": 40, "rigidbodi": [1, 5, 20, 24, 40], "rigidbodytyp": [1, 21, 23, 24, 40], "rmin": 26, "rmsd_threshold": 31, "room": 0, "rotat": [1, 15, 40], "rotation_damp": 27, "rotation_matrix": 15, "rotationaboutaxi": 31, "rotational_damping_coeffici": [1, 40], "rotational_diffus": 1, "routin": [3, 39], "row": [15, 39], "royalsocietypublish": 37, "rrang": 16, "rspa": 37, "rule": 4, "run": [0, 3, 4, 6, 22, 24, 26, 27, 29, 38, 40], "run_1": 26, "run_calcul": 27, "run_from_minim": 26, "run_ibi": [3, 39], "run_minim": [3, 26], "run_simul": [22, 24], "runcal": 38, "runtest": 32, "runtim": 37, "rx": [27, 32], "ry": [27, 32], "rz": [27, 32], "sai": 0, "sali_polymer_model": 11, "salibeadsfrompolym": 16, "salimodel": 16, "salinonbond": 16, "salt": [26, 27], "salt_conc": 27, "salt_concentr": 26, "same": [1, 32, 38, 39], "sampl": [32, 39], "sasa": 26, "sast": 0, "save": [6, 19, 20, 39], "save_aligned_mesh": [19, 20], "save_aligned_mesh_both_format": 19, "save_as_pdb": [19, 20], "savitzki": 6, "saw": 39, "sax": 38, "scalar": 32, "scale": [1, 12, 15, 31, 38, 39, 40], "scaling_factor": 6, "schedul": 26, "scienc": 37, "sciencedirect": 37, "scipi": 15, "scitat": 8, "screen": [12, 14], "screenshot": 0, "script": [0, 39], "sdsc": 32, "search": 4, "second": [1, 29], "secondari": 40, "section": [0, 2, 5, 7, 11, 15, 18, 25, 28, 33, 36, 39, 41], "secur": 0, "see": [0, 36, 37, 38, 40], "seed": [4, 24, 26], "seem": 32, "seg": 38, "segid": [38, 39], "segment": [15, 32, 38], "segment_index": 38, "segnam": [15, 38, 39], "select": 37, "selectign": 38, "selenium": 0, "self": [0, 1, 4, 15, 27, 29, 37, 38, 39, 40], "separ": 32, "seq": [15, 38, 39], "sequenc": [9, 10, 12, 13, 14, 15, 16, 17, 38, 39, 40], "sequence_to_chain": 39, "serv": 1, "server": 0, "server10": [], "servic": 0, "set": [0, 1, 4, 6, 8, 12, 15, 22, 26, 27, 30, 32, 37, 38, 40], "set_binari": 4, "set_binary_path": 30, "set_connect": 15, "set_damping_coeffici": [9, 10, 12, 13, 14, 39], "set_data": 39, "set_orientation_splin": 15, "set_splin": [15, 39, 40], "set_titl": 39, "set_xlabel": 39, "set_xlim": 39, "set_ylabel": 39, "set_ylim": 39, "setup": 0, "setup_and_run": 26, "setup_diffusible_object": 22, "setup_static_object": 22, "shape": [5, 15, 21, 26, 27, 32, 36, 38, 40], "shape_cg": 25, "shapecgfactori": 26, "shapecgmodel": 26, "shapecgnonbond": 26, "share": [1, 39], "sharex": 39, "shcg": 26, "shell": 27, "shield": 0, "shift": 32, "short": 0, "should": [0, 1, 6, 8, 15, 30, 32, 39, 40], "show": [0, 38, 39], "show_mdanalysi": [37, 38], "side": 32, "sig": 32, "sig_max": 27, "sig_min": 27, "sigma": [26, 32], "sign": 38, "signal": 40, "sim": [37, 38], "sim_config": 2, "simconf": [2, 4, 19, 20, 21, 23, 24, 27], "simengin": 27, "similar": 15, "simpl": [27, 37, 38, 39, 40], "simplearbd": [4, 18], "simplearbdconfig": 22, "simplearbdengin": [22, 24], "simplest": 38, "simpli": [1, 37], "simul": [1, 2, 3, 4, 5, 6, 8, 12, 22, 24, 25, 26, 27, 29, 30, 31, 33, 36, 38, 40], "sinc": [39, 40], "singl": [1, 14, 32, 39], "singleton": 30, "site": [1, 6, 15, 26, 38, 40], "size": [6, 27, 32, 38], "skimag": 32, "skin_depth": 39, "skip": [38, 40], "slab": 32, "slab_potential_z": [32, 38], "slice": [26, 32], "slow": [0, 40], "slower": 40, "small": [0, 37], "smaller": 32, "smaller_grid": 32, "smallest": 0, "smooth": [6, 15, 23], "so": [0, 1, 20, 37, 38, 39, 40], "sodium": 29, "softwar": 32, "solvent": [4, 19, 20, 26], "solvent_dens": [4, 19, 20], "solver": 40, "some": [0, 37], "someon": 0, "someth": [0, 38], "sophist": 0, "sort": [], "sourc": [0, 1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 38, 40], "space": [1, 8, 15, 19, 20, 31, 32, 38, 40], "spatial": [12, 14, 15, 32], "special": [14, 36], "specif": [0, 1, 4, 14, 15, 27, 32], "specifi": [1, 4, 14, 15, 26, 32, 37, 38, 40], "specific_volum": 27, "spefici": 38, "sphere": [26, 32], "spheric": [26, 32, 38], "spherical_confin": [32, 38], "spline": [15, 38, 40], "split": 39, "splprep": 15, "spring": [14, 32, 38], "spring_const": [9, 10, 12, 13, 14, 38, 39], "sqrt": [37, 38, 39], "squar": 39, "squeez": 39, "ssb": 40, "ssb_coord": 40, "ssb_type": 40, "ssdna": [38, 40], "ssdna_two_bead": [11, 38, 40], "stabil": 14, "standard": [], "start": [3, 6, 15, 26, 38, 39, 40], "start_orient": [15, 38], "start_posit": [15, 38, 40], "state": [0, 26], "static": [0, 22, 24, 29], "staticobject": 24, "stderr": 32, "stem": 39, "step": [0, 3, 4, 26, 40], "steric": 40, "stop": 0, "store": [3, 4, 15, 27, 37, 38, 39, 40], "str": [1, 3, 4, 6, 8, 15, 27, 32, 34], "strand": [15, 38], "strength": 32, "stretch": 38, "strictli": 38, "stride": [31, 38], "string": [26, 32, 37], "strongli": 37, "structur": [0, 1, 3, 8, 15, 23, 24, 26, 27, 29, 36, 38, 40], "structure_from_pdb": 18, "structure_nam": 27, "structure_path": [23, 24], "structure_rigidbodi": 18, "structureprocessor": 23, "structurerigidbodymodel": [22, 24], "structurerigidbodytyp": 24, "studi": 40, "style": 39, "subclass": [8, 15, 21, 24], "subgrid": 32, "subject": [37, 40], "subplot": 39, "subsect": 0, "sum": [32, 39], "support": [1, 14, 29, 40], "suppress": 38, "surfac": [19, 26], "surface_potenti": 19, "surfacemeshprocessor": 19, "swell": 38, "switch": 38, "sy": 37, "syntax": [37, 40], "system": [0, 1, 3, 4, 6, 14, 15, 26, 27, 29, 36, 39, 40], "system_s": 37, "system_typ": [26, 29], "t": [1, 3, 8, 14, 26, 27, 29, 30, 31, 38, 39, 40], "t0": 38, "t1": 39, "t2": 39, "tabl": 26, "tablefil": 8, "tabul": 38, "tabulatednonbond": [8, 40], "tabulatedpotenti": 1, "tail": 40, "take": [1, 37, 38, 39, 40], "tangent": [], "target": [3, 6, 39, 40], "target_trajectori": 3, "target_univers": 3, "tbgl": 0, "tck": 15, "tcl": [15, 40], "techniqu": 38, "tediou": 38, "tell": 0, "temperatur": [4, 6, 8, 19, 20, 26, 27, 39], "templat": [0, 1], "tensor": 1, "terin": 40, "term": [1, 39], "termin": [39, 40], "test_average_grid": 32, "testaveragegrid": 32, "testcas": 32, "text": 40, "than": [0, 32, 38, 39, 40], "thank": 0, "thei": [0, 1, 27, 30, 39, 40], "them": [0, 1, 38], "themselv": 15, "thermostat": [4, 38], "thi": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 18, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 39, 40, 41], "thick": 27, "thing": [0, 38], "think": 0, "third": 40, "those": [0, 37, 40], "three": [1, 32, 38, 39], "threshold": 24, "through": [1, 38, 39, 40], "tile": 39, "time": [0, 4, 37, 38, 39, 40], "timescal": 38, "timeseri": 39, "timestep": [4, 26, 37, 39, 40], "titl": 35, "tkconsol": 40, "tmp": 39, "todo": 1, "togeth": [1, 39, 40], "tol": [6, 39], "too": [0, 37], "tool": [36, 40], "top": 0, "topologi": [27, 29], "torqu": 40, "total": [4, 26], "trace": [38, 40], "traceback": [37, 38, 39, 40], "track": 27, "tracker": 0, "tractabl": 40, "traj": 40, "trajectori": [3, 6, 37, 38, 40], "transform": [1, 3, 15], "transit": 32, "translat": [1, 15, 38, 40], "translation_damp": 27, "translation_vector": 15, "trash": 39, "travers": 1, "tree": [1, 26], "triangl": 19, "trick": 39, "triplet": 1, "trombon": 40, "trombond": 40, "true": [1, 3, 4, 6, 15, 24, 26, 27, 29, 31, 32, 38, 39], "truncat": [32, 40], "try": [38, 39], "ttygif": 0, "tupl": [1, 6, 8, 12, 14, 15, 26, 29, 31, 32, 40], "turn": 39, "tutori": [0, 36, 37, 38], "two": [1, 4, 12, 14, 15, 29, 38, 39, 40], "two_bead_model": 40, "type": [1, 4, 6, 8, 10, 12, 13, 14, 15, 22, 24, 26, 27, 29, 31, 32, 34, 38, 39, 40], "type_": [1, 8, 15, 37, 38, 39], "type_count": 27, "typea": [3, 26, 37, 38, 39, 40], "typeb": [3, 26, 37, 38, 39, 40], "typeerror": [37, 38, 39, 40], "types_dict": 14, "typic": 15, "u": [15, 32, 37, 38, 39, 40], "u1": 29, "u2": 29, "u_pkg": 38, "u_ylimit": 39, "ubiquitin": 12, "uf": 0, "unabl": [39, 40], "under": 37, "underli": 38, "understand": 37, "unfamiliar": 0, "unfortun": 40, "unifi": 1, "uniform": 26, "uniqu": [1, 26, 40], "unit": [1, 3, 14, 32, 37, 38, 39, 40], "unit_quat_convers": 31, "unit_scal": [19, 20, 21], "univers": [3, 6, 29, 37, 38, 39], "unnecessari": 1, "unreason": 37, "unrecogn": 4, "until": [6, 38], "unus": 32, "up": [0, 1, 15, 22, 26, 37, 40], "updat": [1, 3, 4, 6, 15, 38, 39, 40], "update_dimens": 27, "update_splin": [15, 16, 38, 39], "upload": 0, "upon": 40, "upper": [12, 39], "upperbound": 32, "urei": 39, "us": [0, 1, 3, 4, 6, 8, 12, 14, 15, 19, 20, 22, 23, 24, 26, 27, 29, 32, 36, 37, 38, 39, 40], "usag": 39, "use_boundari": 24, "use_surfac": 21, "usecol": 40, "usenonbondedschem": 3, "user": [27, 30, 37], "usr": 4, "usrgu068": 32, "usual": [6, 38, 39, 40], "util": [0, 5], "v": [6, 38], "valid": [1, 4], "valu": [1, 4, 6, 8, 15, 27, 32, 37, 38, 39, 40], "valueerror": [1, 3, 4, 14, 32], "variabl": [0, 30, 32], "varieti": 36, "variou": [4, 27, 36, 38], "vdw": [23, 40], "vdw0": 40, "vdw1": 40, "vdw2": 40, "ve": [38, 39, 40], "vector": [1, 3, 24, 31, 32], "vector_angl": 1, "veri": 40, "verifi": 38, "versatil": 38, "version": [0, 14, 33], "video": 0, "viral": 40, "viscos": [4, 19, 20], "visitor": 0, "visual": [32, 38, 40], "vmd": [4, 23, 37, 38, 40], "vmd_cylinder_tcl": 15, "vmd_path": 4, "vmd_tube_tcl": 15, "volum": [16, 26, 27, 35], "volumetr": 32, "volunt": 0, "voxel": [32, 38, 40], "vulner": 0, "w": [37, 38], "wa": [4, 40], "wai": [0, 32, 39], "wait": 40, "walk": 39, "walkthrough": 36, "want": [0, 37, 38, 39, 40], "warn": [4, 32, 38], "we": [1, 37, 38, 39, 40], "weight": [1, 3, 26, 27, 31], "welcom": 36, "well": [1, 6, 38], "well_depth": 8, "were": [37, 38, 39, 40], "what": [0, 40], "whatev": 39, "when": [0, 1, 4, 38, 39, 40], "where": [0, 1, 12, 14, 15, 32, 40], "whether": [0, 1, 3, 4, 8, 32], "which": [0, 1, 12, 14, 26, 32, 37, 38, 39, 40], "while": [0, 38], "who": 0, "whoever": 0, "whose": 4, "why": [37, 38, 40], "wide": 36, "widgetsnbextens": 37, "window": 6, "wish": 30, "within": [0, 1, 15, 26, 32, 38, 40], "without": [15, 32], "wlcskangl": 8, "wlcskbond": 8, "wlcskpotenti": 8, "word": 37, "work": [1, 24, 27, 29, 37, 38, 39, 40, 41], "work_dir": [19, 20, 23, 24, 27], "workaround": 40, "would": [0, 38, 39], "wrap_vector": 6, "write": [3, 6, 8, 20, 24, 27, 29, 32, 37, 38, 39], "write_cg_potenti": 6, "write_conf": 27, "write_config": 27, "write_confine_dx": 32, "write_fil": [6, 8], "write_no_enter_potenti": 20, "write_no_enter_potential_dx": 19, "write_pdb": 3, "write_pqr": [3, 27], "write_psf": 3, "write_release_vers": 35, "write_restraint_fil": 29, "write_simulation_fil": [24, 27], "writedx": [32, 38], "written": [8, 27, 32, 39, 40], "www": 37, "x": [1, 3, 14, 27, 31, 32, 38, 39], "x1": [31, 39], "x2": [31, 39], "x3": 31, "x_dim": [31, 32], "x_re": 32, "xlabel": [38, 39], "xlimit": 39, "xyz_dim": 27, "y": [12, 27, 31, 32, 38, 39], "y1": [31, 39], "y2": [31, 39], "y3": 31, "y_dim": [31, 32], "y_re": 32, "yarn": 0, "year": 35, "yet": 40, "ylabel": 38, "you": [0, 37, 38, 40], "your": 37, "yourself": 37, "z": [27, 31, 32, 38, 39], "z1": 31, "z2": 31, "z3": 31, "z_dim": [31, 32], "z_re": 32, "zero": [6, 8, 32, 37], "zip": [38, 39], "\u00e5": [14, 19, 20, 27], "\u00e5ngstrom": 37, "\u00e5\u00b2": 32, "\u03b5": [], "\u03c3": []}, "titles": ["arbdmodel-docs", "core_objects", "Core", "model", "sim_config", "API Reference", "ibi", "Interaction Potentials", "interactions", "fjc_polymer_model", "hps_polymer_model", "Polymer Modeling", "kh_polymer_model", "mpipi_polymer", "onck_polymer_model", "polymer", "sali_polymer_model", "ssdna_two_bead", "RigidBody Models", "mesh_process_surface", "mesh_process_volume", "mesh_rigidbody", "simplearbd", "structure_from_pdb", "structure_rigidbody", "Shape-Based Models", "shape_cg", "engine", "Simulation Engines", "parmed_bd", "binary_manager", "coords", "grid", "Utilities", "logger", "version", "ARBD Model Documentation", "Basic usage of the <code class=\"docutils literal notranslate\"><span class=\"pre\">arbdmodel</span></code> package", "Some polymer models may have multiple beads per monomer", "Implementing customized coarse-grained polymer models", "Modeling rigid-body objects", "Tutorials"], "titleterms": {"1": [37, 39, 41], "2": [37, 39, 41], "3": [37, 39, 41], "4": [37, 39, 41], "5": [37, 39], "6": 37, "7": 37, "acknowledg": 0, "ad": 40, "add": [0, 37, 38], "api": [5, 36], "arbd": [36, 37], "arbdmodel": [0, 37], "attach": 40, "author": 0, "avail": 41, "badg": 0, "base": 25, "basic": [37, 41], "bead": 38, "between": 37, "binary_manag": 30, "bind": 40, "bodi": [40, 41], "boltzmann": 41, "bond": 37, "build": 37, "categori": 5, "coars": 39, "coarser": 39, "collabor": 0, "configur": 37, "constant": 38, "construct": 39, "contribut": 0, "coord": 31, "core": 2, "core_object": 1, "creat": 37, "custom": [37, 39], "deploi": 0, "describ": 37, "descript": 0, "determin": 38, "dna": 40, "doc": 0, "document": 36, "edit": 0, "elast": 38, "end": 38, "engin": [27, 28], "featur": 36, "file": [0, 37], "fine": 39, "fjc_polymer_model": 9, "forc": 38, "get": [0, 36], "good": 0, "grain": 39, "grid": 32, "have": 38, "hps_polymer_model": 10, "i": 37, "ibi": [6, 39], "implement": 39, "instal": 0, "integr": 0, "interact": [7, 8, 37], "invers": 41, "iter": 41, "kh_polymer_model": 12, "licens": 0, "logger": 34, "mai": 38, "map": 39, "mesh_process_surfac": 19, "mesh_process_volum": 20, "mesh_rigidbodi": 21, "model": [3, 11, 18, 25, 36, 38, 39, 40], "modul": [2, 5, 7, 11, 18, 25, 28, 33], "monom": 38, "mpipi_polym": 13, "multipl": 38, "name": 0, "object": [40, 41], "onck_polymer_model": 14, "overview": 36, "packag": 37, "parmed_bd": 29, "particl": [37, 40], "per": 38, "plain": 37, "point": 40, "polym": [11, 15, 38, 39, 41], "potenti": 7, "project": 0, "properti": 38, "protein": 40, "python": 36, "readm": 0, "refer": [5, 36], "represent": 39, "result": 37, "rigid": [40, 41], "rigidbodi": 18, "roadmap": 0, "run": [37, 39], "sali_polymer_model": 16, "set": 39, "shape": 25, "shape_cg": 26, "sim_config": 4, "simplearbd": 22, "simul": [28, 37, 39], "singl": 40, "some": 38, "ssdna_two_bead": 17, "start": [0, 36], "statu": 0, "step": [37, 39], "strand": 40, "structure_from_pdb": 23, "structure_rigidbodi": 24, "suggest": 0, "support": 0, "system": 37, "team": 0, "test": 0, "text": 37, "thi": 0, "through": 37, "tool": 0, "trajectori": 39, "tutori": 41, "type": 37, "up": 39, "usag": [0, 37], "util": 33, "version": 35, "visual": [0, 37, 39], "your": 0}})
\ No newline at end of file
diff --git a/_build/html/tutorials/1-basics/1-basics.html b/_build/html/tutorials/1-basics/1-basics.html
index be8cff1e0cfcacf28090cf68d8fbbd896ecc0006..a74444916054e6619cbc2d8b2d222aef238611ca 100644
--- a/_build/html/tutorials/1-basics/1-basics.html
+++ b/_build/html/tutorials/1-basics/1-basics.html
@@ -395,14 +395,7 @@ document.write(`
 </div>
 </div>
 <div class="cell_output docutils container">
-<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
-<span class="ne">ModuleNotFoundError</span><span class="g g-Whitespace">                       </span>Traceback (most recent call last)
-<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">line</span> <span class="mi">1</span>
-<span class="ne">----&gt; </span><span class="mi">1</span> <span class="kn">import</span><span class="w"> </span><span class="nn">ipdb</span> <span class="c1"># in case we need to debug, after a crash, run `ipdb.pm()`</span>
-<span class="g g-Whitespace">      </span><span class="mi">2</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
-<span class="g g-Whitespace">      </span><span class="mi">3</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel</span><span class="w"> </span><span class="kn">import</span> <span class="n">ParticleType</span><span class="p">,</span> <span class="n">PointParticle</span><span class="p">,</span> <span class="n">ArbdModel</span>
-
-<span class="ne">ModuleNotFoundError</span>: No module named &#39;ipdb&#39;
+<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;&lt;class &#39;arbdmodel.core_objects.ParticleType&#39;&gt; Ar&gt;
 </pre></div>
 </div>
 </div>
@@ -429,6 +422,32 @@ document.write(`
 </pre></div>
 </div>
 </div>
+<div class="cell_output docutils container">
+<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
+<span class="ne">TypeError</span><span class="g g-Whitespace">                                 </span>Traceback (most recent call last)
+<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">line</span> <span class="mi">8</span>
+<span class="g g-Whitespace">      </span><span class="mi">4</span> <span class="c1">## Create a list of point particles located at those positions</span>
+<span class="g g-Whitespace">      </span><span class="mi">5</span> <span class="n">points</span> <span class="o">=</span> <span class="p">[</span><span class="n">PointParticle</span><span class="p">(</span><span class="n">type_</span><span class="o">=</span><span class="n">argon</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Ar&quot;</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="n">positions</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+<span class="g g-Whitespace">      </span><span class="mi">6</span>                         <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_particles</span><span class="p">)]</span>
+<span class="ne">----&gt; </span><span class="mi">8</span> <span class="n">model</span> <span class="o">=</span> <span class="n">ArbdModel</span><span class="p">(</span><span class="n">points</span><span class="p">,</span> 
+<span class="g g-Whitespace">      </span><span class="mi">9</span>                   <span class="n">dimensions</span><span class="o">=</span><span class="p">[</span><span class="n">system_size</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">)],</span> <span class="c1"># Ã…ngstroms</span>
+<span class="g g-Whitespace">     </span><span class="mi">10</span>                   <span class="n">timestep</span> <span class="o">=</span> <span class="mf">20e-6</span><span class="p">,</span> <span class="c1"># ns; can be specified below with engine instead</span>
+<span class="g g-Whitespace">     </span><span class="mi">11</span>                   <span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">13</span> <span class="nb">print</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">14</span> <span class="nb">print</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">children</span><span class="p">[:</span><span class="mi">2</span><span class="p">])</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231,</span> in <span class="ni">ArbdModel.__init__</span><span class="nt">(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)</span>
+<span class="g g-Whitespace">    </span><span class="mi">228</span>     <span class="n">cell_origin</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>
+<span class="g g-Whitespace">    </span><span class="mi">230</span> <span class="c1"># Initialize parent class</span>
+<span class="ne">--&gt; </span><span class="mi">231</span> <span class="n">PdbModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">remove_duplicate_bonded_terms</span><span class="p">,</span>
+<span class="g g-Whitespace">    </span><span class="mi">232</span>                  <span class="n">cell_vectors</span><span class="p">,</span> <span class="n">cell_origin</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">235</span> <span class="c1"># Store origin which might be different from cell_origin</span>
+<span class="g g-Whitespace">    </span><span class="mi">236</span> <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">cell_origin</span>
+
+<span class="ne">TypeError</span>: __init__() takes from 1 to 4 positional arguments but 6 were given
+</pre></div>
+</div>
+</div>
 </div>
 </section>
 <section id="step-3-describe-the-interactions-between-the-particles">
diff --git a/_build/html/tutorials/2-polymer-objects/2-polymer-objects.html b/_build/html/tutorials/2-polymer-objects/2-polymer-objects.html
index 3d8d5d4787fc7a44146eba25a6c041484b32a013..1658aa6230cb89d0dce601b7d755e264fdd2a4b5 100644
--- a/_build/html/tutorials/2-polymer-objects/2-polymer-objects.html
+++ b/_build/html/tutorials/2-polymer-objects/2-polymer-objects.html
@@ -395,19 +395,25 @@ document.write(`
 </div>
 </div>
 <div class="cell_output docutils container">
-<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
-<span class="ne">ModuleNotFoundError</span><span class="g g-Whitespace">                       </span>Traceback (most recent call last)
-<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">line</span> <span class="mi">1</span>
-<span class="ne">----&gt; </span><span class="mi">1</span> <span class="kn">import</span><span class="w"> </span><span class="nn">ipdb</span> <span class="c1"># in case we want to debug something</span>
-<span class="g g-Whitespace">      </span><span class="mi">2</span><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="g g-Whitespace">      </span><span class="mi">3</span><span class="sd"> If you want to enter function `fn` with the debugger, run:</span>
-<span class="g g-Whitespace">      </span><span class="mi">4</span><span class="sd"> `ipdb.runcall(fn,*args,**kwargs)` instead of the usual `fn(*args,**kwargs)`</span>
-<span class="sd">   (...)</span>
-<span class="g g-Whitespace">      </span><span class="mi">7</span><span class="sd"> cell, and add to it: `ipdb.pm()` to start the post-mortem debugger. </span>
-<span class="g g-Whitespace">      </span><span class="mi">8</span><span class="sd">  &quot;&quot;&quot;</span>
-<span class="g g-Whitespace">     </span><span class="mi">10</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
-
-<span class="ne">ModuleNotFoundError</span>: No module named &#39;ipdb&#39;
+<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;&lt;class &#39;arbdmodel.polymer.PolymerSection&#39;&gt; PROT[70]&gt;
+locations: []
+connection_locations: []
+connections: []
+segname: PROT
+num_monomers: 70
+monomer_length: 3.8
+start_position: [  20.    0. -105.]
+end_position: [ 20.   0. 161.]
+start_orientation: None
+quaternion_spline_params: None
+position_spline_params: ([array([0.    , 0.    , 0.0625, 0.125 , 0.1875, 0.25  , 0.3125, 0.375 ,
+       0.4375, 0.5   , 0.5625, 0.625 , 0.6875, 0.75  , 0.8125, 0.875 ,
+       0.9375, 1.    , 1.    ]), [array([20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20.,
+       20., 20., 20., 20.]), array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]), array([-105.   ,  -88.375,  -71.75 ,  -55.125,  -38.5  ,  -21.875,
+         -5.25 ,   11.375,   28.   ,   44.625,   61.25 ,   77.875,
+         94.5  ,  111.125,  127.75 ,  144.375,  161.   ])], 1], array([0.    , 0.0625, 0.125 , 0.1875, 0.25  , 0.3125, 0.375 , 0.4375,
+       0.5   , 0.5625, 0.625 , 0.6875, 0.75  , 0.8125, 0.875 , 0.9375,
+       1.    ]))
 </pre></div>
 </div>
 </div>
@@ -429,6 +435,44 @@ document.write(`
 </pre></div>
 </div>
 </div>
+<div class="cell_output docutils container">
+<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
+<span class="ne">TypeError</span><span class="g g-Whitespace">                                 </span>Traceback (most recent call last)
+<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">line</span> <span class="mi">4</span>
+<span class="g g-Whitespace">      </span><span class="mi">1</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel</span><span class="w"> </span><span class="kn">import</span> <span class="n">ArbdEngine</span>
+<span class="g g-Whitespace">      </span><span class="mi">2</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel.fjc_polymer_model</span><span class="w"> </span><span class="kn">import</span> <span class="n">FjcModel</span>
+<span class="ne">----&gt; </span><span class="mi">4</span> <span class="n">model</span> <span class="o">=</span> <span class="n">FjcModel</span><span class="p">([</span><span class="n">polymer</span><span class="p">],</span> <span class="n">monomers_per_bead_group</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
+<span class="g g-Whitespace">      </span><span class="mi">6</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">ArbdEngine</span><span class="p">(</span><span class="n">output_period</span> <span class="o">=</span> <span class="mf">1e2</span><span class="p">,</span> <span class="n">num_steps</span> <span class="o">=</span> <span class="mf">1e5</span><span class="p">)</span>
+<span class="g g-Whitespace">      </span><span class="mi">7</span> <span class="n">engine</span><span class="o">.</span><span class="n">simulate</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">output_name</span><span class="o">=</span><span class="s2">&quot;1-linear-fjc&quot;</span><span class="p">,</span> <span class="n">directory</span><span class="o">=</span><span class="s1">&#39;sims/2-polymer&#39;</span><span class="p">,</span>
+<span class="g g-Whitespace">      </span><span class="mi">8</span>                 <span class="n">num_steps</span><span class="o">=</span><span class="mf">1e4</span><span class="p">,</span> <span class="n">gpu</span><span class="o">=</span><span class="mi">1</span>
+<span class="g g-Whitespace">      </span><span class="mi">9</span> <span class="p">)</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/fjc_polymer_model.py:68,</span> in <span class="ni">FjcModel.__init__</span><span class="nt">(self, polymers, sequences, rest_length, monomers_per_bead_group, spring_constant, damping_coefficient, DEBUG, **kwargs)</span>
+<span class="g g-Whitespace">     </span><span class="mi">66</span> <span class="bp">self</span><span class="o">.</span><span class="n">rest_length</span> <span class="o">=</span> <span class="n">rest_length</span>
+<span class="g g-Whitespace">     </span><span class="mi">67</span> <span class="bp">self</span><span class="o">.</span><span class="n">spring_constant</span> <span class="o">=</span> <span class="n">spring_constant</span>
+<span class="ne">---&gt; </span><span class="mi">68</span> <span class="n">PolymerModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">polymers</span><span class="p">,</span> <span class="n">sequences</span><span class="p">,</span> <span class="n">monomers_per_bead_group</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">70</span><span class="w"> </span><span class="sd">&quot;&quot;&quot; Update type diffusion coefficients &quot;&quot;&quot;</span>
+<span class="g g-Whitespace">     </span><span class="mi">71</span> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient arbitrarily set to 100 AA**2/ns in FjcModel&quot;</span><span class="p">)</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731,</span> in <span class="ni">PolymerModel.__init__</span><span class="nt">(self, polymers, sequences, monomers_per_bead_group, **kwargs)</span>
+<span class="g g-Whitespace">    </span><span class="mi">729</span> <span class="bp">self</span><span class="o">.</span><span class="n">sequences</span> <span class="o">=</span> <span class="n">sequences</span>
+<span class="g g-Whitespace">    </span><span class="mi">730</span> <span class="bp">self</span><span class="o">.</span><span class="n">monomers_per_bead_group</span> <span class="o">=</span> <span class="n">monomers_per_bead_group</span>
+<span class="ne">--&gt; </span><span class="mi">731</span> <span class="n">ArbdModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">733</span><span class="w"> </span><span class="sd">&quot;&quot;&quot; Generate beads &quot;&quot;&quot;</span>
+<span class="g g-Whitespace">    </span><span class="mi">734</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_beads</span><span class="p">()</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231,</span> in <span class="ni">ArbdModel.__init__</span><span class="nt">(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)</span>
+<span class="g g-Whitespace">    </span><span class="mi">228</span>     <span class="n">cell_origin</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>
+<span class="g g-Whitespace">    </span><span class="mi">230</span> <span class="c1"># Initialize parent class</span>
+<span class="ne">--&gt; </span><span class="mi">231</span> <span class="n">PdbModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">remove_duplicate_bonded_terms</span><span class="p">,</span>
+<span class="g g-Whitespace">    </span><span class="mi">232</span>                  <span class="n">cell_vectors</span><span class="p">,</span> <span class="n">cell_origin</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">235</span> <span class="c1"># Store origin which might be different from cell_origin</span>
+<span class="g g-Whitespace">    </span><span class="mi">236</span> <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">cell_origin</span>
+
+<span class="ne">TypeError</span>: __init__() takes from 1 to 4 positional arguments but 6 were given
+</pre></div>
+</div>
+</div>
 </div>
 <div class="cell docutils container">
 <div class="cell_input docutils container">
diff --git a/_build/html/tutorials/3-iterative-boltzmann-inversion/3-ibi.html b/_build/html/tutorials/3-iterative-boltzmann-inversion/3-ibi.html
index 26b98f93959b4966baa134fc9013a3ac399d6d34..816f3cd80eeb85c2a8632e161aa8424448c95b4b 100644
--- a/_build/html/tutorials/3-iterative-boltzmann-inversion/3-ibi.html
+++ b/_build/html/tutorials/3-iterative-boltzmann-inversion/3-ibi.html
@@ -445,20 +445,6 @@ document.write(`
 </pre></div>
 </div>
 </div>
-<div class="cell_output docutils container">
-<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
-<span class="ne">ModuleNotFoundError</span><span class="g g-Whitespace">                       </span>Traceback (most recent call last)
-<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">line</span> <span class="mi">4</span>
-<span class="g g-Whitespace">      </span><span class="mi">2</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
-<span class="g g-Whitespace">      </span><span class="mi">3</span> <span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
-<span class="ne">----&gt; </span><span class="mi">4</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel</span><span class="w"> </span><span class="kn">import</span> <span class="n">ArbdEngine</span>
-<span class="g g-Whitespace">      </span><span class="mi">5</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel.coords</span><span class="w"> </span><span class="kn">import</span> <span class="n">readArbdCoords</span>
-<span class="g g-Whitespace">      </span><span class="mi">6</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel.polymer</span><span class="w"> </span><span class="kn">import</span> <span class="n">PolymerSection</span>
-
-<span class="ne">ModuleNotFoundError</span>: No module named &#39;arbdmodel&#39;
-</pre></div>
-</div>
-</div>
 </div>
 <div class="cell docutils container">
 <div class="cell_input docutils container">
@@ -512,6 +498,53 @@ document.write(`
 </pre></div>
 </div>
 </div>
+<div class="cell_output docutils container">
+<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
+<span class="ne">TypeError</span><span class="g g-Whitespace">                                 </span>Traceback (most recent call last)
+<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">line</span> <span class="mi">17</span>
+<span class="g g-Whitespace">     </span><span class="mi">13</span> <span class="n">debye_length</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="g g-Whitespace">     </span><span class="mi">15</span> <span class="n">polymers</span><span class="p">,</span> <span class="n">sequences</span> <span class="o">=</span> <span class="n">create_arbd_polymer_objects</span><span class="p">()</span>
+<span class="ne">---&gt; </span><span class="mi">17</span> <span class="n">model</span> <span class="o">=</span> <span class="n">NupModel</span><span class="p">(</span> <span class="n">polymers</span><span class="p">,</span> <span class="n">sequences</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">18</span>                   <span class="n">debye_length</span> <span class="o">=</span> <span class="n">debye_length</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">19</span>                   <span class="n">temperature</span><span class="o">=</span><span class="n">temperature</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">20</span>                   <span class="n">damping_coefficient</span> <span class="o">=</span> <span class="mi">50000</span><span class="p">,</span> <span class="c1"># units of 1/ns</span>
+<span class="g g-Whitespace">     </span><span class="mi">21</span>                   <span class="n">decomp_period</span> <span class="o">=</span> <span class="n">decomp_period</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">22</span>                   <span class="n">pairlist_distance</span> <span class="o">=</span> <span class="mi">50</span><span class="o">+</span><span class="n">skin_depth</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">23</span>                   <span class="n">dimensions</span> <span class="o">=</span> <span class="n">dimensions</span>
+<span class="g g-Whitespace">     </span><span class="mi">24</span>                   <span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">25</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">ArbdEngine</span><span class="p">(</span> <span class="n">integrator</span> <span class="o">=</span> <span class="s1">&#39;Langevin&#39;</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">26</span>                      <span class="n">num_steps</span><span class="o">=</span><span class="mf">1e7</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">27</span>                      <span class="n">output_period</span><span class="o">=</span><span class="mf">1e4</span><span class="p">,</span>
+<span class="g g-Whitespace">     </span><span class="mi">28</span>                      <span class="n">gpu</span> <span class="o">=</span> <span class="mi">0</span>
+<span class="g g-Whitespace">     </span><span class="mi">29</span>                     <span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">30</span> <span class="n">directory</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;1-one_bead_per_res-</span><span class="si">{</span><span class="n">model_name</span><span class="si">}</span><span class="s1">&#39;</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/hps_polymer_model.py:239,</span> in <span class="ni">HpsModel.__init__</span><span class="nt">(self, polymers, sequences, rest_length, spring_constant, debye_length, damping_coefficient, DEBUG, **kwargs)</span>
+<span class="g g-Whitespace">    </span><span class="mi">236</span> <span class="k">if</span> <span class="n">sequences</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+<span class="g g-Whitespace">    </span><span class="mi">237</span>     <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;HpsModel must be provided a sequences argument&quot;</span><span class="p">)</span>
+<span class="ne">--&gt; </span><span class="mi">239</span> <span class="n">PolymerModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">polymers</span><span class="p">,</span> <span class="n">sequences</span><span class="p">,</span> <span class="n">monomers_per_bead_group</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">241</span><span class="w"> </span><span class="sd">&quot;&quot;&quot; Update type diffusion coefficients &quot;&quot;&quot;</span>
+<span class="g g-Whitespace">    </span><span class="mi">242</span> <span class="bp">self</span><span class="o">.</span><span class="n">types</span> <span class="o">=</span> <span class="n">all_types</span> <span class="o">=</span> <span class="p">[</span><span class="n">t</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span><span class="n">t</span> <span class="ow">in</span> <span class="n">_types</span><span class="o">.</span><span class="n">items</span><span class="p">()]</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731,</span> in <span class="ni">PolymerModel.__init__</span><span class="nt">(self, polymers, sequences, monomers_per_bead_group, **kwargs)</span>
+<span class="g g-Whitespace">    </span><span class="mi">729</span> <span class="bp">self</span><span class="o">.</span><span class="n">sequences</span> <span class="o">=</span> <span class="n">sequences</span>
+<span class="g g-Whitespace">    </span><span class="mi">730</span> <span class="bp">self</span><span class="o">.</span><span class="n">monomers_per_bead_group</span> <span class="o">=</span> <span class="n">monomers_per_bead_group</span>
+<span class="ne">--&gt; </span><span class="mi">731</span> <span class="n">ArbdModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">733</span><span class="w"> </span><span class="sd">&quot;&quot;&quot; Generate beads &quot;&quot;&quot;</span>
+<span class="g g-Whitespace">    </span><span class="mi">734</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_beads</span><span class="p">()</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231,</span> in <span class="ni">ArbdModel.__init__</span><span class="nt">(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)</span>
+<span class="g g-Whitespace">    </span><span class="mi">228</span>     <span class="n">cell_origin</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>
+<span class="g g-Whitespace">    </span><span class="mi">230</span> <span class="c1"># Initialize parent class</span>
+<span class="ne">--&gt; </span><span class="mi">231</span> <span class="n">PdbModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">remove_duplicate_bonded_terms</span><span class="p">,</span>
+<span class="g g-Whitespace">    </span><span class="mi">232</span>                  <span class="n">cell_vectors</span><span class="p">,</span> <span class="n">cell_origin</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">235</span> <span class="c1"># Store origin which might be different from cell_origin</span>
+<span class="g g-Whitespace">    </span><span class="mi">236</span> <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">cell_origin</span>
+
+<span class="ne">TypeError</span>: __init__() takes from 1 to 4 positional arguments but 6 were given
+</pre></div>
+</div>
+</div>
 </div>
 </section>
 <section id="step-2-setting-up-a-coarser-model">
diff --git a/_build/html/tutorials/4-rigid-bodies/4-rigid-bodies.html b/_build/html/tutorials/4-rigid-bodies/4-rigid-bodies.html
index f5539dbc6107b86ec030553a82d5d67c8bdac304..4b4ad1a854a3af9426d1c3f00bfaacc075673b12 100644
--- a/_build/html/tutorials/4-rigid-bodies/4-rigid-bodies.html
+++ b/_build/html/tutorials/4-rigid-bodies/4-rigid-bodies.html
@@ -428,20 +428,6 @@ document.write(`
 </pre></div>
 </div>
 </div>
-<div class="cell_output docutils container">
-<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
-<span class="ne">ModuleNotFoundError</span><span class="g g-Whitespace">                       </span>Traceback (most recent call last)
-<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">line</span> <span class="mi">2</span>
-<span class="g g-Whitespace">      </span><span class="mi">1</span> <span class="c1">## Create a function to construct the DNA model (we&#39;ll repeat this a few times)</span>
-<span class="ne">----&gt; </span><span class="mi">2</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel.polymer</span><span class="w"> </span><span class="kn">import</span> <span class="n">PolymerSection</span>
-<span class="g g-Whitespace">      </span><span class="mi">3</span> <span class="kn">from</span><span class="w"> </span><span class="nn">arbdmodel.ssdna_two_bead</span><span class="w"> </span><span class="kn">import</span> <span class="n">DnaModel</span><span class="p">,</span> <span class="n">_P</span><span class="p">,</span> <span class="n">_B</span> 
-<span class="g g-Whitespace">      </span><span class="mi">5</span> <span class="k">def</span><span class="w"> </span><span class="nf">make_dna_model</span><span class="p">():</span>
-<span class="g g-Whitespace">      </span><span class="mi">6</span>     <span class="c1">## Create spline-based polymer</span>
-
-<span class="ne">ModuleNotFoundError</span>: No module named &#39;arbdmodel&#39;
-</pre></div>
-</div>
-</div>
 </div>
 <div class="cell docutils container">
 <div class="cell_input docutils container">
@@ -454,6 +440,52 @@ document.write(`
 </pre></div>
 </div>
 </div>
+<div class="cell_output docutils container">
+<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
+<span class="ne">TypeError</span><span class="g g-Whitespace">                                 </span>Traceback (most recent call last)
+<span class="n">Cell</span> <span class="n">In</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">line</span> <span class="mi">2</span>
+<span class="g g-Whitespace">      </span><span class="mi">1</span> <span class="c1">## Optionally simulate the DNA-only model to see how it performs and behaves</span>
+<span class="ne">----&gt; </span><span class="mi">2</span> <span class="n">model</span> <span class="o">=</span> <span class="n">make_dna_model</span><span class="p">()</span>
+<span class="g g-Whitespace">      </span><span class="mi">3</span> <span class="n">model</span><span class="o">.</span><span class="n">simulate</span><span class="p">(</span><span class="n">output_name</span><span class="o">=</span><span class="s1">&#39;run&#39;</span><span class="p">,</span>
+<span class="g g-Whitespace">      </span><span class="mi">4</span>                <span class="n">directory</span><span class="o">=</span><span class="s1">&#39;trombone-no_ssb&#39;</span><span class="p">,</span>
+<span class="g g-Whitespace">      </span><span class="mi">5</span>                <span class="n">num_steps</span><span class="o">=</span><span class="mf">1e5</span><span class="p">,</span> <span class="n">output_period</span><span class="o">=</span><span class="mf">1e3</span><span class="p">,</span>
+<span class="g g-Whitespace">      </span><span class="mi">6</span> <span class="p">)</span>
+
+<span class="nn">Cell In[3], line 23,</span> in <span class="ni">make_dna_model</span><span class="nt">()</span>
+<span class="g g-Whitespace">     </span><span class="mi">20</span> <span class="n">_P</span><span class="o">.</span><span class="n">grid</span> <span class="o">=</span> <span class="p">(</span><span class="n">replisome_grid</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span>       <span class="c1"># scale it up by a big factor</span>
+<span class="g g-Whitespace">     </span><span class="mi">21</span> <span class="n">_B</span><span class="o">.</span><span class="n">grid</span> <span class="o">=</span> <span class="p">(</span><span class="n">replisome_grid</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span>
+<span class="ne">---&gt; </span><span class="mi">23</span> <span class="n">model</span> <span class="o">=</span> <span class="n">DnaModel</span><span class="p">([</span><span class="n">a</span><span class="p">],</span> <span class="n">dimensions</span><span class="o">=</span><span class="p">(</span><span class="mi">3000</span><span class="p">,</span><span class="mi">3000</span><span class="p">,</span><span class="mi">3000</span><span class="p">),</span>
+<span class="g g-Whitespace">     </span><span class="mi">24</span>                  <span class="n">timestep</span> <span class="o">=</span> <span class="mf">20e-6</span>
+<span class="g g-Whitespace">     </span><span class="mi">25</span>                  <span class="p">)</span>
+<span class="g g-Whitespace">     </span><span class="mi">27</span> <span class="c1">## Restrain DNA ends</span>
+<span class="g g-Whitespace">     </span><span class="mi">28</span> <span class="n">end1</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">strands</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/ssdna_two_bead.py:164,</span> in <span class="ni">DnaModel.__init__</span><span class="nt">(self, polymers, sequences, DEBUG, **kwargs)</span>
+<span class="g g-Whitespace">    </span><span class="mi">161</span> <span class="k">if</span> <span class="s1">&#39;timestep&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;timestep&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">20e-6</span>
+<span class="g g-Whitespace">    </span><span class="mi">162</span> <span class="k">if</span> <span class="s1">&#39;cutoff&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;cutoff&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">35</span>
+<span class="ne">--&gt; </span><span class="mi">164</span> <span class="n">PolymerModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">polymers</span><span class="p">,</span> <span class="n">sequences</span><span class="p">,</span> <span class="n">monomers_per_bead_group</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">165</span> <span class="bp">self</span><span class="o">.</span><span class="n">strands</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">children</span> <span class="c1"># make a nice alias</span>
+<span class="g g-Whitespace">    </span><span class="mi">167</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_nonbonded_interaction</span><span class="p">(</span> <span class="n">TabulatedNonbonded</span><span class="p">(</span><span class="n">get_resource_path</span><span class="p">(</span><span class="s1">&#39;two_bead_model/NBBB.dat&#39;</span><span class="p">)),</span> <span class="n">typeA</span><span class="o">=</span><span class="n">_B</span><span class="p">,</span> <span class="n">typeB</span><span class="o">=</span><span class="n">_B</span> <span class="p">)</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731,</span> in <span class="ni">PolymerModel.__init__</span><span class="nt">(self, polymers, sequences, monomers_per_bead_group, **kwargs)</span>
+<span class="g g-Whitespace">    </span><span class="mi">729</span> <span class="bp">self</span><span class="o">.</span><span class="n">sequences</span> <span class="o">=</span> <span class="n">sequences</span>
+<span class="g g-Whitespace">    </span><span class="mi">730</span> <span class="bp">self</span><span class="o">.</span><span class="n">monomers_per_bead_group</span> <span class="o">=</span> <span class="n">monomers_per_bead_group</span>
+<span class="ne">--&gt; </span><span class="mi">731</span> <span class="n">ArbdModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">733</span><span class="w"> </span><span class="sd">&quot;&quot;&quot; Generate beads &quot;&quot;&quot;</span>
+<span class="g g-Whitespace">    </span><span class="mi">734</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_beads</span><span class="p">()</span>
+
+<span class="nn">File ~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231,</span> in <span class="ni">ArbdModel.__init__</span><span class="nt">(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)</span>
+<span class="g g-Whitespace">    </span><span class="mi">228</span>     <span class="n">cell_origin</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>
+<span class="g g-Whitespace">    </span><span class="mi">230</span> <span class="c1"># Initialize parent class</span>
+<span class="ne">--&gt; </span><span class="mi">231</span> <span class="n">PdbModel</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="p">,</span> <span class="n">dimensions</span><span class="p">,</span> <span class="n">remove_duplicate_bonded_terms</span><span class="p">,</span>
+<span class="g g-Whitespace">    </span><span class="mi">232</span>                  <span class="n">cell_vectors</span><span class="p">,</span> <span class="n">cell_origin</span><span class="p">)</span>
+<span class="g g-Whitespace">    </span><span class="mi">235</span> <span class="c1"># Store origin which might be different from cell_origin</span>
+<span class="g g-Whitespace">    </span><span class="mi">236</span> <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">cell_origin</span>
+
+<span class="ne">TypeError</span>: __init__() takes from 1 to 4 positional arguments but 6 were given
+</pre></div>
+</div>
+</div>
 </div>
 <p>You can load this trajectory in VMD to inspect as usual. You should also load <code class="docutils literal notranslate"><span class="pre">grids/replisome.dx</span></code> or <code class="docutils literal notranslate"><span class="pre">replisome.{psf,pdb}</span></code> so you can see the DNA in the context of the replication machinery. Also, please note that the ssDNA model used here represents poly(dT), so it is unable to base pair or form secondary structure, which is the main reason why cells need SSB proteins.</p>
 <section id="adding-single-stranded-dna-binding-protein">
diff --git a/_build/jupyter_execute/tutorials/1-basics/1-basics.ipynb b/_build/jupyter_execute/tutorials/1-basics/1-basics.ipynb
index 8d55831387ff580a2ec53aca300f0a3dceccd9ae..b9f8f875d728e309142321169a1fbc7513a4f274 100644
--- a/_build/jupyter_execute/tutorials/1-basics/1-basics.ipynb
+++ b/_build/jupyter_execute/tutorials/1-basics/1-basics.ipynb
@@ -28,14 +28,10 @@
    },
    "outputs": [
     {
-     "ename": "ModuleNotFoundError",
-     "evalue": "No module named 'ipdb'",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mipdb\u001b[39;00m \u001b[38;5;66;03m# in case we need to debug, after a crash, run `ipdb.pm()`\u001b[39;00m\n\u001b[1;32m      2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m ParticleType, PointParticle, ArbdModel\n",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'ipdb'"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<<class 'arbdmodel.core_objects.ParticleType'> Ar>\n"
      ]
     }
    ],
@@ -68,9 +64,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "TypeError",
+     "evalue": "__init__() takes from 1 to 4 positional arguments but 6 were given",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[2], line 8\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[38;5;66;03m## Create a list of point particles located at those positions\u001b[39;00m\n\u001b[1;32m      5\u001b[0m points \u001b[38;5;241m=\u001b[39m [PointParticle(type_\u001b[38;5;241m=\u001b[39margon, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAr\u001b[39m\u001b[38;5;124m\"\u001b[39m, position\u001b[38;5;241m=\u001b[39mpositions[i])\n\u001b[1;32m      6\u001b[0m                         \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(num_particles)]\n\u001b[0;32m----> 8\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mArbdModel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpoints\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m      9\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43msystem_size\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Ã…ngstroms\u001b[39;49;00m\n\u001b[1;32m     10\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mtimestep\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m20e-6\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# ns; can be specified below with engine instead\u001b[39;49;00m\n\u001b[1;32m     11\u001b[0m \u001b[43m                  \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     13\u001b[0m \u001b[38;5;28mprint\u001b[39m(model)\n\u001b[1;32m     14\u001b[0m \u001b[38;5;28mprint\u001b[39m(model\u001b[38;5;241m.\u001b[39mchildren[:\u001b[38;5;241m2\u001b[39m])\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231\u001b[0m, in \u001b[0;36mArbdModel.__init__\u001b[0;34m(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)\u001b[0m\n\u001b[1;32m    228\u001b[0m     cell_origin \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m    230\u001b[0m \u001b[38;5;66;03m# Initialize parent class\u001b[39;00m\n\u001b[0;32m--> 231\u001b[0m \u001b[43mPdbModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchildren\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_duplicate_bonded_terms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    232\u001b[0m \u001b[43m                 \u001b[49m\u001b[43mcell_vectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcell_origin\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    235\u001b[0m \u001b[38;5;66;03m# Store origin which might be different from cell_origin\u001b[39;00m\n\u001b[1;32m    236\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin \u001b[38;5;241m=\u001b[39m cell_origin\n",
+      "\u001b[0;31mTypeError\u001b[0m: __init__() takes from 1 to 4 positional arguments but 6 were given"
+     ]
+    }
+   ],
    "source": [
     "## Generate Nx3 array of random cartesian coordinates\n",
     "positions = system_size*(np.random.random([num_particles,3])-0.5)\n",
diff --git a/_build/jupyter_execute/tutorials/2-polymer-objects/2-polymer-objects.ipynb b/_build/jupyter_execute/tutorials/2-polymer-objects/2-polymer-objects.ipynb
index 74b83ab94db057a2d0a7f57f3ef6a3a6966c6873..d63362b5fe33c76f4606b7fa2a5e5a647e0a0da8 100644
--- a/_build/jupyter_execute/tutorials/2-polymer-objects/2-polymer-objects.ipynb
+++ b/_build/jupyter_execute/tutorials/2-polymer-objects/2-polymer-objects.ipynb
@@ -19,14 +19,28 @@
    "metadata": {},
    "outputs": [
     {
-     "ename": "ModuleNotFoundError",
-     "evalue": "No module named 'ipdb'",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mipdb\u001b[39;00m \u001b[38;5;66;03m# in case we want to debug something\u001b[39;00m\n\u001b[1;32m      2\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m      3\u001b[0m \u001b[38;5;124;03mIf you want to enter function `fn` with the debugger, run:\u001b[39;00m\n\u001b[1;32m      4\u001b[0m \u001b[38;5;124;03m`ipdb.runcall(fn,*args,**kwargs)` instead of the usual `fn(*args,**kwargs)`\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[38;5;124;03mcell, and add to it: `ipdb.pm()` to start the post-mortem debugger. \u001b[39;00m\n\u001b[1;32m      8\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m     10\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnp\u001b[39;00m\n",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'ipdb'"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<<class 'arbdmodel.polymer.PolymerSection'> PROT[70]>\n",
+      "locations: []\n",
+      "connection_locations: []\n",
+      "connections: []\n",
+      "segname: PROT\n",
+      "num_monomers: 70\n",
+      "monomer_length: 3.8\n",
+      "start_position: [  20.    0. -105.]\n",
+      "end_position: [ 20.   0. 161.]\n",
+      "start_orientation: None\n",
+      "quaternion_spline_params: None\n",
+      "position_spline_params: ([array([0.    , 0.    , 0.0625, 0.125 , 0.1875, 0.25  , 0.3125, 0.375 ,\n",
+      "       0.4375, 0.5   , 0.5625, 0.625 , 0.6875, 0.75  , 0.8125, 0.875 ,\n",
+      "       0.9375, 1.    , 1.    ]), [array([20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20.,\n",
+      "       20., 20., 20., 20.]), array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]), array([-105.   ,  -88.375,  -71.75 ,  -55.125,  -38.5  ,  -21.875,\n",
+      "         -5.25 ,   11.375,   28.   ,   44.625,   61.25 ,   77.875,\n",
+      "         94.5  ,  111.125,  127.75 ,  144.375,  161.   ])], 1], array([0.    , 0.0625, 0.125 , 0.1875, 0.25  , 0.3125, 0.375 , 0.4375,\n",
+      "       0.5   , 0.5625, 0.625 , 0.6875, 0.75  , 0.8125, 0.875 , 0.9375,\n",
+      "       1.    ]))\n"
      ]
     }
    ],
@@ -67,10 +81,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "id": "150af877",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "TypeError",
+     "evalue": "__init__() takes from 1 to 4 positional arguments but 6 were given",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[3], line 4\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m ArbdEngine\n\u001b[1;32m      2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfjc_polymer_model\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m FjcModel\n\u001b[0;32m----> 4\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mFjcModel\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mpolymer\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmonomers_per_bead_group\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m      6\u001b[0m engine \u001b[38;5;241m=\u001b[39m ArbdEngine(output_period \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1e2\u001b[39m, num_steps \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1e5\u001b[39m)\n\u001b[1;32m      7\u001b[0m engine\u001b[38;5;241m.\u001b[39msimulate(model, output_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m1-linear-fjc\u001b[39m\u001b[38;5;124m\"\u001b[39m, directory\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msims/2-polymer\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m      8\u001b[0m                 num_steps\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e4\u001b[39m, gpu\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m\n\u001b[1;32m      9\u001b[0m )\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/fjc_polymer_model.py:68\u001b[0m, in \u001b[0;36mFjcModel.__init__\u001b[0;34m(self, polymers, sequences, rest_length, monomers_per_bead_group, spring_constant, damping_coefficient, DEBUG, **kwargs)\u001b[0m\n\u001b[1;32m     66\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrest_length \u001b[38;5;241m=\u001b[39m rest_length\n\u001b[1;32m     67\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspring_constant \u001b[38;5;241m=\u001b[39m spring_constant\n\u001b[0;32m---> 68\u001b[0m \u001b[43mPolymerModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolymers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msequences\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmonomers_per_bead_group\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     70\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\" Update type diffusion coefficients \"\"\"\u001b[39;00m\n\u001b[1;32m     71\u001b[0m logger\u001b[38;5;241m.\u001b[39mwarning(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDiffusion coefficient arbitrarily set to 100 AA**2/ns in FjcModel\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731\u001b[0m, in \u001b[0;36mPolymerModel.__init__\u001b[0;34m(self, polymers, sequences, monomers_per_bead_group, **kwargs)\u001b[0m\n\u001b[1;32m    729\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msequences \u001b[38;5;241m=\u001b[39m sequences\n\u001b[1;32m    730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmonomers_per_bead_group \u001b[38;5;241m=\u001b[39m monomers_per_bead_group\n\u001b[0;32m--> 731\u001b[0m \u001b[43mArbdModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    733\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\" Generate beads \"\"\"\u001b[39;00m\n\u001b[1;32m    734\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgenerate_beads()\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231\u001b[0m, in \u001b[0;36mArbdModel.__init__\u001b[0;34m(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)\u001b[0m\n\u001b[1;32m    228\u001b[0m     cell_origin \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m    230\u001b[0m \u001b[38;5;66;03m# Initialize parent class\u001b[39;00m\n\u001b[0;32m--> 231\u001b[0m \u001b[43mPdbModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchildren\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_duplicate_bonded_terms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    232\u001b[0m \u001b[43m                 \u001b[49m\u001b[43mcell_vectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcell_origin\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    235\u001b[0m \u001b[38;5;66;03m# Store origin which might be different from cell_origin\u001b[39;00m\n\u001b[1;32m    236\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin \u001b[38;5;241m=\u001b[39m cell_origin\n",
+      "\u001b[0;31mTypeError\u001b[0m: __init__() takes from 1 to 4 positional arguments but 6 were given"
+     ]
+    }
+   ],
    "source": [
     "from arbdmodel import ArbdEngine\n",
     "from arbdmodel.fjc_polymer_model import FjcModel\n",
diff --git a/_build/jupyter_execute/tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb b/_build/jupyter_execute/tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb
index 1e9dfbb3f35260482bc87450150beae4c3d5ff39..4617e29add172c0caa4142b62c3cec994f47d2ca 100644
--- a/_build/jupyter_execute/tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb
+++ b/_build/jupyter_execute/tutorials/3-iterative-boltzmann-inversion/3-ibi.ipynb
@@ -20,19 +20,7 @@
    "execution_count": 1,
    "id": "0076eb69",
    "metadata": {},
-   "outputs": [
-    {
-     "ename": "ModuleNotFoundError",
-     "evalue": "No module named 'arbdmodel'",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[1], line 4\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mpathlib\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m Path\n\u001b[0;32m----> 4\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m ArbdEngine\n\u001b[1;32m      5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcoords\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m readArbdCoords\n\u001b[1;32m      6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpolymer\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PolymerSection\n",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'arbdmodel'"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "## Usually this script would be put in it's own python file so it can be imported into multiple other scripts\n",
     "import numpy as np\n",
@@ -110,10 +98,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "id": "fa9b96ae",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "TypeError",
+     "evalue": "__init__() takes from 1 to 4 positional arguments but 6 were given",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[2], line 17\u001b[0m\n\u001b[1;32m     13\u001b[0m debye_length \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m10\u001b[39m\n\u001b[1;32m     15\u001b[0m polymers, sequences \u001b[38;5;241m=\u001b[39m create_arbd_polymer_objects()\n\u001b[0;32m---> 17\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mNupModel\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolymers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msequences\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     18\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mdebye_length\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mdebye_length\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     19\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mtemperature\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtemperature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     20\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mdamping_coefficient\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m50000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# units of 1/ns\u001b[39;49;00m\n\u001b[1;32m     21\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mdecomp_period\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mdecomp_period\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     22\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mpairlist_distance\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m50\u001b[39;49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43mskin_depth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     23\u001b[0m \u001b[43m                  \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\n\u001b[1;32m     24\u001b[0m \u001b[43m                  \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     25\u001b[0m engine \u001b[38;5;241m=\u001b[39m ArbdEngine( integrator \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mLangevin\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m     26\u001b[0m                      num_steps\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e7\u001b[39m,\n\u001b[1;32m     27\u001b[0m                      output_period\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e4\u001b[39m,\n\u001b[1;32m     28\u001b[0m                      gpu \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m     29\u001b[0m                     )\n\u001b[1;32m     30\u001b[0m directory \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m1-one_bead_per_res-\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmodel_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/hps_polymer_model.py:239\u001b[0m, in \u001b[0;36mHpsModel.__init__\u001b[0;34m(self, polymers, sequences, rest_length, spring_constant, debye_length, damping_coefficient, DEBUG, **kwargs)\u001b[0m\n\u001b[1;32m    236\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m sequences \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m    237\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mHpsModel must be provided a sequences argument\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 239\u001b[0m \u001b[43mPolymerModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolymers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msequences\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmonomers_per_bead_group\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    241\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\" Update type diffusion coefficients \"\"\"\u001b[39;00m\n\u001b[1;32m    242\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtypes \u001b[38;5;241m=\u001b[39m all_types \u001b[38;5;241m=\u001b[39m [t \u001b[38;5;28;01mfor\u001b[39;00m key,t \u001b[38;5;129;01min\u001b[39;00m _types\u001b[38;5;241m.\u001b[39mitems()]\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731\u001b[0m, in \u001b[0;36mPolymerModel.__init__\u001b[0;34m(self, polymers, sequences, monomers_per_bead_group, **kwargs)\u001b[0m\n\u001b[1;32m    729\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msequences \u001b[38;5;241m=\u001b[39m sequences\n\u001b[1;32m    730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmonomers_per_bead_group \u001b[38;5;241m=\u001b[39m monomers_per_bead_group\n\u001b[0;32m--> 731\u001b[0m \u001b[43mArbdModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    733\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\" Generate beads \"\"\"\u001b[39;00m\n\u001b[1;32m    734\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgenerate_beads()\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231\u001b[0m, in \u001b[0;36mArbdModel.__init__\u001b[0;34m(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)\u001b[0m\n\u001b[1;32m    228\u001b[0m     cell_origin \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m    230\u001b[0m \u001b[38;5;66;03m# Initialize parent class\u001b[39;00m\n\u001b[0;32m--> 231\u001b[0m \u001b[43mPdbModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchildren\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_duplicate_bonded_terms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    232\u001b[0m \u001b[43m                 \u001b[49m\u001b[43mcell_vectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcell_origin\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    235\u001b[0m \u001b[38;5;66;03m# Store origin which might be different from cell_origin\u001b[39;00m\n\u001b[1;32m    236\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin \u001b[38;5;241m=\u001b[39m cell_origin\n",
+      "\u001b[0;31mTypeError\u001b[0m: __init__() takes from 1 to 4 positional arguments but 6 were given"
+     ]
+    }
+   ],
    "source": [
     "\n",
     "temperature = 298.15\n",
diff --git a/_build/jupyter_execute/tutorials/4-rigid-bodies/4-rigid-bodies.ipynb b/_build/jupyter_execute/tutorials/4-rigid-bodies/4-rigid-bodies.ipynb
index efa305dc3df78354e95d5bedcdbbb621beb1bbd9..949ef0d2fac5b8420e6a7827bfcea54770dbd2c0 100644
--- a/_build/jupyter_execute/tutorials/4-rigid-bodies/4-rigid-bodies.ipynb
+++ b/_build/jupyter_execute/tutorials/4-rigid-bodies/4-rigid-bodies.ipynb
@@ -50,19 +50,7 @@
    "execution_count": 3,
    "id": "6818145a",
    "metadata": {},
-   "outputs": [
-    {
-     "ename": "ModuleNotFoundError",
-     "evalue": "No module named 'arbdmodel'",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[3], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;66;03m## Create a function to construct the DNA model (we'll repeat this a few times)\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpolymer\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PolymerSection\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01marbdmodel\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mssdna_two_bead\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m DnaModel, _P, _B \n\u001b[1;32m      5\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mmake_dna_model\u001b[39m():\n\u001b[1;32m      6\u001b[0m     \u001b[38;5;66;03m## Create spline-based polymer\u001b[39;00m\n",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'arbdmodel'"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "## Create a function to construct the DNA model (we'll repeat this a few times)\n",
     "from arbdmodel.polymer import PolymerSection\n",
@@ -102,10 +90,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "id": "d74b1f0c",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "TypeError",
+     "evalue": "__init__() takes from 1 to 4 positional arguments but 6 were given",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[4], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;66;03m## Optionally simulate the DNA-only model to see how it performs and behaves\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mmake_dna_model\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m      3\u001b[0m model\u001b[38;5;241m.\u001b[39msimulate(output_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mrun\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m      4\u001b[0m                directory\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrombone-no_ssb\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m      5\u001b[0m                num_steps\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e5\u001b[39m, output_period\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e3\u001b[39m,\n\u001b[1;32m      6\u001b[0m )\n",
+      "Cell \u001b[0;32mIn[3], line 23\u001b[0m, in \u001b[0;36mmake_dna_model\u001b[0;34m()\u001b[0m\n\u001b[1;32m     20\u001b[0m _P\u001b[38;5;241m.\u001b[39mgrid \u001b[38;5;241m=\u001b[39m (replisome_grid, \u001b[38;5;241m500\u001b[39m)       \u001b[38;5;66;03m# scale it up by a big factor\u001b[39;00m\n\u001b[1;32m     21\u001b[0m _B\u001b[38;5;241m.\u001b[39mgrid \u001b[38;5;241m=\u001b[39m (replisome_grid, \u001b[38;5;241m500\u001b[39m)\n\u001b[0;32m---> 23\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mDnaModel\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43ma\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m3000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m3000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m3000\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m     24\u001b[0m \u001b[43m                 \u001b[49m\u001b[43mtimestep\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m20e-6\u001b[39;49m\n\u001b[1;32m     25\u001b[0m \u001b[43m                 \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     27\u001b[0m \u001b[38;5;66;03m## Restrain DNA ends\u001b[39;00m\n\u001b[1;32m     28\u001b[0m end1 \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mstrands[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mchildren[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mchildren[\u001b[38;5;241m0\u001b[39m]\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/ssdna_two_bead.py:164\u001b[0m, in \u001b[0;36mDnaModel.__init__\u001b[0;34m(self, polymers, sequences, DEBUG, **kwargs)\u001b[0m\n\u001b[1;32m    161\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtimestep\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m kwargs: kwargs[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtimestep\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m20e-6\u001b[39m\n\u001b[1;32m    162\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcutoff\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m kwargs: kwargs[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcutoff\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m35\u001b[39m\n\u001b[0;32m--> 164\u001b[0m \u001b[43mPolymerModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolymers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msequences\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmonomers_per_bead_group\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    165\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstrands \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchildren \u001b[38;5;66;03m# make a nice alias\u001b[39;00m\n\u001b[1;32m    167\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madd_nonbonded_interaction( TabulatedNonbonded(get_resource_path(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtwo_bead_model/NBBB.dat\u001b[39m\u001b[38;5;124m'\u001b[39m)), typeA\u001b[38;5;241m=\u001b[39m_B, typeB\u001b[38;5;241m=\u001b[39m_B )\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/polymer.py:731\u001b[0m, in \u001b[0;36mPolymerModel.__init__\u001b[0;34m(self, polymers, sequences, monomers_per_bead_group, **kwargs)\u001b[0m\n\u001b[1;32m    729\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msequences \u001b[38;5;241m=\u001b[39m sequences\n\u001b[1;32m    730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmonomers_per_bead_group \u001b[38;5;241m=\u001b[39m monomers_per_bead_group\n\u001b[0;32m--> 731\u001b[0m \u001b[43mArbdModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    733\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\" Generate beads \"\"\"\u001b[39;00m\n\u001b[1;32m    734\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgenerate_beads()\n",
+      "File \u001b[0;32m~/Documents/research/arbdmodel-simple/arbdmodel/model.py:231\u001b[0m, in \u001b[0;36mArbdModel.__init__\u001b[0;34m(self, children, cell_vectors, cell_origin, dimensions, remove_duplicate_bonded_terms, buffer_factor, configuration, dummy_types, **conf_params)\u001b[0m\n\u001b[1;32m    228\u001b[0m     cell_origin \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m    230\u001b[0m \u001b[38;5;66;03m# Initialize parent class\u001b[39;00m\n\u001b[0;32m--> 231\u001b[0m \u001b[43mPdbModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchildren\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdimensions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_duplicate_bonded_terms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    232\u001b[0m \u001b[43m                 \u001b[49m\u001b[43mcell_vectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcell_origin\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    235\u001b[0m \u001b[38;5;66;03m# Store origin which might be different from cell_origin\u001b[39;00m\n\u001b[1;32m    236\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin \u001b[38;5;241m=\u001b[39m cell_origin\n",
+      "\u001b[0;31mTypeError\u001b[0m: __init__() takes from 1 to 4 positional arguments but 6 were given"
+     ]
+    }
+   ],
    "source": [
     "## Optionally simulate the DNA-only model to see how it performs and behaves\n",
     "model = make_dna_model()\n",
diff --git a/build_arbd_docs.py b/build_arbd_docs.py
index 8f1f0a34cc9bc70bde99d559965a5059ec556fc1..a75ef94dd1aecf1422746b055bffcf6265e8f54a 100644
--- a/build_arbd_docs.py
+++ b/build_arbd_docs.py
@@ -74,8 +74,8 @@ DOCUMENTATION_STRUCTURE = {
 
 # Tutorial notebook files relative to TUTORIALS_PATH
 TUTORIAL_NOTEBOOKS = [
-    "1-basics.ipynb",
-    "2-polymer-objects.ipynb",
+    "1-basics/1-basics.ipynb",
+    "2-polymer-objects/2-polymer-objects.ipynb",
     "3-iterative-boltzmann-inversion/3-ibi.ipynb",
     "4-rigid-bodies/4-rigid-bodies.ipynb"
 ]