Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
346d3ce3
Commit
346d3ce3
authored
Jul 29, 2025
by
Evan Pretti
Browse files
Tentative new structure for examples directory
parent
546d1a4e
Changes
40
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
11 additions
and
60 deletions
+11
-60
docs-source/usersguide/library/03_tutorials.rst
docs-source/usersguide/library/03_tutorials.rst
+2
-2
docs-source/usersguide/library/07_testing_validation.rst
docs-source/usersguide/library/07_testing_validation.rst
+9
-58
examples/benchmark/5dfr_minimized.pdb
examples/benchmark/5dfr_minimized.pdb
+0
-0
examples/benchmark/5dfr_solv-cube_equil.pdb
examples/benchmark/5dfr_solv-cube_equil.pdb
+0
-0
examples/benchmark/apoa1.pdb
examples/benchmark/apoa1.pdb
+0
-0
examples/benchmark/benchmark.py
examples/benchmark/benchmark.py
+0
-0
examples/hello/Empty.cpp
examples/hello/Empty.cpp
+0
-0
examples/hello/HelloArgon.cpp
examples/hello/HelloArgon.cpp
+0
-0
examples/hello/HelloArgonInC.c
examples/hello/HelloArgonInC.c
+0
-0
examples/hello/HelloArgonInFortran.f90
examples/hello/HelloArgonInFortran.f90
+0
-0
examples/hello/HelloEthane.cpp
examples/hello/HelloEthane.cpp
+0
-0
examples/hello/HelloSodiumChloride.cpp
examples/hello/HelloSodiumChloride.cpp
+0
-0
examples/hello/HelloSodiumChlorideInC.c
examples/hello/HelloSodiumChlorideInC.c
+0
-0
examples/hello/HelloSodiumChlorideInFortran.f90
examples/hello/HelloSodiumChlorideInFortran.f90
+0
-0
examples/hello/HelloWaterBox.cpp
examples/hello/HelloWaterBox.cpp
+0
-0
examples/hello/Makefile
examples/hello/Makefile
+0
-0
examples/hello/MakefileNotes.txt
examples/hello/MakefileNotes.txt
+0
-0
examples/hello/NMakefile
examples/hello/NMakefile
+0
-0
examples/hello/VisualStudio/HelloArgon.sln
examples/hello/VisualStudio/HelloArgon.sln
+0
-0
examples/hello/VisualStudio/HelloArgon.vcproj
examples/hello/VisualStudio/HelloArgon.vcproj
+0
-0
No files found.
docs-source/usersguide/library/03_tutorials.rst
View file @
346d3ce3
.. _openmm-tutorials:
.. _openmm-tutorials:
OpenMM
Tutorial
s
OpenMM
C++ API Tutorial Example
s
################
################
################
Example Files Overview
Example Files Overview
...
...
docs-source/usersguide/library/07_testing_validation.rst
View file @
346d3ce3
...
@@ -9,25 +9,16 @@ produces correct results. Furthermore, it must work correctly on a variety of
...
@@ -9,25 +9,16 @@ produces correct results. Furthermore, it must work correctly on a variety of
hardware platforms (e.g. different models of GPU), software platforms (e.g.
hardware platforms (e.g. different models of GPU), software platforms (e.g.
operating systems and OpenCL implementations), and types of simulations.
operating systems and OpenCL implementations), and types of simulations.
Three types of tests are used to validate OpenMM:
OpenMM includes unit tests, which are small tests designed to test specific features
or pieces of code in isolation. For example, a test of HarmonicBondForce might
create a System with just a few particles and bonds, compute the forces and
energy, and compare them to the analytically expected values. There are
thousands of unit tests that collectively cover all of OpenMM.
* **Unit tests:** These are small tests designed to test specific features
In addition, a direct comparison has been made of the individual forces computed
or pieces of code in isolation. For example, a test of HarmonicBondForce might
by OpenMM to those computed by other programs for a collection of biomolecules.
create a System with just a few particles and bonds, compute the forces and
energy, and compare them to the analytically expected values. There are
thousands of unit tests that collectively cover all of OpenMM.
* **System tests:** Whereas unit tests validate small features in
Each of these types of tests is outlined in greater detail below; a discussion of the
isolation, system tests are designed to validate the entire library as a whole.
They simulate realistic models of biomolecules and perform tests that are likely
to fail if any problem exists anywhere in the library.
* **Direct comparison between OpenMM and other programs:** The third type
of validation performed is a direct comparison of the individual forces computed
by OpenMM to those computed by other programs for a collection of biomolecules.
Each type of test is outlined in greater detail below; a discussion of the
current status of the tests is then given.
current status of the tests is then given.
...
@@ -58,51 +49,11 @@ suite took to execute. Otherwise it prints an error message. If any tests
...
@@ -58,51 +49,11 @@ suite took to execute. Otherwise it prints an error message. If any tests
failed, you can then run them individually (each one is a separate executable)
failed, you can then run them individually (each one is a separate executable)
to get more details on what went wrong.
to get more details on what went wrong.
System tests
============
Several different types of system tests are performed. Each type is run for a
variety of systems, including both proteins and nucleic acids, and involving
both implicit and explicit solvent. The full suite of tests is repeated for
both the CUDA and OpenCL platforms, using both single and double precision (and
for the integration tests, mixed precision as well), on a variety of operating
systems and hardware. There are four types of tests:
* **Consistency between platforms:** The forces and energy are computed
using the platform being tested, then compared to ones computed with the
Reference platform. The results are required to agree to within a small
tolerance.
* **Energy-force consistency:** This verifies that the force really is the
gradient of the energy. It first computes the vector of forces for a given
conformation. It then generates four other conformations by displacing the
particle positions by small amounts along the force direction. It computes the
energy of each one, uses those to calculate a fourth order finite difference
approximation to the derivative along that direction, and compares it to the
actual forces. They are required to agree to within a small tolerance.
* **Energy conservation:** The system is simulated at constant energy using
a Verlet integrator, and the total energy is periodically recorded. A linear
regression is used to estimate the rate of energy drift. In addition, all
constrained distances are monitored during the simulation to make sure they
never differ from the expected values by more than the constraint tolerance.
* **Thermostability:** The system is simulated at constant temperature
using a Langevin integrator. The mean kinetic energy over the course of the
simulation is computed and compared to the expected value based on the
temperature. In addition, all constrained distances are monitored during the
simulation to make sure they never differ from the expected values by more than
the constraint tolerance.
If you want to run the system tests yourself, they can be found in the
Subversion repository at https://simtk.org/svn/pyopenmm/trunk/test/system-tests.
Check out that directory, then execute the runAllTests.sh shell script. It will
create a series of files with detailed information about the results of the
tests. Be aware that running the full test suite may take a long time (possibly
several days) depending on the speed of your GPU.
Direct comparisons between OpenMM and other programs
Direct comparisons between OpenMM and other programs
====================================================
====================================================
As a
final
check, identical systems are set up in OpenMM and in another program
As a
nother
check, identical systems are set up in OpenMM and in another program
(Gromacs 4.5 or Tinker 6.1), each one is used to compute the forces on atoms,
(Gromacs 4.5 or Tinker 6.1), each one is used to compute the forces on atoms,
and the results are directly compared to each other.
and the results are directly compared to each other.
...
...
examples/5dfr_minimized.pdb
→
examples/
benchmark/
5dfr_minimized.pdb
View file @
346d3ce3
File moved
examples/5dfr_solv-cube_equil.pdb
→
examples/
benchmark/
5dfr_solv-cube_equil.pdb
View file @
346d3ce3
File moved
examples/apoa1.pdb
→
examples/
benchmark/
apoa1.pdb
View file @
346d3ce3
File moved
examples/benchmark.py
→
examples/benchmark
/benchmark
.py
View file @
346d3ce3
File moved
examples/Empty.cpp
→
examples/
hello/
Empty.cpp
View file @
346d3ce3
File moved
examples/HelloArgon.cpp
→
examples/
hello/
HelloArgon.cpp
View file @
346d3ce3
File moved
examples/HelloArgonInC.c
→
examples/
hello/
HelloArgonInC.c
View file @
346d3ce3
File moved
examples/HelloArgonInFortran.f90
→
examples/
hello/
HelloArgonInFortran.f90
View file @
346d3ce3
File moved
examples/HelloEthane.cpp
→
examples/
hello/
HelloEthane.cpp
View file @
346d3ce3
File moved
examples/HelloSodiumChloride.cpp
→
examples/
hello/
HelloSodiumChloride.cpp
View file @
346d3ce3
File moved
examples/HelloSodiumChlorideInC.c
→
examples/
hello/
HelloSodiumChlorideInC.c
View file @
346d3ce3
File moved
examples/HelloSodiumChlorideInFortran.f90
→
examples/
hello/
HelloSodiumChlorideInFortran.f90
View file @
346d3ce3
File moved
examples/HelloWaterBox.cpp
→
examples/
hello/
HelloWaterBox.cpp
View file @
346d3ce3
File moved
examples/Makefile
→
examples/
hello/
Makefile
View file @
346d3ce3
File moved
examples/MakefileNotes.txt
→
examples/
hello/
MakefileNotes.txt
View file @
346d3ce3
File moved
examples/NMakefile
→
examples/
hello/
NMakefile
View file @
346d3ce3
File moved
examples/VisualStudio/HelloArgon.sln
→
examples/
hello/
VisualStudio/HelloArgon.sln
View file @
346d3ce3
File moved
examples/VisualStudio/HelloArgon.vcproj
→
examples/
hello/
VisualStudio/HelloArgon.vcproj
View file @
346d3ce3
File moved
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment